Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
            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()

Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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