@@ -54,7 +54,7 @@ class ModbusDataBank:
54
54
:param kwargs: Configuration
55
55
"""
56
56
57
- def __init__ (self , ** kwargs ):
57
+ def __init__ (self , ** kwargs ) -> None :
58
58
self ._data = kwargs ["data" ]
59
59
self ._start_addr = kwargs ["start_addr" ]
60
60
@@ -74,7 +74,7 @@ def get(self, addr, count):
74
74
raise IndexError ("Invalid address range [{:#06x} - {:#06x}]" .format (addr , addr + count ))
75
75
return data
76
76
77
- def set (self , addr , values ):
77
+ def set (self , addr , values ) -> None :
78
78
"""
79
79
Write list ``values`` to ``addr`` memory location in DataBank.
80
80
@@ -109,7 +109,7 @@ class ModbusBasicDataBank(ModbusDataBank):
109
109
:param last_addr: Last valid address
110
110
"""
111
111
112
- def __init__ (self , default_value = 0 , start_addr = 0x0000 , last_addr = 0xFFFF ):
112
+ def __init__ (self , default_value = 0 , start_addr = 0x0000 , last_addr = 0xFFFF ) -> None :
113
113
super (ModbusBasicDataBank , self ).__init__ (
114
114
start_addr = start_addr , data = [default_value ] * (last_addr - start_addr + 1 )
115
115
)
@@ -118,7 +118,7 @@ def __init__(self, default_value=0, start_addr=0x0000, last_addr=0xFFFF):
118
118
class ModbusDataStore :
119
119
"""Convenience struct to hold the four types of DataBanks in Modbus"""
120
120
121
- def __init__ (self , di = None , co = None , ir = None , hr = None ):
121
+ def __init__ (self , di = None , co = None , ir = None , hr = None ) -> None :
122
122
self .di = di
123
123
self .co = co
124
124
self .ir = ir
@@ -154,7 +154,7 @@ class ModbusTCPFrame:
154
154
:except EOFError: Not enough data for complete frame; no data consumed.
155
155
"""
156
156
157
- def __init__ (self , stream = None ):
157
+ def __init__ (self , stream = None ) -> None :
158
158
self .transaction_id = 0
159
159
self .protocol_id = 0
160
160
self .length = 2
@@ -165,7 +165,7 @@ def __init__(self, stream=None):
165
165
if stream is not None :
166
166
self .from_bytearray (stream )
167
167
168
- def from_bytearray (self , stream ):
168
+ def from_bytearray (self , stream ) -> None :
169
169
"""
170
170
Constructs this frame from input data stream, consuming as many bytes as necessary from
171
171
the beginning of the stream.
@@ -273,7 +273,7 @@ class ModbusProtocol:
273
273
:param datastore: ModbusDataStore instance to reference when processing requests
274
274
"""
275
275
276
- def __init__ (self , sender , datastore ):
276
+ def __init__ (self , sender , datastore ) -> None :
277
277
self ._buffer = bytearray ()
278
278
self ._datastore = datastore
279
279
self ._send = lambda req : sender (req .to_bytearray ())
@@ -290,7 +290,7 @@ def __init__(self, sender, datastore):
290
290
0x10 : self ._handle_write_multiple_registers ,
291
291
}
292
292
293
- def process (self , data , device_lock ):
293
+ def process (self , data , device_lock ) -> None :
294
294
"""
295
295
Process as much of given data as possible.
296
296
@@ -530,7 +530,7 @@ def _handle_write_multiple_registers(self, request):
530
530
531
531
@has_log
532
532
class ModbusHandler (asyncore .dispatcher_with_send ):
533
- def __init__ (self , sock , interface , server ):
533
+ def __init__ (self , sock , interface , server ) -> None :
534
534
asyncore .dispatcher_with_send .__init__ (self , sock = sock )
535
535
self ._datastore = ModbusDataStore (interface .di , interface .co , interface .ir , interface .hr )
536
536
self ._modbus = ModbusProtocol (self .send , self ._datastore )
@@ -539,19 +539,19 @@ def __init__(self, sock, interface, server):
539
539
self ._set_logging_context (interface )
540
540
self .log .info ("Client connected from %s:%s" , * sock .getpeername ())
541
541
542
- def handle_read (self ):
542
+ def handle_read (self ) -> None :
543
543
data = self .recv (8192 )
544
544
self ._modbus .process (data , self ._server .device_lock )
545
545
546
- def handle_close (self ):
546
+ def handle_close (self ) -> None :
547
547
self .log .info ("Closing connection to client %s:%s" , * self .socket .getpeername ())
548
548
self ._server .remove_handler (self )
549
549
self .close ()
550
550
551
551
552
552
@has_log
553
553
class ModbusServer (asyncore .dispatcher ):
554
- def __init__ (self , host , port , interface , device_lock ):
554
+ def __init__ (self , host , port , interface , device_lock ) -> None :
555
555
asyncore .dispatcher .__init__ (self )
556
556
self .device_lock = device_lock
557
557
self .interface = interface
@@ -565,17 +565,17 @@ def __init__(self, host, port, interface, device_lock):
565
565
566
566
self ._accepted_connections = []
567
567
568
- def handle_accept (self ):
568
+ def handle_accept (self ) -> None :
569
569
pair = self .accept ()
570
570
if pair is not None :
571
571
sock , _ = pair
572
572
handler = ModbusHandler (sock , self .interface , self )
573
573
self ._accepted_connections .append (handler )
574
574
575
- def remove_handler (self , handler ):
575
+ def remove_handler (self , handler ) -> None :
576
576
self ._accepted_connections .remove (handler )
577
577
578
- def handle_close (self ):
578
+ def handle_close (self ) -> None :
579
579
self .log .info ("Shutting down server, closing all remaining client connections." )
580
580
581
581
for handler in self ._accepted_connections :
@@ -587,19 +587,19 @@ def handle_close(self):
587
587
class ModbusAdapter (Adapter ):
588
588
default_options = {"bind_address" : "0.0.0.0" , "port" : 502 }
589
589
590
- def __init__ (self , options = None ):
590
+ def __init__ (self , options = None ) -> None :
591
591
super (ModbusAdapter , self ).__init__ (options )
592
592
self ._server = None
593
593
594
- def start_server (self ):
594
+ def start_server (self ) -> None :
595
595
self ._server = ModbusServer (
596
596
self ._options .bind_address ,
597
597
self ._options .port ,
598
598
self .interface ,
599
599
self .device_lock ,
600
600
)
601
601
602
- def stop_server (self ):
602
+ def stop_server (self ) -> None :
603
603
if self ._server is not None :
604
604
self ._server .close ()
605
605
self ._server = None
@@ -608,7 +608,7 @@ def stop_server(self):
608
608
def is_running (self ):
609
609
return self ._server is not None
610
610
611
- def handle (self , cycle_delay = 0.1 ):
611
+ def handle (self , cycle_delay = 0.1 ) -> None :
612
612
asyncore .loop (cycle_delay , count = 1 )
613
613
614
614
0 commit comments