AgGateway.ADAPT.ISOv4Plugin.ImportMappers.LogMappers.CondensedWorkStateMeterCreator.GetMetersValue C# (CSharp) Метод

GetMetersValue() публичный Метод

public GetMetersValue ( List meters, AgGateway.ADAPT.ApplicationDataModel.LoggedData.SpatialRecord spatialRecord ) : UInt32
meters List
spatialRecord AgGateway.ADAPT.ApplicationDataModel.LoggedData.SpatialRecord
Результат System.UInt32
        public override UInt32 GetMetersValue(List<WorkingData> meters, SpatialRecord spatialRecord)
        {
            var returnValue = new UInt32();
            for (int i = 0; i < meters.Count; i++)
            {
                var sectionId = ((DDI - StartingDdi) * 16) + (i + 1);

                var meter = (ISOEnumeratedMeter)meters.SingleOrDefault(x => x.DeviceElementUseId == sectionId);
                var value = (EnumeratedValue)spatialRecord.GetMeterValue(meter);

                int meterInt;
                if (value.Value.Code == DefinedTypeEnumerationInstanceList.dtiRecordingStatusOff.ToModelEnumMember().Code)
                    meterInt = 0;
                else if (value.Value.Code == DefinedTypeEnumerationInstanceList.dtiRecordingStatusOn.ToModelEnumMember().Code)
                    meterInt = 1;
                else
                    meterInt = 3;

                returnValue |= Convert.ToUInt32(meterInt << (i * 2));
            }
            return returnValue;
        }

Usage Example

        public void GivenMetersWithStartAt176WhenGetMetersValueThenValuesCorrect()
        {
            SpatialRecord spatialRecord;
            var meters = CreateMeters(out spatialRecord, 241);
            var creator = new CondensedWorkStateMeterCreator(176, 161);

            var result = creator.GetMetersValue(meters, spatialRecord);
            Assert.AreEqual(0x44444444, result);
        }
All Usage Examples Of AgGateway.ADAPT.ISOv4Plugin.ImportMappers.LogMappers.CondensedWorkStateMeterCreator::GetMetersValue