@@ -57,7 +57,7 @@ def execute(self, request: ModbusRequest) -> ModbusResponse:
5757
5858 def read_coils (
5959 self , address : int , count : int = 1 , slave : int = 0 , ** kwargs : Any
60- ) -> pdu_bit_read . ReadCoilsResponse :
60+ ) -> ModbusResponse :
6161 """Read coils (code 0x01).
6262
6363 :param address: Start address to read from
@@ -72,7 +72,7 @@ def read_coils(
7272
7373 def read_discrete_inputs (
7474 self , address : int , count : int = 1 , slave : int = 0 , ** kwargs : Any
75- ) -> pdu_bit_read . ReadDiscreteInputsResponse :
75+ ) -> ModbusResponse :
7676 """Read discrete inputs (code 0x02).
7777
7878 :param address: Start address to read from
@@ -87,7 +87,7 @@ def read_discrete_inputs(
8787
8888 def read_holding_registers (
8989 self , address : int , count : int = 1 , slave : int = 0 , ** kwargs : Any
90- ) -> pdu_reg_read . ReadHoldingRegistersResponse :
90+ ) -> ModbusResponse :
9191 """Read holding registers (code 0x03).
9292
9393 :param address: Start address to read from
@@ -102,7 +102,7 @@ def read_holding_registers(
102102
103103 def read_input_registers (
104104 self , address : int , count : int = 1 , slave : int = 0 , ** kwargs : Any
105- ) -> pdu_reg_read . ReadInputRegistersResponse :
105+ ) -> ModbusResponse :
106106 """Read input registers (code 0x04).
107107
108108 :param address: Start address to read from
@@ -117,7 +117,7 @@ def read_input_registers(
117117
118118 def write_coil (
119119 self , address : int , value : bool , slave : int = 0 , ** kwargs : Any
120- ) -> pdu_bit_write . WriteSingleCoilResponse :
120+ ) -> ModbusResponse :
121121 """Write single coil (code 0x05).
122122
123123 :param address: Address to write to
@@ -131,8 +131,8 @@ def write_coil(
131131 )
132132
133133 def write_register (
134- self , address : int , value : Union [ int , float , str ] , slave : int = 0 , ** kwargs : Any
135- ) -> pdu_req_write . WriteSingleRegisterResponse :
134+ self , address : int , value : int , slave : int = 0 , ** kwargs : Any
135+ ) -> ModbusResponse :
136136 """Write register (code 0x06).
137137
138138 :param address: Address to write to
@@ -145,9 +145,7 @@ def write_register(
145145 pdu_req_write .WriteSingleRegisterRequest (address , value , slave , ** kwargs )
146146 )
147147
148- def read_exception_status (
149- self , slave : int = 0 , ** kwargs : Any
150- ) -> pdu_other_msg .ReadExceptionStatusResponse :
148+ def read_exception_status (self , slave : int = 0 , ** kwargs : Any ) -> ModbusResponse :
151149 """Read Exception Status (code 0x07).
152150
153151 :param slave: (optional) Modbus slave ID
@@ -158,7 +156,7 @@ def read_exception_status(
158156
159157 def diag_query_data (
160158 self , msg : bytearray , slave : int = 0 , ** kwargs : Any
161- ) -> pdu_diag . ReturnQueryDataResponse :
159+ ) -> ModbusResponse :
162160 """Diagnose query data (code 0x08 sub 0x00).
163161
164162 :param msg: Message to be returned
@@ -170,7 +168,7 @@ def diag_query_data(
170168
171169 def diag_restart_communication (
172170 self , toggle : bool , slave : int = 0 , ** kwargs : Any
173- ) -> pdu_diag . RestartCommunicationsOptionResponse :
171+ ) -> ModbusResponse :
174172 """Diagnose restart communication (code 0x08 sub 0x01).
175173
176174 :param toggle: True if toogled.
@@ -184,7 +182,7 @@ def diag_restart_communication(
184182
185183 def diag_read_diagnostic_register (
186184 self , slave : int = 0 , ** kwargs : Any
187- ) -> pdu_diag . ReturnDiagnosticRegisterResponse :
185+ ) -> ModbusResponse :
188186 """Diagnose read diagnostic register (code 0x08 sub 0x02).
189187
190188 :param slave: (optional) Modbus slave ID
@@ -195,7 +193,7 @@ def diag_read_diagnostic_register(
195193
196194 def diag_change_ascii_input_delimeter (
197195 self , slave : int = 0 , ** kwargs : Any
198- ) -> pdu_diag . ChangeAsciiInputDelimiterResponse :
196+ ) -> ModbusResponse :
199197 """Diagnose change ASCII input delimiter (code 0x08 sub 0x03).
200198
201199 :param slave: (optional) Modbus slave ID
@@ -204,9 +202,7 @@ def diag_change_ascii_input_delimeter(
204202 """
205203 return self .execute (pdu_diag .ChangeAsciiInputDelimiterRequest (slave , ** kwargs ))
206204
207- def diag_force_listen_only (
208- self , slave : int = 0 , ** kwargs : Any
209- ) -> pdu_diag .ForceListenOnlyModeResponse :
205+ def diag_force_listen_only (self , slave : int = 0 , ** kwargs : Any ) -> ModbusResponse :
210206 """Diagnose force listen only (code 0x08 sub 0x04).
211207
212208 :param slave: (optional) Modbus slave ID
@@ -215,9 +211,7 @@ def diag_force_listen_only(
215211 """
216212 return self .execute (pdu_diag .ForceListenOnlyModeRequest (slave , ** kwargs ))
217213
218- def diag_clear_counters (
219- self , slave : int = 0 , ** kwargs : Any
220- ) -> pdu_diag .ClearCountersResponse :
214+ def diag_clear_counters (self , slave : int = 0 , ** kwargs : Any ) -> ModbusResponse :
221215 """Diagnose clear counters (code 0x08 sub 0x0A).
222216
223217 :param slave: (optional) Modbus slave ID
@@ -228,7 +222,7 @@ def diag_clear_counters(
228222
229223 def diag_read_bus_message_count (
230224 self , slave : int = 0 , ** kwargs : Any
231- ) -> pdu_diag . ReturnBusMessageCountResponse :
225+ ) -> ModbusResponse :
232226 """Diagnose read bus message count (code 0x08 sub 0x0B).
233227
234228 :param slave: (optional) Modbus slave ID
@@ -239,7 +233,7 @@ def diag_read_bus_message_count(
239233
240234 def diag_read_bus_comm_error_count (
241235 self , slave : int = 0 , ** kwargs : Any
242- ) -> pdu_diag . ReturnBusCommunicationErrorCountResponse :
236+ ) -> ModbusResponse :
243237 """Diagnose read Bus Communication Error Count (code 0x08 sub 0x0C).
244238
245239 :param slave: (optional) Modbus slave ID
@@ -252,7 +246,7 @@ def diag_read_bus_comm_error_count(
252246
253247 def diag_read_bus_exception_error_count (
254248 self , slave : int = 0 , ** kwargs : Any
255- ) -> pdu_diag . ReturnBusExceptionErrorCountResponse :
249+ ) -> ModbusResponse :
256250 """Diagnose read Bus Exception Error Count (code 0x08 sub 0x0D).
257251
258252 :param slave: (optional) Modbus slave ID
@@ -265,7 +259,7 @@ def diag_read_bus_exception_error_count(
265259
266260 def diag_read_slave_message_count (
267261 self , slave : int = 0 , ** kwargs : Any
268- ) -> pdu_diag . ReturnSlaveMessageCountResponse :
262+ ) -> ModbusResponse :
269263 """Diagnose read Slave Message Count (code 0x08 sub 0x0E).
270264
271265 :param slave: (optional) Modbus slave ID
@@ -276,7 +270,7 @@ def diag_read_slave_message_count(
276270
277271 def diag_read_slave_no_response_count (
278272 self , slave : int = 0 , ** kwargs : Any
279- ) -> pdu_diag . ReturnSlaveNoResponseCountResponse :
273+ ) -> ModbusResponse :
280274 """Diagnose read Slave No Response Count (code 0x08 sub 0x0F).
281275
282276 :param slave: (optional) Modbus slave ID
@@ -287,7 +281,7 @@ def diag_read_slave_no_response_count(
287281
288282 def diag_read_slave_nak_count (
289283 self , slave : int = 0 , ** kwargs : Any
290- ) -> pdu_diag . ReturnSlaveNAKCountResponse :
284+ ) -> ModbusResponse :
291285 """Diagnose read Slave NAK Count (code 0x08 sub 0x10).
292286
293287 :param slave: (optional) Modbus slave ID
@@ -298,7 +292,7 @@ def diag_read_slave_nak_count(
298292
299293 def diag_read_slave_busy_count (
300294 self , slave : int = 0 , ** kwargs : Any
301- ) -> pdu_diag . ReturnSlaveBusyCountResponse :
295+ ) -> ModbusResponse :
302296 """Diagnose read Slave Busy Count (code 0x08 sub 0x11).
303297
304298 :param slave: (optional) Modbus slave ID
@@ -309,7 +303,7 @@ def diag_read_slave_busy_count(
309303
310304 def diag_read_bus_char_overrun_count (
311305 self , slave : int = 0 , ** kwargs : Any
312- ) -> pdu_diag . ReturnSlaveBusCharacterOverrunCountResponse :
306+ ) -> ModbusResponse :
313307 """Diagnose read Bus Character Overrun Count (code 0x08 sub 0x12).
314308
315309 :param slave: (optional) Modbus slave ID
@@ -322,7 +316,7 @@ def diag_read_bus_char_overrun_count(
322316
323317 def diag_read_iop_overrun_count (
324318 self , slave : int = 0 , ** kwargs : Any
325- ) -> pdu_diag . ReturnIopOverrunCountResponse :
319+ ) -> ModbusResponse :
326320 """Diagnose read Iop overrun count (code 0x08 sub 0x13).
327321
328322 :param slave: (optional) Modbus slave ID
@@ -333,7 +327,7 @@ def diag_read_iop_overrun_count(
333327
334328 def diag_clear_overrun_counter (
335329 self , slave : int = 0 , ** kwargs : Any
336- ) -> pdu_diag . ClearOverrunCountResponse :
330+ ) -> ModbusResponse :
337331 """Diagnose Clear Overrun Counter and Flag (code 0x08 sub 0x14).
338332
339333 :param slave: (optional) Modbus slave ID
@@ -344,7 +338,7 @@ def diag_clear_overrun_counter(
344338
345339 def diag_getclear_modbus_response (
346340 self , slave : int = 0 , ** kwargs : Any
347- ) -> pdu_diag . GetClearModbusPlusResponse :
341+ ) -> ModbusResponse :
348342 """Diagnose Get/Clear modbus plus (code 0x08 sub 0x15).
349343
350344 :param slave: (optional) Modbus slave ID
@@ -353,19 +347,15 @@ def diag_getclear_modbus_response(
353347 """
354348 return self .execute (pdu_diag .GetClearModbusPlusRequest (slave , ** kwargs ))
355349
356- def diag_get_comm_event_counter (
357- self , ** kwargs : Any
358- ) -> pdu_other_msg .GetCommEventCounterResponse :
350+ def diag_get_comm_event_counter (self , ** kwargs : Any ) -> ModbusResponse :
359351 """Diagnose get event counter (code 0x0B).
360352
361353 :param kwargs: (optional) Experimental parameters.
362354 :raises ModbusException:
363355 """
364356 return self .execute (pdu_other_msg .GetCommEventCounterRequest (** kwargs ))
365357
366- def diag_get_comm_event_log (
367- self , ** kwargs : Any
368- ) -> pdu_other_msg .GetCommEventLogResponse :
358+ def diag_get_comm_event_log (self , ** kwargs : Any ) -> ModbusResponse :
369359 """Diagnose get event counter (code 0x0C).
370360
371361 :param kwargs: (optional) Experimental parameters.
@@ -374,12 +364,16 @@ def diag_get_comm_event_log(
374364 return self .execute (pdu_other_msg .GetCommEventLogRequest (** kwargs ))
375365
376366 def write_coils (
377- self , address : int , values : List [bool ], slave : int = 0 , ** kwargs : Any
378- ) -> pdu_bit_write .WriteMultipleCoilsResponse :
367+ self ,
368+ address : int ,
369+ values : Union [List [bool ], bool ],
370+ slave : int = 0 ,
371+ ** kwargs : Any
372+ ) -> ModbusResponse :
379373 """Write coils (code 0x0F).
380374
381375 :param address: Start address to write to
382- :param values: List of booleans to write
376+ :param values: List of booleans to write, or a single boolean to write
383377 :param slave: (optional) Modbus slave ID
384378 :param kwargs: (optional) Experimental parameters.
385379 :raises ModbusException:
@@ -389,16 +383,12 @@ def write_coils(
389383 )
390384
391385 def write_registers (
392- self ,
393- address : int ,
394- values : List [Union [int , float , str ]],
395- slave : int = 0 ,
396- ** kwargs : Any
397- ) -> pdu_req_write .WriteMultipleRegistersResponse :
386+ self , address : int , values : Union [List [int ], int ], slave : int = 0 , ** kwargs : Any
387+ ) -> ModbusResponse :
398388 """Write registers (code 0x10).
399389
400390 :param address: Start address to write to
401- :param values: List of booleans to write
391+ :param values: List of values to write, or a single value to write
402392 :param slave: (optional) Modbus slave unit ID
403393 :param kwargs: (optional) Experimental parameters.
404394 :raises ModbusException:
@@ -409,9 +399,7 @@ def write_registers(
409399 )
410400 )
411401
412- def report_slave_id (
413- self , slave : int = 0 , ** kwargs : Any
414- ) -> pdu_other_msg .ReportSlaveIdResponse :
402+ def report_slave_id (self , slave : int = 0 , ** kwargs : Any ) -> ModbusResponse :
415403 """Report slave ID (code 0x11).
416404
417405 :param slave: (optional) Modbus slave unit ID
@@ -420,9 +408,7 @@ def report_slave_id(
420408 """
421409 return self .execute (pdu_other_msg .ReportSlaveIdRequest (slave , ** kwargs ))
422410
423- def read_file_record (
424- self , records : List [Tuple ], ** kwargs : Any
425- ) -> pdu_file_msg .ReadFileRecordResponse :
411+ def read_file_record (self , records : List [Tuple ], ** kwargs : Any ) -> ModbusResponse :
426412 """Read file record (code 0x14).
427413
428414 :param records: List of (Reference type, File number, Record Number, Record Length)
@@ -431,9 +417,7 @@ def read_file_record(
431417 """
432418 return self .execute (pdu_file_msg .ReadFileRecordRequest (records , ** kwargs ))
433419
434- def write_file_record (
435- self , records : List [Tuple ], ** kwargs : Any
436- ) -> pdu_file_msg .ReadFileRecordResponse :
420+ def write_file_record (self , records : List [Tuple ], ** kwargs : Any ) -> ModbusResponse :
437421 """Write file record (code 0x15).
438422
439423 :param records: List of (Reference type, File number, Record Number, Record Length)
@@ -448,7 +432,7 @@ def mask_write_register(
448432 and_mask : int = 0xFFFF ,
449433 or_mask : int = 0x0000 ,
450434 ** kwargs : Any
451- ) -> pdu_req_write . MaskWriteRegisterResponse :
435+ ) -> ModbusResponse :
452436 """Mask write register (code 0x16).
453437
454438 :param address: The mask pointer address (0x0000 to 0xffff)
@@ -466,16 +450,16 @@ def readwrite_registers(
466450 read_address : int = 0 ,
467451 read_count : int = 0 ,
468452 write_address : int = 0 ,
469- values : int = 0 ,
453+ values : Union [ List [ int ], int ] = 0 ,
470454 slave : int = 0 ,
471455 ** kwargs
472- ) -> pdu_reg_read . ReadWriteMultipleRegistersResponse :
456+ ) -> ModbusResponse :
473457 """Read/Write registers (code 0x17).
474458
475459 :param read_address: The address to start reading from
476460 :param read_count: The number of registers to read from address
477461 :param write_address: The address to start writing to
478- :param values: The registers to write to the specified address
462+ :param values: List of values to write, or a single value to write
479463 :param slave: (optional) Modbus slave unit ID
480464 :param kwargs:
481465 :raises ModbusException:
@@ -491,9 +475,7 @@ def readwrite_registers(
491475 )
492476 )
493477
494- def read_fifo_queue (
495- self , address : int = 0x0000 , ** kwargs : Any
496- ) -> pdu_file_msg .ReadFifoQueueResponse :
478+ def read_fifo_queue (self , address : int = 0x0000 , ** kwargs : Any ) -> ModbusResponse :
497479 """Read FIFO queue (code 0x18).
498480
499481 :param address: The address to start reading from
@@ -506,7 +488,7 @@ def read_fifo_queue(
506488
507489 def read_device_information (
508490 self , read_code : int = None , object_id : int = 0x00 , ** kwargs : Any
509- ) -> pdu_mei . ReadDeviceInformationResponse :
491+ ) -> ModbusResponse :
510492 """Read FIFO queue (code 0x2B sub 0x0E).
511493
512494 :param read_code: The device information read code
0 commit comments