enocean icon indicating copy to clipboard operation
enocean copied to clipboard

Communicator: UTE teaching / base_id crasesh when a callback is registered

Open DamienBraillard opened this issue 5 years ago • 0 comments

When the Communicator (Serial or TCP) is created with a callback, the "base_id" getter stops working if the value has not been set previously.

When a callback is set on the Communicator, the receive queue is never filled with messages. They are only pushed to the registered callback. This causes the wait loop of the "base_id" getter to never receive the response from the module as the receive loop in the getter only queries this queue.

As result, the creation of the UTE response package fails because the "create_response_packet" method of the packet receives a "sender_id" value of "None".

This even crashes the main run loop and nothing can be received anymore.

DamienBraillard avatar Oct 19 '20 18:10 DamienBraillard