2009-09-08 3 views
1

Мне нужно убедиться, что подключение к POS-принтеру прошло успешно, прежде чем записывать данные в базу данных, а затем распечатывать квитанцию. POSprinter обычно имеет тип BTP 2002NP, но может отличаться. Самое общее, что все они подключены через COM-порт и NOT usb, поэтому на клиенте вообще не установлены драйверы.Убедитесь, что соединение с POSPrinter подключено через COM

Можно ли отправить какой-либо «пинг» на COM-порт и проверить, подключено ли устройство и включено? Любая помощь или предложения очень ценятся.

Дополнительная информация, программа разработана в VB.NET и Visual Studio 2008

+0

Есть ли специальный последовательный протокол или принтер просто сбрасывает любую последовательную связь на бумагу? Возможно, вам стоит сначала обратиться к руководству. –

+0

Мне нужно будет изучить руководство по программированию. мы надеемся, что это будет одинаково для всех их принтеров. Стандарт ESC/P2 – Alexander

+0

Я также добавил ссылку на страницу «драйверы и руководства» этого веб-сайта, на которой показаны некоторые связанные принтеры. Используйте Google для своих требований! –

ответ

1

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

Обратитесь к BTP 2002NP printers programming manual для примера (первая ссылка в гугле, что я смотрел на)

Глядя на ручной соответствующую строку для отправки на принтер является «DLE СРВ п» команда, которая просит принтер вернет текущее состояние.

Как и для других принтеров в диапазоне, проверить this list of drivers and manuals

+0

мужчина, спасибо. Мне просто нужно выяснить способ получения этого сигнала/статусного флага – Alexander

1

Кстати, это то, что я придумал в конце концов.

Public Function ComTest() As Byte() 

    Dim TXT As String 
    TXT = Chr(&H10S) & Chr(&H4S) & Chr(1) 'DLE EOT 1 

    If OpenCom() Then 'Connect to com 
     moRS232.PurgeBuffer(Rs232.PurgeBuffers.TxClear Or Rs232.PurgeBuffers.RXClear) 
     moRS232.Write(TXT) 
     moRS232.Read(1) 
     Return moRS232.InputStream 
    Else 
     Return Nothing   
    End If 

End Function 

функция возвращает 1 байт. Затем я могу вручную перевести этот байт в состояние, в котором находится принтер. Вероятно, это работает для всех принтеров ESC/P.

 Смежные вопросы

  • Нет связанных вопросов^_^