提交人:方小海

提交时间:2025/06/18
提交目的:
提交最终版第三方库
master
WIN-BJ99OSJESP2\Administrator 2 weeks ago
parent 45855a6400
commit ea44c0aa0b

@ -1,5 +1,8 @@
#include "CGugaoDriver.h" #include "CGugaoDriver.h"
#ifndef _WINDOWS_H
#include <windows.h> #include <windows.h>
#define _WINDOWS_H
#endif
#include "gts.h" #include "gts.h"
#include "gtgl500.h" #include "gtgl500.h"
#include <thread> #include <thread>
@ -147,8 +150,8 @@ int CGugaoDriver::AbsMove(int iAxisId,
double dMoveSpeed, double dMoveSpeed,
bool bWaitFinished) bool bWaitFinished)
{ {
if (!m_open) /*if (!m_open)
return 1; return 1;*/
//执行安全回调 //执行安全回调
if (m_onAxisMoveSafeFunc != nullptr) if (m_onAxisMoveSafeFunc != nullptr)
@ -237,12 +240,19 @@ int CGugaoDriver::AbsMove(int iAxisId,
Logger::GetInstance()->WriteLog(0, "GTN_Update is error"); Logger::GetInstance()->WriteLog(0, "GTN_Update is error");
return 1; return 1;
} }
int totalWaitTime = 120 * 1000 * 10;
int useTime = 0;
if (bWaitFinished) if (bWaitFinished)
{ {
long lAxisSts = 0; long lAxisSts = 0;
while (true) while (true)
{ {
//大于30S必须强制退出不然会卡死
useTime += 25;
if (useTime >= totalWaitTime)
{
return 1;
}
// 读取AXIS轴的状态 // 读取AXIS轴的状态
sRtn = GTN_GetSts(CORE_NUM, iAxisId, &lAxisSts); sRtn = GTN_GetSts(CORE_NUM, iAxisId, &lAxisSts);
if (sRtn) if (sRtn)

@ -3,7 +3,11 @@
#define CORE_NUM 1 #define CORE_NUM 1
#define CYCLIC_SYNC_POSITION 8 //操作模式为循环运动操作模式 #define CYCLIC_SYNC_POSITION 8 //操作模式为循环运动操作模式
#ifndef _WINDOWS_H
#include <windows.h> #include <windows.h>
#define _WINDOWS_H
#endif
#include <vector> #include <vector>
#include "IGugaoDriver.h" #include "IGugaoDriver.h"
#include "Logger.h" #include "Logger.h"
@ -42,7 +46,7 @@ public:
virtual bool IsAxisPaslimit(int iAxisId); virtual bool IsAxisPaslimit(int iAxisId);
virtual bool isAxisNagLimit(int iAxisId); virtual bool isAxisNagLimit(int iAxisId);
private: protected:
bool m_open = false; bool m_open = false;
}; };

@ -1,7 +1,10 @@
#define CARD_DLL_API _declspec(dllexport) #define CARD_DLL_API _declspec(dllexport)
#include "CMotorDriver.h" #include "CMotorDriver.h"
#ifndef _WINDOWS_H
#include <windows.h> #include <windows.h>
#define _WINDOWS_H
#endif
#include "gts.h" #include "gts.h"
#include "gtgl500.h" #include "gtgl500.h"
#include <thread> #include <thread>
@ -40,7 +43,7 @@ int CMotorDriver::Relmove(int motorId, double pos, bool waitFinished)
prfPos += pos; prfPos += pos;
prfPos = prfPos / motorObj->PulseTo1mm(); prfPos = prfPos / motorObj->PulseTo1mm();
AbsMove(motorId, motorObj->PulseTo1mm(), pos, motorObj->Acc(), motorObj->Dec(), motorObj->Vel(),true); AbsMove(motorId, motorObj->PulseTo1mm(), prfPos, motorObj->Acc(), motorObj->Dec(), motorObj->Vel(),true);
return 0; return 0;
} }
@ -169,8 +172,8 @@ int CMotorDriver::RelmoveMulti(std::vector<int> motorIdVec, std::vector<double>
int CMotorDriver::Home(int motorId, bool waitFinished) int CMotorDriver::Home(int motorId, bool waitFinished)
{ {
if (!m_open) /*if (!m_open)
return 1; return 1;*/
// 必须处于伺服使能状态, 切换到回零模式 // 必须处于伺服使能状态, 切换到回零模式
short sRtn = GTN_SetHomingMode(m_gugaoCardCore, motorId, 6); short sRtn = GTN_SetHomingMode(m_gugaoCardCore, motorId, 6);

@ -1,6 +1,9 @@
#pragma once #pragma once
#ifndef _WINDOWS_H
#include <windows.h> #include <windows.h>
#define _WINDOWS_H
#endif
#include <algorithm> #include <algorithm>
#include "Logger.h" #include "Logger.h"
#include "CGugaoDriver.h" #include "CGugaoDriver.h"
@ -29,7 +32,7 @@ public:
public: public:
std::vector<MotorAttr>* m_motor = nullptr; //所有电机的管理 std::vector<MotorAttr>* m_motor = nullptr; //所有电机的管理
bool m_open = false;;//控制卡是否初始化成功 //bool m_open = false;;//控制卡是否初始化成功
const short m_gugaoCardCore = 1; const short m_gugaoCardCore = 1;
}; };

Binary file not shown.

@ -0,0 +1,18 @@
e:\third\motionctrlcard\debug\vc140.pdb
e:\third\motionctrlcard\debug\vc140.idb
e:\third\motionctrlcard\debug\cgugaodriver.obj
e:\third\motionctrlcard\debug\cmotordriver.obj
e:\third\motionctrlcard\debug\logger.obj
e:\third\motionctrlcard\debug\motor.obj
e:\wafermark\code\wafermark\debug\motionctrlcard.ilk
e:\wafermark\code\wafermark\debug\motionctrlcard.dll
e:\wafermark\code\wafermark\debug\motionctrlcard.pdb
e:\third\motionctrlcard\motionctrlcard.lib
e:\third\motionctrlcard\motionctrlcard.exp
e:\third\motionctrlcard\debug\motionctrlcard.tlog\cl.command.1.tlog
e:\third\motionctrlcard\debug\motionctrlcard.tlog\cl.read.1.tlog
e:\third\motionctrlcard\debug\motionctrlcard.tlog\cl.write.1.tlog
e:\third\motionctrlcard\debug\motionctrlcard.tlog\link.command.1.tlog
e:\third\motionctrlcard\debug\motionctrlcard.tlog\link.read.1.tlog
e:\third\motionctrlcard\debug\motionctrlcard.tlog\link.write.1.tlog
e:\third\motionctrlcard\debug\motionctrlcard.tlog\motionctrlcard.write.1u.tlog

@ -0,0 +1,11 @@
 CMotorDriver.cpp
e:\third\motionctrlcard\igugaodriver.h(48): warning C4251: “IGugaoDriver::m_onAxisMoveSafeFunc”: class“std::function<bool (int,double)>”需要有 dll 接口由 class“IGugaoDriver”的客户端使用
e:\third\motionctrlcard\igugaodriver.h(7): note: 参见“std::function<bool (int,double)>”的声明
e:\third\motionctrlcard\igugaodriver.h(49): warning C4251: “IGugaoDriver::m_onAxisPrevHomeFunc”: class“std::function<bool (int)>”需要有 dll 接口由 class“IGugaoDriver”的客户端使用
e:\third\motionctrlcard\igugaodriver.h(8): note: 参见“std::function<bool (int)>”的声明
e:\third\motionctrlcard\igugaodriver.h(50): warning C4251: “IGugaoDriver::m_AxisAfterHomeFunc”: class“std::function<bool (int)>”需要有 dll 接口由 class“IGugaoDriver”的客户端使用
e:\third\motionctrlcard\igugaodriver.h(8): note: 参见“std::function<bool (int)>”的声明
e:\third\motionctrlcard\igugaodriver.h(51): warning C4251: “IGugaoDriver::m_onSetIoSafeFunc”: class“std::function<bool (int,unsigned char)>”需要有 dll 接口由 class“IGugaoDriver”的客户端使用
e:\third\motionctrlcard\igugaodriver.h(10): note: 参见“std::function<bool (int,unsigned char)>”的声明
MotionCtrlCard.vcxproj -> E:\WaferMark\code\WaferMark\Debug\MotionCtrlCard.dll
MotionCtrlCard.vcxproj -> E:\WaferMark\code\WaferMark\Debug\MotionCtrlCard.pdb (Full PDB)

@ -0,0 +1,2 @@
#TargetFrameworkVersion=v4.0:PlatformToolSet=v140:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=8.1
Debug|Win32|E:\WaferMark\code\WaferMark\|

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1 @@
Subproject commit a7cb2188765b88c84535f9b4d3a8691eeeaf7ee5

@ -21,8 +21,9 @@ void XizanManage::connectXizan()
if (m_xizanSocket == nullptr) if (m_xizanSocket == nullptr)
{ {
m_xizanSocket = new QTcpSocket(this); m_xizanSocket = new QTcpSocket(this);
//connect(m_xizanSocket, SIGNAL(readyRead()), this, SLOT(onReadyRead()));
//connect(m_xizanSocket, &QTcpSocket::connected, this, &XizanManage::onConnected); //connect(m_xizanSocket, &QTcpSocket::connected, this, &XizanManage::onConnected);
connect(m_xizanSocket, &QTcpSocket::readyRead, this, &XizanManage::onReadyRead); //connect(m_xizanSocket, &QTcpSocket::readyRead, this, &XizanManage::onReadyRead);
//connect(m_xizanSocket, &QTcpSocket::disconnected, this, &XizanManage::onReadyRead); //connect(m_xizanSocket, &QTcpSocket::disconnected, this, &XizanManage::onReadyRead);
} }
m_xizanSocket->connectToHost(m_ip, m_port); m_xizanSocket->connectToHost(m_ip, m_port);
@ -31,17 +32,38 @@ void XizanManage::connectXizan()
void XizanManage::SendOrder(QString& order) void XizanManage::SendOrder(QString& order)
{ {
m_xizanSocket->write(order.toUtf8());
m_xizanSocket->flush();
} }
void XizanManage::disConnectXizan() void XizanManage::disConnectXizan()
{ {
m_xizanSocket->disconnectFromHost(); if (m_xizanSocket != nullptr)
{
m_xizanSocket->disconnectFromHost();
}
}
QString XizanManage::GetXizanData()
{
QString recvStr;
connectXizan();
QString str = "VTFP 0 0";
if (m_xizanSocket != nullptr)
{
m_xizanSocket->write(str.toStdString().c_str());
m_xizanSocket->waitForBytesWritten(); // 确保数据完全发送
m_xizanSocket->waitForReadyRead(3000); // 等待服务器响应
recvStr = QString::fromUtf8(m_xizanSocket->readAll());
int i = 0;
}
disConnectXizan();
return recvStr;
} }
void XizanManage::onReadyRead() void XizanManage::onReadyRead()
{ {
QString recvStr = QString::fromUtf8(m_xizanSocket->readAll()); //返回数据格式: VTFP 0 2572.59 2631.00
emit signal_sendRecvStr(recvStr); /*QString recvStr = QString::fromUtf8(m_xizanSocket->readAll());
emit signal_sendRecvStr(recvStr);*/
} }

@ -15,6 +15,7 @@ public:
void connectXizan(); void connectXizan();
void SendOrder(QString& order); void SendOrder(QString& order);
void disConnectXizan(); void disConnectXizan();
QString GetXizanData();
signals: signals:
void signal_sendRecvStr(QString str); void signal_sendRecvStr(QString str);

Loading…
Cancel
Save