2121
2222def run_forwarder ():
2323 """Run forwarder setup."""
24- port_server , port_client = get_commandline ()
24+ port_server , port_client , slaves = get_commandline ()
2525
2626 client = ModbusTcpClient (
2727 host = "localhost" ,
@@ -32,7 +32,12 @@ def run_forwarder():
3232 # in RemoteSlaveContext
3333 # For e.g to forward the requests to slave with unit address 1 use
3434 # store = RemoteSlaveContext(client, unit=1)
35- store = RemoteSlaveContext (client )
35+ if slaves :
36+ store = {}
37+ for i in slaves :
38+ store [i .to_bytes (1 , "big" )] = RemoteSlaveContext (client , unit = i )
39+ else :
40+ store = RemoteSlaveContext (client )
3641 context = ModbusServerContext (slaves = store , single = True )
3742
3843 # start forwarding client and server
@@ -68,6 +73,12 @@ def get_commandline():
6873 help = "the port to use" ,
6974 type = int ,
7075 )
76+ parser .add_argument (
77+ "--slaves" ,
78+ help = "list of slaves to forward" ,
79+ type = int ,
80+ nargs = "+" ,
81+ )
7182 args = parser .parse_args ()
7283
7384 # set defaults
@@ -77,7 +88,7 @@ def get_commandline():
7788 if not args .port_client :
7889 args .port_client = 5010
7990
80- return args .port , args .port_client
91+ return args .port , args .port_client , args . slaves
8192
8293
8394if __name__ == "__main__" :
0 commit comments