#!/usr/bin/env python3
#
# Test: 485 fuzzer
# ----------------
# Repeatedly write random data to sensor via 485.
# (after thataddress and baudrate is hardcoded)
#
# Return 0 if read was successful, 1 otherwise.
#
import time
import serial
import minimalmodbus
import numpy as np
from sensor import Sensor

serial_file = '/dev/rs485'
address = 247
baudrate = 19200

serial_device = serial.Serial(serial_file, baudrate)
# repeatedly write random stuff
print('Sending random data to sensor')
for i in range(0,16):
    random_data = np.random.randint(256, size=(1024)).astype('uint8')
    bytes_sent = serial_device.write(random_data)
    if bytes_sent != len(random_data):
        print(f'Warning: failed to write all bytes (sent {bytes_sent}/{len_random_data})')
    time.sleep(0.05)
serial_device.close()
# read sensor
s = Sensor(address=address, baudrate=baudrate)
print(f'Trying to read sensor:\n\tTemperature {s.T} C\n\tCO2 {s.CO2} ppm')
s.close()
