Hi Everyone,
I have a particularly tricky serial device I am working on programming.
To make matters worse it has a very slow response speed to commands.
It sends unsolicited commands, but also does normal request response
messages. I am usually polling the device every 4 seconds while it is
running. Very often when receiving the unsolicited commands I receive
the following error:
2014/12/30 20:14:13.939 timerQueue XR:Message lockRequest:
pasynManager->queueRequest() failed: asynManager::queueRequest is
already queued
I tried searching techtalk but cannot seem to find anyone with a similar
issue. This is very problematic because this device is very slow and the
unsolicited messages are the most important. Also I should mention that
all commands I receive from the device need to be acknowledged, so
immediately after the "in" string in the protocol follow I have an out
string with the same format.
(Another problem I have is that if the device has messages to send very
close together in timing it will group them into a single message but
with an unpredictable order. I have no idea how to deal with this. I can
imagine a cascading mismatch sequence but this would be very complex. Is
regex the only other option? When it does group the messages they are
delimited by a space, but in all other instances it is just single
messages with no space. I almost need some sort of function to search
for a space and if it finds it to separate the messages, but otherwise
ignore the normal messages).
I'm using stream device 2-6 and asyn4-21. Unfortunately can't post the
db or protocol file because I had to sign a NDA for this device.
Thank you!
Andrew