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
def watchdog(): global c if c != -1: # -1 = already off if c == 0: # 0 = watchdog triggers BOARD.led_off() print("OFF") c -= 1
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
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()
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()
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)
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)
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)
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)
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)
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)
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
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)
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")
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)
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)
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)
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)
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()
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)
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)
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)
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)
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()
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)
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)
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)
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)
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