diff --git a/software/web/src/modules/meters_modbus_tcp/plugin_meters_config.tsx b/software/web/src/modules/meters_modbus_tcp/plugin_meters_config.tsx index 7e0e9378e..03f18d1c2 100644 --- a/software/web/src/modules/meters_modbus_tcp/plugin_meters_config.tsx +++ b/software/web/src/modules/meters_modbus_tcp/plugin_meters_config.tsx @@ -148,7 +148,6 @@ function new_table_config(table: MeterModbusTCPTableID): TableConfig { } interface RegisterEditorProps { - min_address: number; table: TableConfigCustom; on_table: (table: TableConfigCustom) => void; } @@ -164,7 +163,7 @@ class RegisterTable extends Component this.state = { register: { register_type: null, - start_address: props.min_address, + start_address: props.table[1].register_address_mode == ModbusRegisterAddressMode.Address ? 0 : 1, value_type: null, offset: 0.0, scale_factor: 1.0, @@ -188,11 +187,21 @@ class RegisterTable extends Component this.setState({register: {...this.state.register, register_type: parseInt(v)}}); }} /> , - + { this.setState({register: {...this.state.register, start_address: v}}); @@ -270,14 +279,18 @@ class RegisterTable extends Component return row })} columnNames={[""]} - addEnabled={this.props.table[1].registers.length < MAX_CUSTOM_REGISTERS} - addMessage={__("meters_modbus_tcp.content.registers_add_count")(this.props.table[1].registers.length, MAX_CUSTOM_REGISTERS)} + addEnabled={util.hasValue(this.props.table[1].register_address_mode) && this.props.table[1].registers.length < MAX_CUSTOM_REGISTERS} + addMessage={ + util.hasValue(this.props.table[1].register_address_mode) + ? __("meters_modbus_tcp.content.registers_add_count")(this.props.table[1].registers.length, MAX_CUSTOM_REGISTERS) + : __("meters_modbus_tcp.content.registers_add_select_address_mode") + } addTitle={__("meters_modbus_tcp.content.registers_add_title")} onAddShow={async () => { this.setState({ register: { register_type: null, - start_address: this.props.min_address, + start_address: this.props.table[1].register_address_mode == ModbusRegisterAddressMode.Address ? 0 : 1, value_type: null, offset: 0.0, scale_factor: 1.0, @@ -451,7 +464,6 @@ export function init() { , on_config(util.get_updated_union(config, {table: table}))} /> diff --git a/software/web/src/modules/meters_modbus_tcp/translation_de.tsx b/software/web/src/modules/meters_modbus_tcp/translation_de.tsx index e0ece768f..f12403d9a 100644 --- a/software/web/src/modules/meters_modbus_tcp/translation_de.tsx +++ b/software/web/src/modules/meters_modbus_tcp/translation_de.tsx @@ -39,6 +39,7 @@ let x = { "registers": "Register", "registers_add_title": "Register hinzufügen", "registers_add_count": /*SFN*/(x: number, max: number) => x + " von " + max + " Registern konfiguriert"/*NF*/, + "registers_add_select_address_mode": "Zuerst Adressmodus auswählen...", "registers_edit_title": "Register bearbeiten", "registers_register": /*SFN*/(start_address: number, value_id_name: string) => start_address + " als " + value_id_name/*NF*/, "registers_register_type": "Registertyp", @@ -46,6 +47,9 @@ let x = { "registers_register_type_holding_register": "Holding-Register", "registers_register_type_input_register": "Input-Register", "registers_start_address": "Startadresse", + "registers_start_address_muted": "beginnt bei 0", + "registers_start_number": "Startnummer", + "registers_start_number_muted": "beginnt bei 1", "registers_value_type": "Werttyp", "registers_value_type_select": "Auswählen...", "registers_value_type_u16": "Ein Register, 16-Bit, Ganzzahl, vorzeichenlos", diff --git a/software/web/src/modules/meters_modbus_tcp/translation_en.tsx b/software/web/src/modules/meters_modbus_tcp/translation_en.tsx index 6b3ba42ec..743ba429f 100644 --- a/software/web/src/modules/meters_modbus_tcp/translation_en.tsx +++ b/software/web/src/modules/meters_modbus_tcp/translation_en.tsx @@ -34,11 +34,12 @@ let x = { "device_address_muted": /*SFN*/(port: number) => "typically " + port/*NF*/, "register_address_mode": "Address mode", "register_address_mode_select": "Select...", - "register_address_mode_address": "Register address (starts at 0)", - "register_address_mode_number": "Register number (starts at 1)", + "register_address_mode_address": "Register address (begins at 0)", + "register_address_mode_number": "Register number (begins at 1)", "registers": "Registers", "registers_add_title": "Add register", "registers_add_count": /*SFN*/(x: number, max: number) => x + " of " + max + " registers configured"/*NF*/, + "registers_add_select_address_mode": "Select address mode first...", "registers_edit_title": "Edit register", "registers_register": /*SFN*/(start_address: number, value_id_name: string) => start_address + " as " + value_id_name/*NF*/, "registers_register_type": "Register type", @@ -46,6 +47,9 @@ let x = { "registers_register_type_holding_register": "Holding register", "registers_register_type_input_register": "Input register", "registers_start_address": "Start address", + "registers_start_address_muted": "begins at 0", + "registers_start_number": "Start number", + "registers_start_number_muted": "begins at 1", "registers_value_type": "Value type", "registers_value_type_select": "Select...", "registers_value_type_u16": "One register, 16-bit, integer, unsigned",