Пример #1
0
        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")
                    );
            }
        }
Пример #2
0
        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");
            }
                               ));
        }