def main():
    print(" +--------------------------------------------------+")
    print(" | XBee Python Library Explicit Data Polling Sample |")
    print(" +--------------------------------------------------+\n")

    device = ZigBeeDevice(PORT, BAUD_RATE)

    try:
        device.open()

        device.set_api_output_mode(APIOutputMode.EXPLICIT)

        device.flush_queues()

        print("Waiting for data in explicit format...\n")

        while True:
            explicit_xbee_message = device.read_expl_data(None)
            if explicit_xbee_message is not None:
                print("From %s >> %s"
                      % (explicit_xbee_message.remote_device.get_64bit_addr(),
                         explicit_xbee_message.data.decode()))
                print(" - Source endpoint:        %s"
                      % utils.hex_to_string(utils.int_to_length(explicit_xbee_message.source_endpoint)))
                print(" - Destination endpoint:   %s"
                      % utils.hex_to_string(utils.int_to_length(explicit_xbee_message.dest_endpoint)))
                print(" - Cluster ID:             %s"
                      % utils.hex_to_string(utils.int_to_length(explicit_xbee_message.cluster_id)))
                print(" - Profile ID:             %s"
                      % utils.hex_to_string(utils.int_to_length(explicit_xbee_message.profile_id)))

    finally:
        if device is not None and device.is_open():
            device.close()
Ejemplo n.º 2
0
 def explicit_data_callback(explicit_xbee_message):
     print("From %s >> %s"
           % (explicit_xbee_message.remote_device.get_64bit_addr(),
              explicit_xbee_message.data.decode()))
     print(" - Source endpoint:        %s"
           % utils.hex_to_string(utils.int_to_length(explicit_xbee_message.source_endpoint)))
     print(" - Destination endpoint:   %s"
           % utils.hex_to_string(utils.int_to_length(explicit_xbee_message.dest_endpoint)))
     print(" - Cluster ID:             %s"
           % utils.hex_to_string(utils.int_to_length(explicit_xbee_message.cluster_id)))
     print(" - Profile ID:             %s"
           % utils.hex_to_string(utils.int_to_length(explicit_xbee_message.profile_id)))
Ejemplo n.º 3
0
 def __build_complete_frame_without_header(self, frame_spec_data):
     """
     Builds a complete non-escaped frame from the given frame specific data.
     Complete frame is: Start delimiter + length + frame specific data + checksum.
     
     Args:
         frame_spec_data (Bytearray): the frame specific data.
         
     Returns:
         Bytearray: the complete frame as bytearray.
     """
     frame = utils.int_to_length(len(frame_spec_data)) + frame_spec_data
     frame.append(self.get_checksum())
     return frame