From 9590c37720ac9c7c175a90e6450053a941da7940 Mon Sep 17 00:00:00 2001 From: dvk2018 Date: Sat, 8 Dec 2018 17:35:13 +0500 Subject: [PATCH] Add 'Reconnect' and 'RTU over TCP' options to TCP Modbus extension configuration. --- .../extension-form-modbus.directive.js | 45 ++++++-- .../extension-form-modbus.tpl.html | 104 +++++++++++------- ui/src/app/locale/locale.constant-en_US.json | 2 + 3 files changed, 99 insertions(+), 52 deletions(-) diff --git a/ui/src/app/extension/extensions-forms/extension-form-modbus.directive.js b/ui/src/app/extension/extensions-forms/extension-form-modbus.directive.js index 2dfc961d02..96c398b897 100644 --- a/ui/src/app/extension/extensions-forms/extension-form-modbus.directive.js +++ b/ui/src/app/extension/extensions-forms/extension-form-modbus.directive.js @@ -31,17 +31,38 @@ export default function ExtensionFormModbusDirective($compile, $templateCache, $ var linker = function(scope, element) { + function TcpTransport() { + this.type = "tcp", + this.host = "localhost", + this.port = 502, + this.timeout = 5000, + this.reconnect = true, + this.rtuOverTcp = false + } + + function UdpTransport() { + this.type = "udp", + this.host = "localhost", + this.port = 502, + this.timeout = 5000 + } + + function RtuTransport() { + this.type = "rtu", + this.portName = "COM1", + this.encoding = "ascii", + this.timeout = 5000, + this.baudRate = 115200, + this.dataBits = 7, + this.stopBits = 1, + this.parity ="even" + } function Server() { - this.transport = { - "type": "tcp", - "host": "localhost", - "port": 502, - "timeout": 3000 - }; + this.transport = new TcpTransport(); this.devices = [] } - + function Device() { this.unitId = 1; this.deviceName = ""; @@ -105,9 +126,13 @@ export default function ExtensionFormModbusDirective($compile, $templateCache, $ scope.onTransportChanged = function(server) { var type = server.transport.type; - server.transport = {}; - server.transport.type = type; - server.transport.timeout = 3000; + if (type === "tcp") { + server.transport = new TcpTransport(); + } else if (type === "udp") { + server.transport = new UdpTransport(); + } else if (type === "rtu") { + server.transport = new RtuTransport(); + } scope.theForm.$setDirty(); }; diff --git a/ui/src/app/extension/extensions-forms/extension-form-modbus.tpl.html b/ui/src/app/extension/extensions-forms/extension-form-modbus.tpl.html index 989d3f07db..508ddc0c42 100644 --- a/ui/src/app/extension/extensions-forms/extension-form-modbus.tpl.html +++ b/ui/src/app/extension/extensions-forms/extension-form-modbus.tpl.html @@ -73,49 +73,69 @@ -
- - - -
-
extension.field-required
-
-
+
+
+ + + +
+
extension.field-required
+
+
- - - -
-
extension.field-required
-
extension.port-range
-
extension.port-range
-
-
- - - - -
-
extension.field-required
-
-
+ + + +
+
extension.field-required
+
extension.port-range
+
extension.port-range
+
+
+ + + + +
+
extension.field-required
+
+
+
+ +
+ + {{ 'extension.modbus-tcp-reconnect' | translate }} + + + + + {{ 'extension.modbus-rtu-over-tcp' | translate }} + + +
diff --git a/ui/src/app/locale/locale.constant-en_US.json b/ui/src/app/locale/locale.constant-en_US.json index 30e1eb119b..3aa520a955 100644 --- a/ui/src/app/locale/locale.constant-en_US.json +++ b/ui/src/app/locale/locale.constant-en_US.json @@ -1008,6 +1008,8 @@ "modbus-add-server": "Add server/slave", "modbus-add-server-prompt": "Please add server/slave", "modbus-transport": "Transport", + "modbus-tcp-reconnect": "Automatically reconnect", + "modbus-rtu-over-tcp": "RTU over TCP", "modbus-port-name": "Serial port name", "modbus-encoding": "Encoding", "modbus-parity": "Parity",