python3 python-escpos: требуется идентификатор продукта / PID для EPSON TM-M30

Уже несколько лет я запускаю и поддерживаю онлайн-кассу. система, в которой периферийное оборудование и система печати управляются RasPi с чистыми Debian и Python3.

Мой клиент купил новый чековый принтер EPSON TM-M30. В настоящее время он использует для этого TM-T88IV.

Фрагмент кода принтера python-escpos в настоящее время

p = printer.Usb(0x04b8, 0x0202, 0)

Нужно ли мне что-то менять для нового принтера (погуглив несколько часов, я не могу найти PID для этого нового принтера)

Я знаю, что с новым принтером Ethernet также доступен WiFi, и я могу использовать

p = printer.Network("192.168.178.77", 0) // port might differ

для этого, но я все еще хочу использовать его с USB, если это необходимо.

Примечание. Я нашел тот же PID здесь http://www.linux-usb.org/usb.ids для TM-T70, и я предполагаю, что PID 0x0202 действителен для более чем одного термопринтера, но нужно быть уверенным.

Спасибо за любые полезные ответы.


person ddlab    schedule 28.02.2020    source источник


Ответы (3)


Интерфейсная плата принтера EPSON имеет модульную структуру и широко используется во многих принтерах.
Плата интерфейса
UB-U

PID предназначен для этой интерфейсной платы и одинаков для любого принтера, который ее использует.

Например, для японских материалов PID одинаков для TM-m30 и TM-T88VI.
TM-m30 стр. 86
TM-T88VI стр. 118

Следовательно, VID 0x04B8 и PID 0x0202 можно рассматривать как идентификаторы интерфейсных плат USB принтеров EPSON.

Если вы можете получить дескрипторы строки производителя и продукта, записанные в документе, вы сможете определить модель принтера.

person kunif    schedule 29.02.2020
comment
Спасибо за Ваш ответ. По предоставленным вами ссылкам я нашел технический справочник по TM-M30, download.epson-biz.com/modules/pos/download.php?fid=8801#page97 показывает спецификации интерфейса, и, как вы упомянули, PID тот же: 0202. Так что еще раз спасибо , 1+ - person ddlab; 29.02.2020
comment
Плата UB-U не используется в TM-m30. Модульные интерфейсные платы используются только для некоторых принтеров (T88, L500 и т. д.). TM-m30 имеет внутреннюю плату и, следовательно, другой идентификатор продукта USB. Смотрите мой ответ ниже. - person Marc Balmer; 04.03.2020
comment
Это зависит от настройки режима устройства. И вы должны иметь возможность изменить его с помощью инструмента конфигурации или вручную. Разумеется, после смены режимов нужно установить соответствующий драйвер устройства. - person kunif; 04.03.2020

EPSON TM-m30 имеет идентификатор производителя USB 04b8 и идентификатор продукта USB 0e20.

lsusb на моем RHEL 8 показывает принтер как Seiko EPSON, 04b8:0e20.

person Marc Balmer    schedule 04.03.2020
comment
Интересно. Спасибо за ваш вклад. Я проверю это позже и вернусь к вам. - person ddlab; 04.03.2020
comment
Это будет зависеть от модели интерфейсной платы, которую вы используете. Если интерфейсная плата меняется, это может быть другой PID. - person kunif; 04.03.2020
comment
вы не можете заменить интерфейсную плату в TM-m30. - person Marc Balmer; 04.03.2020
comment
Я проглядел это. Это зависит от режима устройства. 0x0202 в режиме эмуляции последовательного порта и 0x0E20 в режиме устройства USBPrint. Пожалуйста, внимательно прочитайте материал. - person kunif; 04.03.2020
comment
Последний режим является режимом по умолчанию. - person Marc Balmer; 04.03.2020

Вы можете использовать lsusb, чтобы найти идентификатор поставщика и идентификатор продукта. Следующий скрипт поможет вам в этом (подробности см. в его файле readme), а также предоставит вам идентификаторы конечных точек: >https://gist.github.com/elsholz/44643ede809a6c4a3875beaae26bff2f

person El Sholz    schedule 22.02.2021