示例#1
0
        /// <summary>
        /// Retourne le nom de la position en fonction du servomoteur (Ouvert, fermé, etc...)
        /// </summary>
        /// <param name="position">Position du servomoteur</param>
        /// <param name="servo">Servomoteur</param>
        /// <returns>Nom de la position</returns>
        public static String GetName(int position, ServomoteurID servo)
        {
            PropertyInfo[] properties = typeof(Config).GetProperties();
            foreach (PropertyInfo p in properties)
            {
                if (p.PropertyType.IsSubclassOf(typeof(PositionableServo)))
                {
                    PositionableServo positionnableServo = (PositionableServo)(p.GetValue(Config.CurrentConfig, null));

                    if (positionnableServo.ID == servo)
                    {
                        PropertyInfo[] proprietesServo = positionnableServo.GetType().GetProperties();
                        foreach (PropertyInfo ps in proprietesServo)
                        {
                            if (ps.Name.StartsWith("Position") && ((int)(ps.GetValue(positionnableServo, null)) == position))
                            {
                                return(Config.PropertyNameToScreen(ps) + " (" + position + ")");
                            }
                        }
                    }
                }
            }

            return(position.ToString());
        }
示例#2
0
        public void SetServo(ServomoteurID servo)
        {
            if (_servo is null || _servo.ID != servo)
            {
                numID.Value           = (int)(servo);
                _servo                = AllDevices.CanServos[(ServomoteurID)numID.Value];
                picConnection.Visible = false;
                lblName.Text          = "";
                ReadValues();

                _currentPositionable = FindPositionnableFromServo(servo);
                SetPositions(_currentPositionable);
            }
        }