diff --git a/pymodbus/client/mixin.py b/pymodbus/client/mixin.py index ac0c55911..38a93f0c9 100644 --- a/pymodbus/client/mixin.py +++ b/pymodbus/client/mixin.py @@ -57,7 +57,7 @@ def execute(self, request: ModbusRequest) -> ModbusResponse: def read_coils( self, address: int, count: int = 1, slave: int = 0, **kwargs: Any - ) -> pdu_bit_read.ReadCoilsResponse: + ) -> ModbusResponse: """Read coils (code 0x01). :param address: Start address to read from @@ -72,7 +72,7 @@ def read_coils( def read_discrete_inputs( self, address: int, count: int = 1, slave: int = 0, **kwargs: Any - ) -> pdu_bit_read.ReadDiscreteInputsResponse: + ) -> ModbusResponse: """Read discrete inputs (code 0x02). :param address: Start address to read from @@ -87,7 +87,7 @@ def read_discrete_inputs( def read_holding_registers( self, address: int, count: int = 1, slave: int = 0, **kwargs: Any - ) -> pdu_reg_read.ReadHoldingRegistersResponse: + ) -> ModbusResponse: """Read holding registers (code 0x03). :param address: Start address to read from @@ -102,7 +102,7 @@ def read_holding_registers( def read_input_registers( self, address: int, count: int = 1, slave: int = 0, **kwargs: Any - ) -> pdu_reg_read.ReadInputRegistersResponse: + ) -> ModbusResponse: """Read input registers (code 0x04). :param address: Start address to read from @@ -117,7 +117,7 @@ def read_input_registers( def write_coil( self, address: int, value: bool, slave: int = 0, **kwargs: Any - ) -> pdu_bit_write.WriteSingleCoilResponse: + ) -> ModbusResponse: """Write single coil (code 0x05). :param address: Address to write to @@ -131,8 +131,8 @@ def write_coil( ) def write_register( - self, address: int, value: Union[int, float, str], slave: int = 0, **kwargs: Any - ) -> pdu_req_write.WriteSingleRegisterResponse: + self, address: int, value: int, slave: int = 0, **kwargs: Any + ) -> ModbusResponse: """Write register (code 0x06). :param address: Address to write to @@ -145,9 +145,7 @@ def write_register( pdu_req_write.WriteSingleRegisterRequest(address, value, slave, **kwargs) ) - def read_exception_status( - self, slave: int = 0, **kwargs: Any - ) -> pdu_other_msg.ReadExceptionStatusResponse: + def read_exception_status(self, slave: int = 0, **kwargs: Any) -> ModbusResponse: """Read Exception Status (code 0x07). :param slave: (optional) Modbus slave ID @@ -158,7 +156,7 @@ def read_exception_status( def diag_query_data( self, msg: bytearray, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ReturnQueryDataResponse: + ) -> ModbusResponse: """Diagnose query data (code 0x08 sub 0x00). :param msg: Message to be returned @@ -170,7 +168,7 @@ def diag_query_data( def diag_restart_communication( self, toggle: bool, slave: int = 0, **kwargs: Any - ) -> pdu_diag.RestartCommunicationsOptionResponse: + ) -> ModbusResponse: """Diagnose restart communication (code 0x08 sub 0x01). :param toggle: True if toogled. @@ -184,7 +182,7 @@ def diag_restart_communication( def diag_read_diagnostic_register( self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ReturnDiagnosticRegisterResponse: + ) -> ModbusResponse: """Diagnose read diagnostic register (code 0x08 sub 0x02). :param slave: (optional) Modbus slave ID @@ -195,7 +193,7 @@ def diag_read_diagnostic_register( def diag_change_ascii_input_delimeter( self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ChangeAsciiInputDelimiterResponse: + ) -> ModbusResponse: """Diagnose change ASCII input delimiter (code 0x08 sub 0x03). :param slave: (optional) Modbus slave ID @@ -204,9 +202,7 @@ def diag_change_ascii_input_delimeter( """ return self.execute(pdu_diag.ChangeAsciiInputDelimiterRequest(slave, **kwargs)) - def diag_force_listen_only( - self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ForceListenOnlyModeResponse: + def diag_force_listen_only(self, slave: int = 0, **kwargs: Any) -> ModbusResponse: """Diagnose force listen only (code 0x08 sub 0x04). :param slave: (optional) Modbus slave ID @@ -215,9 +211,7 @@ def diag_force_listen_only( """ return self.execute(pdu_diag.ForceListenOnlyModeRequest(slave, **kwargs)) - def diag_clear_counters( - self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ClearCountersResponse: + def diag_clear_counters(self, slave: int = 0, **kwargs: Any) -> ModbusResponse: """Diagnose clear counters (code 0x08 sub 0x0A). :param slave: (optional) Modbus slave ID @@ -228,7 +222,7 @@ def diag_clear_counters( def diag_read_bus_message_count( self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ReturnBusMessageCountResponse: + ) -> ModbusResponse: """Diagnose read bus message count (code 0x08 sub 0x0B). :param slave: (optional) Modbus slave ID @@ -239,7 +233,7 @@ def diag_read_bus_message_count( def diag_read_bus_comm_error_count( self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ReturnBusCommunicationErrorCountResponse: + ) -> ModbusResponse: """Diagnose read Bus Communication Error Count (code 0x08 sub 0x0C). :param slave: (optional) Modbus slave ID @@ -252,7 +246,7 @@ def diag_read_bus_comm_error_count( def diag_read_bus_exception_error_count( self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ReturnBusExceptionErrorCountResponse: + ) -> ModbusResponse: """Diagnose read Bus Exception Error Count (code 0x08 sub 0x0D). :param slave: (optional) Modbus slave ID @@ -265,7 +259,7 @@ def diag_read_bus_exception_error_count( def diag_read_slave_message_count( self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ReturnSlaveMessageCountResponse: + ) -> ModbusResponse: """Diagnose read Slave Message Count (code 0x08 sub 0x0E). :param slave: (optional) Modbus slave ID @@ -276,7 +270,7 @@ def diag_read_slave_message_count( def diag_read_slave_no_response_count( self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ReturnSlaveNoResponseCountResponse: + ) -> ModbusResponse: """Diagnose read Slave No Response Count (code 0x08 sub 0x0F). :param slave: (optional) Modbus slave ID @@ -287,7 +281,7 @@ def diag_read_slave_no_response_count( def diag_read_slave_nak_count( self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ReturnSlaveNAKCountResponse: + ) -> ModbusResponse: """Diagnose read Slave NAK Count (code 0x08 sub 0x10). :param slave: (optional) Modbus slave ID @@ -298,7 +292,7 @@ def diag_read_slave_nak_count( def diag_read_slave_busy_count( self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ReturnSlaveBusyCountResponse: + ) -> ModbusResponse: """Diagnose read Slave Busy Count (code 0x08 sub 0x11). :param slave: (optional) Modbus slave ID @@ -309,7 +303,7 @@ def diag_read_slave_busy_count( def diag_read_bus_char_overrun_count( self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ReturnSlaveBusCharacterOverrunCountResponse: + ) -> ModbusResponse: """Diagnose read Bus Character Overrun Count (code 0x08 sub 0x12). :param slave: (optional) Modbus slave ID @@ -322,7 +316,7 @@ def diag_read_bus_char_overrun_count( def diag_read_iop_overrun_count( self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ReturnIopOverrunCountResponse: + ) -> ModbusResponse: """Diagnose read Iop overrun count (code 0x08 sub 0x13). :param slave: (optional) Modbus slave ID @@ -333,7 +327,7 @@ def diag_read_iop_overrun_count( def diag_clear_overrun_counter( self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.ClearOverrunCountResponse: + ) -> ModbusResponse: """Diagnose Clear Overrun Counter and Flag (code 0x08 sub 0x14). :param slave: (optional) Modbus slave ID @@ -344,7 +338,7 @@ def diag_clear_overrun_counter( def diag_getclear_modbus_response( self, slave: int = 0, **kwargs: Any - ) -> pdu_diag.GetClearModbusPlusResponse: + ) -> ModbusResponse: """Diagnose Get/Clear modbus plus (code 0x08 sub 0x15). :param slave: (optional) Modbus slave ID @@ -353,9 +347,7 @@ def diag_getclear_modbus_response( """ return self.execute(pdu_diag.GetClearModbusPlusRequest(slave, **kwargs)) - def diag_get_comm_event_counter( - self, **kwargs: Any - ) -> pdu_other_msg.GetCommEventCounterResponse: + def diag_get_comm_event_counter(self, **kwargs: Any) -> ModbusResponse: """Diagnose get event counter (code 0x0B). :param kwargs: (optional) Experimental parameters. @@ -363,9 +355,7 @@ def diag_get_comm_event_counter( """ return self.execute(pdu_other_msg.GetCommEventCounterRequest(**kwargs)) - def diag_get_comm_event_log( - self, **kwargs: Any - ) -> pdu_other_msg.GetCommEventLogResponse: + def diag_get_comm_event_log(self, **kwargs: Any) -> ModbusResponse: """Diagnose get event counter (code 0x0C). :param kwargs: (optional) Experimental parameters. @@ -374,12 +364,16 @@ def diag_get_comm_event_log( return self.execute(pdu_other_msg.GetCommEventLogRequest(**kwargs)) def write_coils( - self, address: int, values: List[bool], slave: int = 0, **kwargs: Any - ) -> pdu_bit_write.WriteMultipleCoilsResponse: + self, + address: int, + values: Union[List[bool], bool], + slave: int = 0, + **kwargs: Any + ) -> ModbusResponse: """Write coils (code 0x0F). :param address: Start address to write to - :param values: List of booleans to write + :param values: List of booleans to write, or a single boolean to write :param slave: (optional) Modbus slave ID :param kwargs: (optional) Experimental parameters. :raises ModbusException: @@ -389,16 +383,12 @@ def write_coils( ) def write_registers( - self, - address: int, - values: List[Union[int, float, str]], - slave: int = 0, - **kwargs: Any - ) -> pdu_req_write.WriteMultipleRegistersResponse: + self, address: int, values: Union[List[int], int], slave: int = 0, **kwargs: Any + ) -> ModbusResponse: """Write registers (code 0x10). :param address: Start address to write to - :param values: List of booleans to write + :param values: List of values to write, or a single value to write :param slave: (optional) Modbus slave unit ID :param kwargs: (optional) Experimental parameters. :raises ModbusException: @@ -409,9 +399,7 @@ def write_registers( ) ) - def report_slave_id( - self, slave: int = 0, **kwargs: Any - ) -> pdu_other_msg.ReportSlaveIdResponse: + def report_slave_id(self, slave: int = 0, **kwargs: Any) -> ModbusResponse: """Report slave ID (code 0x11). :param slave: (optional) Modbus slave unit ID @@ -420,9 +408,7 @@ def report_slave_id( """ return self.execute(pdu_other_msg.ReportSlaveIdRequest(slave, **kwargs)) - def read_file_record( - self, records: List[Tuple], **kwargs: Any - ) -> pdu_file_msg.ReadFileRecordResponse: + def read_file_record(self, records: List[Tuple], **kwargs: Any) -> ModbusResponse: """Read file record (code 0x14). :param records: List of (Reference type, File number, Record Number, Record Length) @@ -431,9 +417,7 @@ def read_file_record( """ return self.execute(pdu_file_msg.ReadFileRecordRequest(records, **kwargs)) - def write_file_record( - self, records: List[Tuple], **kwargs: Any - ) -> pdu_file_msg.ReadFileRecordResponse: + def write_file_record(self, records: List[Tuple], **kwargs: Any) -> ModbusResponse: """Write file record (code 0x15). :param records: List of (Reference type, File number, Record Number, Record Length) @@ -448,7 +432,7 @@ def mask_write_register( and_mask: int = 0xFFFF, or_mask: int = 0x0000, **kwargs: Any - ) -> pdu_req_write.MaskWriteRegisterResponse: + ) -> ModbusResponse: """Mask write register (code 0x16). :param address: The mask pointer address (0x0000 to 0xffff) @@ -466,16 +450,16 @@ def readwrite_registers( read_address: int = 0, read_count: int = 0, write_address: int = 0, - values: int = 0, + values: Union[List[int], int] = 0, slave: int = 0, **kwargs - ) -> pdu_reg_read.ReadWriteMultipleRegistersResponse: + ) -> ModbusResponse: """Read/Write registers (code 0x17). :param read_address: The address to start reading from :param read_count: The number of registers to read from address :param write_address: The address to start writing to - :param values: The registers to write to the specified address + :param values: List of values to write, or a single value to write :param slave: (optional) Modbus slave unit ID :param kwargs: :raises ModbusException: @@ -491,9 +475,7 @@ def readwrite_registers( ) ) - def read_fifo_queue( - self, address: int = 0x0000, **kwargs: Any - ) -> pdu_file_msg.ReadFifoQueueResponse: + def read_fifo_queue(self, address: int = 0x0000, **kwargs: Any) -> ModbusResponse: """Read FIFO queue (code 0x18). :param address: The address to start reading from @@ -506,7 +488,7 @@ def read_fifo_queue( def read_device_information( self, read_code: int = None, object_id: int = 0x00, **kwargs: Any - ) -> pdu_mei.ReadDeviceInformationResponse: + ) -> ModbusResponse: """Read FIFO queue (code 0x2B sub 0x0E). :param read_code: The device information read code