Beispiel #1
0
    def on_rx_done(self):
        BOARD.led_on()
        #print("\nRxDone")
        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)
        mens = payload[4:-1]  #to discard \xff\xff\x00\x00 and \x00 at the end
        mens = bytes(mens).decode("utf-8", 'ignore')
        cipher = AES.new(self.key)
        decodemens = base64.b64decode(mens)
        decoded = cipher.decrypt(decodemens)
        decoded = bytes(decoded).decode("utf-8", 'ignore')
        print("== RECEIVE: ", mens, "  |  Decoded: ", decoded)

        BOARD.led_off()
        time.sleep(2)  # Wait for the client be ready

        msg_text = 'ACK             '  # 16 char
        cipher = AES.new(self.key)
        encoded = base64.b64encode(cipher.encrypt(msg_text))
        lista = list(encoded)
        lista.insert(0, 0)
        lista.insert(0, 0)
        lista.insert(0, 255)
        lista.insert(0, 255)
        lista.append(0)
        self.write_payload(lista)
        #self.write_payload([255, 255, 0, 0, 65, 67, 75, 0]) # Send ACK
        self.set_mode(MODE.TX)
        print("== SEND: ", msg_text, "  |  Encoded: ",
              encoded.decode("utf-8", 'ignore'))
        print("\n")
        self.var = 1
Beispiel #2
0
def watchdog():
    global c
    if c != -1:  # -1 = already off
        if c == 0:  # 0 = watchdog triggers
            BOARD.led_off()
            print("OFF")
        c -= 1
Beispiel #3
0
    def on_rx_done(self):
        BOARD.led_on()
        #print("\nRxDone")
        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)
        print("Receive: ")
        print(bytes(payload).decode("utf-8", 'ignore'))  # Receive DATA
        BOARD.led_off()

        #time.sleep(2) # Wait for the client be ready
        #print ("Send: ACK")
        data_str = "ACK"
        print("Send: ", data_str)
        data_bytes = list(bytes(data_str, encoding='utf-8'))

        LOCAL_ADDR = 255
        RECIEVER_ADDR = 0
        DUMP = 0
        message = [RECIEVER_ADDR, LOCAL_ADDR, DUMP]
        message.append(len(data_bytes))

        for i in range(len(data_bytes)):
            message.append(data_bytes[i])
        self.write_payload(message)
        print(message)

        # self.write_payload([0, 255, 0, 3, 0, 1, 0]) # Send ACK
        self.set_mode(MODE.TX)
        self.var = 1
Beispiel #4
0
 def on_rx_done(self):
     BOARD.led_on()
     wrkdir = '/home/pi/Desktop/'
     # print("\nRxDone")
     self.clear_irq_flags(RxDone=1)
     payload = self.read_payload(nocheck=True)
     print("Receive: ")
     dataRaw = bytes(payload).decode("utf-8", 'ignore')
     dataRec = dataRaw[2:-1].split(",")
     print(dataRec)  # Receive DATA
    # print(argLen)
     if argLen is 2:
         filename = sensorName + ".csv"
         filename = join('/home/pi/Desktop/',filename)
         with open(filename, "a+") as csvfile:
             wr = csv.writer(csvfile, quoting = csv.QUOTE_ALL)
             wr.writerow(dataRec)
         csvfile.closed
     BOARD.led_off()
     time.sleep(2)  # Wait for the client be ready
     print("Send: ACK")
     self.write_payload([255, 255, 0, 0, 65, 67, 75, 0])  # Send ACK
     self.set_mode(MODE.TX)
     self.var = 1
     time.sleep(.5)  # a tad to complete
     print("Data Sent")
     sys.stdout.flush()
     lora.set_mode(MODE.SLEEP)
     BOARD.teardown()
     sys.exit()
Beispiel #5
0
 def on_tx_done(self):
     global args
     self.set_mode(MODE.STDBY)
     self.clear_irq_flags(TxDone=1)
     BOARD.led_off()
     sleep(args.wait)
     if self.sending == 1:
         self.send_image()
Beispiel #6
0
 def on_rx_done(self):
     BOARD.led_on()
     print("\nRxDone")
     #print(self.get_irq_flags())
     print(map(hex, self.read_payload(nocheck=True)))
     self.set_mode(MODE.SLEEP)
     self.reset_ptr_rx()
     BOARD.led_off()
     self.set_mode(MODE.RXCONT)
    def on_tx_done(self):
        print("\nTxDone")
        print(self.get_irq_flags())

        self.set_mode(MODE.SLEEP)
        self.reset_ptr_rx()
        BOARD.led_off()
        self.set_dio_mapping([0] * 6)
        self.set_mode(MODE.RXCONT)
Beispiel #8
0
 def on_rx_done(self):
     BOARD.led_on()
     print("\nRxDone")
     self.clear_irq_flags(RxDone=1)
     payload = self.read_payload(nocheck=True)
     print(bytes(payload).decode("utf-8",'ignore'))
     self.set_mode(MODE.SLEEP)
     self.reset_ptr_rx()
     BOARD.led_off()
     self.set_mode(MODE.RXCONT)
Beispiel #9
0
 def on_rx_done(self):
     BOARD.led_on()
     print("\nRxDone")
     self.clear_irq_flags(RxDone=1)
     payload = self.read_payload(nocheck=True)
     print(bytes(payload).decode())
     self.set_mode(MODE.SLEEP)
     self.reset_ptr_rx()
     BOARD.led_off()
     self.set_mode(MODE.RXCONT)
Beispiel #10
0
def RX():
    BOARD.led_on()
    print("\nDados recebidos")
    lora.clear_irq_flags(RxDone=1)
    payload = lora.read_payload(nocheck=True)
    print(bytes(payload).decode("utf-8", 'ignore'))
    lora.set_mode(MODE.SLEEP)
    lora.reset_ptr_rx()
    BOARD.led_off()
    lora.set_mode(MODE.RXCONT)
Beispiel #11
0
 def on_tx_done(self):  # When Transmitting is done?
     global args
     self.set_mode(MODE.STDBY)
     self.clear_irq_flags(TxDone=1)
     if args.single:
         print("args exit")
         sys.exit(0)
     BOARD.led_off()
     print("Ending Transmission")
     BOARD.teardown()
     sys.exit(0)
    def on_rx_done(self):
        BOARD.led_on()
        print("\nRxDone")
        print(self.get_irq_flags())
#	self.get_payload_length
	self.set_payload_length(8)
	self.get_rx_nb_bytes
        print(''.join(map(hex, self.read_payload(nocheck=True))).replace('0x', '').decode("hex"))
        self.set_mode(MODE.SLEEP)
        self.reset_ptr_rx()
        BOARD.led_off()
        self.set_mode(MODE.RXCONT)
Beispiel #13
0
 def on_rx_done(self):
     BOARD.led_on()
     print("\nRxDone")
     self.clear_irq_flags(RxDone=1)
     payload = self.read_payload(nocheck=True)
     data = ''.join([chr(c) for c in payload])
     print data
     #print(bytes(payload).decode())
     self.set_mode(MODE.SLEEP)
     self.reset_ptr_rx()
     BOARD.led_off()
     self.set_mode(MODE.RXCONT)
Beispiel #14
0
 def on_rx_done(self):
     BOARD.led_on()
     #print("\nRxDone")
     self.clear_irq_flags(RxDone=1)
     payload = self.read_payload(nocheck=True)
     print ("Receive: ")
     print(bytes(payload).decode("utf-8",'ignore')) # Receive DATA
     BOARD.led_off()
     time.sleep(2) # Wait for the client be ready
     print ("Send: ACK")
     self.write_payload([255, 255, 0, 0, 65, 67, 75, 0]) # Send ACK
     self.set_mode(MODE.TX)
     self.var=1
Beispiel #15
0
 def on_rx_done(self):
     BOARD.led_on()
     print("\nRxDone")
     print(self.get_irq_flags())
     #	self.get_payload_length
     self.set_payload_length(8)
     self.get_rx_nb_bytes
     print(''.join(map(hex, self.read_payload(nocheck=True))).replace(
         '0x', '').decode("hex"))
     self.set_mode(MODE.SLEEP)
     self.reset_ptr_rx()
     BOARD.led_off()
     self.set_mode(MODE.RXCONT)
Beispiel #16
0
 def on_tx_done(self):
     global args
     self.set_mode(MODE.STDBY)
     self.clear_irq_flags(TxDone=1)
     sys.stdout.flush()
     self.tx_counter += 1
     sys.stdout.write("\rtx #%d" % self.tx_counter)
     BOARD.led_off()
     sleep(1)
     #self.write_payload([0x0e])
     self.write_payload([0x0e, 0x00, 0x00, 0x00, 0x00, 0x00])
     BOARD.led_on()
     self.set_mode(MODE.TX)
     sys.stdout.write("on_tx_done end")
Beispiel #17
0
 def on_rx_done(self):
     global send_receive_flag
     global lora_receive_msg
     BOARD.led_on()
     print("\nRxDone")
     self.clear_irq_flags(RxDone=1)
     payload = self.read_payload(nocheck=True)
     lora_receive_msg = ''.join([chr(c) for c in payload])
     print("Receive lora_receive_msg: {0}".format(lora_receive_msg))
     #print(bytes(payload).decode())
     self.set_mode(MODE.SLEEP)
     self.reset_ptr_rx()
     BOARD.led_off()
     self.set_mode(MODE.RXCONT)
Beispiel #18
0
 def on_tx_done(self):
     global args
     self.set_mode(MODE.STDBY)
     self.clear_irq_flags()
     sys.stdout.flush()
     self.tx_counter += 1
     sys.stdout.write("\rtx #%d" % self.tx_counter)
     if args.single:
         print
         sys.exit(0)
     BOARD.led_off()
     sleep(args.wait)
     self.write_payload(payload)
     BOARD.led_on()
     self.set_mode(MODE.TX)
 def on_tx_done(self):
     global args
     self.set_mode(MODE.STDBY)
     self.clear_irq_flags()
     sys.stdout.flush()
     self.tx_counter += 1
     sys.stdout.write("\rtx #%d" % self.tx_counter)
     if args.single:
         print
         sys.exit(0)
     BOARD.led_off()
     sleep(args.wait)
     self.write_payload([0x0f])
     BOARD.led_on()
     self.set_mode(MODE.TX)
Beispiel #20
0
 def on_tx_done(self):
     global args
     self.set_mode(MODE.STDBY)
     self.clear_irq_flags(TxDone=1)
     sys.stdout.flush()
     self.tx_counter += 1
     sys.stdout.write("\rtx #%d" % self.tx_counter)
     if args.single:
         print
         sys.exit(0)
     BOARD.led_off()
     sleep(args.wait)
     self.write_payload([0x57,0x68,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x66,0x75,0x63,0x6B,0x21])
     BOARD.led_on()
     self.set_mode(MODE.TX)
Beispiel #21
0
 def on_tx_done(self):
     global send_receive_flag
     global lora_send_msg
     if send_receive_flag == "send":
         send_msg = lora_send_msg
         send_receive_flag = "receive"
         self.set_mode(MODE.STDBY)
         self.clear_irq_flags(TxDone=1)
         sys.stdout.flush()
         self.tx_counter += 1
         BOARD.led_off()
         data = [int(hex(ord(c)), 0) for c in send_msg]
         #self.write_payload([0x0f])
         self.write_payload(data)
         BOARD.led_on()
         self.set_mode(MODE.TX)
Beispiel #22
0
    def on_rx_done(self):
        BOARD.led_on()

        self.clear_irq_flags(RxDone=1)
        reader.read_package(self.read_payload(nocheck=True), True)

        self.set_mode(MODE.SLEEP)

        self.reset_ptr_rx()
        BOARD.led_off()
        self.set_mode(MODE.RXCONT)

        if (reader.is_accepted):
            self.db.connect()
            self.db.publish_sensor_data(reader.data_pack, True)
            self.db.disconnect()
Beispiel #23
0
 def on_rx_done(self):
     BOARD.led_on()
     print("\nRxDone")
     self.clear_irq_flags(RxDone=1)
     rssi_value = self.get_rssi_value()
     status = self.get_modem_status()
     print("\n [in on_rx_done] %d %d %d" %
           (rssi_value, status['rx_ongoing'], status['modem_clear']))
     payload = self.read_payload(nocheck=True)
     data = ''.join([chr(c) for c in payload])
     print 'data = ' + data
     #print(bytes(payload).decode())
     self.set_mode(MODE.SLEEP)
     self.reset_ptr_rx()
     BOARD.led_off()
     self.set_mode(MODE.RXCONT)
Beispiel #24
0
    def on_rx_done(self):
        BOARD.led_on()

        # Listen for requests from server
        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)  # Receive INF

        # Converts payload to readable string
        mens = bytes(payload).decode("utf-8", 'ignore')

        # Print RX data
        print("RX: " + mens)

        BOARD.led_off()

        # Reply the TH data if "ENVI" is received
        if mens == "ENVI":
            time.sleep(2)

            # Get TH data from BME280
            t = bme280.temperature
            h = bme280.humidity
            t = round(t, 2)
            h = round(h, 2)
            t = str(t)
            h = str(h)

            # Create TX message with ";" as delimiter
            TX_message = str(node) + ";" + t + ";" + h + ";"
            print("TX: " + TX_message)

            # Convert TX message to bytes
            b = list()
            b.extend(TX_message.encode())

            # Send TX message to server
            self.write_payload(b)
            self.set_mode(MODE.TX)

        if mens == "ACK":
            print("The server received the last message you sent.")

        # Set back client to receiver mode
        time.sleep(2)
        self.reset_ptr_rx()
        self.set_mode(MODE.RXCONT)
Beispiel #25
0
 def on_tx_done(self):
     global args
     self.set_mode(MODE.STDBY)
     self.clear_irq_flags(TxDone=1)
     sys.stdout.flush()
     self.tx_counter += 1
     sys.stdout.write("\rtx #%d" % self.tx_counter)
     if args.single:
         print
         sys.exit(0)
     BOARD.led_off()
     sleep(args.wait)
     rawinput = input(">>> ")
     data = [int(hex(ord(c)), 0) for c in rawinput]
     #self.write_payload([0x0f])
     self.write_payload(data)
     BOARD.led_on()
     self.set_mode(MODE.TX)
Beispiel #26
0
 def on_tx_done(self):
     global args
     self.set_mode(MODE.STDBY)
     self.clear_irq_flags(TxDone=1)
     sys.stdout.flush()
     self.tx_counter += 1
     sys.stdout.write("\rtx #%d" % self.tx_counter)
     if args.single:
         print
         sys.exit(0)
     BOARD.led_off()
     sleep(args.wait)
     message = "Hello > %d" % self.tx_counter
     sys.stdout.write(", %s" % message)
     payload = array('b', message)
     self.write_payload(list(payload))
     BOARD.led_on()
     self.set_mode(MODE.TX)
Beispiel #27
0
 def on_rx_done(self):
     
     BOARD.led_on()
     
     self.clear_irq_flags(RxDone=1)
     payload = self.read_payload(nocheck=True)
     mens=payload[4:-1] 
     mens=bytes(mens).decode("utf-8",'ignore')
     cipher = AES.new(self.key)
     decodemens=base64.b64decode(mens)
     decoded = cipher.decrypt(decodemens)
     decoded = bytes(decoded).decode("utf-8",'ignore')
     
     BOARD.led_off()
     time.sleep(2) 
     
     self.var=1
     return decoded
    def on_cad_done(self):
        print("\non_CadDone")
        print(self.get_irq_flags())
 
        self.clear_irq_flags()
        print(self.get_irq_flags())

        self.set_mode(MODE.SLEEP)
        rssi_value = self.get_rssi_value()
        status = self.get_modem_status()
        sys.stdout.flush()
	sys.stdout.write("\r%d %d %d %s" % (rssi_value, status['rx_ongoing'], status['modem_clear'], self))
        
        self.reset_ptr_rx()
        BOARD.led_off()
        self.set_dio_mapping([0] * 6)
        self.set_mode(MODE.RXCONT)
        print ("listo, saliendo de cad  ===========")
 def on_rx_done(self):
     BOARD.led_on()
     print("\nRxDone")
     print("Recebeu a resposta:")
     self.clear_irq_flags(RxDone=1)
     payload = self.read_payload(nocheck=True)
     print(bytes(payload).decode("utf-8", 'ignore'))
     self.set_mode(MODE.SLEEP)
     sleep(5)
     print("Send again")
     self.set_mode(MODE.TX)
     self.clear_irq_flags(TxDone=1)
     sys.stdout.flush()
     self.tx_counter += 1
     sys.stdout.write("\rtx #%d" % self.tx_counter)
     self.write_payload([255, 255, 0, 0, 104, 101, 108, 108, 111])
     self.reset_ptr_rx()
     self.set_mode(MODE.RXCONT)
     BOARD.led_off()
Beispiel #30
0
    def on_rx_done(self):
        BOARD.led_on()
        #print("\nRxDone")
        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)
        print(datetime.datetime.now())
        print(bytes(payload).decode("utf-8", 'ignore'))
        print(payload)  #Debug
        #print(type(payload))
        self.set_mode(MODE.SLEEP)
        self.reset_ptr_rx()
        BOARD.led_off()
        self.set_mode(MODE.RXCONT)

        client = mqtt.Client()
        client.connect("127.0.0.1", 1883, 60)
        client.publish("test/hello",
                       payload=bytes(payload).decode("utf-8", 'ignore'),
                       qos=0,
                       retain=True)
    def on_rx_done(self):
        BOARD.led_on()
        #print("\nRxDone")
        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)

        mens = payload[4:-1]  #to discard \xff\xff\x00\x00 and \x00 at the end
        mens = bytes(mens).decode("utf-8", 'ignore')
        cipher = AES.new(self.key)
        decodemens = base64.b64decode(mens)
        decoded = cipher.decrypt(decodemens)
        decoded = bytes(decoded).decode("utf-8", 'ignore')
        print("== RECEIVE: ", mens, "  |  Decoded: ", decoded)

        BOARD.led_off()
        if decoded == "INF             ":
            print(
                "Received data request INF - going to send mens:DATA RASPI      "
            )
            time.sleep(4)

            msg_text = 'DATA RASPI      '  # 16 char
            cipher = AES.new(self.key)
            encoded = base64.b64encode(cipher.encrypt(msg_text))
            lista = list(encoded)
            lista.insert(0, 0)
            lista.insert(0, 0)
            lista.insert(0, 255)
            lista.insert(0, 255)
            lista.append(0)
            self.write_payload(lista)
            #self.write_payload([255, 255, 0, 0, 68, 65, 84, 65, 32, 82, 65, 83, 80, 66, 69, 82, 82, 89, 32, 80, 73, 0]) # Send DATA RASPBERRY PI
            self.set_mode(MODE.TX)
            print("== SEND: DATA RASPI        |  Encoded: ",
                  encoded.decode("utf-8", 'ignore'))
        if decoded == "ACK             ":
            print("\n")

        time.sleep(3)
        self.reset_ptr_rx()
        self.set_mode(MODE.RXCONT)
Beispiel #32
0
    def on_rx_done(self):
        BOARD.led_on()
        print("\nRxDone")
        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)
        print(bytes(payload).decode("utf-8", 'ignore'))
        atsmosphere = bytes(payload[8:14]).decode("utf-8", "ignore")
        tem = bytes(payload[14:19]).decode("utf-8", "ignore")
        hum = bytes(payload[20:25]).decode("utf-8", "ignore")
        print(atsmosphere)
        print(tem)
        print(hum)
        iso = time.ctime()
        data = [{
            "measurement": measurement,
            "time": iso,
            "tags": {
                "location": location,
            },
            "fields": {
                "atmosphere": atsmosphere,
                "temperature": tem,
                "humidity": hum
            }
        }]
        # Send the JSON data to influxDB
        client.write_points(data)

        # Send data to cloud filestore firebase
        doc_ref.set({
            u'atmostphere': atsmosphere,
            u'hum': hum,
            u'temp': tem,
            u'timestamp': iso
        })

        self.set_mode(MODE.SLEEP)
        self.reset_ptr_rx()
        BOARD.led_off()
        self.set_mode(MODE.RXCONT)
Beispiel #33
0
    def on_rx_done(self):

        # Get time of first packet received
        if self.first_packet == 1:
            self.first_packet = 0
            self.millis = int(round(time.time() * 1000))

    # Reset timeout
        self.recv = int(round(time.time() * 1000))
        BOARD.led_on()

        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)
        print "Var = %d" % self.var
        print "Packet = %d" % payload[0]

        # If packet number is correct
        if payload[0] == self.var:
            self.receiver_buffer += payload[1:]
            print "Correctly received the %d packet" % self.var
            self.var = self.var + 1
        elif payload[0] - self.var > 0:
            print "Missed a packet... blacking-out..."

            # Black out all missed packets
            for x in xrange(0, int(payload[0]) - self.var):
                self.missed_packets.append(self.var + x)
                self.receiver_buffer += list([0] * 253)

            print "Missed packets: "
            print self.missed_packets
            print "Blacked-out %d packets..." % (int(payload[0]) - self.var)
            self.receiver_buffer += payload[1:]
            self.var = payload[0] + 1

    # LoRa stuff
        self.set_mode(MODE.SLEEP)
        self.reset_ptr_rx()
        BOARD.led_off()
        self.set_mode(MODE.RXCONT)
Beispiel #34
0
 def on_rx_done(self):
     BOARD.led_on()
     #print("\nRxDone")
     self.clear_irq_flags(RxDone=1)
     payload = self.read_payload(nocheck=True)  # Receive INF
     print("Receive: ")
     mens = bytes(payload).decode("utf-8", 'ignore')
     mens = mens[2:-1]  #to discard \x00\x00 and \x00 at the end
     print(mens)
     BOARD.led_off()
     if mens == "INF":
         print("Received data request INF")
         time.sleep(2)
         print("Send mens: DATA RASPBERRY PI")
         self.write_payload([
             255, 255, 0, 0, 68, 65, 84, 65, 32, 82, 65, 83, 80, 66, 69, 82,
             82, 89, 32, 80, 73, 0
         ])  # Send DATA RASPBERRY PI
         self.set_mode(MODE.TX)
     time.sleep(2)
     self.reset_ptr_rx()
     self.set_mode(MODE.RXCONT)
Beispiel #35
0
    def on_rx_done(self):
        BOARD.led_on()

        # Set rx flag to 1
        self.clear_irq_flags(RxDone=1)

        # Get payload and decode
        payload = self.read_payload(nocheck=True)
        payload_conv = bytes(payload).decode("utf-8", 'ignore')

        # Prints payload
        print("RX: " + payload_conv)

        # Extract node number, t, and h from sender
        s = payload_conv.split(";")
        if len(s) >= 2:
            node = s[0]
            t = s[1]
            h = s[2]
            print("Node: " + node)
            print("Temperature: " + t)
            print("Humidity: " + h)

        BOARD.led_off()

        # Compulsary waiting time for client to get ready
        time.sleep(2)

        # Send acknowledgement to client
        ACK_message = "ACK"
        b = list()
        b.extend(ACK_message.encode())
        print("TX: " + ACK_message)
        self.write_payload(b)

        # Set back server to TX mode
        self.set_mode(MODE.TX)
        self.var = 1