This commit is contained in:
2021-12-13 17:28:29 +08:00
30 changed files with 397 additions and 93 deletions

View File

@ -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;