È possibile utilizzare il sttycomando per impostare tali parametri.
Questo mostrerà tutte le impostazioni sulla prima porta seriale (sostituire ttyS0con ttyUSB0se si utilizza una porta seriale USB):
stty -F /dev/ttyS0 -a
Questo imposterà la velocità di trasmissione su 9600, 8 bit, 1 bit di stop, nessuna parità:
stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb
Una cosa che generalmente confonde le persone è che la maggior parte dei driver seriali ripristinerà le impostazioni ai valori predefiniti una volta chiuso il dispositivo (cioè nessun processo ha più il dispositivo aperto). Quindi il sttycomando sopra imposterà le impostazioni, quindi al termine il driver le ripristinerà nuovamente. Se il software POS viene aperto per la prima volta e si eseguono le sttyimpostazioni, è necessario che rimangano in attesa fino a quando il software POS non chiude nuovamente il dispositivo (ad es. All'uscita).
Avrei pensato che il software POS dovesse avere un modo per configurare queste impostazioni da solo. Se stai scrivendo il tuo software per guidare la stampante, assicurati di aprire prima il dispositivo, quindi esegui il sttycomando.
Potrebbe anche essere necessario giocare con altre impostazioni, ad esempio opostsignifica che verrà eseguito il postelaborazione dell'output. Se oposte onlcrsono entrambi impostati, onlcrverrà aggiunto un ritorno a capo extra (0xd) quando viene emesso un byte newline (0xa), in genere per impedire la stampa di scale come
This is a line
This is the next line
Questo può o meno essere quello che vuoi. Se si desidera che l'output uno a uno non elaborato per la stampante sia opostspento (aggiungere -opostai sttyparametri).
Anche l'handshaking (controllo del flusso) è controllato stty, senza sapere di più sulla stampante non so dire se è necessario impostare nulla.
Controlla la sttymanpage per molte più informazioni.
screen /dev/ttyS0 <baud-rate>(il valore predefinito sarebbe 9600 indipendentemente dalle impostazioni a livello di sistema, nemmeno sicuro che esistano)