From f551952bf6a6dbd206824fe0fc9d1a1b03c3dba4 Mon Sep 17 00:00:00 2001 From: lwvmobile Date: Mon, 3 Mar 2025 06:17:52 -0500 Subject: [PATCH] Cygwin: Remove the portable release builder code from download-and-install-cygwin.sh script, call cyg_portable.sh from said script instead (simplify); Remove old .bat files or rename pulseaudio ones in case of need for referencing them; Include a simple example_options.txt file so users can get an idea of options to pass to dsd-fme as opposed to having a bunch of bat files; --- cyg_portable.sh | 4 +- download-and-install-cygwin.sh | 241 +----------------- .../cygwin_bat/0pa - zfix-pulse-stereo.bat | 18 -- .../1ac - start-dsd-fme-complex-examples.bat | 75 ------ ...ae - start-dsd-fme-decryption-examples.bat | 73 ------ .../1as - start-dsd-fme-scanning-examples.bat | 49 ---- .../1at - start-dsd-fme-trunking-examples.bat | 70 ----- .../1pa - start-dsd-fme-with-pulse.bat | 108 -------- .../cygwin_bat/1zz - tail-the-console-log.bat | 14 - ...t => 9pa-close-pulse-audio-server.bat.old} | 0 ...t => 9pa-start-pulse-audio-server.bat.old} | 0 .../cygwin_bat/complete_usage_options.txt | 202 +++++++++++++++ examples/cygwin_bat/example_options.txt | 97 +++++++ examples/cygwin_bat/readme_cygwin_bat.txt | 2 +- ... - start-dsd-fme.bat => start-dsd-fme.bat} | 6 +- 15 files changed, 308 insertions(+), 651 deletions(-) delete mode 100644 examples/cygwin_bat/0pa - zfix-pulse-stereo.bat delete mode 100644 examples/cygwin_bat/1ac - start-dsd-fme-complex-examples.bat delete mode 100644 examples/cygwin_bat/1ae - start-dsd-fme-decryption-examples.bat delete mode 100644 examples/cygwin_bat/1as - start-dsd-fme-scanning-examples.bat delete mode 100644 examples/cygwin_bat/1at - start-dsd-fme-trunking-examples.bat delete mode 100644 examples/cygwin_bat/1pa - start-dsd-fme-with-pulse.bat delete mode 100644 examples/cygwin_bat/1zz - tail-the-console-log.bat rename examples/cygwin_bat/{9pa - close-pulse-audio-server.bat => 9pa-close-pulse-audio-server.bat.old} (100%) rename examples/cygwin_bat/{0pa - start-pulse-audio-server.bat => 9pa-start-pulse-audio-server.bat.old} (100%) create mode 100644 examples/cygwin_bat/complete_usage_options.txt create mode 100644 examples/cygwin_bat/example_options.txt rename examples/cygwin_bat/{1aa - start-dsd-fme.bat => start-dsd-fme.bat} (91%) diff --git a/cyg_portable.sh b/cyg_portable.sh index 301d30c..f084432 100644 --- a/cyg_portable.sh +++ b/cyg_portable.sh @@ -70,7 +70,9 @@ if [ "$RELEASE" = "y" ]; then cp .profile dsd-fme-portable/dsd-fme/ #move (cut) the bat files to the portable folder root and delete the other ones so users won't get confused - mv dsd-fme-portable/dsd-fme/examples/cygwin_bat/*.bat dsd-fme-portable/ + mv dsd-fme-portable/dsd-fme/examples/cygwin_bat/start-dsd-fme.bat dsd-fme-portable/ + mv dsd-fme-portable/dsd-fme/examples/cygwin_bat/example_options.txt dsd-fme-portable/ + mv dsd-fme-portable/dsd-fme/examples/cygwin_bat/complete_usage_options.txt dsd-fme-portable/ rm -rf dsd-fme-portable/dsd-fme/examples/cygwin_bat #change .bat files permissions to be read/write/executable by all users (for some reason, this is not preserved) diff --git a/download-and-install-cygwin.sh b/download-and-install-cygwin.sh index dd1aebd..a5786f0 100644 --- a/download-and-install-cygwin.sh +++ b/download-and-install-cygwin.sh @@ -79,245 +79,8 @@ if [ "$ANSWER" = "y" ]; then make install cd $cdir - #ask user if they want to make a portable release copy - read -p "Do you want to make a portable copy? y/N " RELEASE - RELEASE=$(printf "$RELEASE"|tr '[:upper:]' '[:lower:]') - if [ "$RELEASE" = "y" ]; then - - printf "Copying files to dsd-fme-portable folder and making zip file. Please wait!\n" - - #create a dsd-fme-portable folder and copy all the needed items for a portable release version - mkdir dsd-fme-portable - cd dsd-fme-portable - mkdir sourcecode - mkdir bin - mkdir dev - cd dev - mkdir shm - cd .. - mkdir dsd-fme - mkdir logs - mkdir WAV - mkdir etc - mkdir home - mkdir lib - mkdir tmp - mkdir usr - cd usr - mkdir share - cd share - mkdir terminfo - cd $cdir - - #start copying things - - #terminfo is needed for ncurses - cp -r /usr/share/terminfo/* dsd-fme-portable/usr/share/terminfo - - #copy required items from the root bin folder to release bin folder - cp /bin/ls.exe dsd-fme-portable/bin/ - cp /bin/bash.exe dsd-fme-portable/bin/ - cp /bin/ncurses6-config dsd-fme-portable/bin/ - cp /bin/ncursesw6-config dsd-fme-portable/bin/ - cp /bin/pacat.exe dsd-fme-portable/bin/ - cp /bin/pactl.exe dsd-fme-portable/bin/ - cp /bin/padsp dsd-fme-portable/bin/ - cp /bin/pamon dsd-fme-portable/bin/ - cp /bin/paplay dsd-fme-portable/bin/ - cp /bin/parec dsd-fme-portable/bin/ - cp /bin/parecord dsd-fme-portable/bin/ - cp /bin/pulseaudio.exe dsd-fme-portable/bin/ - cp /bin/tty.exe dsd-fme-portable/bin/ - - #start copying things from the etc folder - cp -r /etc/pulse/ dsd-fme-portable/etc/ - - #start copying things to the lib folder - cp -r /lib/pulseaudio/ dsd-fme-portable/lib/ - - #start copying things into the dsd-fme folder - cp dsd-fme/build/dsd-fme.exe dsd-fme-portable/dsd-fme/ - cp -r dsd-fme/examples dsd-fme-portable/dsd-fme/ - cp .bash_profile dsd-fme-portable/dsd-fme/ - cp .bashrc dsd-fme-portable/dsd-fme/ - cp .inputrc dsd-fme-portable/dsd-fme/ - cp .profile dsd-fme-portable/dsd-fme/ - - #move (cut) the bat files to the portable folder root and delete the other ones so users won't get confused - mv dsd-fme-portable/dsd-fme/examples/cygwin_bat/*.bat dsd-fme-portable/ - rm -rf dsd-fme-portable/dsd-fme/examples/cygwin_bat - - #change .bat files permissions to be read/write/executable by all users (for some reason, this is not preserved) - chmod 777 dsd-fme-portable/*.bat - - #copy the license, copyright, source code, and things that should be included in all portable releases - cp dsd-fme/COPYRIGHT dsd-fme-portable/sourcecode/ - cp dsd-fme/DSD_Author.pgp dsd-fme-portable/sourcecode/ - cp dsd-fme/dsd-fme-qgis-map.qgz dsd-fme-portable/sourcecode/ - cp dsd-fme/README.md dsd-fme-portable/sourcecode/ - cp dsd-fme/dsd-fme2.png dsd-fme-portable/sourcecode/ - cp dsd-fme/dsd-fme3.png dsd-fme-portable/sourcecode/ - - cp dsd-fme/CMakeLists.txt dsd-fme-portable/sourcecode/ - cp -r dsd-fme/src dsd-fme-portable/sourcecode/ - cp -r dsd-fme/include dsd-fme-portable/sourcecode/ - cp -r dsd-fme/cmake dsd-fme-portable/sourcecode/ - cp -r dsd-fme/patch dsd-fme-portable/sourcecode/ - - #compiled items into release dsd-fme folder - cp codec2/build/src/cygcodec2* dsd-fme-portable/dsd-fme/ - cp itpp-4.3.1/build/itpp/cygitpp* dsd-fme-portable/dsd-fme/ - cp rtl-sdr/build/src/cyg* dsd-fme-portable/dsd-fme/ - cp mbelib/build/cygmbe* dsd-fme-portable/dsd-fme/ - - #bin items into release dsd-fme folder (uisng * where version numbering may exist, those may be upgraded if hard coded) - cp /bin/bash.exe dsd-fme-portable/dsd-fme/ - cp /bin/cut.exe dsd-fme-portable/dsd-fme/ - cp /bin/cygao* dsd-fme-portable/dsd-fme/ - cp /bin/cygarchive* dsd-fme-portable/dsd-fme/ - cp /bin/cygargp* dsd-fme-portable/dsd-fme/ - cp /bin/cygassuan* dsd-fme-portable/dsd-fme/ - cp /bin/cygasyncns* dsd-fme-portable/dsd-fme/ - cp /bin/cygatomic* dsd-fme-portable/dsd-fme/ - cp /bin/cygattr* dsd-fme-portable/dsd-fme/ - cp /bin/cygavahi-client* dsd-fme-portable/dsd-fme/ - cp /bin/cygavahi-common* dsd-fme-portable/dsd-fme/ - cp /bin/cygavahi-wrap* dsd-fme-portable/dsd-fme/ - cp /bin/cygblkid* dsd-fme-portable/dsd-fme/ - cp /bin/cygbrotlicommon* dsd-fme-portable/dsd-fme/ - cp /bin/cygbrotlidec* dsd-fme-portable/dsd-fme/ - cp /bin/cygbz2* dsd-fme-portable/dsd-fme/ - cp /bin/cygcares* dsd-fme-portable/dsd-fme/ - cp /bin/cygcheck.exe dsd-fme-portable/dsd-fme/ - cp /bin/cygcli.dll dsd-fme-portable/dsd-fme/ - cp /bin/cygcom_err* dsd-fme-portable/dsd-fme/ - cp /bin/cygcrypt* dsd-fme-portable/dsd-fme/ - cp /bin/cygcrypto* dsd-fme-portable/dsd-fme/ - cp /bin/cygcurl* dsd-fme-portable/dsd-fme/ - cp /bin/cygdb_cxx* dsd-fme-portable/dsd-fme/ - cp /bin/cygdb_sql* dsd-fme-portable/dsd-fme/ - cp /bin/cygdb* dsd-fme-portable/dsd-fme/ - cp /bin/cygdbus* dsd-fme-portable/dsd-fme/ - cp /bin/cygedit* dsd-fme-portable/dsd-fme/ - cp /bin/cygexpat* dsd-fme-portable/dsd-fme/ - cp /bin/cygfam* dsd-fme-portable/dsd-fme/ - cp /bin/cygfdisk* dsd-fme-portable/dsd-fme/ - cp /bin/cygffi* dsd-fme-portable/dsd-fme/ - cp /bin/cygfftw3_threads* dsd-fme-portable/dsd-fme/ - cp /bin/cygfftw3* dsd-fme-portable/dsd-fme/ - cp /bin/cygfftw3f_threads* dsd-fme-portable/dsd-fme/ - cp /bin/cygfftw3f* dsd-fme-portable/dsd-fme/ - cp /bin/cygfftw3l_threads* dsd-fme-portable/dsd-fme/ - cp /bin/cygfftw3l* dsd-fme-portable/dsd-fme/ - cp /bin/cygfido2* dsd-fme-portable/dsd-fme/ - cp /bin/cygFLAC* dsd-fme-portable/dsd-fme/ - cp /bin/cygformw* dsd-fme-portable/dsd-fme/ - cp /bin/cyggc* dsd-fme-portable/dsd-fme/ - cp /bin/cyggdbm_compat* dsd-fme-portable/dsd-fme/ - cp /bin/cyggdbm*.dll dsd-fme-portable/dsd-fme/ - cp /bin/cyggio* dsd-fme-portable/dsd-fme/ - cp /bin/cygglib* dsd-fme-portable/dsd-fme/ - cp /bin/cyggmodule* dsd-fme-portable/dsd-fme/ - cp /bin/cyggmp* dsd-fme-portable/dsd-fme/ - cp /bin/cyggnutls* dsd-fme-portable/dsd-fme/ - cp /bin/cyggobject* dsd-fme-portable/dsd-fme/ - cp /bin/cyggomp* dsd-fme-portable/dsd-fme/ - cp /bin/cyggpg-error* dsd-fme-portable/dsd-fme/ - cp /bin/cyggpgme* dsd-fme-portable/dsd-fme/ - cp /bin/cyggsasl* dsd-fme-portable/dsd-fme/ - cp /bin/cyggsm* dsd-fme-portable/dsd-fme/ - cp /bin/cyggssapi_krb5* dsd-fme-portable/dsd-fme/ - cp /bin/cyggthread* dsd-fme-portable/dsd-fme/ - cp /bin/cygguile* dsd-fme-portable/dsd-fme/ - cp /bin/cyghistory* dsd-fme-portable/dsd-fme/ - cp /bin/cyghogweed* dsd-fme-portable/dsd-fme/ - cp /bin/cygICE* dsd-fme-portable/dsd-fme/ - cp /bin/cygiconv* dsd-fme-portable/dsd-fme/ - cp /bin/cygid3tag* dsd-fme-portable/dsd-fme/ - cp /bin/cygidn* dsd-fme-portable/dsd-fme/ - cp /bin/cygintl* dsd-fme-portable/dsd-fme/ - cp /bin/cygisl* dsd-fme-portable/dsd-fme/ - cp /bin/cygjsoncpp* dsd-fme-portable/dsd-fme/ - cp /bin/cygk5crypto* dsd-fme-portable/dsd-fme/ - cp /bin/cygkrb5* dsd-fme-portable/dsd-fme/ - cp /bin/cyglber* dsd-fme-portable/dsd-fme/ - cp /bin/cygldap* dsd-fme-portable/dsd-fme/ - cp /bin/cygltdl* dsd-fme-portable/dsd-fme/ - cp /bin/cyglz* dsd-fme-portable/dsd-fme/ - cp /bin/cygma* dsd-fme-portable/dsd-fme/ - cp /bin/cygmenuw* dsd-fme-portable/dsd-fme/ - cp /bin/cygmeta* dsd-fme-portable/dsd-fme/ - cp /bin/cygmp* dsd-fme-portable/dsd-fme/ - cp /bin/cygncurses* dsd-fme-portable/dsd-fme/ - cp /bin/cygnettle* dsd-fme-portable/dsd-fme/ - cp /bin/cygnghttp* dsd-fme-portable/dsd-fme/ - cp /bin/cygntlm* dsd-fme-portable/dsd-fme/ - cp /bin/cygobjc* dsd-fme-portable/dsd-fme/ - cp /bin/cygogg* dsd-fme-portable/dsd-fme/ - cp /bin/cygopus* dsd-fme-portable/dsd-fme/ - cp /bin/cygorc* dsd-fme-portable/dsd-fme/ - cp /bin/cygp11* dsd-fme-portable/dsd-fme/ - cp /bin/cygpanel* dsd-fme-portable/dsd-fme/ - cp /bin/cygpath.exe dsd-fme-portable/dsd-fme/ - cp /bin/cygpcre* dsd-fme-portable/dsd-fme/ - cp /bin/cygperl* dsd-fme-portable/dsd-fme/ - cp /bin/cygpipe* dsd-fme-portable/dsd-fme/ - cp /bin/cygpkg* dsd-fme-portable/dsd-fme/ - cp /bin/cygpng* dsd-fme-portable/dsd-fme/ - cp /bin/cygpopt* dsd-fme-portable/dsd-fme/ - cp /bin/cygprotocol* dsd-fme-portable/dsd-fme/ - cp /bin/cygpsl* dsd-fme-portable/dsd-fme/ - cp /bin/cygpulse* dsd-fme-portable/dsd-fme/ - cp /bin/cygquadmath* dsd-fme-portable/dsd-fme/ - cp /bin/cygreadline* dsd-fme-portable/dsd-fme/ - cp /bin/cygrhash* dsd-fme-portable/dsd-fme/ - cp /bin/cygrunsrv.exe dsd-fme-portable/dsd-fme/ - cp /bin/cygsamplerate* dsd-fme-portable/dsd-fme/ - cp /bin/cygsasl* dsd-fme-portable/dsd-fme/ - cp /bin/cygserver* dsd-fme-portable/dsd-fme/ - cp /bin/cygSM* dsd-fme-portable/dsd-fme/ - cp /bin/cygsmart* dsd-fme-portable/dsd-fme/ - cp /bin/cygsndfile* dsd-fme-portable/dsd-fme/ - cp /bin/cygsox* dsd-fme-portable/dsd-fme/ - cp /bin/cygspeex* dsd-fme-portable/dsd-fme/ - cp /bin/cygsqlite* dsd-fme-portable/dsd-fme/ - cp /bin/cygssh* dsd-fme-portable/dsd-fme/ - cp /bin/cygssl* dsd-fme-portable/dsd-fme/ - cp /bin/cygstart.exe dsd-fme-portable/dsd-fme/ - cp /bin/cygstdc* dsd-fme-portable/dsd-fme/ - cp /bin/cygtasn* dsd-fme-portable/dsd-fme/ - cp /bin/cygtdb* dsd-fme-portable/dsd-fme/ - cp /bin/cygticw* dsd-fme-portable/dsd-fme/ - cp /bin/cygtwo* dsd-fme-portable/dsd-fme/ - cp /bin/cygunistring* dsd-fme-portable/dsd-fme/ - cp /bin/cygusb* dsd-fme-portable/dsd-fme/ - cp /bin/cyguuid* dsd-fme-portable/dsd-fme/ - cp /bin/cyguv* dsd-fme-portable/dsd-fme/ - cp /bin/cygvorbis* dsd-fme-portable/dsd-fme/ - cp /bin/cygwavpack* dsd-fme-portable/dsd-fme/ - cp /bin/cygwin1.dll dsd-fme-portable/dsd-fme/ - cp /bin/cygwrap* dsd-fme-portable/dsd-fme/ - cp /bin/cygX* dsd-fme-portable/dsd-fme/ - cp /bin/cygx* dsd-fme-portable/dsd-fme/ - cp /bin/cygz* dsd-fme-portable/dsd-fme/ - cp /bin/grep.exe dsd-fme-portable/dsd-fme/ - cp /bin/ls.exe dsd-fme-portable/dsd-fme/ - cp /bin/mintty.exe dsd-fme-portable/dsd-fme/ - cp /bin/pacat.exe dsd-fme-portable/dsd-fme/ - cp /bin/pacmd.exe dsd-fme-portable/dsd-fme/ - cp /bin/pactl.exe dsd-fme-portable/dsd-fme/ - cp /bin/padsp dsd-fme-portable/dsd-fme/ - cp /bin/pamon dsd-fme-portable/dsd-fme/ - cp /bin/paplay dsd-fme-portable/dsd-fme/ - cp /bin/parec dsd-fme-portable/dsd-fme/ - cp /bin/pulseaudio.exe dsd-fme-portable/dsd-fme/ - cp /bin/tail.exe dsd-fme-portable/dsd-fme/ - cp /bin/touch.exe dsd-fme-portable/dsd-fme/ - cp /bin/tty.exe dsd-fme-portable/dsd-fme/ - - zip -r dsd-fme-x86-64-cygwin-portable.zip dsd-fme-portable - - fi + #call the cyg_portable script + sh dsd-fme/cyg_portable.sh printf "Any issues, Please report to either:\nhttps://github.com/lwvmobile/dsd-fme/issues or\nhttps://forums.radioreference.com/threads/dsd-fme.438137/\n\n" diff --git a/examples/cygwin_bat/0pa - zfix-pulse-stereo.bat b/examples/cygwin_bat/0pa - zfix-pulse-stereo.bat deleted file mode 100644 index b5074d5..0000000 --- a/examples/cygwin_bat/0pa - zfix-pulse-stereo.bat +++ /dev/null @@ -1,18 +0,0 @@ -@REM Set the console / terminal to 90 columns, 50 lines -@REM mode con: cols=90 lines=50 - -@REM only run this command while running DSD-FME with pulse output in a stereo 2 channel configuration -@REM and only IF you have a stereo volume panning issue (this resolves a possibility that a user may have -@REM used an older supplied .bat file to pan channels left or right when two pulse output streams were used) - -@REM change directory into the dsd-fme folder -cd dsd-fme - -@REM Manually set output volume for left and right channel to 100% -@REM you can also adjust the value of 65535 (100%) to any value from 0 to 65535 - -@REM //dev//left//right -pactl.exe set-sink-input-volume 0 65535 65535 -pactl.exe set-sink-input-volume 1 65535 65535 - -PAUSE diff --git a/examples/cygwin_bat/1ac - start-dsd-fme-complex-examples.bat b/examples/cygwin_bat/1ac - start-dsd-fme-complex-examples.bat deleted file mode 100644 index 77c88df..0000000 --- a/examples/cygwin_bat/1ac - start-dsd-fme-complex-examples.bat +++ /dev/null @@ -1,75 +0,0 @@ -@REM Set the console / terminal to 90 columns, 50 lines -@REM mode con: cols=90 lines=50 - -@REM change directory into the dsd-fme folder -cd dsd-fme - -@REM Digital Speech Decoder: Florida Man Edition -@REM DSD-FME Cygwin Windows Portable Builds -@REM -@REM The source code of this software can be donwloaded here: -@REM https://github.com/lwvmobile/dsd-fme -@REM -@REM If you paid for, or were otherwise fleeced for this software, DEMAND YOUR MONEY BACK! -@REM -@REM This software is designed to be used with an SDR receiver (like SDR++ or SDR#) with TCP input, -@REM RTL Input, media file playback over virtual cables or null-sinks, or a Discriminator Tap input -@REM -@REM The complete option list can be seen by entering the following command: -@REM dsd-fme.exe -h -@REM -@REM Enjoy ! -@REM -@REM Important! Make sure to route audio in with volume mixer after opening! -@REM You may need to restart the software after setting it up to monitor input -@REM of VB-Cables, or allowing the network traffic for TCP or RIGCTL -@REM See the 'source code\examples\Audio_Plumbing.md' file for more information -@REM -@REM Notice: DSD-FME will not auto-detect NXDN48/96, Provoice, M17, or dPMR signals, -@REM you will need to manually switch them on with the correct command. -@REM -@REM Notice: This .bat file contains numerous examples, it is recommended to find an -@REM an example that matches your use case, and use the @REM to disable the default -@REM or make your own .bat files with the examples provided here -@REM feel free to experiment and mix and match options, see what works best - -@REM DMR with default /dev/dsp input and output, capture source to .wav file, -@REM per call wav files, ncurses terminal, payload dump to console -dsd-fme.exe -fs -6 dmrsource.wav -P -N -Z 2> log.ans - -@REM NXDN48 with default /dev/dsp input and output, analog source audio monitor, -@REM per call wav files, ncurses terminal, payload dump to console -@REM dsd-fme.exe -fi -P -N -Z -8 2> log.ans - -@REM P25 with pulse audio input and output, capture to .bin file, -@REM per call wav files, ncurses terminal, discard console log -@REM dsd-fme.exe -i pulse:input -o pulse:output -ft -P -N -c p25capture.bin 2> NUL - -@REM P25 Phase 2 Traffic Channel Parking with SDR++ Network Sink input, pulse output, -@REM console payload dump, ncurses terminal, manually specify WACN/SYS/CC value -@REM dsd-fme.exe -f2 -i tcp:127.0.0.1:7355 -o pulse:output -X BEE00123ABC -Z -N 2> log.ans - -@REM Auto Detect and Use 48k/1 .wav file for input (SDR++, DSD-FME) -@REM dsd-fme.exe -fa -i filename.wav -s 48000 - -@REM Auto Detect and Use 96k/1 .wav file for input (DSDPlus, GQRX) -@REM dsd-fme.exe -fa -i filename.wav -s 96000 - -@REM DMR/P25 TDMA and capture.bin format input (DSD-FME, OP25), payload to console -@REM dsd-fme.exe -ft -i capture.bin -Z - -@REM -- Lima Zulu Specific Tweaks for NXDN48 -@REM -- Run in With SDR++, TCP Network Audio Sink, RIGCTL on 4532, Scanner Mode, -@REM load keys from frequency during voice, force scrambler cipher -@REM dsd-fme-lz.exe -i tcp -U 4532 -Y -4 -t 1 -fi -Z -k examples\nxdn_sc_key.csv -C nxdn_chan_map.csv -N 2> log.ans - -@REM -- Lima Zulu Specific Tweaks for NXDN96 -@REM -- Run in With SDR++, TCP Network Audio Sink, RIGCTL on 4532, Scanner Mode, -@REM load keys from frequency during voice, force scrambler cipher -@REM dsd-fme-lz.exe -i tcp -U 4532 -Y -4 -t 1 -fn -Z -k examples\nxdn_sc_key.csv -C nxdn_chan_map.csv -N 2> log.ans - -@REM ProVoice Conventional / Simplex from Disc Tap Input -@REM dsd-fme-pvc.exe -fp -Z - - -@REM PAUSE diff --git a/examples/cygwin_bat/1ae - start-dsd-fme-decryption-examples.bat b/examples/cygwin_bat/1ae - start-dsd-fme-decryption-examples.bat deleted file mode 100644 index 918d4a0..0000000 --- a/examples/cygwin_bat/1ae - start-dsd-fme-decryption-examples.bat +++ /dev/null @@ -1,73 +0,0 @@ -@REM Set the console / terminal to 90 columns, 50 lines -@REM mode con: cols=90 lines=50 - -@REM change directory into the dsd-fme folder -cd dsd-fme - -@REM Digital Speech Decoder: Florida Man Edition -@REM DSD-FME Cygwin Windows Portable Builds -@REM -@REM The source code of this software can be donwloaded here: -@REM https://github.com/lwvmobile/dsd-fme -@REM -@REM If you paid for, or were otherwise fleeced for this software, DEMAND YOUR MONEY BACK! -@REM -@REM This software is designed to be used with an SDR receiver (like SDR++ or SDR#) with TCP input, -@REM RTL Input, media file playback over virtual cables or null-sinks, or a Discriminator Tap input -@REM -@REM The complete option list can be seen by entering the following command: -@REM dsd-fme.exe -h -@REM -@REM Enjoy ! -@REM -@REM Important! Make sure to route audio in with volume mixer after opening! -@REM You may need to restart the software after setting it up to monitor input -@REM of VB-Cables, or allowing the network traffic for TCP or RIGCTL -@REM See the 'source code\examples\Audio_Plumbing.md' file for more information -@REM -@REM Notice: DSD-FME will not auto-detect NXDN48/96, Provoice, M17, or dPMR signals, -@REM you will need to manually switch them on with the correct command. -@REM -@REM Notice: This .bat file contains numerous examples, it is recommended to find an -@REM an example that matches your use case, and use the @REM to disable the default -@REM or make your own .bat files with the examples provided here -@REM feel free to experiment and mix and match options, see what works best - -@REM DMR with default /dev/dsp input and output, use basic privacy key 70 -dsd-fme.exe -fs -b 70 - -@REM DMR with default /dev/dsp input and output, load .csv file with decimal basic privacy keys loaded by TG value, -@REM dsd-fme.exe -fs -k examples\multi_key.csv - -@REM DMR with default /dev/dsp input and output, use Hytera basic privacy key (10, 32, and 64 hex char versions) -@REM dsd-fme.exe -fs -H 1111111111 -@REM dsd-fme.exe -fs -H '2222222222222222 3333333333333333' -@REM dsd-fme.exe -fs -H '2222222222222222 3333333333333333 4444444444444444 5555555555555555' - -@REM DMR with default /dev/dsp input and output, use RC4 key 0x7777777777 -@REM dsd-fme.exe -fs -1 7777777777 - -@REM DMR with default /dev/dsp input and output, use RC4 key 0x7777777777, -@REM Force RC4 Key over Missing PI header/LE Encryption Identifiers (-0) -@REM Disable Late Entry Encryption Signalling Identifiers (-3) -@REM dsd-fme.exe -fs -0 -3 -1 7777777777 - -@REM DMR with default /dev/dsp input and output, load RC4 and 10-char HBP keys from .csv file (hexidecimal format) -@REM dsd-fme.exe -fs -K examples\multi_key_hex.csv - -@REM P25 with default /dev/dsp input and output, use RC4 key 0x7777777777 -@REM dsd-fme.exe -ft -1 7777777777 - -@REM NXDN48 with default /dev/dsp input and output, use Scrambler key 32767 -@REM dsd-fme.exe -fi -R 32767 - -@REM NXDN96 with default /dev/dsp input and output, use Scrambler key 15000 -@REM dsd-fme.exe -fn -R 15000 - -@REM dPMR with default /dev/dsp input and output, use Scrambler key 32767 -@REM dsd-fme.exe -fm -R 32767 - -@REM NXDN48 with default /dev/dsp input and output, load scrambler keys from .csv file (decimal format) -@REM dsd-fme.exe -fi -k examples\nxdn_sc_key.csv - -@REM PAUSE diff --git a/examples/cygwin_bat/1as - start-dsd-fme-scanning-examples.bat b/examples/cygwin_bat/1as - start-dsd-fme-scanning-examples.bat deleted file mode 100644 index 2a6b099..0000000 --- a/examples/cygwin_bat/1as - start-dsd-fme-scanning-examples.bat +++ /dev/null @@ -1,49 +0,0 @@ -@REM Set the console / terminal to 90 columns, 50 lines -@REM mode con: cols=90 lines=50 - -@REM change directory into the dsd-fme folder -cd dsd-fme - -@REM Digital Speech Decoder: Florida Man Edition -@REM DSD-FME Cygwin Windows Portable Builds -@REM -@REM The source code of this software can be donwloaded here: -@REM https://github.com/lwvmobile/dsd-fme -@REM -@REM If you paid for, or were otherwise fleeced for this software, DEMAND YOUR MONEY BACK! -@REM -@REM This software is designed to be used with an SDR receiver (like SDR++ or SDR#) with TCP input, -@REM RTL Input, media file playback over virtual cables or null-sinks, or a Discriminator Tap input -@REM -@REM The complete option list can be seen by entering the following command: -@REM dsd-fme.exe -h -@REM -@REM Enjoy ! -@REM -@REM Notice: This .bat file contains numerous examples, it is recommended to find an -@REM an example that matches your use case, and use the @REM to disable the default -@REM or make your own .bat files with the examples provided here -@REM feel free to experiment and mix and match options, see what works best -@REM -@REM Scanning will not perform quickly like a real scanner, but can be used with any -@REM supported decoding type and analog as well, and will require a channel_map to scan frequencies -@REM channel numbers do not matter, but use unique ones for each frequeny -@REM -t 0 will scan as fast as possible, but may miss frame sync, -t 1 is stable, but needs 1 second between tuning - -@REM P25/DMR/Analog Scanning with RTL input, /dev/dsp output, channel map import, -@REM per call wav files, ncurses terminal, payload dump to console, raw audio signal monitoring -@REM dsd-fme.exe -ft -i rtl:0:450M:0:-2:12 -Y -t 1 -C examples\dmr_t3_chan.csv -P -8 -N -Z 2> log.ans - -@REM P25/DMR/Analog Scanning with SDR++ input (use squelch), RIGCTL, /dev/dsp output, channel map import, -@REM per call wav files, ncurses terminal, payload dump to console, raw audio signal monitoring -@REM dsd-fme.exe -ft -i tcp:127.0.0.1:7355 -U 4532 -Y -t 1 -C examples\dmr_t3_chan.csv -P -8 -N -Z 2> log.ans - -@REM NXDN48/Analog Scanning with SDR++ input (use squelch), RIGCTL, /dev/dsp output, channel map import, -@REM per call wav files, ncurses terminal, payload dump to console, raw audio signal monitoring -@REM dsd-fme.exe -fi -i tcp:127.0.0.1:7355 -U 4532 -Y -t 1-C examples\nxdn_chan_map.csv -P -8 -N -Z 2> log.ans - -@REM Analog Scanning with SDR++ input (use squelch), RIGCTL, /dev/dsp output, channel map import -@REM dsd-fme.exe -fA -i tcp:127.0.0.1:7355 -U 4532 -Y -t 0 -C examples\nxdn_chan_map.csv -8 - - -@REM PAUSE diff --git a/examples/cygwin_bat/1at - start-dsd-fme-trunking-examples.bat b/examples/cygwin_bat/1at - start-dsd-fme-trunking-examples.bat deleted file mode 100644 index 5ff0c87..0000000 --- a/examples/cygwin_bat/1at - start-dsd-fme-trunking-examples.bat +++ /dev/null @@ -1,70 +0,0 @@ -@REM Set the console / terminal to 90 columns, 50 lines -@REM mode con: cols=90 lines=50 - -@REM change directory into the dsd-fme folder -cd dsd-fme - -@REM Digital Speech Decoder: Florida Man Edition -@REM DSD-FME Cygwin Windows Portable Builds -@REM -@REM The source code of this software can be donwloaded here: -@REM https://github.com/lwvmobile/dsd-fme -@REM -@REM If you paid for, or were otherwise fleeced for this software, DEMAND YOUR MONEY BACK! -@REM -@REM This software is designed to be used with an SDR receiver (like SDR++ or SDR#) with TCP input, -@REM RTL Input, media file playback over virtual cables or null-sinks, or a Discriminator Tap input -@REM -@REM The complete option list can be seen by entering the following command: -@REM dsd-fme.exe -h -@REM -@REM Enjoy ! -@REM -@REM Notice: This .bat file contains numerous examples, it is recommended to find an -@REM an example that matches your use case, and use the @REM to disable the default -@REM or make your own .bat files with the examples provided here -@REM feel free to experiment and mix and match options, see what works best -@REM -@REM Consult examples\trunking.sh for more trunking examples, notes, and use case on tcp and rtl input switches -@REM Current Supported Trunking Types Include: -@REM P25: Phase 1 or Phase 2 (MAC_SIGNAL/TDMA) Trunking. -@REM DMR: Cap+, XPT, Con+, T3 (with channel map import) -@REM NXDN: Type C v1 with channel map import, v2 DFA, "Icom IDAS" Type D Trunking -@REM EDACS: Standard Network, and Extended Addressing (with and without ESK) -@REM -@REM Note: Simulcast P25 systems may perform poorly or not at all on DSD-FME, even with QPSK enabled. - -@REM P25 (Phase 1 Control) Trunking with SDR++ Network Sink input, RIGCTL, /dev/dsp output, -@REM per call wav files, ncurses terminal -@REM dsd-fme.exe -ft -i tcp:127.0.0.1:7355 -U 4532 -T -P -N 2> log.ans - -@REM P25 (Phase 2 Control) Trunking with SDR++ Network Sink input, RIGCTL, /dev/dsp output, -@REM per call wav files, ncurses terminal -@REM dsd-fme.exe -f2 -i tcp:127.0.0.1:7355 -U 4532 -T -P -N 2> log.ans - -@REM DMR Trunking with RTL input, /dev/dsp output, channel map import, -@REM per call wav files, ncurses terminal, payload dump to console -@REM dsd-fme.exe -fs -i rtl:0:450M:0:-2:12 -T -C examples\dmr_t3_chan.csv -P -N -Z 2> log.ans - -@REM DMR Trunking with SDR++ input, RIGCTL, /dev/dsp output, RAS enabled CSBK (-F), -@REM channel map import, per call wav files, ncurses terminal, payload dump to console -@REM dsd-fme.exe -fs -F -i tcp -U 4532 -T -C examples\capacity_plus_chan.csv -P -N -Z 2> log.ans - -@REM NXDN48 v2.0 DFA (Direct Frequency Assignment) Trunking with SDR++ input, RIGCTL, /dev/dsp output, -@REM scrambler key import (decimal), per call wav files, ncurses terminal, payload dump to console -@REM dsd-fme.exe -fi -i tcp -U 4532 -T -P -N -Z -k examples\nxdn_sc_key.csv 2> log.ans - -@REM NXDN96 Trunking with SDR++ input, RIGCTL, /dev/dsp output, -@REM channel map import, per call wav files, ncurses terminal, payload dump to console -@REM dsd-fme.exe -fn -i tcp -U 4532 -T -C examples\nxdn_chan_map.csv -P -N -Z 2> log.ans - -@REM EDACS Standard Network Analog and Digital -@REM dsd-fme.exe -fh -i tcp -U 4532 -T -C edacs_channel_map.csv -G group.csv -N 2> log.ans -@REM dsd-fme.exe -fh -i rtl:0:850M:44:-2:24 -T -C edacs_channel_map.csv -G group.csv -N 2> log.ans - -@REM EDACS Extended Address Analog and Digital (with ESK) -@REM dsd-fme -fE -i tcp:192.168.7.5:7355 -U 4532 -T -C edacs_channel_map.csv -G group.csv -N 2> log.ans -@REM dsd-fme -fE -i rtl:0:850M:44:-2:24 -T -C edacs_channel_map.csv -G group.csv -N 2> log.ans - - -@REM PAUSE diff --git a/examples/cygwin_bat/1pa - start-dsd-fme-with-pulse.bat b/examples/cygwin_bat/1pa - start-dsd-fme-with-pulse.bat deleted file mode 100644 index 67809af..0000000 --- a/examples/cygwin_bat/1pa - start-dsd-fme-with-pulse.bat +++ /dev/null @@ -1,108 +0,0 @@ -@REM Set the console / terminal to 90 columns, 50 lines -@REM mode con: cols=90 lines=50 - -@REM change directory into the dsd-fme folder -cd dsd-fme - -@REM Digital Speech Decoder: Florida Man Edition -@REM DSD-FME Cygwin Windows Portable Builds -@REM -@REM The source code of this software can be donwloaded here: -@REM https://github.com/lwvmobile/dsd-fme -@REM -@REM If you paid for, or were otherwise fleeced for this software, DEMAND YOUR MONEY BACK! -@REM -@REM This software is designed to be used with an SDR receiver (like SDR++ or SDR#) with TCP input, -@REM RTL Input, media file playback over virtual cables or null-sinks, or a Discriminator Tap input -@REM -@REM The complete option list can be seen by entering the following command: -@REM dsd-fme.exe -h -@REM -@REM Enjoy ! -@REM -@REM Important! Make sure to route audio in with volume mixer after opening! -@REM You may need to restart the software after setting it up to monitor input -@REM of VB-Cables, or allowing the network traffic for TCP or RIGCTL -@REM See the 'source code\examples\Audio_Plumbing.md' file for more information -@REM -@REM Notice: DSD-FME will not auto-detect NXDN48/96, Provoice, M17, or dPMR signals, -@REM you will need to manually switch them on with the correct command. -@REM -@REM Notice: This .bat file contains numerous examples, it is recommended to find an -@REM an example that matches your use case, and use the @REM to disable the default -@REM or make your own .bat files with the examples provided here -@REM -@REM Notice: Run 0pa - start-pulse-audio-server.bat prior to using any examples here -@REM Pulse Audio Output is better tailored for TDMA voice when voice may occur on both slots -@REM but is not required when using any decoding. - - -@REM Default Decoders (DMR, P25, X2, DSTAR, YSF): -@REM -i pulse:input, -o pulse:output, and -fa are implied - -@REM dsd-fme.exe -i pulse:input -o pulse:output -dsd-fme.exe -i pulse:input -o pulse:output -N 2> log.ans - -@REM DMR - -@REM dsd-fme.exe -i pulse:input -o pulse:output -fs -@REM dsd-fme.exe -i pulse:input -o pulse:output -fs -N 2> log.ans - - -@REM P25 - -@REM dsd-fme.exe -i pulse:input -o pulse:output -ft -@REM dsd-fme.exe -i pulse:input -o pulse:output -ft -N 2> log.ans - - -@REM P25 (Phase 2 Only, specify WACN/SYS/CC value, if not control channel) - -@REM dsd-fme.exe -i pulse:input -o pulse:output -f2 -X BEE00ABC123 -@REM dsd-fme.exe -i pulse:input -o pulse:output -f2 -X BEE00ABC123 -N 2> log.ans - - -@REM NXDN48 - -@REM dsd-fme.exe -i pulse:input -o pulse:output -fi -@REM dsd-fme.exe -i pulse:input -o pulse:output -fi -N 2> log.ans - - -@REM NXDN96 - -@REM dsd-fme.exe -i pulse:input -o pulse:output -fn -@REM dsd-fme.exe -i pulse:input -o pulse:output -fn -N 2> log.ans - - -@REM YSF - -@REM dsd-fme.exe -i pulse:input -o pulse:output -fy -@REM dsd-fme.exe -i pulse:input -o pulse:output -fy -N 2> log.ans - - -@REM DSTAR - -@REM dsd-fme.exe -i pulse:input -o pulse:output -fd -@REM dsd-fme.exe -i pulse:input -o pulse:output -fd -N 2> log.ans - - -@REM dPMR - -@REM dsd-fme.exe -i pulse:input -o pulse:output -fm -@REM dsd-fme.exe -i pulse:input -o pulse:output -fm -N 2> log.ans -@REM dsd-fme.exe -i pulse:input -o pulse:output -fm -xd #(inverted polarity) - - -@REM M17 - -@REM dsd-fme.exe -i pulse:input -o pulse:output -fz -@REM dsd-fme.exe -i pulse:input -o pulse:output -fz -N 2> log.ans -@REM dsd-fme.exe -i pulse:input -o pulse:output -fz -xz #(inverted polarity) - - -@REM ProVoice - -@REM dsd-fme.exe -i pulse:input -o pulse:output -fp -@REM dsd-fme.exe -i pulse:input -o pulse:output -fp -N 2> log.ans - - -@REM PAUSE diff --git a/examples/cygwin_bat/1zz - tail-the-console-log.bat b/examples/cygwin_bat/1zz - tail-the-console-log.bat deleted file mode 100644 index e973de4..0000000 --- a/examples/cygwin_bat/1zz - tail-the-console-log.bat +++ /dev/null @@ -1,14 +0,0 @@ -@REM Set the console / terminal to 90 columns, 50 lines -@REM mode con: cols=90 lines=50 - -cd dsd-fme - -@REM log.ans should refer to your log output file after '2>' i.e. '2> log.ans' - -tail.exe -n 40 -f log.ans -@REM Alternatively, you can also grep out keywords or interest, see example below -@REM tail.exe -f log.ans | grep "Keyword1\|Keyword2\|Keyword3" -@REM tail.exe -f log.ans | grep "Grant\|C+\|Keyword3" -@REM - -@REM PAUSE diff --git a/examples/cygwin_bat/9pa - close-pulse-audio-server.bat b/examples/cygwin_bat/9pa-close-pulse-audio-server.bat.old similarity index 100% rename from examples/cygwin_bat/9pa - close-pulse-audio-server.bat rename to examples/cygwin_bat/9pa-close-pulse-audio-server.bat.old diff --git a/examples/cygwin_bat/0pa - start-pulse-audio-server.bat b/examples/cygwin_bat/9pa-start-pulse-audio-server.bat.old similarity index 100% rename from examples/cygwin_bat/0pa - start-pulse-audio-server.bat rename to examples/cygwin_bat/9pa-start-pulse-audio-server.bat.old diff --git a/examples/cygwin_bat/complete_usage_options.txt b/examples/cygwin_bat/complete_usage_options.txt new file mode 100644 index 0000000..29c3039 --- /dev/null +++ b/examples/cygwin_bat/complete_usage_options.txt @@ -0,0 +1,202 @@ +Usage: dsd-fme [options] Decoder/Trunking Mode + or: dsd-fme [options] -r Read/Play saved mbe data from file(s) + or: dsd-fme -h Show help + +Display Options: + -N Use NCurses Terminal + dsd-fme -N 2> log.ans + -Z Log MBE/PDU Payloads to console + +Device Options: + -O List All Pulse Audio Input Sources and Output Sinks (devices). + +Input/Output options: + -i Audio input device (default is pulse) + /dev/dsp for OSS audio (Depreciated: Will require padsp wrapper in Linux) + pulse for pulse audio signal input + pulse:6 or pulse:virtual_sink2.monitor for pulse audio signal input on virtual_sink2 (see -O) + rtl for rtl dongle (Default Values -- see below) + rtl:dev:freq:gain:ppm:bw:sq:vol for rtl dongle (see below) + tcp for tcp client SDR++/GNURadio Companion/Other (Port 7355) + tcp:192.168.7.5:7355 for custom address and port + m17udp for M17 UDP/IP socket bind input (default host 127.0.0.1; default port 17000) + m17udp:192.168.7.8:17001 for M17 UDP/IP bind input (Binding Address and Port + filename.bin for OP25/FME capture bin files + filename.wav for 48K/1 wav files (SDR++, GQRX) + filename.wav -s 96000 for 96K/1 wav files (DSDPlus) + (Use single quotes '/directory/audio file.wav' when directories/spaces are present) + -s Sample Rate of wav input files (48000 or 96000) Mono only! + -o Audio output device (default is pulse) + /dev/dsp for OSS audio (Depreciated: Will require padsp wrapper in Linux) + pulse for pulse audio decoded voice or analog output + pulse:1 or pulse:alsa_output.pci-0000_0d_00.3.analog-stereo for pulse audio decoded voice or analog output on device (see -O) + null for no audio output + udp for UDP socket blaster output (default host 127.0.0.1; default port 23456) + udp:192.168.7.8:23470 for UDP socket blaster output (Target Address and Port + m17udp for M17 UDP/IP socket blaster output (default host 127.0.0.1; default port 17000) + m17udp:192.168.7.8:17001 for M17 UDP/IP blaster output (Target Address and Port + -d Create mbe data files, use this directory (TDMA version is experimental) + -r Read/Play saved mbe data from file(s) + -g Audio Digital Output Gain (Default: 0 = Auto; ) + (Manual: 1 = 2%; 50 = 100%) + -n Audio Analog Output Gain (Default: 0 = Auto; 0-100% ) + -w Output synthesized speech to a .wav file, FDMA modes only. + -6 Output raw audio .wav file (48K/1). (WARNING! Large File Sizes 1 Hour ~= 360 MB) + -7 Create/Use Custom directory for Per Call decoded .wav file saving. + (Use ./folder for Nested Directory!) + (Use /path/to/folder for hard coded directory!) + (Use Before the -P option!) + -8 Enable Experimental Source Audio Monitor (Pulse Audio Output Only!) + (Its recommended to use Squelch in SDR++ or GQRX, etc, if monitoring mixed analog/digital) + -P Enable Per Call WAV file saving in AUTO and NXDN decoding classes + (Per Call can only be used in Ncurses Terminal!) + (Running in console will use static wav files) + -a Enable Call Alert Beep (NCurses Terminal Only) + (Warning! Might be annoying.) + -L Specify Filename for LRRP Data Output. + -Q Specify Filename for OK-DMRlib Structured File Output. (placed in DSP folder) + -Q Specify Filename for M17 Float Stream Output. (placed in DSP folder) + -c Output symbol capture to .bin file + -q Reverse Mute - Mute Unencrypted Voice and Unmute Encrypted Voice + -V Enable TDMA Voice Synthesis on Slot 1 (1), Slot 2 (2), or Both (3); Default is 3; + If using /dev/dsp input and output at 48k1, launch two instances of DSD-FME w -V 1 and -V 2 if needed -z Set TDMA Voice Slot Preference when using /dev/dsp audio output (prevent lag and stuttering) + -y Enable Experimental Pulse Audio Float Audio Output + -v Set Filtering Bitmap Options (Advanced Option) + 1 1 1 1 (0xF): PBF/LPF/HPF/HPFD on + +RTL-SDR options: + Usage: rtl:dev:freq:gain:ppm:bw:sq:vol + NOTE: all arguments after rtl are optional now for trunking, but user configuration is recommended + dev RTL-SDR Device Index Number or 8 Digit Serial Number, no strings! (default 0) + freq RTL-SDR Frequency (851800000 or 851.8M) + gain RTL-SDR Device Gain (0-49)(default = 0; Hardware AGC recommended) + ppm RTL-SDR PPM Error (default = 0) + bw RTL-SDR Bandwidth kHz (default = 12)(4, 6, 8, 12, 16, 24) + sq RTL-SDR Squelch Level vs RMS Value (Optional) + vol RTL-SDR Sample 'Volume' Multiplier (default = 2)(1,2,3) + Example: dsd-fme -fs -i rtl -C cap_plus_channel.csv -T + Example: dsd-fme -fp -i rtl:0:851.375M:22:-2:24:0:2 + +Encoder options: + -fZ M17 Stream Voice Encoder + Example: dsd-fme -fZ -M M17:9:DSD-FME:LWVMOBILE -i pulse -6 m17signal.wav -8 -N 2> m17encoderlog.ans + Run M17 Encoding, listening to pulse audio server, with internal decode/playback and output to 48k/1 wav file + + Example: dsd-fme -fZ -M M17:9:DSD-FME:LWVMOBILE -i tcp -o pulse -8 -N 2> m17encoderlog.ans + Run M17 Encoding, listening to default tcp input, without internal decode/playback and output to 48k/1 analog output device + + -fP M17 Packet Encoder + Example: dsd-fme -fP -M M17:9:DSD-FME:LWVMOBILE -6 m17pkt.wav -8 -S 'Hello World' + + -fB M17 BERT Encoder + Example: dsd-fme -fB -M M17:9:DSD-FME:LWVMOBILE -6 m17bert.wav -8 + + -M M17 Encoding User Configuration String: M17:CAN:SRC:DST:INPUT_RATE:VOX (see examples above). + CAN 1-15; SRC and DST have to be no more than 9 UPPER base40 characters. + BASE40: ' ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-/.' + Input Rate Default is 48000; Use Multiples of 8000 up to 48000. + VOX Enabled on 1; (Default = 0) + Values not entered into the M17: string are set to default values. + -S M17 Packet Encoder SMS String: No more than 772 chars, use single quotations (see example above). + -S M17 Stream Encoder SMS String: No more than 48 chars, activates 1600 voice (best if broken into six 8 char chunks). +Decoder options: + -fa Auto Detection + -fA Passive Analog Audio Monitor + -ft TDMA Trunking P25p1 Control and Voice, P25p2 Trunked Channels, and DMR + -fs DMR TDMA BS and MS Simplex + -f1 Decode only P25 Phase 1 + -f2 Decode only P25 Phase 2 (6000 sps) ** + -fd Decode only DSTAR + -fx Decode only X2-TDMA + -fy Decode only YSF + -fz Decode only M17* + -fU Decode only M17 UDP/IP Frame*** + -fi Decode only NXDN48* (6.25 kHz) / IDAS* + -fn Decode only NXDN96* (12.5 kHz) + -fp Decode only ProVoice* + -fh Decode only EDACS Standard/ProVoice* + -fH Decode only EDACS Standard/ProVoice with ESK 0xA0* + -fh344 Decode only EDACS Standard/ProVoice and set AFS to 344 or similar custom 11-bit scheme* + -fH434 Decode only EDACS Standard/ProVoice and set AFS to custom 11-bit scheme with ESK 0xA0* + -fe Decode only EDACS EA/ProVoice* + -fE Decode only EDACS EA/ProVoice with ESK 0xA0* + -fm Decode only dPMR* + -l Disable DMR, dPMR, NXDN, M17 input filtering + -u Unvoiced speech quality (default=3) + -xx Expect non-inverted X2-TDMA signal + -xr Expect inverted DMR signal + -xd Expect inverted ICOM dPMR signal + -xz Expect inverted M17 signal + + * denotes frame types that cannot be auto-detected. + ** Phase 2 Single Frequency may require user to manually set WACN/SYSID/CC parameters if MAC_SIGNAL not present. + *** configure UDP Input with -i m17:127.0.0.1:17000 + +Advanced Decoder options: + -X Manually Set P2 Parameters (WACN, SYSID, CC/NAC) + (-X BEE00ABC123) + -D Manually Set TIII DMR Location Area n bit len (0-10)(10 max) + (Value defaults to max n bit value for site model size) + (Setting 0 will show full Site ID, no area/subarea) + + -ma Auto-select modulation optimizations + -mc Use only C4FM modulation optimizations (default) + -mg Use only GFSK modulation optimizations + -mq Use only QPSK modulation optimizations + -m2 Use P25p2 6000 sps QPSK modulation optimizations + -F Relax P25 Phase 2 MAC_SIGNAL CRC Checksum Pass/Fail + Use this feature to allow MAC_SIGNAL even if CRC errors. + -F Relax DMR RAS/CRC CSBK/DATA Pass/Fail + Enabling on some systems could lead to bad channel assignments/site data decoding if bad or marginal signal + -F Relax M17 LSF/PKT CRC Error Checking + + -b Manually Enter Basic Privacy Key (Decimal Value of Key Number) + (NOTE: This used to be the 'K' option! + + -H Manually Enter **tera 10/32/64 Char Basic Privacy Hex Key (see example below) + Encapulate in Single Quotation Marks; Space every 16 chars. + -H 0B57935150 + -H '736B9A9C5645288B 243AD5CB8701EF8A' + -H '20029736A5D91042 C923EB0697484433 005EFC58A1905195 E28E9C7836AA2DB8' + + -R Manually Enter dPMR or NXDN EHR Scrambler Key Value (Decimal Value) + + -1 Manually Enter RC4 Key Value (DMR, P25) (Hex Value) + + -k Import Key List from csv file (Decimal Format) -- Lower Case 'k'. + Only supports NXDN, DMR Basic Privacy (decimal value). + (dPMR and **tera 32/64 char not supported, DMR uses TG value as key id -- EXPERIMENTAL!!). + + -K Import Key List from csv file (Hexidecimal Format) -- Capital 'K'. + Use for Hex Value **tera 10-char BP keys and RC4 10-Char Hex Keys. + + -4 Force Privacy Key over Encryption Identifiers (DMR BP and NXDN Scrambler) + + -0 Force RC4 Key over Missing PI header/LE Encryption Identifiers (DMR) + + -3 Disable DMR Late Entry Encryption Identifiers (VC6 Single Burst) + Note: Disable this if false positives on Voice ENC occur. + + Trunking Options: + -C Import Channel to Frequency Map (channum, freq) from csv file. (Capital C) + (See channel_map.csv for example) + -G Import Group List Allow/Block and Label from csv file. + (See group.csv for example) + -T Enable Trunking Features (NXDN/P25/EDACS/DMR) with RIGCTL/TCP or RTL Input + -Y Enable Scanning Mode with RIGCTL/TCP or RTL Input + Experimental -- Can only scan for sync with enabled decoders, don't mix NXDN and DMR/P25! + This is not a Trunking Feature, just scans through conventional frequencies fast! + -W Use Imported Group List as a Trunking Allow/White List -- Only Tune with Mode A + -p Disable Tune to Private Calls (DMR TIII, P25, NXDN Type-C and Type-D) + -E Disable Tune to Group Calls (DMR TIII, Con+, Cap+, P25, NXDN Type-C, and Type-D) + -e Enable Tune to Data Calls (DMR TIII, Cap+, NXDN Type-C) + (NOTE: No Clear Distinction between Cap+ Private Voice Calls and Data Calls -- Both enabled with Data Calls + -I Specify TG to Hold During Trunking (DMR, P25, NXDN Type-C Trunking) + -U Enable RIGCTL/TCP; Set TCP Port for RIGCTL. (4532 on SDR++) + -B Set RIGCTL Setmod Bandwidth in Hertz (0 - default - OFF) + P25 - 12000; NXDN48 - 7000; NXDN96: 12000; DMR - 7000-12000; EDACS/PV - 12000-24000; + May vary based on system stregnth, etc. + -t Set Trunking or Scan Speed VC/sync loss hangtime in seconds. (default = 1 second) + + Trunking Example TCP: dsd-fme -fs -i tcp -U 4532 -T -C dmr_t3_chan.csv -G group.csv -N 2> log.ans + Trunking Example RTL: dsd-fme -fs -i rtl:0:450M:26:-2:8 -T -C connect_plus_chan.csv -G group.csv -N 2> log.ans diff --git a/examples/cygwin_bat/example_options.txt b/examples/cygwin_bat/example_options.txt new file mode 100644 index 0000000..e7f6c09 --- /dev/null +++ b/examples/cygwin_bat/example_options.txt @@ -0,0 +1,97 @@ +This example options contains numerous options put into the start-dsd-fme.bat file in the option string +feel free to experiment and mix and match example options for your bat files option string. + +Trunking Option Examples: + + P25 (Phase 1 Control) Trunking with SDR++ Network Sink input, RIGCTL, /dev/dsp output, + per call wav files, ncurses terminal + -ft -i tcp:127.0.0.1:7355 -U 4532 -T -P -N + + P25 (Phase 2 Control) Trunking with SDR++ Network Sink input, RIGCTL, /dev/dsp output, + per call wav files, ncurses terminal + -f2 -i tcp:127.0.0.1:7355 -U 4532 -T -P -N + + DMR Trunking with RTL input, /dev/dsp output, channel map import, + per call wav files, ncurses terminal, payload dump to console + -fs -i rtl:0:450M:0:-2:12 -T -C examples\dmr_t3_chan.csv -P -N -Z + + DMR Trunking with SDR++ input, RIGCTL, /dev/dsp output, RAS enabled CSBK (-F), + channel map import, per call wav files, ncurses terminal, payload dump to console + -fs -F -i tcp -U 4532 -T -C examples\capacity_plus_chan.csv -P -N -Z + + NXDN48 v2.0 DFA (Direct Frequency Assignment) Trunking with SDR++ input, RIGCTL, /dev/dsp output, + scrambler key import (decimal), per call wav files, ncurses terminal, payload dump to console + -fi -i tcp -U 4532 -T -P -N -Z -k examples\nxdn_sc_key.csv + + NXDN96 Trunking with SDR++ input, RIGCTL, /dev/dsp output, + channel map import, per call wav files, ncurses terminal, payload dump to console + -fn -i tcp -U 4532 -T -C examples\nxdn_chan_map.csv -P -N -Z + + EDACS Standard Network Analog and Digital + -fh -i tcp -U 4532 -T -C edacs_channel_map.csv -G group.csv -N + -fh -i rtl:0:850M:44:-2:24 -T -C edacs_channel_map.csv -G group.csv -N + + EDACS Extended Address Analog and Digital (with ESK) + -fE -i tcp:192.168.7.5:7355 -U 4532 -T -C edacs_channel_map.csv -G group.csv -N + -fE -i rtl:0:850M:44:-2:24 -T -C edacs_channel_map.csv -G group.csv -N + +Scanning Option Examples: + + Scanning will not perform quickly like a real scanner, but can be used with any + supported decoding type and analog as well, and will require a channel_map to scan frequencies + channel numbers do not matter, but use unique ones for each frequeny + -t 0 will scan as fast as possible, but may miss frame sync, -t 1 is stable, but needs 1 second between tuning + + P25/DMR/Analog Scanning with RTL input, /dev/dsp output, channel map import, + per call wav files, ncurses terminal, payload dump to console, raw audio signal monitoring + -ft -i rtl:0:450M:0:-2:12 -Y -t 1 -C examples\dmr_t3_chan.csv -P -8 -N -Z + + P25/DMR/Analog Scanning with SDR++ input (use squelch), RIGCTL, /dev/dsp output, channel map import, + per call wav files, ncurses terminal, payload dump to console, raw audio signal monitoring + -ft -i tcp:127.0.0.1:7355 -U 4532 -Y -t 1 -C examples\dmr_t3_chan.csv -P -8 -N -Z + + NXDN48/Analog Scanning with SDR++ input (use squelch), RIGCTL, /dev/dsp output, channel map import, + per call wav files, ncurses terminal, payload dump to console, raw audio signal monitoring + -fi -i tcp:127.0.0.1:7355 -U 4532 -Y -t 1-C examples\nxdn_chan_map.csv -P -8 -N -Z + + Analog Scanning with SDR++ input (use squelch), RIGCTL, /dev/dsp output, channel map import + -fA -i tcp:127.0.0.1:7355 -U 4532 -Y -t 0 -C examples\nxdn_chan_map.csv -8 + +Encryption Option Examples: + + DMR with default /dev/dsp input and output, use basic privacy key 70 + -fs -b 70 + + DMR with default /dev/dsp input and output, load .csv file with decimal basic privacy keys loaded by TG value, + -fs -k examples\multi_key.csv + + DMR with default /dev/dsp input and output, use Hytera basic privacy key (10, 32, and 64 hex char versions) + -fs -H 1111111111 + -fs -H '2222222222222222 3333333333333333' + -fs -H '2222222222222222 3333333333333333 4444444444444444 5555555555555555' + + DMR with default /dev/dsp input and output, use RC4 key 0x7777777777 + -fs -1 7777777777 + + DMR with default /dev/dsp input and output, use RC4 key 0x7777777777, + Force RC4 Key over Missing PI header/LE Encryption Identifiers (-0) + Disable Late Entry Encryption Signalling Identifiers (-3) + -fs -0 -3 -1 7777777777 + + DMR with default /dev/dsp input and output, load RC4 and 10-char HBP keys from .csv file (hexidecimal format) + -fs -K dsd-fme\examples\multi_key_hex.csv + + P25 with default /dev/dsp input and output, use RC4 key 0x7777777777 + -ft -1 7777777777 + + NXDN48 with default /dev/dsp input and output, use Scrambler key 32767 + -fi -R 32767 + + NXDN96 with default /dev/dsp input and output, use Scrambler key 15000 + -fn -R 15000 + + dPMR with default /dev/dsp input and output, use Scrambler key 32767 + -fm -R 32767 + + NXDN48 with default /dev/dsp input and output, load scrambler keys from .csv file (decimal format) + -fi -k dsd-fme\examples\nxdn_sc_key.csv \ No newline at end of file diff --git a/examples/cygwin_bat/readme_cygwin_bat.txt b/examples/cygwin_bat/readme_cygwin_bat.txt index 6fa5ea9..1609f04 100644 --- a/examples/cygwin_bat/readme_cygwin_bat.txt +++ b/examples/cygwin_bat/readme_cygwin_bat.txt @@ -1 +1 @@ -These files are ONLY for use on the portable cygwin builds, do not use these in any other build environments! \ No newline at end of file +These .bat files are ONLY for use on the portable cygwin builds, do not use these in any other build environments! \ No newline at end of file diff --git a/examples/cygwin_bat/1aa - start-dsd-fme.bat b/examples/cygwin_bat/start-dsd-fme.bat similarity index 91% rename from examples/cygwin_bat/1aa - start-dsd-fme.bat rename to examples/cygwin_bat/start-dsd-fme.bat index 1675f6b..a674e25 100644 --- a/examples/cygwin_bat/1aa - start-dsd-fme.bat +++ b/examples/cygwin_bat/start-dsd-fme.bat @@ -9,8 +9,8 @@ @REM This software is designed to be used with an SDR receiver (like SDR++ or SDR#) with TCP input, @REM RTL Input, media file playback over virtual cables or null-sinks, or a Discriminator Tap input @REM -@REM The complete options list can be seen by entering the following command: -@REM dsd-fme.exe -h +@REM The complete options list can be seen by viewing complete_usage_options.txt +@REM Many examples can be found in example_options.txt @REM @REM Enjoy! @@ -20,7 +20,7 @@ @REM Correct: set "options=-fs -N -Z" @REM set options to pass to dsd-fme -set "options= -fs -N -Z " +set "options= -N -Z " @REM Set Date Time for log (sourced from: https://stackoverflow.com/questions/1192476/format-date-and-time-in-a-windows-batch-script) @echo off