示例#1
0
        public async Task Execute()
        {
            if (!_deviceContext.DataProviderContainer.DataProvider.IsSuccess)
            {
                return;
            }
            var address = await AnalogMeasuringElement.GetAnalogElementAddress(_deviceContext);

            var formatter = await AnalogMeasuringElement.GetAnalogElementFormatting(_deviceContext);

            if (_deviceContext.DeviceMemory.DeviceMemoryValues.ContainsKey(address))
            {
                await this.ApplyUshortOnAnalog(new ushort[]
                                               { _deviceContext.DeviceMemory.DeviceMemoryValues[address] }, formatter);
            }
            else
            {
                var res = await _deviceContext.DataProviderContainer.DataProvider.Item.ReadHoldingResgistersAsync(
                    address, this.AnalogMeasuringElement.NumberOfPoints,
                    "Read analog: " + this.AnalogMeasuringElement.Name);

                if (res.IsSuccessful)
                {
                    await this.ApplyUshortOnAnalog(res.Result, formatter);
                }
            }
        }
示例#2
0
        private AnalogMeasuringElementViewModel CreateAnalogMeasuringElementViewModel(
            AnalogMeasuringElement analogMeasuringElement, string groupName)
        {
            var res = new AnalogMeasuringElementViewModel();

            res.IsMeasureUnitEnabled = analogMeasuringElement.IsMeasureUnitEnabled;
            res.MeasureUnit          = analogMeasuringElement.MeasureUnit;
            res.Id        = analogMeasuringElement.Id;
            res.Header    = analogMeasuringElement.Name;
            res.GroupName = groupName;
            return(res);
        }