#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; }