/ examples / rockblock_send_data.py
rockblock_send_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  # create some data
20  some_int = 2112
21  some_float = 42.123456789
22  some_text = "hello world"
23  text_len = len(some_text)
24  
25  # create binary data
26  data = struct.pack("i", some_int)
27  data += struct.pack("f", some_float)
28  data += struct.pack("i", len(some_text))
29  data += struct.pack("{}s".format(text_len), some_text.encode())
30  
31  # put data in outbound buffer
32  rb.data_out = data
33  
34  # try a satellite Short Burst Data transfer
35  print("Talking to satellite...")
36  status = rb.satellite_transfer()
37  # loop as needed
38  retry = 0
39  while status[0] > 8:
40      time.sleep(10)
41      status = rb.satellite_transfer()
42      print(retry, status)
43      retry += 1
44  
45  print("\nDONE.")