public GetMetersValue ( List |
||
meters | List |
|
spatialRecord | AgGateway.ADAPT.ApplicationDataModel.LoggedData.SpatialRecord | |
Результат |
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;
}
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); }