screwdriver/yc_SCANNER/prod/tw/com/yctools/util/hw/barCodeReader.py

60 lines
1.5 KiB
Python
Raw Normal View History

2025-02-06 16:10:58 +08:00
import serial
class abfactory():
def __init__(self, classname=None):
self.process = classname
def setup_baudrate(self, com, rate):
self.process.setup_baudrate(self, com, rate)
def turn_on_machine(self):
self.process.turn_on_machine(self)
def trun_off_machine(self):
self.process.trun_off_machine(self)
def readData(self):
return self.process.readData(self)
class CINO_S680(): # CINO S680 FUZZYSCAN Barcode Scanner
ser = None
def setup_baudrate(self, com, rate):
self.ser = serial.Serial(com, rate)
def turn_on_machine(self):
msg = 'on'
self.ser.write(str.encode(msg))
def trun_off_machine(self):
msg = 'off'
self.ser.write(str.encode(msg))
def readData(self):
data_raw = None
result = None
try:
while True:
while self.ser.is_open:
# self.ser.in_waiting ##一般寫法用來等有資料輸出
data_raw = self.ser.read_all()
result = data_raw.decode() # 用預設的UTF-8解碼
if result != "":
self.ser.close()
break
self.ser = None
return str.strip(result)
except Exception:
print('err')
if __name__ == "__main__":
br = abfactory()
br.process = CINO_S680
br.setup_baudrate('COM10', '9600')
br.turn_on_machine()
print(br.readData())