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.")