Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        // 发送命令的重置
        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;
            }
        }