Проверьте состояние сетевого принтера этикеток с помощью сокета C#
Привет
Я пытаюсь проверить состояние принтера с помощью команд cpcl в c#.
ниже моего кода.
public static string PrinterStatus(string printerIp) { IPAddress ip = IPAddress.Parse(printerIp) System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient(); client.Connect(printerIp, 6101); byte[] bt = new byte[] { (byte)27, (byte)104 }; //esc(27) h(104) NetworkStream netStream = client.GetStream(); netStream.Write(bt, 0, bt.Length); byte[] bytesToRead = new byte[client.ReceiveBufferSize]; client.SendTimeout = 2000; int bytesRead = netStream.Read(bytesToRead, 0, client.ReceiveBufferSize); netStream.Close(); client.Close(); if(bytesToRead[0] == 16) return "Printer Ready"; else if (bytesToRead[0] == 17) return "Printer Busy"; else if (bytesToRead[0] == 18) return "Paper Out"; else if (bytesToRead[0] == 5 || bytesToRead[0] == 20) return "Head Open & Paper out"; }
Что я уже пробовал:
i am trying to pass esc h to toshiba network label printer to check printer status. printer is on or off,cover open, head open, paper out, low battery and etc. I am not getting any status. bytesToRead should return some value to give printer status. but it is always returning zero only. help me.
Michael_Davies
Вы открывали обложку или убирали бумагу, чтобы создать состояние, отличное от "хорошо", а затем пытались прочитать состояние?
Member 8235434
да, я просто открыл крышку и проверил код. но никакого статуса ..
Karthik_Mahalingam
использовать Ответить кнопка, чтобы отправить комментарии / запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.