minimodem: --rx same (NOAA SAME protocol)

This commit is contained in:
Kamal Mostafa 2012-09-01 13:34:50 -07:00
parent 04cc215640
commit 9187dd60a7
2 changed files with 28 additions and 7 deletions

View File

@ -129,22 +129,27 @@ Run and report internal performance tests (all other flags are ignored).
print program version
.SH {baudmode}
The required \fI{baudmode}\fR parameter may be any floating-point value to
specify a baud rate, or the string "rtty".
specify a baud rate, or either of the strings "rtty" or "same".
The \fI{baudmode}\fR also implies certain other parameter defaults
depending on the rate, including standard (or at least reasonable)
default mark and space tone frequencies.
.TP
.B {any floating point value N}
: Bell-syle N bps \-\-ascii
.TP
.B 1200
: Bell202 1200 bps \-\-ascii
: Bell202 1200 bps \-\-ascii
.TP
.B 300
: Bell103 300 bps \-\-ascii
: Bell103 300 bps \-\-ascii
.TP
.B rtty
: RTTY 45.45 bps \-\-baudot \-\-stopbits 1.5
: RTTY 45.45 bps \-\-baudot \-\-stopbits 1.5
.TP
.B {any floating point value N}
: Bell-like N bps \-\-ascii
.B same
: SAME 520.83 bps \-\-startbits 0 \-\-stopbits 0 \-\-sync-byte 0xAB
.br
NOAA Specific Area Message Encoding (SAME) protocol
.SH EXAMPLES
.TP
.B minimodem --tx 100
@ -153,9 +158,14 @@ Transmit 100 baud tones from one computer ...
.B minimodem --rx 100
and receive 100 baud tones on another nearby computer.
.TP
.B minimodem --rx --auto-carrier rtty
.B minimodem --rx -a rtty
Decode amateur radio RTTY signals (listen near 14.085 MHz).
.TP
.B minimodem --rx same
Decode NOAA SAME protocol emergency alert transmissions, e.g.
.br
http://en.wikipedia.org/wiki/Specific_Area_Message_Encoding
.TP
.B minimodem --tx 0.5
Experiment with very low baud rates (works in noisy conditions).
.TP

View File

@ -563,6 +563,17 @@ main( int argc, char*argv[] )
bfsk_n_data_bits = 5;
if ( bfsk_nstopbits < 0 )
bfsk_nstopbits = 1.5;
} else if ( strncasecmp(modem_mode, "same",5)==0 ) {
// http://www.nws.noaa.gov/nwr/nwrsame.htm
bfsk_data_rate = 520.0 + 5/6.0;
bfsk_n_data_bits = 8;
bfsk_nstartbits = 0;
bfsk_nstopbits = 0;
bfsk_sync_on_data = 1;
bfsk_sync_byte = 0xAB;
bfsk_mark_f = 2083.0 + 1/3.0;
bfsk_space_f = 1562.5;
band_width = bfsk_data_rate;
} else {
bfsk_data_rate = atof(modem_mode);
if ( bfsk_n_data_bits == 0 )