คุณสามารถใช้stty
คำสั่งเพื่อตั้งค่าพารามิเตอร์ดังกล่าว
นี่จะแสดงการตั้งค่าทั้งหมดในพอร์ตอนุกรมแรก (แทนที่ttyS0
ด้วยttyUSB0
หากใช้พอร์ตอนุกรม USB):
stty -F /dev/ttyS0 -a
สิ่งนี้จะตั้งค่าอัตรา baud เป็น 9600, 8 bits, 1 stop bit, no parity:
stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb
สิ่งหนึ่งที่คนส่วนใหญ่สับสนคือไดรเวอร์อนุกรมส่วนใหญ่จะรีเซ็ตการตั้งค่าเป็นค่าเริ่มต้นเมื่ออุปกรณ์ถูกปิด (เช่นไม่มีกระบวนการใดที่อุปกรณ์จะเปิดอีกต่อไป) ดังนั้นstty
คำสั่งดังกล่าวจะตั้งค่าจากนั้นเมื่อเสร็จแล้วไดรเวอร์จะรีเซ็ตพวกเขาอีกครั้ง หากคุณให้ซอฟต์แวร์ POS เปิดอุปกรณ์จากนั้นทำการstty
ตั้งค่าพวกเขาควรจะวนไปมาจนกว่าซอฟต์แวร์ POS ของคุณจะปิดอุปกรณ์อีกครั้ง (เช่นเมื่อออกจาก)
ฉันคิดว่าซอฟต์แวร์ POS ควรมีวิธีการกำหนดการตั้งค่าเหล่านี้ด้วยตัวเอง หากคุณกำลังเขียนซอฟต์แวร์ของคุณเองเพื่อขับเครื่องพิมพ์ตรวจสอบให้แน่ใจว่าคุณเปิดอุปกรณ์ก่อนแล้วจึงดำเนินการstty
คำสั่ง
คุณอาจต้องเล่นกับการตั้งค่าอื่น ๆ เช่นopost
หมายความว่าการประมวลผลเอาต์พุตจะถูกดำเนินการ หากopost
และonlcr
มีการตั้งค่าทั้งสองอย่างonlcr
จะทำให้มีการเพิ่มการรับคืนพิเศษ (0xd) เมื่อมีการขึ้นบรรทัดใหม่ (0xa) ไบต์โดยทั่วไปเพื่อป้องกันการพิมพ์บันไดเช่น
This is a line
This is the next line
นี่อาจเป็นหรือไม่ใช่สิ่งที่คุณต้องการ ถ้าคุณต้องการดิบแบบหนึ่งต่อหนึ่งการส่งออกไปยังเครื่องพิมพ์เปิดopost
ปิด (เพิ่ม-opost
ไปยังstty
พารามิเตอร์)
การจับมือ (ควบคุมการไหล) ก็ควบคุมได้stty
เช่นกันโดยไม่ต้องรู้เพิ่มเติมเกี่ยวกับเครื่องพิมพ์ฉันไม่สามารถบอกได้ว่าคุณต้องตั้งค่าอะไร
ตรวจสอบstty
manpage สำหรับข้อมูลเพิ่มเติมมากมาย
screen /dev/ttyS0 <baud-rate>
(ค่าเริ่มต้นจะเป็น 9600 ไม่ว่าสิ่งที่การตั้งค่าทั้งระบบไม่ได้อยู่แน่ใจดังกล่าว)