Proof Reading; Tweaks;

Proof Read and tweak a few minor things. Add a few #ifdef USE_RTLSDR to make sure it still compiles when not using the rtl support.
This commit is contained in:
lwvmobile
2022-08-11 09:11:06 -04:00
committed by GitHub
parent 2b847c2270
commit 805fdd7583
3 changed files with 12 additions and 9 deletions

View File

@@ -15,7 +15,7 @@ Virtually all the examples listed below can now be set up on the fly with the me
This release also has provisional support for playing back OP25 capture bin files, and the creation and playback of its own capture bin files as well (most likely not OP25 compatible). Mileage may vary. Be sure to choose the decoder option required when playing a bin file back, do not rely on auto-detect. Capture Bin files can be used to reliably replay P25, DMR BS, and NXDN decodings, and can replace the need for MBE file saving in the case of DMR Stereo, allowing for a complete replay of all events on a system, rather than just voice only.
Per Call wav file creation has been implemented, currently only for DMR Stereo. Complete audio decode wav is available for all over decoder types. LRRP has been revamped, working more consistently, and an option to dump LRRP data to ~/lrrp.txt in the user home directory now exists, and can be imported into open-source QGIS to provide mapping data for LRRP output. Simply open the newly included map file in QGIS and point it at your geographic region. (Be sure the lrrp.txt file exists, and has data populated in it prior to opening the map file in QGIS, otherwise, the map layer may not want to show back up!)
Per Call wav file creation has been implemented, currently only for DMR Stereo. Complete audio decode wav is available for all other decoder types. LRRP has been revamped, working more consistently, and an option to dump LRRP data to ~/lrrp.txt in the user home directory now exists, and can be imported into open-source QGIS to provide mapping data for LRRP output. Simply open the newly included map file in QGIS and point it at your geographic region. (Be sure the lrrp.txt file exists, and has data populated in it prior to opening the map file in QGIS, otherwise, the map layer may not want to show back up!)
DMR Data Header decoding has been revamped, and most data burst decoding types tightened up and code cleaned. FEC error checking now implemented on CACH and Burst types, cleaning up some erroneous slot and burst errors.
@@ -47,8 +47,6 @@ and in a second terminal tab, same folder, run
`tail -n 40 -f voice.log`
![DSD-FME](https://github.com/lwvmobile/dsd-fme/blob/pulseaudio/dsd-fme2.png)
Then you can open up your pavucontrol "Pulse Audio Volume Control" or "Volume Control" application and route input into DSD-FME from any application and DSD-FME output to the left and right speakers respectively. (unlock the channel in the application stream and adjust left and right independently)
## Example Usage - RTL2832 Dongle Input
@@ -87,6 +85,8 @@ and in a second terminal tab, same folder, run
`tail -n 40 -f voice.log`
![DSD-FME](https://github.com/lwvmobile/dsd-fme/blob/pulseaudio/dsd-fme2.png)
## Roadmap
The Current list of objectives include:
@@ -208,7 +208,6 @@ Already have this branch, and just want to pull the latest build? You can run th
git pull https://github.com/lwvmobile/dsd-fme pulseaudio
##cd into your build folder##
cd build
##cmake usually isn't necesary, but could be if I update the cmakelist.txt
cmake ..
make -j `nproc`
sudo make install

View File

@@ -1952,6 +1952,7 @@ void ProcessDmrVoiceLcHeader(dsd_opts * opts, dsd_state * state, uint8_t info[19
else if(IrrecoverableErrors == 0)
{
//FEC okay? Set SVCop code anyways
TSVoiceSupFrame->FullLC.DataValidity = 0; //shouldn't matter in this context
if (state->currentslot == 0)
{
state->dmr_so = TSVoiceSupFrame->FullLC.ServiceOptions;

View File

@@ -200,7 +200,7 @@ char *choices[] = {
"Decode D-STAR*",
"Decode P25-P1*",
"Decode DMR (STEREO BS/MS)",
"Decode DMR* (LEH)", //better name
"Decode DMR* (LEH)",
"Decode dPMR",
"Decode NXDN48",
"Decode NXDN96",
@@ -445,7 +445,7 @@ void ncursesMenu (dsd_opts * opts, dsd_state * state)
}
if (choicec == 4)
{
//still disabled until a fix is found
//toggle all mutes
if (opts->unmute_encrypted_p25 == 0)
{
opts->unmute_encrypted_p25 = 1;
@@ -804,7 +804,7 @@ void ncursesMenu (dsd_opts * opts, dsd_state * state)
//endwin(); //causes quick blink in and out of ncursesprinter, not required
}
//Burger King
//Cheat Code Entry
if (choice == 13)
{
state->payload_keyid = 0;
@@ -1169,7 +1169,7 @@ void ncursesMenu (dsd_opts * opts, dsd_state * state)
{
openPulseInput(opts);
}
#ifdef USE_RTLSDR
if (opts->audio_in_type == 3) //open rtl input if it is the specified input method
{
ncursesPrinter (opts, state); //run one rep to clear menu boxes out
@@ -1180,6 +1180,7 @@ void ncursesMenu (dsd_opts * opts, dsd_state * state)
}
}
#endif
}
@@ -1191,7 +1192,7 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state)
int level = 0;
int c = 0;
if (opts->audio_in_type != 1) //can't run getch/menues when using STDIN -
if (opts->audio_in_type != 1) //can't run getch/menu when using STDIN -
{
timeout(0);
c = getch();
@@ -1199,6 +1200,7 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state)
//testing sending UDP commands to the socket inside of rtl_sdr_fm.cpp
//this works, but we will want to make an init func open one time, and have sendto here
#ifdef USE_RTLSDR
if (temp_freq == opts->rtlsdr_center_freq)
{
handle = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
@@ -1211,6 +1213,7 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state)
temp_freq = -1;
}
#endif
//Variable reset/set section