def execute_command(data): print("execute_command") print data interface_configuration = None interface_type = InterfaceType(int(data["interface"])) if interface_type == InterfaceType.D7ASP: id_type = IdType(int(data["id_type"])) id = int(data["id"]) if id_type == IdType.NOID: id = None interface_configuration = Configuration( qos=QoS(resp_mod=ResponseMode(int(data["qos_response_mode"]))), addressee=Addressee( access_class=int(data["access_class"]), id_type=id_type, id=id ) ) cmd = Command.create_with_read_file_action( interface_type=interface_type, interface_configuration=interface_configuration, file_id=int(data["file_id"]), offset=int(data["offset"]), length=int(data["length"]) ) modem.send_command(cmd) return {'tag_id': cmd.tag_id}
def execute_command(data): logging.info("execute_command") logging.info(data) interface_configuration = None interface_type = InterfaceType(int(data["interface"])) if interface_type == InterfaceType.D7ASP: id_type = IdType[data["id_type"]] id = int(data["id"]) if id_type == IdType.NOID: id = None if id_type == IdType.NBID: id = CT() # TODO convert interface_configuration = Configuration( qos=QoS(resp_mod=ResponseMode[data["qos_response_mode"]]), addressee=Addressee(access_class=int(data["access_class"]), id_type=id_type, id=id)) cmd = Command.create_with_read_file_action( interface_type=interface_type, interface_configuration=interface_configuration, file_id=int(data["file_id"]), offset=int(data["offset"]), length=int(data["length"])) logging.info("executing cmd: {}".format(cmd)) modem.execute_command_async(cmd) return { 'tag_id': cmd.tag_id, 'interface': interface_type.name, 'command_description': cmd.describe_actions() }
def on_read_local_file(data): logging.info("read_local_file") cmd = Command.create_with_read_file_action(file_id=int(data['file_id']), offset=int(data['offset']), length=int(data['length'])) modem.execute_command(cmd)
def on_read_local_file(data): print("read_local_file") cmd = Command.create_with_read_file_action(file_id=int(data['file_id']), offset=int(data['offset']), length=int(data['length'])) modem.send_command(cmd)
def on_read_local_file(data): print("read_local_file") cmd = Command.create_with_read_file_action( file_id=int(data['file_id']), offset=int(data['offset']), length=int(data['length']) ) modem.send_command(cmd)
def test_create_with_read_file_action(self): c = Command.create_with_read_file_action(file_id=1, length=10) self.assertEqual(len(c.actions), 1) self.assertEqual(type(c.actions[0]), RegularAction) self.assertEqual(type(c.actions[0].operation), ReadFileData) self.assertEqual(type(c.actions[0].operand), DataRequest) self.assertEqual(c.actions[0].operand.offset.id, 1) self.assertEqual(c.actions[0].operand.offset.offset.value, 0) self.assertEqual(c.actions[0].operand.length.value, 10)
def test_create_with_read_file_action(self): c = Command.create_with_read_file_action(file_id=1, length=10) self.assertEqual(len(c.actions), 1) self.assertEqual(type(c.actions[0]), RegularAction) self.assertEqual(type(c.actions[0].operation), ReadFileData) self.assertEqual(type(c.actions[0].operand), DataRequest) self.assertEqual(c.actions[0].operand.offset.id, 1) self.assertEqual(c.actions[0].operand.offset.size, 1) self.assertEqual(c.actions[0].operand.offset.offset, 0) self.assertEqual(c.actions[0].operand.length, 10)
def test_create_with_read_file_action_d7asp(self): c = Command.create_with_read_file_action(file_id=1, length=10, interface_type=InterfaceType.D7ASP) self.assertEqual(len(c.actions), 2) self.assertEqual(type(c.actions[0]), RegularAction) self.assertEqual(type(c.actions[0].operation), Forward) self.assertEqual(type(c.actions[0].operand), InterfaceConfiguration) self.assertEqual(c.actions[0].operand.interface_id.value, 0xD7) self.assertEqual(type(c.actions[0].operand.interface_configuration), Configuration) # TODO configuration properties self.assertEqual(type(c.actions[1].operation), ReadFileData) self.assertEqual(type(c.actions[1].operand), DataRequest) self.assertEqual(type(c.actions[1]), RegularAction) self.assertEqual(type(c.actions[1].operation), ReadFileData) self.assertEqual(type(c.actions[1].operand), DataRequest) self.assertEqual(c.actions[1].operand.offset.id, 1) self.assertEqual(c.actions[1].operand.offset.offset.value, 0) self.assertEqual(c.actions[1].operand.length.value, 10)
def test_create_with_read_file_action_d7asp(self): c = Command.create_with_read_file_action(file_id=1, length=10, interface_type=InterfaceType.D7ASP) self.assertEqual(len(c.actions), 2) self.assertEqual(type(c.actions[0]), RegularAction) self.assertEqual(type(c.actions[0].operation), Forward) self.assertEqual(type(c.actions[0].operand), InterfaceConfiguration) self.assertEqual(c.actions[0].operand.interface_id, 0xD7) self.assertEqual(type(c.actions[0].operand.interface_configuration), Configuration) # TODO configuration properties self.assertEqual(type(c.actions[1].operation), ReadFileData) self.assertEqual(type(c.actions[1].operand), DataRequest) self.assertEqual(type(c.actions[1]), RegularAction) self.assertEqual(type(c.actions[1].operation), ReadFileData) self.assertEqual(type(c.actions[1].operand), DataRequest) self.assertEqual(c.actions[1].operand.offset.id, 1) self.assertEqual(c.actions[1].operand.offset.size, 1) self.assertEqual(c.actions[1].operand.offset.offset, 0) self.assertEqual(c.actions[1].operand.length, 10)
argparser = argparse.ArgumentParser() argparser.add_argument("-d", "--device", help="serial device /dev file modem", default="/dev/ttyUSB0") argparser.add_argument("-r", "--rate", help="baudrate for serial device", type=int, default=115200) argparser.add_argument("-v", "--verbose", help="verbose", default=False, action="store_true") config = argparser.parse_args() configure_default_logger(config.verbose) modem = Modem(config.device, config.rate, unsolicited_response_received_callback=received_command_callback) modem.connect() logging.info("Executing query...") modem.execute_command_async( alp_command=Command.create_with_read_file_action( file_id=0x40, length=8, interface_type=InterfaceType.D7ASP, interface_configuration=Configuration( qos=QoS(resp_mod=ResponseMode.RESP_MODE_ALL), addressee=Addressee( access_class=0x11, id_type=IdType.NOID ) ) ) ) while True: sleep(5)
modem = Modem( config.device, config.rate, ) modem.connect() logging.info("Executing query...") if (config.over_the_air_activation): result = modem.execute_command( alp_command=Command.create_with_read_file_action( file_id=0x40, length=8, interface_type=InterfaceType.LORAWAN_OTAA, interface_configuration=LoRaWANInterfaceConfigurationOTAA( request_ack=False, app_port=0x01, device_eui=[0xBE, 0X7A, 0X00, 0X00, 0X00, 0X00, 0X1B, 0X81], app_eui=[0xBE, 0X7A, 0X00, 0X00, 0X00, 0X00, 0X0D, 0X9F], app_key=[ 0X7E, 0XEF, 0X56, 0XEC, 0XDA, 0X1D, 0XD5, 0XA4, 0X70, 0X59, 0XFD, 0X35, 0X9C, 0XE6, 0X80, 0XCD ], adr_enabled=False, data_rate=0)), timeout_seconds=100) else: result = modem.execute_command( alp_command=Command.create_with_read_file_action( file_id=0x40, length=8, interface_type=InterfaceType.LORAWAN_ABP,