We're using a Zebra ZD410 is being used in our product with an external label feed. I need to know when the job is complete so that I can pull the label it just printed. I was using isReady from ~HS, but now I suspect that it's saying that the printer is ready for more, but the label is not necessarily complete (which makes sense if everything is queued).
I see from ^HH that I could run it before my job to get the counter value
666 LABELS NONRESET CNTR
and then run it after, though it'll be an experiment to see if the counter is only updated once printing is complete and the label has stopped moving.
! U1 getvar "odometer.media_marker_count"
! U1 getvar "device.jobs_print"
might do it. The former returns the same number every time, until I disconnect and re-connect (I'm not sure my firmware supports it). The latter returns 0 on power-up, and then 1 every time after. I almost think I'm not terminating the job, but printouts and LEDs suggest otherwise. And even if they do work, I have the same issue of now knowing if that indicates that the label has physically stopped moving.
I saw ^JJ, Set Auxiliary Port, and that seemed promising. The 'b' parameter has a mode 4 of "End Print signal normally low, and high for 20ms when a label has been printed and positioned. That sounds great if I were tied to a GPIO, but if it correlates to isReady, that would work as well. I'll be experimenting with that, but it's a little hard to tell definitively.
So all that said: Is there a query I can do to the printer to know that the label printed and is no longer moving?