LINUX.ORG.RU

Как считать данные с LPT порта предназначенные принтеру

 , ,


0

3

Всем привет!

Имеется контрорллер расхода топлива, он печатает данные о заправке на LPT принтер (EPSON TM-U220B) путем POS кодов.
Вместо принтера поставили конвертер Parallel to Serial, теперь при печати контроллера, я получаю данные прямо на COM порт компа с ubuntu 22.04,
где обрабатываю полученные данные и отправляю на печать уже куда душа пожелает

Данные на COM порт прилетают такие:

root@geslx005:~# gescheck/sc_com_grabber.py
connected to: /dev/ttyS2
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x1b!\x11\x1b!\x01\n'
b'23/08/2023              09:32:04\n'
b'\n'
b'TRANSACTION:04E34B640F9CDBE7279E\n'
b'  \n'
b'NUMBER:                     6494\n'
b'USER:                       1205\n'
b'VEHICLE:                     556\n'
b'PRODUCT:                  DIESEL\n'
b'\x1b!\x11LITRES:                     0,00\n'
b'\x1b!\x01\n'
b'\n'


Если вместо конвертора поставить LPT принтер то чек будет таким: фото https://b24.ussat.tm/~kl96n

Контрорллер расхода топлива: Gespasa GK7
Конвертер Parallel to Serial: PS1000 ( фото https://b24.ussat.tm/~j1XJd )

Вопрос 1:
Может быть кто нибудь подкинет ссылку на подобный конвертер, или может подскажет где купить можно в России (он старый и почти все ссылки в гугле устаревшие)?

Вопрос 2:
Хотелось бы ловить данные напрямую с LPT порта, но когда соединяешь комп вместо принтера, то контроллер пишет принтер отсутствует. ( фото https://b24.ussat.tm/~ElzbS )
Может есть кто то, кто смог организовать данную схему ?

но когда соединяешь комп вместо принтера

Так можно что-нибудь сжечь. И если это будет порт в компе, то ещё повезёт, может и контроллер топлива пострадать. Конечно, зависит от кабеля, но не помню, чтобы были кабели, позволяющие компу «притвориться» принтером. У вас скорее всего кабель для обмена по 4 бита.

Наверное, проще всего будет сделать на arduino переходник LPT-RS232-USB.

mky ★★★★★
()

На компе с LPT-портом, что крутится? Если линукс, то можно попробовать перенаправить вывод в файл и смотреть что там. Если там венда, то можно ее поставить в виртуалку, пробросить туда «LPT», который в хосте будет из себя представлять, что угодно (файл, pipe и т.д.).

Я так радары шью. Если пробрасывать moxa usb-rs485 непосредственно в виртуалку, все работает очень медленно и отваливается по таймаутам. А если «мокса» сидит в линуксе, а пробрасывается только последовательный порт, все летает лучше чем в родной венде.

yax123 ★★★★★
()
Ответ на: комментарий от Dark_SavanT

Содержимое скорее всего в формате esc/POS, вроде гуглится.

Да именно в формате esc/POS контроллер шлет на принтер данные, мне нужно убрать принтер и поставить комп с LPT портом и ловить данные с контроллера!

Пока смотрю в сторону arduino как написал mky,
но желательно без всяких конвертеров нужно

Ramil94
() автор топика
Ответ на: комментарий от Ramil94

А проблема то в чем? Данные с lpt порта снять? Соединяли как? В смысле распиновка кабеля, тупо же не подключишь, там мамы везде?

shTigrits ★★★
()
Последнее исправление: shTigrits (всего исправлений: 3)
Ответ на: комментарий от shTigrits

А проблема то в чем? Данные с lpt порта снять?

Да именно

Соединяли как? В смысле распиновка кабеля, тупо же не подключишь, там мамы везде?

Здесь сложнее. Порт на контроллере не стандартный, пины прозванивал сам, чуть позже скину все разъемы.
Основная проблема в том что я даже не понимаю как это нужно соединить (даже если представить что у нас стандартные разъемы), и вообще возможно ли это!

Ramil94
() автор топика