# Test scripts Python scripts used for sensor reading, configuring and automated testing. All scripts assume that 485 converter device file is `/dev/rs485`. ## User scripts Following scripts are meant to be used by user for sensor search, read and config (write). ### `find_device.py` Search for device over all combinations of given baudrates and addresses. If no arguments are given, script tries all possible combinations (which takes really long time). Usage: ``` ./find_device.py [ -a [{FIRST_ADDR-LAST_ADDR | ADDR} ...] ] [ -b [BAUD ...]] ``` Examples: ``` Complete search (slow!): ./find_device.py Look for devices 123,10,56 at baudrates 19200,115200: ./find_device.py -a 123 10 56 -b 19200 115200 Look for devices 10-55 at baudrate 19200: ./find_device.py -a 10-55 -b 19200 Look for device 1-10 and 55 at baudrate 115200: ./find_device.py -a 1-10 55 -b 115200 Look for device 1-10 at all possible baudrates: ./find_device.py -a 1-10 55 ``` ### `query_device.py` Script for interaction with sensor. Allows reading from input register and read/write access to holding registers. Usage: ``` ./query_device.py ADDR [BAUDRATE] [{read [REGISTER ...] | write VALUE REGISTER}] where: - ADDR is Modbus address (use 0 for broadcast; note that only write can be broadcast) - BAUDRATE is (optional) baud rate; default value is 19200 - action can be "read", "write" or can be omitted (defaults to "read all") - REGISTER can be either human-friendly register name (e.g. "CO2") or register number (30001) - read may have list of REGISTER arguments (combining both register numbers and names) - VALUE is 16-bit integer in decimal format - to get list of human-friendly names just read all registers from sensor (run script with address only) ``` Examples ``` Read all registers from sensor 247, default baud rate: ./query_device.py 247 Read only CO2 register from sensor 123, baudrate 4800: ./query_device.py 123 4800 read CO2 Read CO2, T_SHT4x and RH_SCD4x from sensor 222, default baudrate: ./query_device.py 222 read CO2 T_SHT4x RH_SCD4x Turn LED off for sensor 247, baud 115200: ./query_device.py 247 115200 write 0 LED_on_register Set brightness of all connected sensors to 50%: ./query_device.py 0 write 50 LED_brightness_register ```