def on_rx_done(self): print("\nRxDone") payload = self.read_payload(nocheck=True) data = ''.join([chr(c) for c in payload]) print("Time: {}".format(str(time.ctime()))) print("Raw RX: {}".format(data)) try: _length, _data = packer.Unpack_Str(data) print("Time: {}".format(str(time.ctime()))) print("Length: {}".format(_length)) print("Receive: {}".format(_data)) except: print("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") print("Non-hexadecimal digit found...") print("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") print("Receive: {}".format(data)) # set TX self.rx_done = True # comment it will receive countinous self.set_dio_mapping([1, 0, 0, 0, 0, 0]) # TX self.set_mode(MODE.STDBY) self.clear_irq_flags(TxDone=1)
def on_rx_done(self): # print("\nRxDone") print('----------------------------------') payload = self.read_payload(nocheck=True) data = ''.join([chr(c) for c in payload]) info = data.split(",") print("This is {}.".format(info[0])) print("temperature:{}".format(float(info[3]))) print("humidity:{}".format(float(info[2]))) try: _length, _data = packer.Unpack_Str(data) print("Time: {}".format( str(time.ctime() ))) print("Length: {}".format( len(data) )) print("Raw RX: {}".format( data )) """ try: # python3 unicode print("Receive: {}".format( _data.encode('latin-1').decode('unicode_escape'))) except: # python2 print("Receive: {}".format( _data )) """ except: print("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") print("Non-hexadecimal digit found...") print("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") print("Receive: {}".format( data)) self.set_dio_mapping([1,0,0,0,0,0]) # TX # self.set_mode(MODE.STDBY) self.set_mode(MODE.SLEEP) # sleep(1) self.clear_irq_flags(TxDone=1) """ data = {"id":self._id, "data":packer.ACK} _length, _ack = packer.Pack_Str( json.dumps(data) ) try: # for python2 ack = [int(hex(ord(c)), 0) for c in _ack] except: # for python3 ack = [int(hex(c), 0) for c in _ack] print("ACK: {}, {}".format( self._id, ack)) self.write_payload(ack) """ self.set_mode(MODE.TX)
def on_rx_done(self): print("\nRxDone") print('----------------------------------') payload = self.read_payload(nocheck=True) #payload = QuBuf(pl) data = ''.join([chr(c) for c in payload]) #data = QuBuf(pl) print(data) try: _length, _data = packer.Unpack_Str(data) print("\nTime: {}".format( str(time.ctime() ))) #print("Length: {}".format( _length )) #print("Raw RX: {}".format( payload )) try: # python3 unicode #print("\nReceive: {}".format( _data.encode('latin-1').decode('unicode_escape'))) data = "\n{}".format( _data.encode('latin-1').decode('unicode_escape')) print("\nRxData:{}".format(data)) #socket_connect(data) except: # python2 print("\nReceive: {}".format( _data )) except: print("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") print("Non-hexadecimal digit found...") print("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%") print("Receive: {}".format( data)) self.set_dio_mapping([1,0,0,0,0,0]) # TX self.set_mode(MODE.STDBY) sleep(1) self.clear_irq_flags(TxDone=1) data = {"id":self._id, "data":packer.ACK} _length, _ack = packer.Pack_Str( json.dumps(data) ) try: # for python2 ack = [int(hex(ord(c)), 0) for c in _ack] except: # for python3 ack = [int(hex(c), 0) for c in _ack] print("\nACK: {}".format( self._id)) self.write_payload(ack) self.set_mode(MODE.TX)
def on_rx_done(self): self.clear_irq_flags(RxDone=1) payload = self.read_payload(nocheck=True) data = ''.join([chr(c) for c in payload]) if data is not None and len(data): try: _length, _data = packer.Unpack_Str(data) print "Time:", str(time.ctime()) print "Rawinput:", payload print "Receive:", _data except: print "Receive:", data self.set_mode(MODE.SLEEP) #self.reset_ptr_rx() #self.set_mode(MODE.RXCONT) self.rx_done = True
def on_rx_done(self): print '----------------------------------' self.clear_irq_flags(RxDone=1) payload = self.read_payload(nocheck=True) data = ''.join([chr(c) for c in payload]) print "Time:", str(time.ctime()) print "Rawinput:", payload try: _length, _data = packer.Unpack_Str(data) print "Time:", str(time.ctime()) print "Length:", _length print "Receive:", _data except: print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" print "Non-hexadecimal digit found..." print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" print "Receive:", data #sleep(0.5) #self.set_mode(MODE.SLEEP) #self.reset_ptr_rx() ####### #sleep(1) ####### for i in range(3): self.set_mode(MODE.STDBY) self.clear_irq_flags(TxDone=1) data = {"id": self._id, "data": packer.ACK} _length, _ack = packer.Pack_Str(json.dumps(data)) ack = [int(hex(ord(c)), 0) for c in _ack] print "ACK:", self._id self.write_payload(ack) self.set_mode(MODE.TX) # ALOHA(1~3) t = i * 2 + np.random.random() * 3 sleep(t) self.set_mode(MODE.RXCONT)
ser.write(byte_rawinput) ser.readline() time.sleep(0.5 + 0.01 * int(_length)) print("Ready to receive ACK") for i in range(0, RETRY): ser.write(b'radio rx 0\r\n') ret = ser.readline() ret = ser.readline() ret = ser.readline() if re.match('^radio_rx', str(ret).strip()): data = ret.split(" ", 1)[1] _length, _data = packer.Unpack_Str(data) if _data == packer.ACK: print("Receive ACK") break #time.sleep(i) #print("Retry %d", i) #cmd = "radio tx " #_length, _payload = packer.Pack_Str(rawinput) #byte_rawinput = bytes(cmd + _payload) #ser.write(byte_rawinput) #ser.readline()
def on_rx_done(self): #nhan data tu endnode gui len print '----------------------------------' self.clear_irq_flags(RxDone=1) payload = self.read_payload(nocheck=True) data = ''.join([chr(c) for c in payload]) print "Time:", str(time.ctime()) #print "Rawinput:", payload try: _length, _data = packer.Unpack_Str(data) print "Time:", str(time.ctime()) print "Length:", _length print "Receive:", _data except: print "Receive:", data result = json.loads(data) #print result["user"] kq={'username':'******','temp':result["temp"],'humi':result["humi"],'lux':result["lux"],'ph':result["ph"],'tds':result["tds"]} host = "http://iotsforhuman.com/API/ApiRecordData.php" r = requests.post(host,data=kq) sleep(0.5) self.set_mode(MODE.SLEEP) self.reset_ptr_rx() #gui lenh xuong endnode self.set_mode(MODE.RXCONT) print '-------------------------------------------------------------------------------------' self.set_mode(MODE.STDBY) self.clear_irq_flags(TxDone=1) data = r.text controller = data[1:71] listtest=list() listtest=[] i=0 for x in controller: listtest.insert(i,ord(x)) i += 1 print "Controller:", controller sleep(1) self.write_payload(listtest) self.set_mode(MODE.TX) sleep(.5) self.set_mode(MODE.SLEEP) self.set_dio_mapping([0] * 6) sleep(.5) self.set_mode(MODE.STDBY) sleep(.5) self.reset_ptr_rx() self.set_mode(MODE.RXCONT) ####### sleep(10)
def on_rx_done(self): global fingerid global camera global mode global pump1 global pump2 global temp global mistspray global templimit global pump1limit global pump2limit global mistspraylimit global fingerid_temp camera = "0" add = "0" print '----------------------------------' self.clear_irq_flags(RxDone=1) payload = self.read_payload(nocheck=True) data = ''.join([chr(c) for c in payload]) try: if len(data) < 45: jsonData = json.loads(data) # data from sensor node senddata("Temp", jsonData['n'], jsonData['t']) senddata("Air Humidity", jsonData['n'], jsonData['ah']) senddata("Soil Humidity", jsonData['n'], jsonData['sh']) print "do dai chuoi: ", len(data) if jsonData['n'] == "1": client.publish("farm/check1", "check") else: client.publish("farm/check2", "check") if (mode == 1): if (jsonData['n'] == "1"): if (jsonData['sh'] > pump1limit): pump1 = 0 else: pump1 = 1 if (jsonData['t'] > mistspraylimit): mistspray = 0 else: mistspray = 1 elif (jsonData['n'] == "2"): if (jsonData['sh'] > pump2limit): pump2 = 0 else: pump2 = 1 if (jsonData['t'] > templimit): temp = 0 else: temp = 1 print "Receive:", data else: #data from camera or fingerprint _length, _data = packer.Unpack_Str(data) data_temp = _data.replace("'", "\"") print data_temp print "do dai chuoi: ", len(data) jsonData = json.loads(data_temp) if jsonData['ty'] == "1": fingerid = jsonData['d'] add = jsonData['a'] delete = jsonData['del'] if add == "1": fingerid_temp = fingerid client.publish("farm/fingerprint", True) elif delete == "1": deleteuser(fingerid) else: try: username = selectuser(fingerid) sendlog(username, fingerid) client.publish("farm/inout", True) except: fingerid_temp = fingerid client.publish("farm/fingerprint", "miss") print "This id is not available" print "Receive: data from vantay ", fingerid else: camera = jsonData['d'] client.publish("farm/camera", True) print "Receive: data from camera ", camera except: print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" print "Non-hexadecimal digit found..." print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" print "Receive:", data ## for i in range(2): ## self.set_mode(MODE.STDBY) ## self.clear_irq_flags(TxDone=1) ## data = {"id": self._id, "data": packer.ACK} ## _length, _ack = packer.Pack_Str( json.dumps(data) ) ## ack = [int(hex(ord(c)), 0) for c in _ack] ## print "ACK:", self._id ## self.write_payload(ack) ## self.set_mode(MODE.TX) ## # ALOHA(1~3) ## t1 = i*2 + np.random.random() * 3 ## sleep(t1) self.reset_ptr_rx() self.set_mode(MODE.RXCONT) self.rx_done = True