What is the best practice to track print job progress?


I'm writing a program to print labels on GK420t and ZT420 and I'm trying to follow Zebra's recommendations and best practices.

I find it really useful for the client program to be informed about the print job progress especially when using serialized data command (^SN). I used to utilize ZebraNet alerts using (^SX) command to do the job, however, I don't want to run another (SNMP, UDP, or TCP) listener on my host machine, besides it wasn't very reliable (sometimes printers stop sending alerts for some reason).

This document‚Äč, however, suggests the use of printer's odometer "odometer.total_label_count" to track progress (section 6. Status). I tested this, it worked on ZT420 (V75.19.7Z) and failed on GK420t (V61.17.17Z) (returned "?"). I checked all other odometer entities, they all return information in inches/centimeters rather than counts.

I noticed that both printers return a parameter called "number of formats in receive buffer" (as described in the ZPL programming guide). I'm using this parameters to track progress and it works on both printers.

I'm still not sure about this solution though, is this reliable? can I depend on this and safely assume that it will work on other Zebra printer models?