Пример #1
0
 public RobotAction(int ID)
 {
     _uID = ID;                                      // Identifiant unique pour l'action
     _cmd = EnumCmd.NotSet;                          // Commande
     _cmdType = EnumCmdType.CmdType_NotSet;          // Type de l'action à réaliser
     _param1 = "";                                   // Param 1
     _param2 = "";                                   // Param 2
     _param3 = "";                                   // Param 3
     _param4 = "";                                   // Param 4
     _activeSensors = new ActiveSensors();           // Sensors actifs durant le mouvement (pas de sensor actif)
     _nextID = -1;                                   // Action suivante
     _timeoutID = -1;                                // Action à réaliser en cas de timeout
 }
Пример #2
0
        /// <summary>
        /// Fonction pour verifier la valeur du type de commande passé en paramètre
        /// </summary>
        /// <param name="valueToCheck">Valeur à tester</param>
        /// <param name="defaultValue">Valeur à utiliser en cas de valeur non valide</param>
        /// <returns>Le type de commande verifié</returns>
        private EnumCmdType CheckEnumCmdTypeValue(String valueToCheck, EnumCmdType defaultValue)
        {
            EnumCmdType Ret = defaultValue;

            try
            {
                foreach (EnumCmdType currentValue in Enum.GetValues(typeof(EnumCmdType)))
                {
                    if (currentValue.ToString() == valueToCheck)
                        Ret = currentValue;
                }
            }
            catch (Exception)
            {
                Ret = defaultValue;
            }

            return Ret;
        }
Пример #3
0
        /// <summary>
        /// Update the current command with the given data
        /// </summary>
        /// <param name="Cmd">Command</param>
        /// <param name="CmdType">Command Type</param>
        /// <param name="Param1">Param 1</param>
        /// <param name="Param2">Param 2</param>
        /// <param name="Param3">Param 3</param>
        /// <param name="Param4">Param 4</param>
        /// <param name="ActiveSensors"></param>
        /// <returns></returns>
        public bool Update(EnumCmd Cmd, EnumCmdType CmdType, String Param1, String Param2, String Param3, String Param4, EnumStrategyFlag ActiveSensors)
        {
            bool Ret = false;

            // Init Cmd to the default value
            _Cmd = EnumCmd.NotSet;
            _CmdType = EnumCmdType.NotSet;
            _Param1 = null;
            _Param2 = null;
            _Param3 = null;
            _Param4 = null;

            if (ActiveSensors != EnumStrategyFlag.STRATEGYFLAG_NONE)
                _ActiveSensorsFlag = ActiveSensors;

            _Cmd = Cmd;
            _CmdType = CmdType;

            // Check Params for Cmd
            // Cmd Modif : Add new command here
            switch (Cmd)
            {
                // ________________________________________________________ Param1 / Param2
                case EnumCmd.MvtSimple_MoveInMM:
                case EnumCmd.App_SetStrategyFlags:
                    if ((Param1 != null) && (Param2 != null))
                    {
                        _Param1 = Param1;
                        _Param2 = Param2;
                        Ret = true;
                    }
                    else
                    {
                        LoadDefaultParamsValue();
                        Ret = true;
                    }
                    break;

                // ________________________________________________________ Param1 / Param4
                case EnumCmd.Mvt_UseAngleOnly:
                case EnumCmd.MvtSimple_RotateInDeg:
                case EnumCmd.MvtSimple_RotateToAngleInDeg:
                    if ((Param1 != null) && (Param4 != null))
                    {
                        _Param1 = Param1;
                        _Param4 = Param4;
                        Ret = true;
                    }
                    else
                    {
                        LoadDefaultParamsValue();
                        Ret = true;
                    }
                    break;

                // ________________________________________________________ Param1 / Param2 / Param3
                case EnumCmd.Mvt_UseDistOnly:
                case EnumCmd.App_IfGoto_System:
                case EnumCmd.App_IfGoto_Strategy:
                    if ((Param1 != null) && (Param2 != null) && (Param3 != null))
                    {
                        _Param1 = Param1;
                        _Param2 = Param2;
                        _Param3 = Param3;
                        Ret = true;
                    }
                    else
                    {
                        LoadDefaultParamsValue();
                        Ret = true;
                    }
                    break;

                // ________________________________________________________ Param1 / Param2 / Param4
                case EnumCmd.Mvt_UsePivotMode:
                    if ((Param1 != null) && (Param2 != null) && (Param4 != null))
                    {
                        _Param1 = Param1;
                        _Param2 = Param2;
                        _Param4 = Param4;
                        Ret = true;
                    }
                    else
                    {
                        LoadDefaultParamsValue();
                        Ret = true;
                    }
                    break;

                // ________________________________________________________ Param2 / Param3 / Param4
                case EnumCmd.App_SetNewPos:
                    if ((Param2 != null) && (Param3 != null) && (Param4 != null))
                    {
                        _Param2 = Param2;
                        _Param3 = Param3;
                        _Param4 = Param4;
                        Ret = true;
                    }
                    else
                    {
                        LoadDefaultParamsValue();
                        Ret = true;
                    }
                    break;

                // ________________________________________________________ Param1 / Param2 / Param3 / Param4
                case EnumCmd.Mvt_UseMixedMode:
                case EnumCmd.App_Wait:
                case EnumCmd.Mvt_UseSpline:
                    if ((Param1 != null) && (Param2 != null) && (Param3 != null) && (Param4 != null))
                    {
                        _Param1 = Param1;
                        _Param2 = Param2;
                        _Param3 = Param3;
                        _Param4 = Param4;
                        Ret = true;
                    }
                    else
                    {
                        LoadDefaultParamsValue();
                        Ret = true;
                    }
                    break;

                // ________________________________________________________ None
                case EnumCmd.Mvt_Stop:
                case EnumCmd.Sensors_ArmsClose:
                case EnumCmd.Sensors_ArmsCloseTotem:
                case EnumCmd.Sensors_ArmsOpenDown:
                case EnumCmd.Sensors_ArmsOpenUp:
                case EnumCmd.Sensors_ArmsOpenOneCD:
                case EnumCmd.Sensors_ArmsOpenTotem:
                case EnumCmd.Sensors_ArmsUngrab:
                case EnumCmd.Sensors_ElevatorLow:
                    Ret = true;
                    break;

                // ________________________________________________________
                default:
                    break;
            }

            return Ret;
        }
Пример #4
0
        /// <summary>
        /// Get the Command Type into a string
        /// </summary>
        /// <param name="CmdTypeString">String that contains the expected command type</param>
        /// <returns>An EnumCmdType object</returns>
        public static String GetCmdTypeToString(EnumCmdType CmdType)
        {
            // App
            if (EnumCmdType.Blocking == CmdType) { return "CmdType_Blocking"; }
            if (EnumCmdType.NonBlocking == CmdType) { return "CmdType_NonBlocking"; }

            return "CmdType_NotSet";
        }
Пример #5
0
 /// <summary>
 /// Create a new 'Cmd' command with the 'CmdType' type, 'Params' parameters and ActiveSensors parameters
 /// </summary>
 public Command(EnumCmd Cmd, EnumCmdType CmdType, String Param1, String Param2, String Param3, String Param4, EnumStrategyFlag ActiveSensors)
 {
     Update(Cmd, CmdType, Param1, Param2, Param3, Param4, ActiveSensors);
     return;
 }
Пример #6
0
 /// <summary>
 /// Create a new 'Cmd' command with the 'CmdType' type and 'Params' parameters
 /// </summary>
 public Command(EnumCmd Cmd, EnumCmdType CmdType, String Param1, String Param2, String Param3, String Param4)
 {
     Update(Cmd, CmdType, Param1, Param2, Param3, Param4, EnumStrategyFlag.STRATEGYFLAG_NONE);
     return;
 }
Пример #7
0
 /// <summary>
 /// Create a new 'Cmd' command with the 'CmdType' type
 /// Default value is used Params
 /// </summary>
 public Command(EnumCmd Cmd, EnumCmdType CmdType)
 {
     Update(Cmd, CmdType, null, null, null, null, EnumStrategyFlag.STRATEGYFLAG_NONE);
     return;
 }