34 lines
950 B
Python
Executable File
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()
|