Member 8235434 Ответов: 0

Проверьте состояние сетевого принтера этикеток с помощью сокета 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

использовать  Ответить  кнопка, чтобы отправить комментарии / запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.

0 Ответов