/// <summary>
        /// Sends a single JOG_TAG with S_JOG (TAG.playTime is ignored)
        /// </summary>
        /// <param name="port"></param>
        /// <param name="TAG"></param>
        /// <param name="playTime"></param>
        private void S_JOG(HerkulexDescription.JOG_TAG TAG, byte playTime)
        {
            byte[] dataToSend = new byte[5];
            dataToSend[0] = playTime;
            dataToSend[1] = (byte)(TAG.JOG >> 0);
            dataToSend[2] = (byte)(TAG.JOG >> 8);
            dataToSend[3] = TAG.SET;
            dataToSend[4] = TAG.ID;

            EncodeAndSendPacket(serialPort, TAG.ID, (byte)HerkulexDescription.CommandSet.S_JOG, dataToSend);
        }
        /// <summary>
        /// Sends a I_JOG command with a single tag
        /// </summary>
        /// <param name="port">Serial port to use</param>
        /// <param name="TAGS">I_JOG tag config</param>
        /// <param name="broadcast">Whether to send the tag with the broadcast ID (false by default)</param>
        private void I_JOG(HerkulexDescription.JOG_TAG ServoTag, bool broadcast = false)
        {
            byte[] dataToSend = new byte[5];
            dataToSend[0] = (byte)(ServoTag.JOG >> 0);
            dataToSend[1] = (byte)(ServoTag.JOG >> 8);
            dataToSend[2] = ServoTag.SET;

            if (broadcast)
            {
                dataToSend[3] = 0xFE;
            }
            else
            {
                dataToSend[3] = ServoTag.ID;
            }

            dataToSend[4] = ServoTag.playTime;

            EncodeAndSendPacket(serialPort, ServoTag.ID, (byte)HerkulexDescription.CommandSet.I_JOG, dataToSend);
        }