Pessoal, tudo bem?
Preciso ler os dados dos sensores de uma determinada impressora térmica, em especifico a PRT MPT725, em fim, ela utiliza comandos ESCPOS para sua comunicação, então a resposta não precisa ser baseada apenas nesse modelo e marca.
Eu atualmente consigo mandar comandos ESCPOS para a mesma, como acionar a guilhotina, aumentar e diminuir tamanho das fontes e etc... tudo isso pela biblioteca Pyusb.
Porém, não consigo ler o que a impressora me envia na porta usb com a biblioteca pyusb. A intenção era monitorar os sensores de falta de papel, papel enroscado entre outros, espero receber esses dados na usb após enviar o comando escpos correspondente.
Esse é meu código:
# -*- coding: iso-8859-1 -*-
# -*- coding: latin-1 -*-
#
# Impressora_Config.py
#
# Descricao: Classe responsavel pela conexao de impressora via usb.
# Programador original: Douglas Rodrigues
import usb.core
import usb.util
def main():
device = usb.core.find(idVendor=0x20d1, idProduct=0x7008)
print(device)
# Utilizo a primeira configuração
device.set_configuration()
# Primeiro endpoint
endpoint = device[0][(0,0)][0]
print(endpoint)
# le o pacote de dados
data = None
try:
data = device.read(endpoint.bEndpointAddress,
endpoint.wMaxPacketSize)
sret = ''.join([chr(x) for x in data])
print('resp',sret.decode('utf-8'))
#Retorna isso >>>>
'''
('resp', u'\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\x0')
'''
except usb.core.USBError as e:
data = None
if e.args == ('Operation timed out',):
pass
if __name__ == '__main__':
main()
Retorna isso >> é o que recebo da impressora, não consigo interpretar isso com inteiros mesmo tentando converter.
Se alguém por favor conseguir colocar um exemplo, ficarei muito agradecido