I was able to work around this by ignoring Status from this message and ONLY using it for device discovery purposes.
I instead issue StatusRequest to each device returned from LstDevices…but the only way this works is when I put a 100ms sleep in between the writes. This shouldn’t be required I believe as handshaking should take care of speed issues, no?
I haven’t tested with other sleep values…but is this expected? Is it documented?
I’m (ahem) pretty sure this isn’t a problem with my code as near equivalent code works rock solid for my caddx security panel.
Using Java I have setup the following fairly standard thread pattern:
Writer…this thread works off of a command queue and blocks until commands are received.
Reader…this thread reads/parses commands and puts them into message queue. It blocks on socket read until there is data.
Processor…this thread manages writer/reader and grabs available commands (blocking if none) from reader and notifies any listeners.