Esempio n. 1
0
        void ActuatorConfigurationHandler(ActuatorConfiguration actuatorconfiguration)
        {
            int actuatorID = actuatorconfiguration.actuatorID;

            if ((actuatorID > 0) && (actuatorID <= 2))
            {
                float value = _state.actuator[actuatorID - 1].value = actuatorconfiguration.value;
                _state.actuator[actuatorID - 1].name = actuatorconfiguration.name;

                LogVerbose("--- Actuator configuration " + actuatorID.ToString() + " updated to " + value);

                switch (actuatorID)
                {
                case 1:
                    _srv1.LeftMotorPower = value;
                    break;

                case 2:
                    _srv1.RightMotorPower = value;
                    break;
                }
                actuatorconfiguration.ResponsePort.Post(new DefaultUpdateResponseType());
            }
            else
            {
                actuatorconfiguration.ResponsePort.Post(
                    Fault.FromCodeSubcodeReason(FaultCodes.Receiver,
                                                DsspFaultCodes.OperationFailed,
                                                "Bad Index")
                    );
            }
        }
Esempio n. 2
0
        void UpdateActuatorConfiguration(int actuatorID, string name, int actuatorValue)
        {
            ActuatorConfiguration config = new ActuatorConfiguration();

            config.actuatorID   = actuatorID;
            config.name         = name;
            config.value        = actuatorValue;
            config.ResponsePort = new DsspResponsePort <DefaultUpdateResponseType>();

            _updatePort.Post(config);

            Activate(
                Arbiter.Choice(config.ResponsePort,
                               delegate(DefaultUpdateResponseType response)
            {
            },
                               delegate(Fault fault)
            {
                LogError("Failed to send notification");
            }
                               ));
        }