iaq_sensor_wired/tests/test_485_fuzz.py
2022-01-02 12:02:13 +01:00

34 lines
950 B
Python
Executable File

#!/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()