rockblock_recv_data.py
1 # pylint: disable=wrong-import-position 2 import time 3 import struct 4 5 # CircuitPython / Blinka 6 import board 7 8 uart = board.UART() 9 uart.baudrate = 19200 10 11 # via USB cable 12 # import serial 13 # uart = serial.Serial("/dev/ttyUSB0", 19200) 14 15 from adafruit_rockblock import RockBlock 16 17 rb = RockBlock(uart) 18 19 # try a satellite Short Burst Data transfer 20 print("Talking to satellite...") 21 status = rb.satellite_transfer() 22 # loop as needed 23 retry = 0 24 while status[0] > 8: 25 time.sleep(10) 26 status = rb.satellite_transfer() 27 print(retry, status) 28 retry += 1 29 print("\nDONE.") 30 31 # get the raw data 32 data = rb.data_in 33 print("Raw data = ", data) 34 35 # unpack data (see send example) 36 some_int = struct.unpack("i", data[0:4])[0] 37 some_float = struct.unpack("f", data[4:8])[0] 38 text_len = struct.unpack("i", data[8:12])[0] 39 some_text = struct.unpack("{}s".format(text_len), data[12:])[0] 40 41 # turn text into string 42 some_text = some_text.decode() 43 44 # print results 45 print("some_int =", some_int) 46 print("some_float =", some_float) 47 print("some_text =", some_text)