You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
1.5 KiB
C++

#include "GaZManageExport.h"
GaZManageExport::GaZManageExport()
{
if (m_gazSocket == nullptr)
{
m_gazSocket = new QTcpSocket();
}
}
GaZManageExport::~GaZManageExport()
{
}
bool GaZManageExport::InitGaz(QString ip, int port)
{
m_ip = ip;
m_port = port;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
bool isSuccess = ExecuteCommand("#1W0\r");
if (!isSuccess)
{
return false;
}
//<2F><><EFBFBD>þ<EFBFBD>Բ<EFBFBD>ߴ<EFBFBD>
isSuccess = ExecuteCommand("#1WAS12\r");
if (!isSuccess)
{
return false;
}
//<2F><><EFBFBD>ýǶ<C3BD>
isSuccess = ExecuteCommand("#1WOP0\r");
if (!isSuccess)
{
return false;
}
return true;
}
bool GaZManageExport::MoveToPreparePos()
{
//<2F><><EFBFBD>ýǶ<C3BD>
bool isSuccess = ExecuteCommand("#1G12\r");
if (!isSuccess)
{
return false;
}
return true;
}
bool GaZManageExport::DOAlign()
{
//<2F><><EFBFBD>ýǶ<C3BD>
bool isSuccess = ExecuteCommand("#1G17\r");
if (!isSuccess)
{
return false;
}
return true;
}
bool GaZManageExport::ExecuteCommand(QString commandStr)
{
bool isFlag = false;
m_gazSocket->connectToHost(m_ip, m_port);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
m_gazSocket->write(commandStr.toStdString().c_str());
m_gazSocket->waitForBytesWritten(); // ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>
m_gazSocket->waitForReadyRead(3000); // <20>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ
QString recvStr = QString::fromUtf8(m_gazSocket->readAll());
int index = 0;
index = recvStr.indexOf("ACK");
if (index >= 0)
{
m_gazSocket->waitForReadyRead(30000); // <20>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ
recvStr = QString::fromUtf8(m_gazSocket->readAll());
index = recvStr.indexOf("INF");
if (index >= 0)
{
isFlag = true;
}
}
m_gazSocket->disconnectFromHost();
return isFlag;
}