We're using a Zebra ZD410-300dpi ZPL in an embedded application that will load labels separately as needed. I need to restore operations to our printer programmatically. When a particular error occurs, I run this (sequenced from several separate methods in my code);
= UsbDiscoverer.GetZebraUsbPrinters(new ZebraPrinterFilter());
if (connectedUsbPrinters.Count == 1)
Connection printerConnection = new UsbConnection(connectedUsbPrinters.Address);
string setupCommand = "^XA^MFN,N^JUS^XZ";
PrinterStatus printerStatus = zebraPrinter.GetCurrentStatus();
There's more to it in terms of waiting, but that's basically it, and it works for most cases. However, we have a case where I send the setup and string to print using zebraPrinter.SendCommand(print_commands) and no label is in the printer. This is of course an error, and I detect that and do the reset sequence above. But in this case, after reset, I get
printerStatus.isPaused = true
printerStatus.isPaperOut = true
Yes, this is true and reflects what happened, but I didn't expect that to persist after doing the zebraPrinter.Reset() call.
All that for this question: Is there anything I can do before or after a zebraPrinter.Reset() to get back to a printerStatus.isReady state, other than sending a ~JR to do a Power On Reset?
Thanks for reading.