private void SendDataEncode() { // 帧头 sendBuff[0] = 0xAA; sendBuff[1] = 0x55; if (gtryCmd == GTYRY_CMD.CLAMP_RELAX) { Console.WriteLine("aa"); } gtryCmdDoing = gtryCmd;// 正在执行的龙门指令 sendBuff[2] = (byte)((int)gtryCmdDoing & 0xff); sendBuff[3] = (byte)(((int)gtryCmdDoing >> 8) & 0xff); // 伺服运动命令 if ((gtryCmdDoing <= GTYRY_CMD.Z_ZRN) && (gtryCmdDoing >= GTYRY_CMD.X_RELATIVE)) { int tmpGtryPos = gtryPos * pulse_per_mm; int tmpGtrySpeed = gtrySpeed * pulse_per_mm; sendBuff[4] = (byte)(tmpGtryPos & 0xff); sendBuff[5] = (byte)((tmpGtryPos >> 8) & 0xff); sendBuff[6] = (byte)((tmpGtryPos >> 16) & 0xff); sendBuff[7] = (byte)((tmpGtryPos >> 24) & 0xff); sendBuff[8] = (byte)(tmpGtrySpeed & 0xff); sendBuff[9] = (byte)((tmpGtrySpeed >> 8) & 0xff); sendBuff[10] = (byte)((tmpGtrySpeed >> 16) & 0xff); sendBuff[11] = (byte)((tmpGtrySpeed >> 24) & 0xff); } else if ((gtryCmdDoing >= GTYRY_CMD.XPOS_SET_ZREO) && (gtryCmdDoing <= GTYRY_CMD.ZPOS_SET_ZERO)) { int tmpGtryPos = gtryPos; int tmpGtrySpeed = gtrySpeed; sendBuff[4] = (byte)(tmpGtryPos & 0xff); sendBuff[5] = (byte)((tmpGtryPos >> 8) & 0xff); sendBuff[6] = (byte)((tmpGtryPos >> 16) & 0xff); sendBuff[7] = (byte)((tmpGtryPos >> 24) & 0xff); sendBuff[8] = (byte)(tmpGtrySpeed & 0xff); sendBuff[9] = (byte)((tmpGtrySpeed >> 8) & 0xff); sendBuff[10] = (byte)((tmpGtrySpeed >> 16) & 0xff); sendBuff[11] = (byte)((tmpGtrySpeed >> 24) & 0xff); } else { sendBuff[0] = sendBuff[0]; } // 帧尾巴 sendBuff[18] = 0xA5; sendBuff[19] = 0x5A; }
// 发送命令的重置 private void SendCmdReset() { if (gtryCmdDoing == GTYRY_CMD.STOP) { return; } if (gtryCmdDoing == GTYRY_CMD.PAUSE) { return; } if (gtryCmdDoing != GTYRY_CMD.NONE) { gtryCmdDoing = GTYRY_CMD.NONE; gtryCmd = GTYRY_CMD.NONE; } }