构建新的cmakelist工程

修改了  delay_tc函数
修返回频率为20hz
修改波特率修改后先重新设置通讯波特率在保存
This commit is contained in:
xin
2023-02-13 09:15:17 +08:00
parent d870c42486
commit 277e347e56
12 changed files with 61 additions and 7 deletions

42
project/CMakeLists.txt Normal file
View File

@ -0,0 +1,42 @@
# cmake_minimum_required(VERSION <specify CMake version here>)
cmake_minimum_required(VERSION 3.3)
project(Wintmotion)
SET(CMAKE_INSTALL_PREFIX < /home/pi/bin >)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)
IF (WIN32)
include_directories(../../third/GpsSynchComputerTime)
include_directories(C:/Qt/Qt5.12.7/5.12.7/mingw73_64/include C:/Qt/Qt5.12.7/5.12.7/mingw73_64/include/QtCore C:/Qt/Qt5.12.7/5.12.7/mingw73_64/include/QtNetwork C:/Qt/Qt5.12.7/5.12.7/mingw73_64/include/QtNetwork/QtSerialPort )
include_directories(C:/Qt/Qt5.12.7/5.12.7/mingw73_64/include/QtWebSockets)
ENDIF ()
set(QT Core Network Gui WebSockets SerialPort)
set(TEMPLATE app)
set(TARGET Wintmotion)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
#find_package(Qt5 REQUIRED ${QT})
IF (WIN32)
MESSAGE(STATUS "Now is windows")
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} C:/Qt/Qt5.12.7/5.12.7/mingw73_64/ )
ENDIF ()
find_package(Qt5 REQUIRED ${QT})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
include_directories(../source)
add_executable(Wintmotion
../source/commandlineparser.cpp
../source/main.cpp
../source/qtserialport.cpp
../source/witmotionDll.pro
../source/witmotiondll.cpp
)
qt5_use_modules(Wintmotion ${QT})

View File

@ -501,6 +501,9 @@ CommandLineParseResult parseCommandLine2(QCommandLineParser &parser, TcQuery *qu
query->modelForInterface_D3 = PWM; query->modelForInterface_D3 = PWM;
query->pulseWidth_D3 = 1500; query->pulseWidth_D3 = 1500;
query->period_D3 = 20000; query->period_D3 = 20000;
query->isSetReturnRate= true;
query->returnRate=RRATE_20HZ;
} }

View File

@ -8,7 +8,7 @@
void delay_tc(uint32_t millisecond) void delay_tc(uint32_t millisecond)
{ {
QThread::sleep(millisecond/1000); QThread::msleep(millisecond);
// std::cout<<"This is delay_tc!!!!!!!!!!"<<std::endl; // std::cout<<"This is delay_tc!!!!!!!!!!"<<std::endl;
} }
@ -56,7 +56,8 @@ int main(int argc, char *argv[])
WitmotionDll * witmotion = new WitmotionDll(serialPort); WitmotionDll * witmotion = new WitmotionDll(serialPort);
witmotion->delayMsRegister(delay_tc); witmotion->delayMsRegister(delay_tc);
witmotion->printfRegister(printf_tc); witmotion->printfRegister(printf_tc);
witmotion->setDelayTimeMs(1000); witmotion->setDelayTimeMs(200);
if(query.isSetAlgorithm) if(query.isSetAlgorithm)
{ {
@ -119,14 +120,22 @@ int main(int argc, char *argv[])
witmotion->setD3HighLevelPulseWidth(query.pulseWidth_D3); witmotion->setD3HighLevelPulseWidth(query.pulseWidth_D3);
witmotion->setD3Period(query.period_D3); witmotion->setD3Period(query.period_D3);
} }
if(query.isSetReturnRate)//设置witMotion的通讯速率要放在最后它后面的设置都会失败
{
witmotion->SetReturnRate(query.returnRate);
}
if(query.isSetBaudrate)//设置witMotion的通讯速率要放在最后它后面的设置都会失败 if(query.isSetBaudrate)//设置witMotion的通讯速率要放在最后它后面的设置都会失败
{ {
witmotion->SetBaudrate(query.baudrate); witmotion->SetBaudrate(query.baudrate);
// serialPort->CloseSerialPort();//设置完波特率 已经无法通讯 需要重新简历连接
serialPort->SetBaudrate(115200);
//ret = serialPort->OpenSerialPort(query.serialPort.toStdString(), query.baudrate);//重新建立连接
witmotion->saveInstruction();
} }
// witmotion->recordData();
// witmotion->recordData();
std::cout<<"Set IMU OK"<<std::flush;
serialPort->CloseSerialPort(); serialPort->CloseSerialPort();
// return a.exec(); // return a.exec();

View File

@ -70,7 +70,7 @@ int QtSerialport::SendData1(const char *data, const unsigned int len)
//QIODevice::write(const char *data, qint64 maxSize) //QIODevice::write(const char *data, qint64 maxSize)
int num = m_serial->write(tmp); int num = m_serial->write(tmp);
bool re = m_serial->waitForBytesWritten(); bool re = m_serial->waitForBytesWritten(1000);
if(re) if(re)
{ {
@ -97,7 +97,7 @@ int QtSerialport::ReadData(char * receivedData)
while (true) while (true)
{ {
//std::cout<<"SbgRecorder::startRecordSbg--------------:"<<std::endl; //std::cout<<"SbgRecorder::startRecordSbg--------------:"<<std::endl;
if(m_serial->waitForReadyRead()) if(m_serial->waitForReadyRead(1000))
{ {
//requestData.resize(m_serial->size()); //requestData.resize(m_serial->size());
requestData = m_serial->readAll(); requestData = m_serial->readAll();

View File

@ -233,7 +233,7 @@ int WitmotionDll::SetBaudrate(BAUD_ENUM baudrate)
int numOfSend = constructAndSendInstruction(BAUD, baudrate); int numOfSend = constructAndSendInstruction(BAUD, baudrate);
m_witPrintf("WitmotionDll::SetBaudrate: \n"); m_witPrintf("WitmotionDll::SetBaudrate: \n");
saveInstruction(); // saveInstruction(); //设置完波特率 已经无法通讯 需要重新简历连接
return 0; return 0;
} }