@@ -17,12 +17,14 @@ class RemoteSlaveContext(IModbusSlaveContext):
1717 a remote device (depending on the client used)
1818 '''
1919
20- def __init__ (self , client ):
20+ def __init__ (self , client , unit = None ):
2121 ''' Initializes the datastores
2222
2323 :param client: The client to retrieve values with
24+ :param unit: Unit ID of the remote slave
2425 '''
2526 self ._client = client
27+ self .unit = unit
2628 self .__build_mapping ()
2729
2830 def reset (self ):
@@ -77,17 +79,20 @@ def __build_mapping(self):
7779 A quick helper method to build the function
7880 code mapper.
7981 '''
82+ kwargs = {}
83+ if self .unit :
84+ kwargs ["unit" ] = self .unit
8085 self .__get_callbacks = {
81- 'd' : lambda a , c : self ._client .read_discrete_inputs (a , c ),
82- 'c' : lambda a , c : self ._client .read_coils (a , c ),
83- 'h' : lambda a , c : self ._client .read_holding_registers (a , c ),
84- 'i' : lambda a , c : self ._client .read_input_registers (a , c ),
86+ 'd' : lambda a , c : self ._client .read_discrete_inputs (a , c , ** kwargs ),
87+ 'c' : lambda a , c : self ._client .read_coils (a , c , ** kwargs ),
88+ 'h' : lambda a , c : self ._client .read_holding_registers (a , c , ** kwargs ),
89+ 'i' : lambda a , c : self ._client .read_input_registers (a , c , ** kwargs ),
8590 }
8691 self .__set_callbacks = {
87- 'd' : lambda a , v : self ._client .write_coils (a , v ),
88- 'c' : lambda a , v : self ._client .write_coils (a , v ),
89- 'h' : lambda a , v : self ._client .write_registers (a , v ),
90- 'i' : lambda a , v : self ._client .write_registers (a , v ),
92+ 'd' : lambda a , v : self ._client .write_coils (a , v , ** kwargs ),
93+ 'c' : lambda a , v : self ._client .write_coils (a , v , ** kwargs ),
94+ 'h' : lambda a , v : self ._client .write_registers (a , v , ** kwargs ),
95+ 'i' : lambda a , v : self ._client .write_registers (a , v , ** kwargs ),
9196 }
9297
9398 def __extract_result (self , fx , result ):
0 commit comments