@@ -99,24 +99,24 @@ async def start_tcp_server(host, port, backlog) -> Tuple[ModbusTCP, asyncio.Task
99
99
return client , task
100
100
101
101
102
- def create_servers (parameters : Dict [str , Any ]) -> Tuple [Tuple [ModbusTCP , ModbusRTU ],
103
- Tuple [asyncio .Task , asyncio .Task ]]:
102
+ async def create_servers (parameters : Dict [str , Any ]) -> Tuple [Tuple [ModbusTCP , ModbusRTU ],
103
+ Tuple [asyncio .Task , asyncio .Task ]]:
104
104
"""Creates TCP and RTU servers based on the supplied parameters."""
105
105
106
106
# create TCP server task
107
- tcp_server , tcp_task = start_tcp_server (parameters ['local_ip' ],
108
- parameters ['tcp_port' ],
109
- parameters ['backlog' ])
107
+ tcp_server , tcp_task = await start_tcp_server (parameters ['local_ip' ],
108
+ parameters ['tcp_port' ],
109
+ parameters ['backlog' ])
110
110
111
111
# create RTU server task
112
- rtu_server , rtu_task = start_rtu_server (addr = parameters ['slave_addr' ],
113
- pins = parameters ['rtu_pins' ], # given as tuple (TX, RX)
114
- baudrate = parameters ['baudrate' ], # optional, default 9600
115
- # data_bits=8, # optional, default 8
116
- # stop_bits=1, # optional, default 1
117
- # parity=None, # optional, default None
118
- # ctrl_pin=12, # optional, control DE/RE
119
- uart_id = parameters ['uart_id' ]) # optional, default 1, see port specific docs
112
+ rtu_server , rtu_task = await start_rtu_server (addr = parameters ['slave_addr' ],
113
+ pins = parameters ['rtu_pins' ], # given as tuple (TX, RX)
114
+ baudrate = parameters ['baudrate' ], # optional, default 9600
115
+ # data_bits=8, # optional, default 8
116
+ # stop_bits=1, # optional, default 1
117
+ # parity=None, # optional, default None
118
+ # ctrl_pin=12, # optional, control DE/RE
119
+ uart_id = parameters ['uart_id' ]) # optional, default 1, see port specific docs
120
120
121
121
# combine both tasks
122
122
return (tcp_server , rtu_server ), (tcp_task , rtu_task )
@@ -134,7 +134,7 @@ async def start_servers(initial_params, final_params):
134
134
tcp_task : asyncio .Task
135
135
rtu_task : asyncio .Task
136
136
137
- (tcp_server , rtu_server ), (tcp_task , rtu_task ) = create_servers (initial_params )
137
+ (tcp_server , rtu_server ), (tcp_task , rtu_task ) = await create_servers (initial_params )
138
138
139
139
# wait for 5 minutes before stopping the RTU server
140
140
await asyncio .sleep (300 )
@@ -172,7 +172,7 @@ async def start_servers(initial_params, final_params):
172
172
pass
173
173
174
174
print ("Creating new server" )
175
- (tcp_server , rtu_server ), (tcp_task , rtu_task ) = create_servers (final_params )
175
+ (tcp_server , rtu_server ), (tcp_task , rtu_task ) = await create_servers (final_params )
176
176
177
177
await asyncio .gather (tcp_task , rtu_task )
178
178
0 commit comments