@@ -63,18 +63,18 @@ def __init__(self, daemon, retry, retry_delay, write_retry, write_retry_delay, r
63
63
self .raw_data ['serial_number' ] = self .determine_serial_number ()
64
64
if not self .raw_data ['serial_number' ]:
65
65
logging .error ("Failed to determine serial number. Exiting" )
66
- exit ( 1 )
66
+ self . terminate ( status_code = 1 )
67
67
self .raw_data ['model' ] = self .determine_model ()
68
68
self .raw_data ['protocol' ] = self .determine_modbus_protocol ()
69
69
70
70
if self .raw_data .get ('protocol' ) == "SOFAR-1-40KTL.json" :
71
71
logging .error ("Unsupported protocol detected. Exiting" )
72
- exit ( 1 )
72
+ self . terminate ( status_code = 1 )
73
73
74
74
protocol_file = self .raw_data .get ('protocol' )
75
75
if not os .path .isfile (protocol_file ):
76
76
logging .error (f"Protocol file { protocol_file } does not exist. Exiting" )
77
- exit ( 1 )
77
+ self . terminate ( status_code = 1 )
78
78
79
79
self .config = load_config (protocol_file )
80
80
self .write_registers = []
@@ -377,12 +377,12 @@ def signal_handler(self, sig, _frame):
377
377
logging .info (f"Received signal { sig } , attempting to stop" )
378
378
self .daemon = False
379
379
380
- def terminate (self ):
380
+ def terminate (self , status_code = 0 ):
381
381
logging .info ("Terminating" )
382
382
logging .info (f"Publishing offline to sofar2mqtt_python/bridge" )
383
383
self .client .publish ("sofar2mqtt_python/bridge" , "offline" , retain = False )
384
384
self .client .loop_stop ()
385
- exit (0 )
385
+ exit (status_code )
386
386
387
387
def main (self ):
388
388
""" Main method """
@@ -400,7 +400,7 @@ def main(self):
400
400
self .publish_state ()
401
401
time .sleep (self .refresh_interval )
402
402
self .iteration += 1
403
- self .terminate ()
403
+ self .terminate (status_code = 0 )
404
404
405
405
def write_register (self , register , value ):
406
406
""" Read value from register with a retry mechanism """
0 commit comments