/// <summary>
        /// Adds a servo to the controller
        /// </summary>
        /// <param name="ID">Servo ID</param>
        /// <param name="mode">JOG mode</param>
        public void AddServo(byte ID, HerkulexDescription.JOG_MODE mode, UInt16 initialPosition)
        {
            Servo servo = new Servo(ID, mode);

            Servos.Add(ID, servo);
            Servos[ID].SetAbsolutePosition(initialPosition);
            //reply to all packets
            RAM_WRITE(ID, HerkulexDescription.RAM_ADDR.ACK_Policy, 1, 0x02); //reply to I_JOG / S_JOG

            RecoverErrors(servo);
        }
        /// <summary>
        /// Adds a servo to the controller
        /// </summary>
        /// <param name="ID">Servo ID</param>
        /// <param name="mode">JOG mode</param>
        public void AddServo(ServoId ID, HerkulexDescription.JOG_MODE mode)
        {
            Servo servo = new Servo(ID, mode);

            while (!Servos.TryAdd(ID, servo))
            {
                ;                               //ON tente l'ajout tant qu'il n'est pas validé
            }
            //reply to all packets
            RAM_WRITE(ID, HerkulexDescription.RAM_ADDR.ACK_Policy, 1, 0x02); //reply to I_JOG / S_JOG
            RecoverErrors(ID);
        }
Beispiel #3
0
 public Servo(ServoId pID, HerkulexDescription.JOG_MODE mode)
 {
     ID   = pID;
     Mode = mode;
 }