/// <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); }