def _detect_icom_radio(ser): # ICOM VHF/UHF Clone-type radios @ 9600 baud try: ser.baudrate = 9600 md = icf.get_model_data(ser) return _icom_model_data_to_rclass(md) except errors.RadioError as e: LOG.error("_detect_icom_radio: %s", e) # ICOM IC-91/92 Live-mode radios @ 4800/38400 baud ser.baudrate = 4800 try: ic9x_ll.send_magic(ser) return _icom_model_data_to_rclass("ic9x") except errors.RadioError: pass # ICOM CI/V Radios @ various bauds for rate in [9600, 4800, 19200]: try: ser.baudrate = rate return icomciv.probe_model(ser) except errors.RadioError: pass ser.close() raise errors.RadioError("Unable to get radio model")
def _detect_icom_radio(ser): # ICOM VHF/UHF Clone-type radios @ 9600 baud try: ser.setBaudrate(9600) md = icf.get_model_data(ser) return _icom_model_data_to_rclass(md) except errors.RadioError as e: LOG.error(e) # ICOM IC-91/92 Live-mode radios @ 4800/38400 baud ser.setBaudrate(4800) try: ic9x_ll.send_magic(ser) return _icom_model_data_to_rclass("ic9x") except errors.RadioError: pass # ICOM CI/V Radios @ various bauds for rate in [9600, 4800, 19200]: try: ser.setBaudrate(rate) return icomciv.probe_model(ser) except errors.RadioError: pass ser.close() raise errors.RadioError("Unable to get radio model")
# ICOM IC-91/92 Live-mode radios @ 4800/38400 baud ser.baudrate = 4800 try: ic9x_ll.send_magic(ser) return _icom_model_data_to_rclass("ic9x") except errors.RadioError: pass # ICOM CI/V Radios @ various bauds for rate in [9600, 4800, 19200]: try: ser.baudrate = rate return icomciv.probe_model(ser) except errors.RadioError: pass ser.close() raise errors.RadioError("Unable to get radio model") def detect_icom_radio(port): """Detect which Icom model is connected to @port""" ser = serial.Serial(port=port, timeout=0.5) try: result = _detect_icom_radio(ser) except Exception: