***************************************************************************** *** Sensor (HardwareAdapter) *** *** knows its Device, knows its Estimator *** *** *** ***************************************************************************** mod SENSOR is inc ATTRIBUTES . inc ESTIMATOR-SENSOR-INTERFACE . inc DEVICE-SENSOR-INTERFACE . sort SensorCid . subsort SensorCid < Cid . *** Attributes op measurement : Measurement -> Attribute . *** for now only the last measurement is stored, not the whole history *** Converts values to measurements op createMeasurement : SensorValue -> Measurement . vars d est sens : Oid . var senscid : SensorCid . vars sval : SensorValue . var m : Measurement . rl[processSensorValuesSendNewMeasurementToEstimator]: < sens : senscid | myest(est), mydevice(d), measurement(m), sensatts:AttributeSet > msg(sens,d,sensorValues(sval)) => < sens : senscid | myest(est), mydevice(d), measurement(createMeasurement(sval)), sensatts:AttributeSet > msg(est,sens,newMeasurement(createMeasurement(sval))) . *** Optimization: *** sensor sends ack of new values to estimator, *** estimator requests values, sensor replies values endm mod SENSOR-TEST is inc SENSOR . op Sensor : -> SensorCid . op mysensor : -> Object . eq mysensor = < o("MySensor") : Sensor | mydevice(o("MyDevice")), myest(o("MyEstimator")), measurement(noMeas) > . endm