diff --git a/project/CMakeLists.txt b/project/CMakeLists.txt new file mode 100644 index 0000000..d6efe50 --- /dev/null +++ b/project/CMakeLists.txt @@ -0,0 +1,42 @@ +# cmake_minimum_required(VERSION ) +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}) diff --git a/commandlineparser.cpp b/source/commandlineparser.cpp similarity index 99% rename from commandlineparser.cpp rename to source/commandlineparser.cpp index c85d22e..d29e6d3 100644 --- a/commandlineparser.cpp +++ b/source/commandlineparser.cpp @@ -501,6 +501,9 @@ CommandLineParseResult parseCommandLine2(QCommandLineParser &parser, TcQuery *qu query->modelForInterface_D3 = PWM; query->pulseWidth_D3 = 1500; query->period_D3 = 20000; + + query->isSetReturnRate= true; + query->returnRate=RRATE_20HZ; } diff --git a/commandlineparser.h b/source/commandlineparser.h similarity index 100% rename from commandlineparser.h rename to source/commandlineparser.h diff --git a/main.cpp b/source/main.cpp similarity index 85% rename from main.cpp rename to source/main.cpp index 04fb24d..01e7408 100644 --- a/main.cpp +++ b/source/main.cpp @@ -8,7 +8,7 @@ void delay_tc(uint32_t millisecond) { - QThread::sleep(millisecond/1000); + QThread::msleep(millisecond); // std::cout<<"This is delay_tc!!!!!!!!!!"<delayMsRegister(delay_tc); witmotion->printfRegister(printf_tc); - witmotion->setDelayTimeMs(1000); + witmotion->setDelayTimeMs(200); + if(query.isSetAlgorithm) { @@ -119,14 +120,22 @@ int main(int argc, char *argv[]) witmotion->setD3HighLevelPulseWidth(query.pulseWidth_D3); witmotion->setD3Period(query.period_D3); } - + if(query.isSetReturnRate)//设置witMotion的通讯速率要放在最后,它后面的设置都会失败 + { + witmotion->SetReturnRate(query.returnRate); + } if(query.isSetBaudrate)//设置witMotion的通讯速率要放在最后,它后面的设置都会失败 { 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"<CloseSerialPort(); // return a.exec(); diff --git a/qtserialport.cpp b/source/qtserialport.cpp similarity index 96% rename from qtserialport.cpp rename to source/qtserialport.cpp index a1e5771..23a5b63 100644 --- a/qtserialport.cpp +++ b/source/qtserialport.cpp @@ -70,7 +70,7 @@ int QtSerialport::SendData1(const char *data, const unsigned int len) //QIODevice::write(const char *data, qint64 maxSize) int num = m_serial->write(tmp); - bool re = m_serial->waitForBytesWritten(); + bool re = m_serial->waitForBytesWritten(1000); if(re) { @@ -97,7 +97,7 @@ int QtSerialport::ReadData(char * receivedData) while (true) { //std::cout<<"SbgRecorder::startRecordSbg--------------:"<waitForReadyRead()) + if(m_serial->waitForReadyRead(1000)) { //requestData.resize(m_serial->size()); requestData = m_serial->readAll(); diff --git a/qtserialport.h b/source/qtserialport.h similarity index 100% rename from qtserialport.h rename to source/qtserialport.h diff --git a/register.h b/source/register.h similarity index 100% rename from register.h rename to source/register.h diff --git a/serialportbase.h b/source/serialportbase.h similarity index 100% rename from serialportbase.h rename to source/serialportbase.h diff --git a/witcommand.h b/source/witcommand.h similarity index 100% rename from witcommand.h rename to source/witcommand.h diff --git a/witmotionDll.pro b/source/witmotionDll.pro similarity index 100% rename from witmotionDll.pro rename to source/witmotionDll.pro diff --git a/witmotiondll.cpp b/source/witmotiondll.cpp similarity index 98% rename from witmotiondll.cpp rename to source/witmotiondll.cpp index 4a4700c..4835ad4 100644 --- a/witmotiondll.cpp +++ b/source/witmotiondll.cpp @@ -233,7 +233,7 @@ int WitmotionDll::SetBaudrate(BAUD_ENUM baudrate) int numOfSend = constructAndSendInstruction(BAUD, baudrate); m_witPrintf("WitmotionDll::SetBaudrate: \n"); - saveInstruction(); + // saveInstruction(); //设置完波特率 已经无法通讯 需要重新简历连接 return 0; } diff --git a/witmotiondll.h b/source/witmotiondll.h similarity index 100% rename from witmotiondll.h rename to source/witmotiondll.h