mirror of
http://172.16.0.230/r/SIF/TowerOptoSifAndSpectral.git
synced 2025-10-23 04:59:42 +08:00
联调通过
This commit is contained in:
@ -10,6 +10,7 @@ public:
|
||||
virtual void Close() = 0;
|
||||
|
||||
virtual std::string ReadAll() = 0;
|
||||
virtual std::string ReadAll(int iWait) = 0;
|
||||
virtual int Write(const std::string strSend) = 0;
|
||||
|
||||
};
|
||||
|
@ -188,7 +188,7 @@ bool CVSMD12XControl::GetStatus(MSInfo &stuMotorParam)
|
||||
|
||||
int iRet = m_pAbsPort->Write(strCMD);
|
||||
|
||||
QThread::msleep(200);
|
||||
//QThread::msleep(200);
|
||||
|
||||
std::string strRecv = m_pAbsPort->ReadAll();
|
||||
ParseReturnedParam(strRecv);
|
||||
@ -295,6 +295,7 @@ bool CVSMD12XControl::MoveTo(int iAbsPulse)
|
||||
int iRet = m_pAbsPort->Write(strCMD);
|
||||
|
||||
QThread::msleep(200);
|
||||
//Delay_MSec(200);
|
||||
|
||||
m_pAbsPort->ReadAll();
|
||||
|
||||
@ -309,6 +310,7 @@ bool CVSMD12XControl::MoveTo(int iAbsPulse)
|
||||
while (!bFlagIsStopped)
|
||||
{
|
||||
QThread::msleep(200);
|
||||
//Delay_MSec(200);
|
||||
GetStatus(m_stuMSInfo);
|
||||
ZZ_U8 ucFlag = m_stuMSInfo.uiFlags & 0x000000FF;
|
||||
ucFlag = ucFlag & 0x10;
|
||||
@ -370,7 +372,8 @@ bool CVSMD12XControl::StartBackZero()
|
||||
|
||||
int iRet = m_pAbsPort->Write(strCMD);
|
||||
|
||||
QThread::msleep(200);
|
||||
//QThread::msleep(200);
|
||||
//Delay_MSec(200);
|
||||
|
||||
std::string strRecv = m_pAbsPort->ReadAll();
|
||||
|
||||
@ -383,6 +386,7 @@ bool CVSMD12XControl::StartBackZero()
|
||||
while (!bFlagIsStopped)
|
||||
{
|
||||
QThread::msleep(200);
|
||||
//Delay_MSec(200);
|
||||
GetStatus(m_stuMSInfo);
|
||||
ZZ_U8 ucFlag = m_stuMSInfo.uiFlags & 0x000000FF;
|
||||
ucFlag = ucFlag & 0x10;
|
||||
@ -1151,10 +1155,63 @@ bool CVSMD12XControl::ParseReturnedString(std::string &strRecv, int iType)
|
||||
|
||||
bool CVSMD12XControl::ParseReturnedParam(std::string &strRecv)
|
||||
{
|
||||
while (uchar(strRecv[0]) != 0xff && strRecv.size() > 0)
|
||||
{
|
||||
//std::cout << strRecv.size() << endl;
|
||||
strRecv.erase(strRecv.begin());
|
||||
//std::cout << strRecv.size() << endl;
|
||||
|
||||
}
|
||||
int iTry = 0;
|
||||
while (strRecv.size() < 2)
|
||||
{
|
||||
|
||||
std::string strRecv1 = m_pAbsPort->ReadAll();
|
||||
if (strRecv1.size() == 0)
|
||||
{
|
||||
return false;
|
||||
|
||||
}
|
||||
strRecv = strRecv + strRecv1;
|
||||
iTry++;
|
||||
if (iTry == 2)
|
||||
{
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (strRecv[2]==0x2)
|
||||
{
|
||||
//strRecv.erase(0, 3);
|
||||
//strRecv.erase(strRecv.size() - 3, 3);
|
||||
|
||||
int iRetry = 0;
|
||||
while (strRecv.size() != 21)
|
||||
{
|
||||
std::string strRecvTemp = "";
|
||||
strRecvTemp = m_pAbsPort->ReadAll(20);
|
||||
if (strRecvTemp.size() == 0)
|
||||
{
|
||||
return false;
|
||||
|
||||
}
|
||||
strRecv = strRecv + strRecvTemp;
|
||||
iRetry++;
|
||||
if (iRetry == 5)
|
||||
{
|
||||
return false;
|
||||
|
||||
}
|
||||
if (strRecv.size() > 21)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
//return false;
|
||||
}
|
||||
|
||||
|
||||
if (strRecv.size() != 21)
|
||||
{
|
||||
return false;
|
||||
@ -1317,6 +1374,13 @@ char* CVSMD12XControl::VSMD_Split(char* cStr, char cSplit)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void CVSMD12XControl::Delay_MSec(ZZ_U16 usMS)
|
||||
{
|
||||
QEventLoop qeLoop;
|
||||
QTimer::singleShot(usMS, &qeLoop, SLOT(quit()));
|
||||
qeLoop.exec();
|
||||
}
|
||||
|
||||
// int CVSMD12XControl::add(int a, int b)
|
||||
// {
|
||||
// return a + b;
|
||||
|
@ -139,5 +139,8 @@ private:
|
||||
bool ParseReturnedParam(std::string &strRecv);
|
||||
void VSMD_BitShift(ZZ_U8* src, unValue* dst);
|
||||
char* VSMD_Split(char* cStr, char cSplit);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////qt
|
||||
void Delay_MSec(ZZ_U16 usMS);
|
||||
};
|
||||
|
||||
|
@ -7,15 +7,15 @@ using namespace ZZ_MISCDEF;
|
||||
typedef struct tagTransportLayerInfomation
|
||||
{
|
||||
//Serial
|
||||
int iPortType;
|
||||
int iPortType = 0;
|
||||
int iPortNumber;
|
||||
int indexBaudRate;
|
||||
int iBaudRate;
|
||||
int indexParity, indexBytesize, indexStopBits; //Mode
|
||||
int iIndexBaudRate;
|
||||
int iBaudRate = 9600;
|
||||
int indexParity = 0, indexBytesize = 3, indexStopBits = 0; //Mode
|
||||
bool Hw;
|
||||
bool Sw;
|
||||
bool Dtr, Rts;
|
||||
|
||||
QString qstrFullPortName = "";
|
||||
//Bit
|
||||
//Stop
|
||||
//MODEM CONTROL setting
|
||||
@ -34,11 +34,11 @@ typedef struct tagMotorStatusInfo
|
||||
|
||||
typedef struct tagControllerParams
|
||||
{
|
||||
int bdr; //baud
|
||||
int mcs; //microsteps 0:full 1:half 2:4 3:8 4:16 5:32 6:64 7:128 8:256
|
||||
float spd; //velocity
|
||||
float acc; //acceleration
|
||||
float dec; //deceleration
|
||||
int bdr = 9600; //baud
|
||||
int mcs = 6; //microsteps 0:full 1:half 2:4 3:8 4:16 5:32 6:64 7:128 8:256
|
||||
float spd = 64000; //velocity
|
||||
float acc = 100000; //acceleration
|
||||
float dec = 100000; //deceleration
|
||||
float cra; //acc state current
|
||||
float crn; //normal state current
|
||||
float crh; //hold state current
|
||||
@ -46,11 +46,11 @@ typedef struct tagControllerParams
|
||||
ZZ_U8 s1r;
|
||||
ZZ_U8 s2f;
|
||||
ZZ_U8 s2r;
|
||||
ZZ_U8 zmd; //zero mode
|
||||
ZZ_U8 osv; //open state sensor value
|
||||
ZZ_U8 snr; //zero sensor
|
||||
ZZ_U8 zsp; //zero safe position
|
||||
float zsd; //zero velocity
|
||||
ZZ_U8 zmd = 3; //zero mode
|
||||
ZZ_U8 osv = 0; //open state sensor value
|
||||
ZZ_U8 snr = 0; //zero sensor
|
||||
ZZ_U8 zsp = 200; //zero safe position
|
||||
float zsd = 50000; //zero velocity
|
||||
}ControllerParams;
|
||||
|
||||
typedef union
|
||||
|
@ -31,7 +31,17 @@ CZZ_SeiralPort_QT::~CZZ_SeiralPort_QT()
|
||||
// {
|
||||
// bRes = false;
|
||||
// }
|
||||
QString qstrPortName = QString("COM%1").arg(m_piSettings.iPortNumber);
|
||||
QString qstrPortName;
|
||||
if (m_piSettings.qstrFullPortName != "")
|
||||
{
|
||||
qstrPortName = m_piSettings.qstrFullPortName;
|
||||
qDebug() << m_piSettings.qstrFullPortName;
|
||||
}
|
||||
else
|
||||
{
|
||||
qstrPortName = QString("COM%1").arg(m_piSettings.iPortNumber);
|
||||
}
|
||||
//QString qstrPortName = QString("COM%1").arg(m_piSettings.iPortNumber);
|
||||
m_pSerialPort->setPortName(qstrPortName);
|
||||
m_pSerialPort->setReadBufferSize(512);
|
||||
bRes = m_pSerialPort->setBaudRate(m_piSettings.iBaudRate);
|
||||
@ -63,7 +73,7 @@ void CZZ_SeiralPort_QT::Close()
|
||||
|
||||
std::string CZZ_SeiralPort_QT::ReadAll()
|
||||
{
|
||||
m_pSerialPort->waitForReadyRead();
|
||||
m_pSerialPort->waitForReadyRead(1000);
|
||||
qbaRecv.clear();
|
||||
qbaRecv = m_pSerialPort->readAll();
|
||||
std::string strRet(qbaRecv.constData(), qbaRecv.length());
|
||||
@ -95,6 +105,15 @@ std::string CZZ_SeiralPort_QT::ReadAll()
|
||||
// return strRet;
|
||||
}
|
||||
|
||||
std::string CZZ_SeiralPort_QT::ReadAll(int iWait)
|
||||
{
|
||||
m_pSerialPort->waitForReadyRead(iWait);
|
||||
qbaRecv.clear();
|
||||
qbaRecv = m_pSerialPort->readAll();
|
||||
std::string strRet(qbaRecv.constData(), qbaRecv.length());
|
||||
return strRet;
|
||||
}
|
||||
|
||||
int CZZ_SeiralPort_QT::Write(const std::string strSend)
|
||||
{
|
||||
QByteArray qbaTest(strSend.c_str(),(int)strSend.length());
|
||||
|
@ -19,6 +19,7 @@ public:
|
||||
virtual void Close();
|
||||
|
||||
virtual std::string ReadAll();
|
||||
virtual std::string ReadAll(int iWait);
|
||||
virtual int Write(const std::string strSend);
|
||||
|
||||
};
|
||||
|
Reference in New Issue
Block a user