#!/usr/bin/python3 import sys import logging from ubxlib.server_tty import GnssUBlox from ubxlib.ubx_cfg_rate import UbxCfgRate from ubxlib.ubx_cfg_cfg import UbxCfgCfgAction FORMAT = '%(asctime)-15s %(levelname)-8s %(message)s' logging.basicConfig(format=FORMAT) logger = logging.getLogger('ubxlib') logger.setLevel(logging.INFO) if len(sys.argv) != 2: print(f"Usage: {sys.argv[0]} (allowed: 1-10)") sys.exit(1) try: rate_hz = int(sys.argv[1]) if not (1 <= rate_hz <= 10): raise ValueError except ValueError: print("Error: frame interval must be an integer between 1 and 10") sys.exit(1) ubx = GnssUBlox('/dev/ttyUSB1') ubx.setup() msg = UbxCfgRate() msg.set_rate_in_hz(rate_hz) msg.f.timeRef = 0 ack_nak = ubx.set(msg) print(f"CFG-RATE ({rate_hz} Hz) result:", ack_nak) # Save permanently save_msg = UbxCfgCfgAction() save_msg.save(UbxCfgCfgAction.MASK_All) # includes all categories, inc RxmConf ack_nak_save = ubx.set(save_msg) print("CFG-CFG (save) result:", ack_nak_save) ubx.cleanup()