Skip to content

Packet backlog when receiving on Windows #248

Description

@LarsLeferenz

Hello.
I ran into a weird issue when receiving ZigBee packets on Windows. I'm currently sending packets from a drone every 0.8s, but on Windows, the callback method is only executed about every ~5s. I'm not loosing packets, as the received packet ID's increment correctly. The strange thing is, when using an Ubuntu VM on the same computer it works perfectly, and I receive at about ~0.8s.
And if I stop sending from the drone, I continue to receive packets for quite some time.

I'm using v1.4 and a "Xbee SMT Grove Dev Board" connected by USB for both sending and receiving.

Here is the code were using to receive on both Windows and Ubuntu:

def connect(self):
        self._device = XBeeDevice(self._port, self._baudRate)
        self._device.open()
        self._device.set_16bit_addr(XBee16BitAddress(utils.int_to_bytes(int(self._address))))
        self._network = self._device.get_network()
        self._device.add_packet_received_callback(self._packetReceivedCallback)

def _packetReceivedCallback(self, packet):
        print("Received!")
        #Processing after this

I also tried using pyserial on Windows to print the serial output with:

x = serial.Serial(port="COM4", baudrate=230400 )

while True:
     y = x.read(100)
     print(y)

Which resulted in 100 Bytes every ~0.8s, so the expected behavior.
My best guess at the moment is, that somehow windows takes too long when spawning the threads to handle the packet_recieved_callback, but I really got no clue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions