AgGateway.ADAPT.ISOv4Plugin.ImportMappers.LogMappers.CondensedSectionOverrideStateMeterCreator.GetMetersValue C# (CSharp) Method

GetMetersValue() public method

public GetMetersValue ( List meters, AgGateway.ADAPT.ApplicationDataModel.LoggedData.SpatialRecord spatialRecord ) : UInt32
meters List
spatialRecord AgGateway.ADAPT.ApplicationDataModel.LoggedData.SpatialRecord
return 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.dtiPrescriptionUsed.ToModelEnumMember().Code)
                    meterInt = 0;
                else if (value.Value.Code == DefinedTypeEnumerationInstanceList.dtiPrescriptionOverridden.ToModelEnumMember().Code)
                    meterInt = 1;
                else
                    meterInt = 3;

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

Usage Example

        public void GivenMetersWithStartAt382WhenGetMetersValueThenValuesCorrect()
        {
            SpatialRecord spatialRecord;
            var meters = CreateMeters(out spatialRecord, 241);
            var creator = new CondensedSectionOverrideStateMeterCreator(382);

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