Skip to content

Packet backlog when receiving on Windows #248

@LarsLeferenz

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions