diff --git a/examples/Example_Usage.md b/examples/Example_Usage.md index 11cb434..e68f868 100644 --- a/examples/Example_Usage.md +++ b/examples/Example_Usage.md @@ -302,11 +302,11 @@ Using the `-8` option (raw audio monitor) will instead send encoded raw audio to To send a voice stream out of stdout into SOCAT TCP to a second/remote DSD-FME session to decode: -Encode: +Encode (Upper Z): `dsd-fme -fZ -8 -i pulse -M M17:9:LWVMOBILE:DSD-FME:48000 -o - | socat stdio tcp-listen:7355,forever,reuseaddr` -Decode: +Decode (Lower z): `dsd-fme -fz -i tcp:192.168.7.8:7355` @@ -329,4 +329,30 @@ BASE40: ' ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-/.' Input Rate Default is 48000; Use Multiples of 8000 up to 48000. Values not entered into the M17: string are set to default values. M17:7:DSD-FME:DSD-FME:48000 +Fun Example Transmuting OTA Analog Things into M17: + +Start up in sequence. + +Terminal #1 (RTL Input): +`dsd-fme -fZ -8 -M M17:1:ANALOG:M17:48000 -i rtl:0:162.425M -o - | socat stdio tcp-listen:7310,forever,reuseaddr` + +Terminal #2: +`dsd-fme -fz -i tcp:127.0.0.1:7310` + +Fun Example Transmuting OTA Digital Things into M17: + +Start up all three of these in sequence. + +Terminal #1 (connecting to SDR++): +`dsd-fme -fi -i tcp:127.0.0.1:7355 -o - | socat stdio tcp-listen:7300,forever,reuseaddr` + +Terminal #2: +`dsd-fme -fZ -8 -M M17:2:NXDN:M17:8000 -i tcp:127.0.0.1:7300 -o - | socat stdio tcp-listen:7301,forever,reuseaddr` + +Terminal #3: +`dsd-fme -fz -i tcp:127.0.0.1:7301` + +Note: Transmuting only carries over voice when audio is output, and will not carry any ID values, or any other data payloads. +This mode is only meant for educational or fun purposes, please do not retransmit stuff that doesn't belong to you. + Information on this section will be updated as features are added or modified, etc. If you need help with a particular function and can't find a suitable answer, always open a new issue here, or make contact on the radio reference forum for additional examples, guidance, ideas, help, etc. \ No newline at end of file diff --git a/src/dsd_main.c b/src/dsd_main.c index ca4eb12..16bcd45 100644 --- a/src/dsd_main.c +++ b/src/dsd_main.c @@ -1321,6 +1321,7 @@ usage () printf (" -S M17 Encoding Packet SMS String: No more than 772 chars, use single quotations (see example above).\n"); printf ("Decoder options:\n"); printf (" -fa Auto Detection\n"); + printf (" -fA Passive Analog Audio Monitor\n"); printf (" -ft TDMA Trunking P25p1 Control and Voice, P25p2 Trunked Channels, and DMR\n"); printf (" -fs DMR TDMA BS and MS Simplex\n"); printf (" -f1 Decode only P25 Phase 1\n"); @@ -2081,6 +2082,29 @@ main (int argc, char **argv) sprintf (opts.output_name, "AUTO"); fprintf (stderr,"Decoding AUTO P25, YSF, DSTAR, X2-TDMA, and DMR\n"); } + else if (optarg[0] == 'A') //activate analog out and passively monitor it, useful for analog scanning, etc + { + opts.frame_dstar = 0; + opts.frame_x2tdma = 0; + opts.frame_p25p1 = 0; + opts.frame_p25p2 = 0; + opts.frame_nxdn48 = 0; + opts.frame_nxdn96 = 0; + opts.frame_dmr = 0; + opts.frame_dpmr = 0; + opts.frame_provoice = 0; + opts.frame_ysf = 0; + opts.frame_m17 = 0; + opts.pulse_digi_rate_out = 8000; + opts.pulse_digi_out_channels = 1; + opts.dmr_stereo = 0; + state.dmr_stereo = 0; + opts.dmr_mono = 0; + state.rf_mod = 0; + opts.monitor_input_audio = 1; + sprintf (opts.output_name, "Analog Monitor"); + fprintf (stderr,"Only Monitoring Passive Analog Signal\n"); + } else if (optarg[0] == 'd') { opts.frame_dstar = 1;