@@ -75,6 +75,10 @@ def __init__(self, port=None, baudrate=115200, pack_number=1, lifetime=10, log_n
75
75
"analog_timeout" : [time .perf_counter () + self .lifetime ] * pack_number ,
76
76
"alarm_timeout" : [time .perf_counter () + self .lifetime ] * pack_number }
77
77
78
+ self .stats = {"frame_count" : 0 ,
79
+ "error_analog" : [0 ]* self .pack_number ,
80
+ "error_alarm" : [0 ]* self .pack_number }
81
+
78
82
self .connect ()
79
83
self .thread = Thread (target = self .run , daemon = True )
80
84
self .thread .start ()
@@ -91,6 +95,8 @@ def run(self):
91
95
while True :
92
96
if self .com is None :
93
97
self .connect ()
98
+ else :
99
+ self .stats ['frame_count' ] += 1 # count read cycle
94
100
95
101
for i in range (self .pack_number ):
96
102
try :
@@ -105,6 +111,7 @@ def run(self):
105
111
self .log .error ("read_analog_value: io port failed" )
106
112
except Exception as e :
107
113
self .data_detail ['analog' ][i ] = None
114
+ self .stats ['error_analog' ][i ] += 1 # count error
108
115
self .log .debug ("EXCEPTION read_analog_value[{}] {}" .format (i , e ))
109
116
110
117
self .update ()
@@ -122,6 +129,7 @@ def run(self):
122
129
self .log .error ("read_alarm_info: io port failed" )
123
130
except Exception as e :
124
131
self .data_detail ['alarm' ][i ] = None
132
+ self .stats ['error_alarm' ][i ] += 1 # count error
125
133
self .log .debug ("EXCEPTION read_alarm_info[{}] {}" .format (i , e ))
126
134
127
135
self .update ()
@@ -130,6 +138,8 @@ def run(self):
130
138
131
139
132
140
141
+
142
+
133
143
def update (self ):
134
144
t = time .perf_counter ()
135
145
0 commit comments