Esempio n. 1
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)
Esempio n. 2
0
    def start(self):
        while True:
            print('----------------------------------')
            sleep(1)

            try:
                rawinput = raw_input(">>> ")
            except NameError:
                rawinput = input(">>> ")
            except KeyboardInterrupt:
                lora.set_mode(MODE.SLEEP)
                sleep(.5)
                BOARD.teardown()
                exit()

            if len(rawinput) < 200:

                data = {"id": self._id, "data": rawinput}
                _length, _payload = packer.Pack_Str(json.dumps(data))

                try:
                    # for python2
                    data = [int(hex(ord(c)), 0) for c in _payload]
                except:
                    # for python3
                    data = [int(hex(c), 0) for c in _payload]

                for i in range(3):
                    if self.rx_done is True:
                        self.rx_done = False
                        break
                    else:
                        self.set_mode(MODE.SLEEP)
                        self.set_dio_mapping([1, 0, 0, 0, 0, 0])  # TX
                        sleep(.5)
                        lora.set_pa_config(pa_select=1)
                        self.clear_irq_flags(TxDone=1)
                        self.set_mode(MODE.STDBY)
                        sleep(.5)
                        print("Raw TX: {}".format(data))

                        self.write_payload(data)
                        self.set_mode(MODE.TX)

                        ## ALOHA(1~3) ## on_tx_done
                        t = i * i + int(np.random.random() * float(_length))
                        print("ALOHA Waiting: {}".format(t))
                        sleep(t)
Esempio n. 3
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)
Esempio n. 4
0
    def start(self):
        while True:
            print '----------------------------------'

            try:
                rawinput = raw_input(">>> ")
            except KeyboardInterrupt:
                lora.set_mode(MODE.SLEEP)
                BOARD.teardown()
                print "exit()"

            if len(rawinput) < 200:
                self.set_mode(MODE.STDBY)
                self.clear_irq_flags(TxDone=1)

                data = {"id": self._id, "data": rawinput}
                _length, _payload = packer.Pack_Str(json.dumps(data))
                data = [int(hex(ord(c)), 0) for c in _payload]
                print "data", _payload
                print "Rawinput:", data

                sleep(1)
                self.write_payload(data)
                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)

                for _ in range(t):
                    sleep(.1)

                    if self.rx_done == True:
                        self.rx_done = False
                        break
Esempio n. 5
0
try:
    while True:
	time.sleep(8)
	air = g3sensor()
	pmdata = 0
	pmdata =  air.read("/dev/ttyAMA0")
        pm25 = str(pmdata[5])
	rawinput = pm25

        try:
            byte_rawinput = bytes(rawinput + "\r\n")
        except:
            byte_rawinput = bytes(rawinput + "\r\n", encoding="UTF-8")

        cmd = "radio tx "
        _length, _payload = packer.Pack_Str(rawinput)

        if int(_length) < int(MAX_PAYLOAD_LENGTH):
            print("Time: " + str(time.ctime()))
            byte_rawinput = bytes(cmd + _payload)
            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()
send_cmd(ser, b'mac save')
ser.write(b'mac join otaa'+'\r\n')
rval = ''
while "accepted" not in rval:
    rval = str(ser.readline())
    if (DEBUGMODE==1):
        print('Joining... got: '+rval)


try:
    kount = 0
    while kount<1000:

        cmd = "mac tx uncnf 1 "
        rawpayload = 'Hello '+str(kount)
        _length, _payload = packer.Pack_Str(rawpayload)

        if int(_length) < int(MAX_PAYLOAD_LENGTH):
            byte_rawcmd = bytes(cmd + _payload)

            print("Executing: "+byte_rawcmd[:-2]+ " at: " + str(datetime.datetime.now()))
            

            ser.write(byte_rawcmd)
            rval = ''
            while "mac_tx_ok" not in rval:
                rval = str(ser.readline())
                if (DEBUGMODE==1):
                    print('Executing: '+byte_rawcmd[:-2]+'... got: '+rval)
            if "mac_tx_ok" in rval:
                print("Sent: " + rawpayload+ " at: " + str(datetime.datetime.now()))
Esempio n. 7
0
try:
    while True:
        ser.write(b'radio rx 0\r\n')
        ret = ser.readline()

        if ret == "ok" or "radio_tx_ok":

            payload = ser.readline()

            if re.match('^radio_rx', str(payload).strip()):
                data = payload.split("  ", 1)[1]
                _length, _data = packer.Unpack_Str(data)
                print("Time: " + str(time.ctime()))
                print("Receive: " + _data)

                ser.write(b'radio get snr\r\n')
                snr = ser.readline()
                print("SNR: " + str(snr))

                time.sleep(0.1 + 0.02 * int(_length))
                print('radio tx ACK')
                _length, _ack = packer.Pack_Str(packer.ACK)
                ack = "radio tx " + str(_ack)
                ser.write(ack)
                ret = ser.readline()
                print('----------------------------------')

finally:
    ser.close()
    def start(self):
        while True:
            print '----------------------------------'
            ##########
            # Initialize and start the video frame capture
            #cam = cv2.VideoCapture(0)
            flag = "0"
            dem = 0
            count = 0
            vantay = "0"
            add = "0"
            delete = "0"
            cam = cv2.VideoCapture(0)
            ##            cam.set(cv2.CAP_PROP_FPS, 30)
            while True:
                while ser.in_waiting:
                    read_serial = ser.readline()
                    s = str(int(read_serial, 16))
                    flag = "1"
                    print s
                    if s == "222":  #quet
                        read_serial = ser.readline()
                        vantay = str(int(read_serial, 16))
                        print vantay
                    elif s == "555":  #them
                        read_serial = ser.readline()
                        vantay = str(int(read_serial, 16))
                        add = "1"

                        print vantay
                    elif s == "444":  #xoa
                        read_serial = ser.readline()
                        vantay = str(int(read_serial, 16))
                        delete = "1"
                        print vantay

                # Read the video frame
                ret, im = cam.read()

                # Convert the captured frame into grayscale
                gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)

                # Get all face from the video frame
                faces = faceCascade.detectMultiScale(gray, 1.2, 5)

                # For each face in faces
                for (x, y, w, h) in faces:
                    gray_face = gray[y:y + h, x:x + w]
                    eyes = eyeCascade.detectMultiScale(gray_face)
                    for (ex, ey, ew, eh) in eyes:

                        # Create rectangle around the face
                        cv2.rectangle(im, (x - 20, y - 20),
                                      (x + w + 20, y + h + 20), (0, 255, 0), 4)

                        # Recognize the face belongs to which ID
                        Id = recognizer.predict(gray[y:y + h, x:x + w])

                        # Check the ID if exist
                        if (Id[0] == 1) and (Id[1] <= 80):
                            Id_reg = "KHANG"
                            dem = 0
                        else:
                            Id_reg = "UNKNOWN"
                            currentDT = datetime.datetime.now()
                            #cv2.imwrite("Unknown_person_data/Unknown.jpg",gray_face)
                            cv2.imwrite(
                                "Unknown_person_data/Unknown." +
                                str(currentDT.strftime("%H-%M-%S")) + '_' +
                                str(currentDT.strftime("%d-%m-%Y")) + ".jpg",
                                gray_face)
                            dem += 1

                        # Put text describe who is in the picture
                        #cv2.rectangle(im, (x-22,y-90), (x+w+22, y-22), (0,0,255), -1)
                        #cv2.putText(im, str(Id_reg), (x,y-40), font, 1, (255,255,255), 2)
                # Display the video frame with the bounded rectangle
                cv2.imshow('Face_Recognition', im)
                # If 'q' is pressed, close program
                if dem >= 30:
                    camera = "1"
                    flag = "2"
                    count = 0
                else:
                    if count >= 50:
                        count = 0
                        dem = 0
                    else:
                        count += 1
##
                print("gia tri dem: ", dem)
                print("gia tri flag:" + flag)

                if cv2.waitKey(10) & 0xFF == ord(
                        'q') or flag == "1" or flag == "2":
                    break

            # Stop the camera
            cam.release()

            # Close all windows
            cv2.destroyAllWindows()
            ##########
            try:
                if flag == "1":
                    rawinput = vantay
                    print rawinput
                elif flag == "2":
                    rawinput = camera
            except KeyboardInterrupt:
                lora.set_mode(MODE.SLEEP)
                BOARD.teardown()
                print "exit()"

            if len(rawinput) < 200:
                self.set_mode(MODE.STDBY)
                self.clear_irq_flags(TxDone=1)
                if flag == "1":
                    data = {"d": rawinput, "del": delete, "a": add, "ty": flag}
                elif flag == "2":
                    data = {"d": rawinput, "ty": flag}
                _length, _payload = packer.Pack_Str(json.dumps(data))
                print "Rawinput:", data
                data = [int(hex(ord(c)), 0) for c in _payload]
                print "data", _payload

                sleep(1)
                self.write_payload(data)
                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)

                for _ in range(t):
                    sleep(.1)

                    if self.rx_done == True:
                        self.rx_done = False
                        break