Пример #1
0
def enroll_F0(long_id, dev_type, zone_num, customer_mid=0, customer_did=0):
    long_id = prutils.num_to_chars(long_id)
    if dev_type.upper() in _DeviceType:
        dev_type = _DeviceType[dev_type.upper()]
    else:
        raise Exception("Incorrect device type specified")
        return None
    # "32 01 00 [] 00 08 00 " $ iDeviceTypeNumber $ " " $ iDeviceSubTypeNumber $ " 01 14 03 00 00 01 03 00 00 00 02 07 00 70 09 28 03 08 01 C7 0A"
    rssi = "\x32"
    tx_power = "\x01"
    association_request_data = "\x00"
    attached_device_information = dev_type + "\x01\x14\x03\x00\x00"
    attached_device_information = "\x00" + chr(len(attached_device_information))
    manufacturing_information = "\x01\x03" + chr(customer_mid) + prutils.num_to_chars(customer_did, 2, 0)
    rf_module_information = "\x02\x07\x00\x70\x09\x28\x03\x08\x01"
    data = (
        "\x01"
        + chr(zone_num)
        + "\x22\x41"
        + long_id
        + rssi
        + tx_power
        + association_request_data
        + attached_device_information
        + manufacturing_information
        + rf_module_information
    )
    packet = prutils.make_f0_packet(0x02, 0x33, data)
    return packet
Пример #2
0
    def open_automation(self, port_number):
        if (not self.is_AUTO_port_ready()): return False
        # 1 - UART 0 (GSM)
        # 2 - UART 1 (PLink)
        if port_number.upper() == "GSM":
            port_number = 1
        elif port_number.upper() == "PLINK":
            port_number = 2
        else:
            log.write("Wrong port")
            return False

        if not (self.open_test_mode()):
            log.write("Can't open test mode")
            return False
        packet = prutils.make_f0_packet(2, 55, "\x00\x3B\xFF\x01\x00\x00\x00" + chr(port_number))
        self._Communicator.send(packet)
        result = self._Communicator.wait(0x01, 3)
        if result:
            result = self._Communicator.wait(0x04, 3, 5)
            if result and ord(result[6]) == 55:
                result = True
        time.sleep(1)
        self.close_test_mode()
        return result
Пример #3
0
    def remove_device(self,  short_id):
        remove_result = False
        if (not self.is_AUTO_port_ready()): return False
        remove_packet = prutils.make_f0_packet(2, 54, chr(short_id))
        #log.write(prutils.hexdump(remove_packet))

        if not (self.open_test_mode()):
            log.write("Can't open test mode")
            return False

        self._Communicator.send(remove_packet)
        result = self._Communicator.wait(0x01, 3)
        if result :
            #0D F0 04 43 00 02 36 01 09 91 0A
            result = self._Communicator.wait(0x04, 3)
            if result and (ord(result[6]) == 54):
                if(ord(result[7]) == 1):
                    remove_result = True
                    #pc_ack = "\xF0\x01\x00\x00\x00"
                    #pc_ack = '\x0D' + pc_ack + prutils.num_to_chars(prutils.crc16_F0(remove_packet), 2, 0) + '\x0A'
                    #self._Communicator.send(ack) 
                    #log.write("ACK")
        time.sleep(1)
        self.close_test_mode()
        return remove_result
Пример #4
0
    def open_automation(self, port_number):
        if (not self.is_AUTO_port_ready()): return False
        # 1 - UART 0 (GSM)
        # 2 - UART 1 (PLink)
        if port_number.upper() == "GSM":
            port_number = 1
        elif port_number.upper() == "PLINK":
            port_number = 2
        else:
            log.write("Wrong port")
            return False

        if not (self.open_test_mode()):
            log.write("Can't open test mode")
            return False
        packet = prutils.make_f0_packet(
            2, 55, "\x00\x3B\xFF\x01\x00\x00\x00" + chr(port_number))
        self._Communicator.send(packet)
        result = self._Communicator.wait(0x01, 3)
        if result:
            result = self._Communicator.wait(0x04, 3, 5)
            if result and ord(result[6]) == 55:
                result = True
        time.sleep(1)
        self.close_test_mode()
        return result
Пример #5
0
    def remove_device(self, short_id):
        remove_result = False
        if (not self.is_AUTO_port_ready()): return False
        remove_packet = prutils.make_f0_packet(2, 54, chr(short_id))
        #log.write(prutils.hexdump(remove_packet))

        if not (self.open_test_mode()):
            log.write("Can't open test mode")
            return False

        self._Communicator.send(remove_packet)
        result = self._Communicator.wait(0x01, 3)
        if result:
            #0D F0 04 43 00 02 36 01 09 91 0A
            result = self._Communicator.wait(0x04, 3)
            if result and (ord(result[6]) == 54):
                if (ord(result[7]) == 1):
                    remove_result = True
                    #pc_ack = "\xF0\x01\x00\x00\x00"
                    #pc_ack = '\x0D' + pc_ack + prutils.num_to_chars(prutils.crc16_F0(remove_packet), 2, 0) + '\x0A'
                    #self._Communicator.send(ack)
                    #log.write("ACK")
        time.sleep(1)
        self.close_test_mode()
        return remove_result
Пример #6
0
 def reset_to_factory_defaults(self):
     if (not self.is_AUTO_port_ready()): return False
     result = False
     if not (self.open_test_mode()):
         log.write("Can't open test mode")
         return False
     # cmd = 2, test = 47
     packet = prutils.make_f0_packet(2,47)
     self._Communicator.send(packet)
     time.sleep(5)
     result = self._Communicator.wait(0x04, 3, 5)
     if result and ord(result[6]) == 47:
         result = True
     time.sleep(1)
     self.close_test_mode()
     return result
Пример #7
0
 def reset_to_factory_defaults(self):
     if (not self.is_AUTO_port_ready()): return False
     result = False
     if not (self.open_test_mode()):
         log.write("Can't open test mode")
         return False
     # cmd = 2, test = 47
     packet = prutils.make_f0_packet(2, 47)
     self._Communicator.send(packet)
     time.sleep(5)
     result = self._Communicator.wait(0x04, 3, 5)
     if result and ord(result[6]) == 47:
         result = True
     time.sleep(1)
     self.close_test_mode()
     return result
Пример #8
0
def enroll_F0(long_id, dev_type, zone_num, customer_mid=0, customer_did=0):
    long_id = prutils.num_to_chars(long_id)
    if (dev_type.upper() in _DeviceType):
        dev_type = _DeviceType[dev_type.upper()]
    else:
        raise Exception("Incorrect device type specified")
        return None
    # "32 01 00 [] 00 08 00 " $ iDeviceTypeNumber $ " " $ iDeviceSubTypeNumber $ " 01 14 03 00 00 01 03 00 00 00 02 07 00 70 09 28 03 08 01 C7 0A"
    rssi = '\x32'
    tx_power = '\x01'
    association_request_data = '\x00'
    attached_device_information = dev_type + '\x01\x14\x03\x00\x00'
    attached_device_information = '\x00' + chr(
        len(attached_device_information))
    manufacturing_information = '\x01\x03' + chr(
        customer_mid) + prutils.num_to_chars(customer_did, 2, 0)
    rf_module_information = '\x02\x07\x00\x70\x09\x28\x03\x08\x01'
    data = '\x01' + chr(
        zone_num
    ) + '\x22\x41' + long_id + rssi + tx_power + association_request_data + attached_device_information + manufacturing_information + rf_module_information
    packet = prutils.make_f0_packet(0x02, 0x33, data)
    return packet