Bläddra i källkod

Modify car controll tool, use thread instead of timer

fujiankuan 3 år sedan
förälder
incheckning
4c1bddf69d
2 ändrade filer med 54 tillägg och 30 borttagningar
  1. 49 29
      src/tool/carControlTester/mainwindow.cpp
  2. 5 1
      src/tool/carControlTester/mainwindow.h

+ 49 - 29
src/tool/carControlTester/mainwindow.cpp

@@ -7,21 +7,23 @@ MainWindow::MainWindow(QWidget *parent) :
     ui(new Ui::MainWindow)
     ui(new Ui::MainWindow)
 {
 {
     ui->setupUi(this);
     ui->setupUi(this);
-        car_control_module.set_lat_lgt_ctrl_req(false);
-        car_control_module.set_target_gear( GearPrkgAssistReq::kNoRequest);
-        car_control_module.set_target_pinion_ag_in_deg(0);
-        car_control_module.set_target_acc_mps2(0);
-        car_control_module.set_turn_light_status(TurnLightIndicReq::kOff);
+//        car_control_module.set_lat_lgt_ctrl_req(false);
+//        car_control_module.set_target_gear( GearPrkgAssistReq::kNoRequest);
+//        car_control_module.set_target_pinion_ag_in_deg(0);
+//        car_control_module.set_target_acc_mps2(0);
+//        car_control_module.set_turn_light_status(TurnLightIndicReq::kOff);
     //    car_control_module.sm_task_20ms();
     //    car_control_module.sm_task_20ms();
-    QTimer * timerTask = new QTimer();
-    connect(timerTask,SIGNAL(timeout()),this,SLOT(onTimerTask()));
-    timerTask->setTimerType(Qt::PreciseTimer);
-    timerTask->start(20);
+//    QTimer * timerTask = new QTimer();
+//    connect(timerTask,SIGNAL(timeout()),this,SLOT(onTimerTask()));
+//    timerTask->setTimerType(Qt::PreciseTimer);
+//    timerTask->start(20);
 
 
     QTimer * timer = new QTimer();
     QTimer * timer = new QTimer();
     connect(timer,SIGNAL(timeout()),this,SLOT(onTimer()));
     connect(timer,SIGNAL(timeout()),this,SLOT(onTimer()));
     timer->setTimerType(Qt::PreciseTimer);
     timer->setTimerType(Qt::PreciseTimer);
     timer->start(20);
     timer->start(20);
+
+    mpthread = new std::thread(&MainWindow::threadctrl,this);
 }
 }
 
 
 MainWindow::~MainWindow()
 MainWindow::~MainWindow()
@@ -165,29 +167,29 @@ void MainWindow::onTimerTask()
 {
 {
     if(!car_control_module.is_lat_lgt_ctrl_active() && bctrlAct){
     if(!car_control_module.is_lat_lgt_ctrl_active() && bctrlAct){
         car_control_module.set_lat_lgt_ctrl_req(true);
         car_control_module.set_lat_lgt_ctrl_req(true);
-        car_control_module.set_target_gear( GearPrkgAssistReq::kTargetGearP);
-        car_control_module.set_target_pinion_ag_in_deg(car_control_module.get_current_steer_ang_in_deg());
-        car_control_module.set_target_acc_mps2(0);
-        car_control_module.set_turn_light_status(TurnLightIndicReq::kOff);
+//        car_control_module.set_target_gear( GearPrkgAssistReq::kTargetGearP);
+//        car_control_module.set_target_pinion_ag_in_deg(car_control_module.get_current_steer_ang_in_deg());
+//        car_control_module.set_target_acc_mps2(0);
+//        car_control_module.set_turn_light_status(TurnLightIndicReq::kOff);
 //        qDebug()<<1;
 //        qDebug()<<1;
     }
     }
-    else if(car_control_module.is_lat_lgt_ctrl_active() && !bctrlAct){
-        car_control_module.set_lat_lgt_ctrl_req(false);
-        car_control_module.set_target_gear( GearPrkgAssistReq::kNoRequest);
-        car_control_module.set_target_pinion_ag_in_deg(car_control_module.get_current_steer_ang_in_deg());
-        car_control_module.set_target_acc_mps2(0);
-        car_control_module.set_turn_light_status(TurnLightIndicReq::kOff);
+//    else if(car_control_module.is_lat_lgt_ctrl_active() && !bctrlAct){
+//        car_control_module.set_lat_lgt_ctrl_req(false);
+//        car_control_module.set_target_gear( GearPrkgAssistReq::kNoRequest);
+//        car_control_module.set_target_pinion_ag_in_deg(car_control_module.get_current_steer_ang_in_deg());
+//        car_control_module.set_target_acc_mps2(0);
+//        car_control_module.set_turn_light_status(TurnLightIndicReq::kOff);
 
 
-//        qDebug()<<2;
-    }
-    else if(!car_control_module.is_lat_lgt_ctrl_active() && !bctrlAct){
-//        qDebug()<<3;
-        car_control_module.set_lat_lgt_ctrl_req(false);
-        car_control_module.set_target_gear( GearPrkgAssistReq::kNoRequest);
-        car_control_module.set_target_pinion_ag_in_deg(car_control_module.get_current_steer_ang_in_deg());
-        car_control_module.set_target_acc_mps2(0);
-        car_control_module.set_turn_light_status(TurnLightIndicReq::kOff);
-    }
+////        qDebug()<<2;
+//    }
+//    else if(!car_control_module.is_lat_lgt_ctrl_active() && !bctrlAct){
+////        qDebug()<<3;
+//        car_control_module.set_lat_lgt_ctrl_req(false);
+//        car_control_module.set_target_gear( GearPrkgAssistReq::kNoRequest);
+//        car_control_module.set_target_pinion_ag_in_deg(car_control_module.get_current_steer_ang_in_deg());
+//        car_control_module.set_target_acc_mps2(0);
+//        car_control_module.set_turn_light_status(TurnLightIndicReq::kOff);
+//    }
     else if(car_control_module.is_lat_lgt_ctrl_active() && bctrlAct){
     else if(car_control_module.is_lat_lgt_ctrl_active() && bctrlAct){
 //        qDebug()<<4;
 //        qDebug()<<4;
         car_control_module.set_target_gear( GearPrkgAssistReq::kTargetGearP);
         car_control_module.set_target_gear( GearPrkgAssistReq::kTargetGearP);
@@ -200,6 +202,9 @@ void MainWindow::onTimerTask()
 
 
 void MainWindow::onTimer()
 void MainWindow::onTimer()
 {
 {
+//    std::this_thread::sleep_for(std::chrono::milliseconds(10));
+//    std::cout<<"time: "<<std::chrono::system_clock::now().time_since_epoch().count()/1000000<<std::endl;
+//    return;
     bool status;
     bool status;
     GearPrkgAssistReq gearSetVal;
     GearPrkgAssistReq gearSetVal;
     GearLevelIndicate gearRealVal;
     GearLevelIndicate gearRealVal;
@@ -261,3 +266,18 @@ void MainWindow::onTimer()
     steerDeg = car_control_module.get_current_steer_ang_in_deg();
     steerDeg = car_control_module.get_current_steer_ang_in_deg();
     ui->lineEEPS->setText(QString::number(steerDeg));
     ui->lineEEPS->setText(QString::number(steerDeg));
 }
 }
+
+void MainWindow::threadctrl()
+{
+    if(car_control_module.is_lat_lgt_ctrl_active())
+    {
+        car_control_module.set_target_gear(GearPrkgAssistReq::kTargetGearD);
+        car_control_module.set_turn_light_status(TurnLightIndicReq::kRight);
+        car_control_module.set_target_acc_mps2(0.5);
+        car_control_module.set_target_pinion_ag_in_deg(-40);
+    }
+    else
+    {
+        car_control_module.set_lat_lgt_ctrl_req(true);
+    }
+}

+ 5 - 1
src/tool/carControlTester/mainwindow.h

@@ -1,6 +1,6 @@
 #ifndef MAINWINDOW_H
 #ifndef MAINWINDOW_H
 #define MAINWINDOW_H
 #define MAINWINDOW_H
-
+#include <thread>
 #include <QMainWindow>
 #include <QMainWindow>
 #include <QTimer>
 #include <QTimer>
 #include <QDebug>
 #include <QDebug>
@@ -54,6 +54,10 @@ private:
     TurnLightIndicReq turnLightSetVal = TurnLightIndicReq::kOff;
     TurnLightIndicReq turnLightSetVal = TurnLightIndicReq::kOff;
     double speedSetVal = 0;
     double speedSetVal = 0;
     double EpsSetVal = 0;
     double EpsSetVal = 0;
+
+    std::thread * mpthread;
+
+    void threadctrl();
 };
 };
 
 
 #endif // MAINWINDOW_H
 #endif // MAINWINDOW_H