Você pode usar o stty
comando para definir esses parâmetros.
Isso mostrará todas as configurações na primeira porta serial (substitua ttyS0
por ttyUSB0
se estiver usando uma porta serial USB):
stty -F /dev/ttyS0 -a
Isso definirá a taxa de transmissão para 9600, 8 bits, 1 bit de parada, sem paridade:
stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb
Uma coisa que geralmente confunde as pessoas é que a maioria dos drivers seriais redefinirá as configurações para os padrões assim que o dispositivo for fechado (ou seja, nenhum processo abrirá mais o dispositivo). Portanto, o stty
comando acima definirá as configurações e, quando terminar, o driver as redefinirá novamente. Se o seu software POS abrir o dispositivo pela primeira vez e depois executar as stty
configurações, eles deverão permanecer até o software POS fechar o dispositivo novamente (por exemplo, ao sair).
Eu teria pensado que o software POS deveria ter alguma maneira de definir essas configurações por conta própria. Se você estiver escrevendo seu próprio software para acionar a impressora, abra o dispositivo primeiro e execute o stty
comando.
Você também pode precisar brincar com outras configurações, por exemplo, opost
significa que o pós-processamento de saída será executado. Se opost
e onlcr
estiverem ambos definidos, isso onlcr
fará com que um retorno de carro extra (0xd) seja adicionado quando um byte de nova linha (0xa) for gerado, normalmente para impedir a impressão de escadas, como
This is a line
This is the next line
Isso pode ou não ser o que você deseja. Se você deseja que uma saída individual bruta para a impressora seja opost
desligada (adicione -opost
aos stty
parâmetros).
O handshaking (controle de fluxo) também é controlado com stty
, sem saber mais sobre a impressora, não sei dizer se você precisa definir alguma coisa.
Verifique a página de stty
manual para obter mais informações.
screen /dev/ttyS0 <baud-rate>
(o padrão seria 9600, não importa o que as configurações de todo o sistema, nem mesmo certeza tais existem)