def luck(id: int, luckname: str): """ 开始抽奖 """ rd = RedisQueue(luckname) myredis = MyRedis() winner = luckname + "_winner" if myredis.hexists(winner, id): return {"ret": 0, "msg": "您已经抽过了,不能再抽了"} award = rd.get_nowait() if award: myredis.hset(winner, id, award) myredis.hincrby(luckname, award, -1) result = { "ret": 0, 'data': { "flag": 1, "msg": "恭喜你中奖了", "award": award } } else: result = { "ret": 0, 'data': { "flag": 0, "msg": "奖抽完了", } } return result
def RFIDGetTagStart(): global issysset global e global pool global redisconnpool global GetTagProsseFlg global epcsendthreadalive sl = 1 if not SysIniJson(): # if not SysIni(): print('SysIni Erro') return sleeptimes = 0 if e.RunAllStart(): pass else: print('RFIDGetTagStart ERR Return') return pool = redis.ConnectionPool(host='127.0.0.1', password='******', port=6379, db=1) # q = RedisQueue(name='RfidControl',host='127.0.0.1',psw='123456') try: redisconnpool = redis.Redis(connection_pool=pool) if redisconnpool.ping(): pass except: e.CloseSerialCOM() return q = RedisQueue(name='RfidControl', pool=pool) if not q.istrue: e.CloseSerialCOM() print('CloseSerialCOM 0') return # while True: # msg = q.get_nowait() # print(msg) # if msg != None: # if msg==b'Rfidstop': # issysset=199 # q.put_extend('RfidControlAnswer','RfidstopOK') # break # elif msg==b'Rfidstart': # issysset=0; # q.put_extend('RfidControlAnswer','RfidstartOK') # break # time.sleep(2) # while True: # SysCommand1(q) # time.sleep(2) epcsendthreadalive = 1 thread_sendepc = threading.Thread(target=EPCSendToServerThread, name='EPCSendToServerThread') thread_sendepc.setDaemon(True) thread_sendepc.start() while issysset < 200: # msg = redis_sub.parse_response() msg = q.get_nowait() if msg != None: print(msg) if msg == b'Rfidstop': issysset = 199 q.put_extend('RfidControlAnswer', 'RfidstopOK') elif msg == b'Rfidstart': issysset = 0 q.put_extend('RfidControlAnswer', 'RfidstartOK') # SysCommand1(q) # SysCommand(q=q,flg=1) if issysset != 199: # EPCProsseRedis() EPCProsseRedis1() if issysset == 0: sendcmd = RfidCMD.IsAppoBootLoad() print('IsAppoBootLoad:{0},{1}'.format(sendcmd[0], sendcmd[1])) send = e.WriteSerialCOM(sendcmd[1]) time.sleep(sl) # time.sleep(2) continue elif issysset == 1: sendcmd = RfidCMD.BtoApp() print('BtoApp:{0},{1}'.format(sendcmd[0], sendcmd[1])) send = e.WriteSerialCOM(sendcmd[1]) time.sleep(sl) # time.sleep(2) continue elif issysset == 2: sendcmd = RfidCMD.GetDNum() # sendcmd=RfidCMD.ApptoB() print('GetDNum:{0},{1}'.format(sendcmd[0], sendcmd[1])) send = e.WriteSerialCOM(sendcmd[1]) time.sleep(sl) # time.sleep(2) continue elif issysset == 6: GetTagProsseFlg += 1 if GetTagProsseFlg < int(sysdict['ts']): time.sleep(sl) continue sendcmd = RfidCMD.GetTagMultiple() GetTagProsseFlg = 0 print('GetTagMultiple:{0},{1}'.format(sendcmd[0], sendcmd[1])) send = e.WriteSerialCOM(sendcmd[1]) sleeptimes = 0 issysset = 106 time.sleep(sl) # time.sleep(2) continue elif issysset == 7: sendcmd = RfidCMD.GetTagMultipleCommand() print('GetTagMultiple:{0},{1}'.format(sendcmd[0], sendcmd[1])) send = e.WriteSerialCOM(sendcmd[1]) sleeptimes = 0 issysset = 107 time.sleep(sl) # time.sleep(2) continue elif issysset == 106: sleeptimes += 1 if sleeptimes > 10: issysset = 6 loggererro.debug('106Sleep') time.sleep(sl) # time.sleep(2) continue elif issysset == 107: sleeptimes += 1 if sleeptimes > 10: issysset = 7 loggererro.debug('107Sleep') time.sleep(sl) # time.sleep(2) continue elif issysset == 8: sendcmd = RfidCMD.SubSetGetTagData() print('GetTagMultiple:{0},{1}'.format(sendcmd[0], sendcmd[1])) send = e.WriteSerialCOM(sendcmd[1]) time.sleep(sl) # time.sleep(2) continue elif issysset == 9: # if usedAnt==1: # sendcmd=RfidCMD.SetAntEnable(ant1=usedAnt,ant2=0,ant3=0,ant4=0) # elif usedAnt==2: # sendcmd=RfidCMD.SetAntEnable(ant1=0,ant2=usedAnt,ant3=0,ant4=0) # elif usedAnt==3: # sendcmd=RfidCMD.SetAntEnable(ant1=0,ant2=0,ant3=usedAnt,ant4=0) # elif usedAnt==4: # sendcmd=RfidCMD.SetAntEnable(ant1=0,ant2=0,ant3=0,ant4=usedAnt) # else: # sendcmd=RfidCMD.SetAntEnable(ant1=1,ant2=0,ant3=0,ant4=0) sendcmd = RfidCMD.SetAntEnable(ant1=int(sysdict['a1']), ant2=int(sysdict['a2']), ant3=int(sysdict['a3']), ant4=int(sysdict['a4'])) print('SetAntEnable:{0},{1}'.format(sendcmd[0], sendcmd[1])) send = e.WriteSerialCOM(sendcmd[1]) time.sleep(sl) # time.sleep(2) continue elif issysset == 10: # if usedAnt==1: # sendcmd=RfidCMD.SetAntPower(ant1=usedAnt,ant2=0,ant3=0,ant4=0,rpower=usedPower) # elif usedAnt==2: # sendcmd=RfidCMD.SetAntPower(ant1=0,ant2=usedAnt,ant3=0,ant4=0,rpower=usedPower) # elif usedAnt==3: # sendcmd=RfidCMD.SetAntPower(ant1=0,ant2=0,ant3=usedAnt,ant4=0,rpower=usedPower) # elif usedAnt==4: # sendcmd=RfidCMD.SetAntPower(ant1=0,ant2=0,ant3=0,ant4=usedAnt,rpower=usedPower) # else: # sendcmd=RfidCMD.SetAntPower() sendcmd = RfidCMD.SetAntPower(ant1=int(sysdict['a1']), ant2=int(sysdict['a2']), ant3=int(sysdict['a3']), ant4=int(sysdict['a4']), rpower=int(sysdict['aw'])) print('SetAntPower:{0},{1}'.format(sendcmd[0], sendcmd[1])) send = e.WriteSerialCOM(sendcmd[1]) time.sleep(sl) # time.sleep(2) continue else: time.sleep(sl) # time.sleep(2)
class SendDataToDestinationBLC(object): def __init__(self): self.usedtosendEPCQueue = RedisQueue(name='UsedEPCSendQueue',host='127.0.0.1',psw='123456',db=1) self.influxdbclass=PInfluxdbClass(host='127.0.0.1', port=8086, username='******', password='******', database = 'RFIDreportdb') self.tagstoRedis=DataObjectJSRedisClass(host='127.0.0.1',psw='123456',port=6379,indexkey='EPC') self.devID = b'' self.thread_read_flg=False self.thread_read=None self.runallflg=False self.allthread=None self.clientID="" self.sendEmqClient=EMQSendClass(host='192.168.1.178',port=1883,username='******',pwd='shuiJing1',client_id='') def GetRfidDevID(self): if self.devID == b'': try: conn = redis.Redis(host='127.0.0.1', password='******', port=6379, db=1) if conn.ping(): print('conn ok') else: print('shawanyi') except: # return self.devID #conn.set('RFIDDevID', devID) if conn.exists('RFIDDevID'): pass else: print(self.devID) return self.devID ret=conn.get('RFIDDevID') if ret!=self.devID: self.devID=ret print('devID',self.devID) return self.devID def GetSysBluetoothCMD(self): cmd=0 try: conn = redis.Redis(host='127.0.0.1', password='******', port=6379, db=1) except: print('GetSysBluetoothCMD ERR') return 0 ret=conn.get('RFIDSysBluetoothCMD') if ret==None: return 0 if ret==b'START': cmd=1 elif ret==b'STOP': cmd=2 elif ret==b'POWERUP': cmd=3 elif ret==b'POWERDOWN': cmd=4 elif b'POWER:' in ret: p,var = ret.split(b':') cmd=int(var) else: cmd=0 return cmd def SetSysBluetoothCMD(self,cmd=0): try: conn = redis.Redis(host='127.0.0.1', password='******', port=6379, db=1) except: print('GetSysBluetoothCMD ERR') return False strcmd='' #ret=conn.get('RFIDSysBluetoothCMD') if cmd==1:#b'START': strcmd='START' elif cmd==2:#b'STOP': strcmd='STOP' elif cmd==3:#b'POWERUP': strcmd='POWERUP' elif cmd==4:#b'POWERDOWN': strcmd='POWERDOWN' elif cmd==5: strcmd='RUN' elif cmd>=10 and cmd<=30: strcmd='POWER:'+str(cmd) else: strcmd='START' conn.set('RFIDSysBluetoothCMD',strcmd) return True def RecvThreading(self,s): pass def StopRecvThread(self): self.thread_read_flg=False self.thread_read.join() self.thread_read=None self.SetSysBluetoothCMD(cmd=2) def StopAll(self): self.runallflg=False self.StopRecvThread() self.allthread=None def listtodict(self,data): d={} for v in data: key,value=v.split(':') d[key]=value #key,value=v.split(b':') #d[key.decode(encoding='utf-8')]=value.decode(encoding='utf-8') d['devID']=self.devID return d def UseReportdata(self,data): udict=self.MakeDataToDictMode(data) print(udict) if len(udict) <= 0: return False # self.influxdbclass.SaveDataToInfluxdb(measurement='RFIDreporttabl',tags={"NUMS":udict['NUMS']},fields=udict) # print('Get:',self.influxdbclass.GetDataFrominfluxdb(measurement='RFIDreporttabl')) for v in udict['tags']: ret = self.tagstoRedis.AddObject(data=v) print(ret) if ret[1]==1: print('GetObjectObjectlist:',self.tagstoRedis.GetObjectObjectlist())#获得对象hash name 列表 print('GetObjectindexKeylist:',self.tagstoRedis.GetObjectindexKeylist())#获得索引键列表 print('GetObjectKVlist:',self.tagstoRedis.GetObjectKVlist())#获得索引hash里 索引key+对象id列表 #发送数据 if self.clientID == "": self.clientID=self.tagstoRedis.GetSelfUUID print ('Get client uuid:',self.clientID) self.sendEmqClient.PublishOnceS(topic='RFIDEPCTAG',payload=str(v),qos=1,retain=False, will=None, auth={'username':'******', 'password':'******'}, tls=None) else: print('GetObjectContentByName:',self.tagstoRedis.GetObjectContentByName(name=ret[0])) nums=self.tagstoRedis.GetObjectSize() if nums>50: self.tagstoRedis.DeleteObjectAll() print('It s new day') return True def MakeDataToDictMode(self,data): retdict={} print(data) print(type(data)) strdata=data.decode(encoding='utf-8') ldata=strdata.split(',') nums, value = ldata[2].split(':') #nums, value = data[2].split(b':') if 'NUMS' == nums: getnums = int(value, base=16) if getnums <= 0: print('UseReportdata is zero') return retdict retdict['NUMS']=getnums tags=[] epcdata=ldata[3:] el=len(epcdata) gl=int(el/getnums) for i in range(getnums): l=epcdata[i*gl:i*gl+gl] d=self.listtodict(l) tags.append(d) retdict['tags']=tags else: print('nothing to do') self.influxdbclass.SaveDataToInfluxdb(measurement='RFIDreporttabl',tags={"NUMS":retdict['NUMS']},fields={"reportRfid":strdata}) #print('Get:',self.influxdbclass.GetDataFrominfluxdb(measurement='RFIDreporttabl')) return retdict def EPCSendRoServerForBluetooth(self): try: s_conn = redis.Redis(host='127.0.0.1', password='******', port=6379, db=1) if s_conn.ping(): print('EPCSendRoServerForBluetooth ok') else: print('shawanyi') except: # print('EPCSendRoServerForBluetooth err') s_conn = None return False s_conn.set('RFIDSysIsStart','isok') self.SetSysBluetoothCMD(cmd=1) while self.devID==b'': retdevid=self.GetRfidDevID() time.sleep(2) while True: msg = self.usedtosendEPCQueue.get_nowait() #print('msg:',msg) if msg==None: continue self.UseReportdata(msg) # try: # while True: # msg = self.usedtosendEPCQueue.get_nowait() # #print('msg:',msg) # if msg==None: # continue # self.UseReportdata(msg) # #varepc = msg.split(b':') # #sdevs = b'DEVID:' + self.devID + b';' + varepc[1] + b'+' # #print('queueSend:',sdevs) # #sock.send(sdevs) # except: # print('Bluetooth sock err') self.StopRecvThread() #self.thread_read_flg=False #self.thread_read.join() #self.thread_read=None #self.SetSysBluetoothCMD(cmd=2) sock.close() def EPCSendRoServerForBluetoothRUN(self): if self.runallflg==True: self.StopAll() self.runallflg=True while self.runallflg: self.EPCSendRoServerForBluetooth() def RunAll_Bluetooth(self): if self.allthread!=None: return False self.allthread=threading.Thread(target=self.EPCSendRoServerForBluetoothRUN) self.allthread.setDaemon(True) self.allthread.start() return True
class SendDataToDestinationBLServer(object): def __init__(self, bluetuuid="94f39d29-7d6d-437d-973b-fba39e49d4ee", name="FireFly-3288C", port=6): self.usedtosendEPCQueue = RedisQueue(name='UsedEPCSendQueue', host='127.0.0.1', psw='123456', db=1) self.devID = b'' self.uuid = bluetuuid self.bluetoothname = name self.bluetoothport = port self.thread_read_flg = False self.thread_read = None self.runallflg = False self.allthread = None self.allerr = False def GetRfidDevID(self): if self.devID == b'': try: conn = redis.Redis(host='127.0.0.1', password='******', port=6379, db=1) if conn.ping(): print('conn ok') else: print('shawanyi') except: # return self.devID #conn.set('RFIDDevID', devID) if conn.exists('RFIDDevID'): pass else: print(self.devID) return self.devID ret = conn.get('RFIDDevID') if ret != self.devID: self.devID = ret print('devID', self.devID) return self.devID def GetSysBluetoothCMD(self): cmd = 0 try: conn = redis.Redis(host='127.0.0.1', password='******', port=6379, db=1) except: print('GetSysBluetoothCMD ERR') return 0 ret = conn.get('RFIDSysBluetoothCMD') if ret == None: return 0 if ret == b'START': cmd = 1 elif ret == b'STOP': cmd = 2 elif ret == b'POWERUP': cmd = 3 elif ret == b'POWERDOWN': cmd = 4 elif b'POWER:' in ret: p, var = ret.split(b':') cmd = int(var) else: cmd = 0 return cmd def SetSysBluetoothCMD(self, cmd=0): try: conn = redis.Redis(host='127.0.0.1', password='******', port=6379, db=1) except: print('GetSysBluetoothCMD ERR') return False strcmd = '' #ret=conn.get('RFIDSysBluetoothCMD') if cmd == 1: #b'START': strcmd = 'START' elif cmd == 2: #b'STOP': strcmd = 'STOP' elif cmd == 3: #b'POWERUP': strcmd = 'POWERUP' elif cmd == 4: #b'POWERDOWN': strcmd = 'POWERDOWN' elif cmd == 5: strcmd = 'RUN' elif cmd >= 10 and cmd <= 30: strcmd = 'POWER:' + str(cmd) else: strcmd = 'START' conn.set('RFIDSysBluetoothCMD', strcmd) return True def RecvThreading(self, s): #global thread_read_flg while self.thread_read_flg: try: data = s.recv(1024) except: print('Bluetooth sock recv err') self.allerr = True break if len(data) == 0: continue #break print("received [%s]" % data) if b'START' in data: self.SetSysBluetoothCMD(cmd=1) elif b'STOP' in data: self.SetSysBluetoothCMD(cmd=2) elif b'POWERUP' in data: self.SetSysBluetoothCMD(cmd=3) elif b'POWERDOWN' in data: self.SetSysBluetoothCMD(cmd=4) elif b'POWER:' in data: p, var = data.split(b':') self.SetSysBluetoothCMD(cmd=int(var)) else: pass def StopRecvThread(self): self.thread_read_flg = False self.thread_read.join() self.thread_read = None self.SetSysBluetoothCMD(cmd=2) def StopAll(self): self.runallflg = False self.StopRecvThread() self.allthread = None def EPCSendRoServerForBluetooth(self): print('EPCSendRoServerForBluetooth --- server bluetooth') #uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee" uuid = self.uuid server_sock = BluetoothSocket(RFCOMM) #server_sock.bind(("",self.bluetoothport)) server_sock.bind(("", PORT_ANY)) server_sock.listen(1) port = server_sock.getsockname()[1] advertise_service( server_sock, self.bluetoothname, service_id=uuid, service_classes=[uuid, SERIAL_PORT_CLASS], profiles=[SERIAL_PORT_PROFILE], ) print("Waiting for connection on RFCOMM channel %d" % port) client_sock, client_info = server_sock.accept() print("Accepted connection from ", client_info) self.thread_read_flg = True self.thread_read = threading.Thread(target=self.RecvThreading, args=(client_sock, )) self.thread_read.setDaemon(True) self.thread_read.start() print("connected. type stuff") try: s_conn = redis.Redis(host='127.0.0.1', password='******', port=6379, db=1) if s_conn.ping(): print('EPCSendRoServerForBluetooth ok') else: print('shawanyi') except: # print('EPCSendRoServerForBluetooth err') s_conn = None return False s_conn.set('RFIDSysIsStart', 'isok') #self.SetSysBluetoothCMD(cmd=1) while self.devID == b'': retdevid = self.GetRfidDevID() time.sleep(2) self.allerr = False self.SetSysBluetoothCMD(cmd=2) try: while True: if self.allerr == True: break msg = self.usedtosendEPCQueue.get_nowait() #print('msg:',msg) if msg == None: continue varepc = msg.split(b':') sdevs = b'DEVID:' + self.devID + b';' + varepc[1] + b'+' print('queueSend:', sdevs) client_sock.send(sdevs) except: print('Bluetooth sock err') self.StopRecvThread() #self.thread_read_flg=False #self.thread_read.join() #self.thread_read=None print('bluetooth exit thread-------------------------') #self.SetSysBluetoothCMD(cmd=2) client_sock.close() server_sock.close() self.SetSysBluetoothCMD(cmd=2) print('bluetooth stop -------------------------') def EPCSendRoClientForBluetoothRUN(self): if self.runallflg == True: self.StopAll() self.runallflg = True while self.runallflg: self.EPCSendRoServerForBluetooth() def RunAll_Bluetooth(self): if self.allthread != None: return False self.allthread = threading.Thread( target=self.EPCSendRoClientForBluetoothRUN) self.allthread.setDaemon(True) self.allthread.start() return True
def handle(self): print(self.client_address) sqstr = '{0}:{1}'.format(self.client_address[0], self.client_address[1]) print(sqstr) q = RedisQueue(name=sqstr) #q.redisidrun=q.isrun() #print ('running') while True: try: data = self.request.recv(1024) if (data == b''): try: conn = psycopg2.connect(database="materiel", user="******", password="******", host="58.214.232.165", port="5432") cur = conn.cursor() print('lin postgresql OK') except: print('InsertToPostgresql Connect Fail') break #ProssData(q) while True: if q.isrun() == 0: break qdata = q.get_nowait() if qdata == None: try: conn.commit() conn.close() print('InsertToPostgresql close') break except: print('InsertToPostgresql commit Fail') break #break print(qdata) if b'DEVID' in qdata: devid, value = qdata.split(b':') print('did:{0}'.format(devid)) lisoo = value.split(b';') print('did:{0}-epc:{1}'.format(lisoo[0], lisoo[1])) sqlselectstr = ( "INSERT INTO tb_epc_record (device_id,epc,report_time) VALUES ('{0}','{1}',NOW()::timestamp)" ).format(lisoo[0].decode(encoding='utf-8'), lisoo[1].decode(encoding='utf-8')) print(sqlselectstr) cur.execute(sqlselectstr) break #continue #print (data) q.put(data) #if data == b'exit': # print ('exit') # self.server.shutdown() # self.request.close() # break except Exception as e: self.server.shutdown() self.request.close() break
class SendDataToDestinationBLC(object): def __init__(self, bluetuuid="94f39d29-7d6d-437d-973b-fba39e49d4ee"): self.usedtosendEPCQueue = RedisQueue(name='UsedEPCSendQueue', host='127.0.0.1', psw='123456', db=1) self.devID = b'' self.uuid = bluetuuid self.thread_read_flg = False self.thread_read = None self.runallflg = False self.allthread = None self.allerr = False def GetRfidDevID(self): if self.devID == b'': try: conn = redis.Redis(host='127.0.0.1', password='******', port=6379, db=1) if conn.ping(): print('conn ok') else: print('shawanyi') except: # return self.devID #conn.set('RFIDDevID', devID) if conn.exists('RFIDDevID'): pass else: print(self.devID) return self.devID ret = conn.get('RFIDDevID') if ret != self.devID: self.devID = ret print('devID', self.devID) return self.devID def GetSysBluetoothCMD(self): cmd = 0 try: conn = redis.Redis(host='127.0.0.1', password='******', port=6379, db=1) except: print('GetSysBluetoothCMD ERR') return 0 ret = conn.get('RFIDSysBluetoothCMD') if ret == None: return 0 if ret == b'START': cmd = 1 elif ret == b'STOP': cmd = 2 elif ret == b'POWERUP': cmd = 3 elif ret == b'POWERDOWN': cmd = 4 elif b'POWER:' in ret: p, var = ret.split(b':') cmd = int(var) else: cmd = 0 return cmd def SetSysBluetoothCMD(self, cmd=0): try: conn = redis.Redis(host='127.0.0.1', password='******', port=6379, db=1) except: print('GetSysBluetoothCMD ERR') return False strcmd = '' #ret=conn.get('RFIDSysBluetoothCMD') if cmd == 1: #b'START': strcmd = 'START' elif cmd == 2: #b'STOP': strcmd = 'STOP' elif cmd == 3: #b'POWERUP': strcmd = 'POWERUP' elif cmd == 4: #b'POWERDOWN': strcmd = 'POWERDOWN' elif cmd == 5: strcmd = 'RUN' elif cmd >= 10 and cmd <= 30: strcmd = 'POWER:' + str(cmd) else: strcmd = 'START' conn.set('RFIDSysBluetoothCMD', strcmd) return True def RecvThreading(self, s): #global thread_read_flg while self.thread_read_flg: try: data = s.recv(1024) except: print('Bluetooth sock recv err') self.allerr = True break if len(data) == 0: continue #break print("received [%s]" % data) if b'START' in data: self.SetSysBluetoothCMD(cmd=1) elif b'STOP' in data: self.SetSysBluetoothCMD(cmd=2) elif b'POWERUP' in data: self.SetSysBluetoothCMD(cmd=3) elif b'POWERDOWN' in data: self.SetSysBluetoothCMD(cmd=4) elif b'POWER:' in data: p, var = data.split(b':') self.SetSysBluetoothCMD(cmd=int(var)) else: pass def StopRecvThread(self): self.thread_read_flg = False self.thread_read.join() self.thread_read = None self.SetSysBluetoothCMD(cmd=2) def StopAll(self): self.runallflg = False self.StopRecvThread() self.allthread = None def EPCSendRoServerForBluetooth(self): #global devID #global usedtosendEPCQueue #global thread_read_flg #global thread_read print('EPCSendRoServerForBluetooth') #uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee" uuid = self.uuid try: service_matches = find_service(uuid=uuid, address=None) if len(service_matches) == 0: print("couldn't find the SampleServer service =(") return first_match = service_matches[0] port = first_match["port"] name = first_match["name"] host = first_match["host"] print("connecting to \"%s\" on %s" % (name, host)) # Create the client socket sock = BluetoothSocket(RFCOMM) sock.connect((host, port)) self.thread_read_flg = True self.thread_read = threading.Thread(target=self.RecvThreading, args=(sock, )) self.thread_read.setDaemon(True) self.thread_read.start() print("connected. type stuff") except: print("Bluetooth connect err") return try: s_conn = redis.Redis(host='127.0.0.1', password='******', port=6379, db=1) if s_conn.ping(): print('EPCSendRoServerForBluetooth ok') else: print('shawanyi') except: # print('EPCSendRoServerForBluetooth err') s_conn = None return False s_conn.set('RFIDSysIsStart', 'isok') #self.SetSysBluetoothCMD(cmd=1) while self.devID == b'': retdevid = self.GetRfidDevID() time.sleep(2) self.allerr = False self.SetSysBluetoothCMD(cmd=2) try: while True: if self.allerr == True: break msg = self.usedtosendEPCQueue.get_nowait() #print('msg:',msg) if msg == None: continue varepc = msg.split(b':') sdevs = b'DEVID:' + self.devID + b';' + varepc[1] + b'+' print('queueSend:', sdevs) sock.send(sdevs) except: print('Bluetooth sock err') self.StopRecvThread() #self.thread_read_flg=False #self.thread_read.join() #self.thread_read=None #self.SetSysBluetoothCMD(cmd=2) sock.close() self.SetSysBluetoothCMD(cmd=2) print('bluetooth stop -------------------------') def EPCSendRoServerForBluetoothRUN(self): if self.runallflg == True: self.StopAll() self.runallflg = True while self.runallflg: self.EPCSendRoServerForBluetooth() def RunAll_Bluetooth(self): if self.allthread != None: return False self.allthread = threading.Thread( target=self.EPCSendRoServerForBluetoothRUN) self.allthread.setDaemon(True) self.allthread.start() return True