Exemplo n.º 1
0
        public void GivenOperationDataWithSpatialRecordDataWithNumericRepValueWhenProcessOperationDAtaThenRowsAreAdded()
        {
            var harvestMoistureMeter = new NumericWorkingData { Representation = RepresentationInstanceList.vrHarvestMoisture.ToModelRepresentation() };
            _workingDatas.Add(harvestMoistureMeter);
            _deviceElementUses.Add(0, new List<DeviceElementUse>
            {
                new DeviceElementUse
                {
                    Depth = 0,
                    GetWorkingDatas = () => _workingDatas,
                }
            });

            var spatialRecord = new SpatialRecord();
            var numericRepresentation = new NumericRepresentationValue(RepresentationInstanceList.vrHarvestMoisture.ToModelRepresentation(), UnitSystemManager.GetUnitOfMeasure("prcnt"), new NumericValue(UnitSystemManager.GetUnitOfMeasure("prcnt"), 3.0));

            spatialRecord.SetMeterValue(harvestMoistureMeter, numericRepresentation);

            _spatialRecords.Add(spatialRecord);

            var dataTable = _operationDataProcessor.ProcessOperationData(_operationData);

            Assert.AreEqual(1, dataTable.Rows.Count);
            Assert.AreEqual(numericRepresentation.Value.Value.ToString(), dataTable.Rows[0][0]);
        }
        public void GivenMetersErrorAndNotAvailableWhenGetMetersValueThenValuesReturned()
        {
            var enumeratedMeter1 = new ISOEnumeratedMeter
            {
                DeviceElementUseId = 1,
            };
            var enumeratedMeter2 = new ISOEnumeratedMeter
            {
                DeviceElementUseId = 2,
            };
            var meters = new List<WorkingData> { enumeratedMeter1, enumeratedMeter2 };

            var spatialRecord = new SpatialRecord();
            spatialRecord.SetMeterValue(enumeratedMeter1, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiUnloadingAugerStateError.ToModelEnumMember() });
            spatialRecord.SetMeterValue(enumeratedMeter2, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiUnloadingAugerStateNotAvailable.ToModelEnumMember() });

            var result = _creator.GetMetersValue(meters, spatialRecord);
            Assert.AreEqual(0x0302, result);
        }
        public void GivenMetersWithUnStableWhenGetMetersValueThenIsZero()
        {
            var enumeratedMeter = new ISOEnumeratedMeter();
            var meters = new List<WorkingData> { enumeratedMeter };

            var spatialRecord = new SpatialRecord();
            spatialRecord.SetMeterValue(enumeratedMeter, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiWeightUnStable.ToModelEnumMember() });

            var result = _creator.GetMetersValue(meters, spatialRecord);
            Assert.AreEqual(0x00, result);
        }
        public void GivenMetersWithUnknownWhenGetMetersValueThenThree()
        {
            var enumeratedMeter1 = new ISOEnumeratedMeter();
            var meters = new List<WorkingData> { enumeratedMeter1 };

            var spatialRecord = new SpatialRecord();
            spatialRecord.SetMeterValue(enumeratedMeter1, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiSunny.ToModelEnumMember() });

            var result = _creator.GetMetersValue(meters, spatialRecord);
            Assert.AreEqual(0x03, result);
        }
        public void GivenMetersWithPartlyCloudyWhenGetMetersValueThenIsCorrect()
        {
            var enumeratedMeter = new ISOEnumeratedMeter();
            var meters = new List<WorkingData> { enumeratedMeter };

            var spatialRecord = new SpatialRecord();
            spatialRecord.SetMeterValue(enumeratedMeter, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiPartlyCloudy.ToModelEnumMember() });

            var result = _creator.GetMetersValue(meters, spatialRecord);
            Assert.AreEqual(0x20544353, result);
        }
        public void GivenMetersWithRearPivotWagonHitchWhenGetMetersValueThenSeven()
        {
            var enumeratedMeter1 = new ISOEnumeratedMeter();
            var meters = new List<WorkingData> { enumeratedMeter1 };

            var spatialRecord = new SpatialRecord();
            spatialRecord.SetMeterValue(enumeratedMeter1, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiRearPivotWagonHitch.ToModelEnumMember() });

            var result = _creator.GetMetersValue(meters, spatialRecord);
            Assert.AreEqual(0x07, result);
        }
        public void GivenMetersWithRearTwoPointWhenGetMetersValueThenTwo()
        {
            var enumeratedMeter1 = new ISOEnumeratedMeter
            {
                GetEnumeratedValue = (value, meter) => new EnumeratedValue
                {
                    Value = DefinedTypeEnumerationInstanceList.dtiRearTwoPoint.ToModelEnumMember(),
                },
            };
            var meters = new List<WorkingData> { enumeratedMeter1 };

            var spatialRecord = new SpatialRecord();
            spatialRecord.SetMeterValue(enumeratedMeter1, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiRearTwoPoint.ToModelEnumMember() });

            var result = _creator.GetMetersValue(meters, spatialRecord);
            Assert.AreEqual(0x02, result);
        }
        public void GivenMetersWithRecordingStatusOnWhenGetMetersValueThenOne()
        {
            var enumeratedMeter1 = new ISOEnumeratedMeter
            {
                GetEnumeratedValue = (value, meter) => new EnumeratedValue
                {
                    Value = DefinedTypeEnumerationInstanceList.dtiRecordingStatusOn.ToModelEnumMember(),
                },
                DeviceElementUseId = 1,
            };
            var meters = new List<WorkingData> { enumeratedMeter1 };

            var spatialRecord = new SpatialRecord();
            spatialRecord.SetMeterValue(enumeratedMeter1, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiRecordingStatusOn.ToModelEnumMember() });

            var result = _creator.GetMetersValue(meters, spatialRecord);
            Assert.AreEqual(0x01, result);
        }
Exemplo n.º 9
0
        public void GivenMultipleSpatialRowsDuplicateEnumeratedValueWhenWriteThenDifferencesAreWritten()
        {
            _enumeratedMeter.Id.UniqueIds.Add(GenerateUniqueId(0));
            _numericMeter.Id.UniqueIds.Add(GenerateUniqueId(1));
            _meters.AddRange(new List<WorkingData> { _enumeratedMeter, _numericMeter });

            var spatialRecord1 = new SpatialRecord
            {
                Timestamp = new DateTime(2000, 1, 1, 8, 0, 0),
                Geometry = new Point { X = 93.6208, Y = 41.5908 }
            };

            spatialRecord1.SetMeterValue(_enumeratedMeter,
                new EnumeratedValue
                {
                    Value = new AgGateway.ADAPT.ApplicationDataModel.Representations.EnumerationMember { Code = 1 }
                });
            spatialRecord1.SetMeterValue(_numericMeter, new NumericRepresentationValue());
            _numericValueMapperMock.Setup(x => x.Map(_numericMeter, spatialRecord1)).Returns(20);

            var spatialRecord2 = new SpatialRecord
            {
                Timestamp = new DateTime(2000, 1, 1, 8, 0, 0),
                Geometry = new Point { X = 93.6208, Y = 41.5908 }
            };

            spatialRecord2.SetMeterValue(_enumeratedMeter,
                new EnumeratedValue
                {
                    Value = new AgGateway.ADAPT.ApplicationDataModel.Representations.EnumerationMember { Code = 1 }
                });
            spatialRecord2.SetMeterValue(_numericMeter, new NumericRepresentationValue(RepresentationInstanceList.vrSoilTemperature.ToModelRepresentation(), new NumericValue(new UnitOfMeasure(), 20.2)));
            _numericValueMapperMock.Setup(x => x.Map(_numericMeter, spatialRecord2)).Returns(30);

            _spatialRecords = new List<SpatialRecord> { spatialRecord1, spatialRecord2 };
            _enumeratedMeterMapperMock.Setup(x => x.Map(_enumeratedMeter, It.IsAny<List<WorkingData>>(), spatialRecord1)).Returns(1);
            _enumeratedMeterMapperMock.Setup(x => x.Map(_enumeratedMeter, It.IsAny<List<WorkingData>>(), spatialRecord2)).Returns(1);

            Write();

            var expectedBytes = new List<byte>
            {
                0x00, 0x74, 0xB7, 0x01, 0x89, 0x1C, // SpatialRecord1 TimeStart
                0xA0, 0x40, 0xCA, 0x18, // SpatialRecord1 Position North
                0x80, 0x66, 0xCD, 0x37, // SpatialRecord1 Position East
                0x00, 0x00, 0x00, 0x00, // SpatialRecord1 Position Up
                //0x00, 0x0B, 0x01, 0x03, 0x89, 0x1C, // SpatialRecord1 GpsUtcTime and Date
                0x02, // number of DLVs to follow
                0x00, 0x01, 0x00, 0x00, 0x00, // DLV0 and value
                0x01, 0x14, 0x00, 0x00, 0x00, // DLV1 and value
                0x00, 0x74, 0xB7, 0x01, 0x89, 0x1C, // SpatialRecord2 TimeStart
                0xA0, 0x40, 0xCA, 0x18, // SpatialRecord1 Position North
                0x80, 0x66, 0xCD, 0x37, // SpatialRecord1 Position East
                0x00, 0x00, 0x00, 0x00, // SpatialRecord1 Position Up
                //0x00, 0x0B, 0x01, 0x03, 0x89, 0x1C, // SpatialRecord2 GpsUtcTime and Date
                0x01, // number of DLVs to follow
                //0x00, 0x02, 0x00, 0x00, 0x00, // DLV0 and value
                0x01, 0x1E, 0x00, 0x00, 0x00 // DLV1 and value
            };

            VerifyFileContents(expectedBytes, 0);
        }
Exemplo n.º 10
0
        public void GivenSpatialRecordWithEnumeratedMetersWithSameIdsWhenWriteThenEnumeratedMeterIsCombined()
        {
            var isoEnumeratedMeter = new ISOEnumeratedMeter();
            _meters.AddRange(new List<WorkingData> { isoEnumeratedMeter });

            var spatialRecord = new SpatialRecord
            {
                Timestamp = new DateTime(2000, 1, 1, 8, 0, 0),
                Geometry = new Point {X = 93.6208, Y = 41.5908}
            };
            spatialRecord.SetMeterValue(isoEnumeratedMeter, new EnumeratedValue());
            _spatialRecords = new List<SpatialRecord> {spatialRecord};

            const uint value = 0x12345678;
            _enumeratedMeterMapperMock.Setup(x => x.Map(isoEnumeratedMeter, _meters, spatialRecord)).Returns(value);

            Write();

            var expectedBytes = new List<byte>
            {
                0x00,
                0x74,
                0xB7,
                0x01,
                0x89,
                0x1C, // SpatialRecord1 TimeStart
                0xA0,
                0x40,
                0xCA,
                0x18, // SpatialRecord1 Position North
                0x80,
                0x66,
                0xCD,
                0x37, // SpatialRecord1 Position East
                0x00,
                0x00,
                0x00,
                0x00, // SpatialRecord1 Position Up
            //                0x00,
            //                0x0B,
            //                0x01,
            //                0x03,
            //                0x89,
            //                0x1C, // SpatialRecord1 GpsUtcTime and Date
                0x01, // number of DLVs to follow
                0x00,
                0x78,
                0x56,
                0x34,
                0x12, // DLV0 and value
            };

            VerifyFileContents(expectedBytes, 0);
        }
Exemplo n.º 11
0
        private void SetNumericMeterValue(ISOSpatialRow isoSpatialRow, NumericWorkingData meter, SpatialRecord spatialRecord)
        {
            var isoValue = isoSpatialRow.SpatialValues.SingleOrDefault(v => v.Id == meter.Id.FindIntIsoId());

            if (isoValue != null)
            {
                var value = new NumericRepresentationValue(meter.Representation as NumericRepresentation, meter.UnitOfMeasure, new NumericValue(meter.UnitOfMeasure, isoValue.Value));
                spatialRecord.SetMeterValue(meter, value);

                var other = new NumericRepresentationValue(meter.Representation as NumericRepresentation, meter.UnitOfMeasure, new NumericValue(meter.UnitOfMeasure, isoValue.Value));
                _representationValueInterpolator.SetMostRecentMeterValue(meter, other);
            }
            else
            {
                var value = _representationValueInterpolator.Interpolate(meter) as NumericRepresentationValue;
                spatialRecord.SetMeterValue(meter, value);
            }
        }
Exemplo n.º 12
0
 private void CreateHavestMoistureSpatialRecord(WorkingData workingData, double value)
 {
     var spatialRecord = new SpatialRecord();
     var meter1Value1 = CreateHarvestMoisture(value);
     spatialRecord.SetMeterValue(workingData, meter1Value1);
     _spatialRecords.Add(spatialRecord);
 }
Exemplo n.º 13
0
        public void GivenOperationDataWithSpatialRecordDataWithEnumeratedValueWhenProcessOperationDataThenRowsAreAdded()
        {
            var meter = new EnumeratedWorkingData { Representation = RepresentationInstanceList.dtRecordingStatus.ToModelRepresentation() };
            _workingDatas.Add(meter);
            _deviceElementUses.Add(0, new List<DeviceElementUse>
            {
                new DeviceElementUse
                {
                    Depth = 0,
                    GetWorkingDatas = () => _workingDatas,
                }
            });

            var spatialRecord = new SpatialRecord();
            var enumeratedValue = new EnumeratedValue{Value = DefinedTypeEnumerationInstanceList.dtiRecordingStatusOn.ToModelEnumMember() };

            spatialRecord.SetMeterValue(meter, enumeratedValue);

            _spatialRecords.Add(spatialRecord);

            var dataTable = _operationDataProcessor.ProcessOperationData(_operationData);

            Assert.AreEqual(1, dataTable.Rows.Count);
            Assert.AreEqual(enumeratedValue.Value.Value, dataTable.Rows[0][0]);
        }
        public void GivenMetersWithStartAt367AndUndefinedWhenGetMetersValueThenValuesCorrect()
        {
            var meters = new List<WorkingData>();
            for (int i = 1; i < 17; i++)
            {
                meters.Add(new ISOEnumeratedMeter { DeviceElementUseId = i });
            }

            var spatialRecord = new SpatialRecord();
            for (var i = 0; i < 16; i++)
            {
                if (i % 2 == 0)
                    spatialRecord.SetMeterValue(meters[i],
                        new EnumeratedValue
                        {
                            Value = DefinedTypeEnumerationInstanceList.dtiSunny.ToModelEnumMember()
                        });
                else
                    spatialRecord.SetMeterValue(meters[i],
                        new EnumeratedValue
                        {
                            Value = DefinedTypeEnumerationInstanceList.dtiPrescriptionOverridden.ToModelEnumMember()
                        });
            }

            var creator = new CondensedSectionOverrideStateMeterCreator(367);
            var result = creator.GetMetersValue(meters, spatialRecord);
            Assert.AreEqual(0x77777777, result);
        }
Exemplo n.º 15
0
 private void SetEnumeratedMeterValue(ISOSpatialRow isoSpatialRow, EnumeratedWorkingData meter, SpatialRecord spatialRecord)
 {
     var isoValue = isoSpatialRow.SpatialValues.SingleOrDefault(v => v.Id == meter.Id.FindIntIsoId());
     if (isoValue != null)
     {
         var isoEnumeratedMeter = meter as ISOEnumeratedMeter;
         var enumeratedValue = isoEnumeratedMeter.GetEnumeratedValue(isoValue, isoEnumeratedMeter);
         spatialRecord.SetMeterValue(meter, enumeratedValue);
         _representationValueInterpolator.SetMostRecentMeterValue(meter, enumeratedValue);
     }
     else
     {
         var value = _representationValueInterpolator.Interpolate(meter) as EnumeratedValue;
         spatialRecord.SetMeterValue(meter, value);
     }
 }
        private static List<WorkingData> CreateMeters(out SpatialRecord spatialRecord, int startSection)
        {
            var meters = new List<WorkingData>();
            for (int i = startSection; i < startSection + 16; i++)
            {
                meters.Add(new ISOEnumeratedMeter { DeviceElementUseId = i });
            }

            spatialRecord = new SpatialRecord();
            for (var i = 0; i < 16; i++)
            {
                if (i % 2 == 0)
                    spatialRecord.SetMeterValue(meters[i],
                        new EnumeratedValue
                        {
                            Value = DefinedTypeEnumerationInstanceList.dtiPrescriptionUsed.ToModelEnumMember()
                        });
                else
                    spatialRecord.SetMeterValue(meters[i],
                        new EnumeratedValue
                        {
                            Value = DefinedTypeEnumerationInstanceList.dtiPrescriptionOverridden.ToModelEnumMember()
                        });
            }
            return meters;
        }
Exemplo n.º 17
0
        public void GivenOperationDataWithSpatialRecordDataWithNumericRepValueWhenProcessOperationDataThenColumnNamesContainUom()
        {
            var harvestMoistureMeter = new NumericWorkingData { Representation = RepresentationInstanceList.vrHarvestMoisture.ToModelRepresentation() };
            _workingDatas.Add(harvestMoistureMeter);
            _deviceElementUses.Add(0, new List<DeviceElementUse>
            {
                new DeviceElementUse
                {
                    Depth = 0,
                    GetWorkingDatas = () => _workingDatas,
                }
            });

            var spatialRecord = new SpatialRecord();
            var numericRepresentation = new NumericRepresentationValue(RepresentationInstanceList.vrHarvestMoisture.ToModelRepresentation(), UnitSystemManager.GetUnitOfMeasure("prcnt"), new NumericValue(UnitSystemManager.GetUnitOfMeasure("prcnt"), 3.0));

            spatialRecord.SetMeterValue(harvestMoistureMeter, numericRepresentation);

            _spatialRecords.Add(spatialRecord);

            var dataTable = _operationDataProcessor.ProcessOperationData(_operationData);

            var expectedColumnName = _workingDatas.First().Representation.Code + "-" + _workingDatas.First().Id.ReferenceId + "-0-" +  numericRepresentation.Value.UnitOfMeasure.Code;
            Assert.AreEqual(expectedColumnName, dataTable.Columns[0].ColumnName);
        }