1""" A basic client demonstrating how to use pysolarmanv5."""
2from pysolarmanv5 import PySolarmanV5
3
4
5def main():
6 """Create new PySolarman instance, using IP address and S/N of data logger
7
8 Only IP address and S/N of data logger are mandatory parameters. If port,
9 mb_slave_id, and verbose are omitted, they will default to 8899, 1 and 0
10 respectively.
11 """
12 modbus = PySolarmanV5(
13 "192.168.1.24", 123456789, port=8899, mb_slave_id=1, verbose=False
14 )
15
16 """Query six input registers, results as a list"""
17 print(modbus.read_input_registers(register_addr=33022, quantity=6))
18
19 """Query six holding registers, results as list"""
20 print(modbus.read_holding_registers(register_addr=43000, quantity=6))
21
22 """Query single input register, result as an int"""
23 print(modbus.read_input_register_formatted(register_addr=33035, quantity=1))
24
25 """Query single input register, apply scaling, result as a float"""
26 print(
27 modbus.read_input_register_formatted(register_addr=33035, quantity=1, scale=0.1)
28 )
29
30 """Query two input registers, shift first register up by 16 bits, result as a signed int, """
31 print(
32 modbus.read_input_register_formatted(register_addr=33079, quantity=2, signed=1)
33 )
34
35 """Query single holding register, apply bitmask and bitshift left (extract bit1 from register)"""
36 print(
37 modbus.read_holding_register_formatted(
38 register_addr=43110, quantity=1, bitmask=0x2, bitshift=1
39 )
40 )
41
42
43if __name__ == "__main__":
44 main()