void SensorUpdateHandler(SensorUpdate sensorUpdate) { int sensorID = sensorUpdate.sensorID; if ((sensorID > 0) && (sensorID <= 4)) { //LogInfo("--- Sensor State Updated " + sensorUpdate.value.ToString()); _state.Sensors[sensorID - 1].value = sensorUpdate.value; _subMgrPort.Post(new submgr.Submit(_state, DsspActions.ReplaceRequest)); sensorUpdate.ResponsePort.Post(new DefaultUpdateResponseType()); } else { sensorUpdate.ResponsePort.Post( Fault.FromCodeSubcodeReason(FaultCodes.Receiver, DsspFaultCodes.OperationFailed, "Bad Index") ); } }
private void Sensor_ValueChanged(int sensorID, int sensorValue) { SensorUpdate update = new SensorUpdate(); update.sensorID = sensorID; update.value = sensorValue; update.ResponsePort = new DsspResponsePort <DefaultUpdateResponseType>(); _updatePort.Post(update); Activate( Arbiter.Choice(update.ResponsePort, delegate(DefaultUpdateResponseType response) { }, delegate(Fault fault) { LogError("Failed to send notification"); } )); }