From d1dccffd6b01360c0bb72acd988a09d6a94fcf1c Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Sat, 10 Dec 2022 11:58:20 -0600 Subject: [PATCH] Add serialnum parser for MDS rig --- rigs/mds/serialnum.c | 114 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 rigs/mds/serialnum.c diff --git a/rigs/mds/serialnum.c b/rigs/mds/serialnum.c new file mode 100644 index 000000000..78795878e --- /dev/null +++ b/rigs/mds/serialnum.c @@ -0,0 +1,114 @@ +#include +#include + +/* DB25 Pins + 1 - GND + 2 - TXD + 3 - RXD + 4 - RTS + 5 - CTS + 6 - DSR + 7 - Signal ground (tied to 1?) + 8 - DCD + 9 - Tx Audio 600Ohm - Pin 7 is gnd + 10 - RUS Receiver Unsquelched Sensor + 11 - Rx Audio 600Ohm - Pin 7 is gnd + 12 - Radio Inhibit (Sleep). + 13 - Reserved + 14 - PTT +5V + + +void serial_num(char *s) +{ + char model[16]; + char *operation; + char *modem; + char *rxfreq, *txfreq; + char *bandwidth; + char *diagnostics; + char *agency; + + memcpy(model, s, 5); + model[5] = 0; + + if (s[5] == 'B') { operation = "Base"; } + else { operation = "Remote"; } + + if (s[8] == 'B') { modem = "9600"; } + else { modem = "19200"; } + + if (s[9] == '0') + diagnostics = "None"; + else + diagnostics = "Non-Intrusive"; + if (s[10] == '1') { bandwidth = "12.5KHz"; } + else { bandwidth = "25KHz"; } + + if (s[14] == 'N') + agency = "N/A"; + else + agency = "FCC/IC"; + +/* +/ 01234567890123456 + 9710AXN1B11C00FFA + 5 = X/N Base/Remote + 6 = N Non-redundant + 7 = Input voltage (1=10.5 to 16VDC) + 8 = Modem (B=9600 C=19200) + 9 = Diagnostics (0=None, 1=Non-Intrusive) + 10 = Bandwidth (1=12.5 2=25) + 11 = Rx Freq (A=800-860, B=860-900, C=900-960) + 12 = Tx Freq (1=800-880, 2=880-960) + 13 = 0 = Full + 14 = Agency (N=N/A F=FCC/IC) + */ + +if (s[0] == '9') +{ + switch (s[11]) + { + case 'A': + rxfreq = "800-850MHz"; + break; + + case 'B': + rxfreq = "860-899MHz"; + break; + + case 'C': + rxfreq = "900-960MHz"; + break; + + default: + rxfreq = "Unknown!!"; + } + + switch (s[12]) + { + case '1': + txfreq = "800-880MHz"; + break; + + case '2': + txfreq = "880-960MHz"; + break; + + default: + txfreq = "Unknown!!"; + } + +} + +printf("Model %s %s Modem(%s) Rx(%s) Tx(%s) Bandwidth(%s) Agency=%s Diagnostics=%s\n", + model, operation, + modem, rxfreq, txfreq, bandwidth, agency, diagnostics); +} + +int +main() +{ + serial_num("9710BXN1B11C9ONFA"); + serial_num("9710AXN1B11C00FFA"); + return 0; +}