Skip to content

Commit

Permalink
tridonic: prevent a possible AssertionFailure
Browse files Browse the repository at this point in the history
I was playing with some commands, and one of my devices apparently just
won't send any reply to a DT5 ResetConverterSettings. That's a
sendtwice=True command, and when that happens, I was getting an
assertion failure later on on line 600, which looks pretty much like
bug #124:

 15:00:59.333780 D: tridonic: Sending with seq e7
 15:00:59.339550 D: tridonic: waiting for outstanding_transmissions=1 {response=}
 15:00:59.357560 D: tridonic: _handle_read 12730000C105FFFFE7
 15:00:59.363037 D: tridonic: bus_watch message 12730000C105FFFFE7
 15:00:59.368941 D: tridonic: Command EnableDeviceType(5), immediate
 15:00:59.384012 D: tridonic: remembering device type 5
 15:00:59.387287 D: tridonic: Bus watch waiting for data, no timeout
 15:00:59.400013 D: tridonic: message mode=12 rtype=73 frame=b'\x00\x00\xc1\x05' interval=ffff seq=e7
 15:00:59.403352 D: tridonic: waiting for outstanding_transmissions=0 {response=}
 15:00:59.407774 I: dali: EnableDeviceType(5)
 15:00:59.431360 D: tridonic: _handle_read 127100000000008AE7
 15:00:59.454305 D: tridonic: bus_watch message 127100000000008AE7
 15:00:59.457782 D: tridonic: Bus watch waiting for data, no timeout
 15:00:59.461983 D: tridonic: message mode=12 rtype=71 frame=b'\x00\x00\x00\x00' interval=008a seq=e7
 15:00:59.693383 D: tridonic: Sending with seq e8
 15:00:59.698993 D: tridonic: waiting for outstanding_transmissions=1 {response=}
 15:00:59.716567 D: tridonic: _handle_read 1273000001E6103BE8
 15:00:59.721514 D: tridonic: bus_watch message 1273000001E6103BE8
 15:00:59.727816 D: tridonic: Bus watch waiting with timeout
 15:00:59.732960 D: tridonic: message mode=12 rtype=73 frame=b'\x00\x00\x01\xe6' interval=103b seq=e8
 15:00:59.736298 D: tridonic: waiting for outstanding_transmissions=0 {response=}
 15:00:59.741356 D: tridonic: _handle_read 127100000000008AE8
 15:00:59.746287 D: tridonic: message mode=12 rtype=71 frame=b'\x00\x00\x00\x00' interval=008a seq=e8
 15:00:59.785298 D: tridonic: bus_watch message 127100000000008AE8
 15:00:59.788843 D: tridonic: Unexpected response waiting for retransmit of config command
 15:00:59.794324 E: tridonic: current_command is not None: ResetConverterSettings(<address (control gear) 0>)

I'm not saying that this is surely a fix for #124, but that one was
happening in an environment where DT8 Tc commands were sent regularly.
  • Loading branch information
jktjkt authored and sde1000 committed Aug 2, 2024
1 parent 709f3ee commit c32d673
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions dali/driver/hid.py
Original file line number Diff line number Diff line change
Expand Up @@ -567,6 +567,11 @@ async def _bus_watch(self):
current_command)
self.bus_traffic._invoke(current_command, None, True)
current_command = None
elif frame == "no":
self._log.warning("No frame in response to a sendtwice command: %s", current_command)
self.bus_traffic._invoke(current_command, None, True)
current_command = None
continue
else:
self._log.error("Unexpected response waiting for retransmit of config command, frame = %s", frame)
elif current_command.response:
Expand Down

0 comments on commit c32d673

Please sign in to comment.