History

ModbusAdapters: Updated to attached Modbus measurements to selected historian and reduced minimal value for query intervals to one millisecond.

J. Ritchie Carroll committed 6 years ago

Commit 848140e1 parent beae0ce2 files · +100 −12Browse files

Showing the changes to Source/Libraries/Adapters/ModbusAdapters/Scripts/MapViewModel.js (1 of 2 files). Show all

Unified · Split

Source/Libraries/Adapters/ModbusAdapters/Scripts/MapViewModel.js+49−5
@@ -36,8 +36,8 @@ function MapViewModel() { · 35 unmodified lines
36 self.sequences = ko.observableArray();36 self.sequences = ko.observableArray();
37 self.totalReadsAndWrites = ko.observable(0);37 self.totalReadsAndWrites = ko.observable(0);
38 self.unitID = ko.observable(255).extend({ required: true }).extend({ number: true }).extend({ min: 0 }).extend({ max: 255 });38 self.unitID = ko.observable(255).extend({ required: true }).extend({ number: true }).extend({ min: 0 }).extend({ max: 255 });
39 self.pollingRate = ko.observable(2000).extend({ required: true }).extend({ number: true }).extend({ min: 100 });39 self.pollingRate = ko.observable(2000).extend({ required: true }).extend({ number: true }).extend({ min: 1 });
40 self.interSequenceGroupPollDelay = ko.observable(250).extend({ required: true }).extend({ number: true }).extend({ min: 100 });40 self.interSequenceGroupPollDelay = ko.observable(250).extend({ required: true }).extend({ number: true }).extend({ min: 1 });
41 self.ipPort = ko.observable(502).extend({ required: true }).extend({ number: true }).extend({ min: 1 }).extend({ max: 65535 });41 self.ipPort = ko.observable(502).extend({ required: true }).extend({ number: true }).extend({ min: 1 }).extend({ max: 65535 });
42 self.hostName = ko.observable("localhost").extend({ required: true });42 self.hostName = ko.observable("localhost").extend({ required: true });
43 self.interface = ko.observable("0.0.0.0").extend({ required: true }).extend({ pattern: { message: 'Must be a valid IP address', params: /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/ } });43 self.interface = ko.observable("0.0.0.0").extend({ required: true }).extend({ pattern: { message: 'Must be a valid IP address', params: /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/ } });
@@ -53,6 +53,8 @@ function MapViewModel() { · 9 unmodified lines
53 self._transport = ko.observable("TCP");53 self._transport = ko.observable("TCP");
54 self._connectionString = ko.observable("");54 self._connectionString = ko.observable("");
55 self._deviceName = ko.observable("");55 self._deviceName = ko.observable("");
56 self._instanceName = ko.observable("");
57 self._historianID = ko.observable(-1);
56 58
57 // Properties59 // Properties
58 self.isDirty = ko.pureComputed({60 self.isDirty = ko.pureComputed({
@@ -151,13 +153,55 @@ function MapViewModel() { · 92 unmodified lines
151 params: "^[A-Z0-9\\-!_\\.@#\\$]+$"153 params: "^[A-Z0-9\\-!_\\.@#\\$]+$"
152 }154 }
153 })}, {155 })}, {
154 adapterConnectionString: self.adapterConnectionString.extend({156 adapterConnectionString: self.adapterConnectionString.extend({
155 required: true157 required: true
156 })}, {158 })}, {
157 sequences: self.sequences159 sequences: self.sequences
158 }160 }
159 );161 );
160 162
163 self.historianID = ko.pureComputed({
164 read: function () {
165 const historianID = self._historianID();
166
167 if (historianID === -1)
168 return null;
169
170 return historianID;
171 },
172 owner: self
173 });
174
175 self.instanceName = ko.pureComputed({
176 read: self._instanceName,
177 write: function (value) {
178 if (value === self._instanceName())
179 return;
180
181 if (value) {
182 self._instanceName(value);
183 Cookies.set("instanceName", value.toString(), { expires: 365 });
184 } else {
185 self._instanceName("");
186 }
187
188 if (hubIsConnected) {
189 if (isEmpty(self._instanceName())) {
190 self._historianID(-1);
191 }
192 else {
193 dataHub.queryHistorian(self.instanceName()).done(function (historian) {
194 if (historian)
195 self._historianID(historian.ID);
196 else
197 self._historianID(-1);
198 });
199 }
200 }
201 },
202 owner: self
203 });
204
161 // Delegates205 // Delegates
162 self.reorderSequencePanels = function() { };206 self.reorderSequencePanels = function() { };
163 self.loadMappingComplete = function() { };207 self.loadMappingComplete = function() { };

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t