Exemple #1
0
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}
Exemple #2
0
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()
    }
Exemple #3
0
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)
Exemple #5
0
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)
Exemple #6
0
 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)
Exemple #8
0
 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)
Exemple #10
0
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)
Exemple #11
0
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,