@Override public SimpleVehicleMessage getItem(int position) { return mValues.get(position).asSimpleMessage(); }
propagateMeasurementFromMessage(message.asSimpleMessage());
/** * Retrieve the most current value of a measurement. * * @param measurementType The class of the requested Measurement * (e.g. VehicleSpeed.class) * @return An instance of the requested Measurement which may or may * not have a value. * @throws UnrecognizedMeasurementTypeException if passed a measurementType * that does not extend Measurement * @throws NoValueException if no value has yet been received for this * measurementType * @see BaseMeasurement */ public Measurement get( Class<? extends Measurement> measurementType) throws UnrecognizedMeasurementTypeException, NoValueException { return BaseMeasurement.getMeasurementFromMessage(measurementType, get(BaseMeasurement.getKeyForMeasurement(measurementType)).asSimpleMessage()); }
@Test public void buildEventedFromMessage() throws UnrecognizedMeasurementTypeException, NoValueException { VehicleDoorStatus measurement = new VehicleDoorStatus("driver", false); VehicleMessage eventedMessage = measurement.toVehicleMessage(); Measurement deserializedMeasurement = BaseMeasurement.getMeasurementFromMessage( eventedMessage.asSimpleMessage()); assertThat(deserializedMeasurement, instanceOf(VehicleDoorStatus.class)); VehicleDoorStatus doorStatus = (VehicleDoorStatus) deserializedMeasurement; assertThat(doorStatus, equalTo(measurement)); }
@Test public void toVehicleMessage() { measurement = new TestMeasurement(10.1); VehicleMessage message = measurement.toVehicleMessage(); assertTrue(message instanceof SimpleVehicleMessage); SimpleVehicleMessage simpleMessage = message.asSimpleMessage(); assertEquals(simpleMessage.getName(), TestMeasurement.ID); assertEquals(simpleMessage.getValue(), measurement.getValue().doubleValue()); }