Showing the changes to Source/Libraries/Adapters/ModbusAdapters/Scripts/MapViewModel.js (1 of 2 files). Show all
Unified · Split
| @@ -36,8 +36,8 @@ function MapViewModel() { · 35 unmodified lines | ||
| 36 | 36 | self.sequences = ko.observableArray(); |
| 37 | 37 | self.totalReadsAndWrites = ko.observable(0); |
| 38 | 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 }); | |
| 40 | − self.interSequenceGroupPollDelay = ko.observable(250).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: 1 }); | |
| 41 | 41 | self.ipPort = ko.observable(502).extend({ required: true }).extend({ number: true }).extend({ min: 1 }).extend({ max: 65535 }); |
| 42 | 42 | self.hostName = ko.observable("localhost").extend({ required: true }); |
| 43 | 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 | 53 | self._transport = ko.observable("TCP"); |
| 54 | 54 | self._connectionString = ko.observable(""); |
| 55 | 55 | self._deviceName = ko.observable(""); |
| 56 | + self._instanceName = ko.observable(""); | |
| 57 | + self._historianID = ko.observable(-1); | |
| 56 | 58 | |
| 57 | 59 | // Properties |
| 58 | 60 | self.isDirty = ko.pureComputed({ |
| @@ -151,13 +153,55 @@ function MapViewModel() { · 92 unmodified lines | ||
| 151 | 153 | params: "^[A-Z0-9\\-!_\\.@#\\$]+$" |
| 152 | 154 | } |
| 153 | 155 | })}, { |
| 154 | − adapterConnectionString: self.adapterConnectionString.extend({ | |
| 155 | − required: true | |
| 156 | + adapterConnectionString: self.adapterConnectionString.extend({ | |
| 157 | + required: true | |
| 156 | 158 | })}, { |
| 157 | − sequences: self.sequences | |
| 159 | + 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 | 205 | // Delegates |
| 162 | 206 | self.reorderSequencePanels = function() { }; |
| 163 | 207 | self.loadMappingComplete = function() { }; |