11from configparser import ConfigParser
22from time import sleep
3+ from typing import Any , Dict , List
34
45import click
56from influxdb_client import InfluxDBClient , Point
67from linien .client .connection import LinienClient , MHz , Vpp
78
89
910class LinienConnection :
10- def __init__ (self , host , username = "root" , password = "root" ):
11+ def __init__ (self , host : str , username : str = "root" , password : str = "root" ):
1112 self .client = LinienClient (
1213 {"host" : host , "username" : username , "password" : password }
1314 )
1415
15- def get_parameters (self , parameters ) :
16+ def get_parameters (self , parameters : List [ str ]) -> Dict [ str , Any ] :
1617
1718 # get the `signal_stats` parameter only once and only if required
1819 stats_suffices = ["_min" , "_max" , "_mean" , "_std" ]
@@ -59,7 +60,7 @@ def get_parameters(self, parameters):
5960 is_flag = True ,
6061 help = "Do not write the logged data to influxdb." ,
6162)
62- def main (config , print_only ):
63+ def main (config : str , print_only : bool ):
6364 """Logs Linien parameters according to the configuration in CONFIG ini file."""
6465 config_parser = ConfigParser (
6566 converters = {"list" : lambda x : [i .strip () for i in x .split ("," )]}
@@ -70,12 +71,12 @@ def main(config, print_only):
7071 bucket = config_parser ["influx2" ]["bucket" ]
7172 measurement = config_parser ["influx2" ]["measurement" ]
7273 interval = config_parser ["linien" ].getfloat ("interval" )
73- parameters = config_parser ["linien" ].getlist ("parameters" )
74+ requested_parameters = config_parser ["linien" ].getlist ("parameters" )
7475 host = config_parser ["linien" ]["host" ]
7576 username = config_parser ["linien" ]["username" ]
7677 password = config_parser ["linien" ]["password" ]
7778
78- if len (parameters ) == 1 and parameters [0 ] == "" :
79+ if len (requested_parameters ) == 1 and requested_parameters [0 ] == "" :
7980 raise ValueError (
8081 "No parameters requested. Add at least one parameter in the .ini file."
8182 )
@@ -87,15 +88,16 @@ def main(config, print_only):
8788 write_api = client .write_api ()
8889 while True :
8990 point = Point (measurement )
90- parameters = connection .get_parameters (parameters = parameters )
91+ parameters = connection .get_parameters (parameters = requested_parameters )
9192 print (parameters )
92- for key , value in parameters .items ():
93+ for key , value in requested_parameters .items ():
9394 point .field (key , value )
9495 write_api .write (bucket = bucket , record = point )
9596 sleep (interval )
9697 else :
9798 while True :
98- parameters = connection .get_parameters (parameters = parameters )
99+ parameters = connection .get_parameters (parameters = requested_parameters )
100+ print (parameters )
99101 sleep (interval )
100102
101103
0 commit comments