/ examples / rockblock_recv_data.py
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)