I ran into this when I was implementing queued messages also.
My conclusion is that if you are NACK'ing the GET QM, then you should have the QM PID in the response.
If the controller sees another PID in the response (say IDENTIFY_DEVICE), then it will assume that it just retrieved a queued NACK for an Identify that it sent in the past, rather than realizing that it's actually a NACK for the GET QM.
A controller probably should accept STATUS_MESSAGES in the PID also, although in my implementation I only put the STATUS_MESSAGES PID in the response when I'm ACK'ing a GET:QM.
|