BarCode Scanner

BarCode Scanner



[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/python
#Filename:BarCoder.py

import serial,time

class BarCoder:
        def __init__(self, Port = 0, Timeout = None):
                self.fd = serial.Serial(port = Port, timeout = Timeout)
                self.result = None
                self.flag = 6        #nest deep
       
        def getdata(self):
                self.switch()
                self.read()
               
                self.checkdata()
               
                if self.flag == -1:
                        self.result = 'error'
                return self.result
       
        def checkdata(self):        #my powerful ALG ^_^
                try:
                        self.result[2]
                except:
                        self.flag -= 1
                        if self.flag == 0:
                                self.flag = -1
                        else:
                                self.getdata()
       
        def switch(self):        #open the laser,be careful your eyss!
                self.fd.write(chr(2))
                time.sleep(.813)        #why? no idea!
                self.fd.write('.ZXQYU')        #rubbish code
       
        def read(self):
                self.result = self.fd.read(25)

if __name__ == '__main__':
        print 'run...'
        barcoder = BarCoder(Timeout = .5)
        print '-' + str(barcoder.getdata()) + '-'

很垃圾吗?
是不知道你的代码的用途
比我强,我今天第一天学,把那本python简明教程看了一遍.
串口条形码读取器 程序,哈哈
不错。
建议你把程序加上注释。
怎么我测试的时会出现下面的错误呢
[zxs@orange python]$ python serial.py
Traceback (most recent call last):
  File "serial.py", line 4, in ?
    import serial,time
  File "/var/htdocs_link/zxs/python/serial.py", line 42, in ?
    barcoder = BarCoder(Timeout = .5)
  File "/var/htdocs_link/zxs/python/serial.py", line 8, in __init__
    self.fd = serial.Serial(port = Port, timeout = Timeout)
AttributeError: 'module' object has no attribute 'Serial'