Преглед на файлове

change detection_chassis. add shift decode in cherry.

yuchuli преди 7 месеца
родител
ревизия
6fec3f9e43

+ 9 - 0
src/controller/controller_chery_sterra_es/main.cpp

@@ -51,6 +51,9 @@ static int gnDecitionNum = 0; //when is zero,send default;
 const int gnDecitionNumMax = 100;
 static int gnIndex = 0;
 
+static int gnGear = 0; //当前档位
+static int64_t gnLastGearTime = 0;
+
 static bool gbHaveVehSpd = false;
 static double gfVehSpd = 0.0;
 
@@ -321,6 +324,12 @@ void UpdateChassis(const char *strdata, const unsigned int nSize, const unsigned
         gfWheelAngle = xchassis.angle_feedback();
         gbHaveWheelAngle = true;
     }
+
+    if(xchassis.has_shift())
+    {
+        gnGear = xchassis.shift();
+        gnLastGearTime = std::chrono::system_clock::now().time_since_epoch().count();
+    }
 }
 
 

+ 19 - 1
src/detection/detection_chassis/decodechassis.cpp

@@ -598,8 +598,9 @@ int ProcSterraesChassis(void *pa, iv::can::canmsg *pmsg){
                 ang = static_cast<double>(value) * 0.0625 - 2048.0;
 
                 xchassis.set_angle_feedback(static_cast<float>(ang));
+
                 //           ShareChassis(pa,&xchassis);
-                if(ang<30)std::cout<<"ang: "<<xchassis.angle_feedback()<<std::endl;
+  //              if(ang<30)std::cout<<"ang: "<<xchassis.angle_feedback()<<std::endl;
             }
             else
             {
@@ -607,6 +608,23 @@ int ProcSterraesChassis(void *pa, iv::can::canmsg *pmsg){
             }
         }
 
+        if(praw->id() == 0x38)
+        {
+            unsigned char byte[8];
+            int ngear;
+            if(praw->len() == 16)
+            {
+                memcpy(byte,praw->data().data(),8);
+                unsigned int value;
+                value = byte[2]&0xFF;
+                value = value>>5;
+                ngear = value;
+                xchassis.set_shift(ngear);
+                std::cout<<" gear: "<<xchassis.shift()<<std::endl;
+
+            }
+        }
+
     }
 
 

+ 1 - 1
src/include/proto/chassis.proto

@@ -8,7 +8,7 @@ message chassis
   optional int32 EPSMode = 2  [default = 0]; //0 idle 1 Manual 2 Auto
   optional int32 EPBFault = 3 [default = 0];  //0 No 1 Have Fault
   optional int32 DriveMode = 4;      //0 Manual 1 Auto
-  optional int32 Shift = 5;  //0 N  1 D   2 R  3 P  hapo:1p2r3n4d
+  optional int32 Shift = 5;  //0 N  1 D   2 R  3 P  hapo:1p2r3n4d   cheerysterraes 1 P 2 r 3 N 4 D
   optional int32 AEBAvailable = 6;
   optional int32 CDDAvailable = 7;
   optional int32 angle_feedback = 8;

+ 32 - 5
src/test/testcandbc/mainwindow.cpp

@@ -18,6 +18,8 @@ MainWindow::MainWindow(QWidget *parent)
 {
     CANPacker xPac("/home/yuchuli/ADCC_CH.dbc");
     ui->setupUi(this);
+
+    setWindowTitle("View Signal Base CAN DBC");
 }
 
 MainWindow::~MainWindow()
@@ -207,8 +209,8 @@ bool MainWindow::parselogline(char * strline,struct CanFrame & xFrame)
             return false;
         }
 
-        struct CanFrame xFrame;
         xFrame.address =  cu.fd.can_id;
+ //       std::cout<<" id: "<<xFrame.address<<std::endl;
         xFrame.src = 0;
         int i;
         for(i=0;i<cu.fd.len;i++)
@@ -221,6 +223,8 @@ bool MainWindow::parselogline(char * strline,struct CanFrame & xFrame)
 
 
 
+
+
     }
     else
     {
@@ -300,10 +304,10 @@ bool MainWindow::parseascline(char * strline,struct CanFrame & xFrame)
     int i;
     for(i=0;i<nlen;i++)
     {
-        unsigned char c1;
+        int c1;
         int npos = i+ 9;
-        sscanf(strlist.at(npos).toLatin1().data(),"%02X",&c1);
-        xFrame.dat.push_back(c1);
+        sscanf(strlist.at(npos).toLatin1().data(),"%X",&c1);
+        xFrame.dat.push_back((unsigned char)c1);
     }
 
     return true;
@@ -344,6 +348,7 @@ void MainWindow::on_pushButton_Next_clicked()
     if((index<static_cast<int>( mvectorrawframe.size())) && (index>= 0))
     {
         ui->plainTextEdit_Frame->setPlainText(mvectorrawframe[index]);
+//        std::cout<<" id: "<<mvectorFrame[index].address<<std::endl;
         updateparse();
     }
     else
@@ -439,6 +444,7 @@ void MainWindow::updateparse()
         std::vector<SignalValue> xvals;
 
 
+
         mpParser->update(xvectorcandata,xvals);
         if(xvals.size()> 0)
         {
@@ -446,12 +452,26 @@ void MainWindow::updateparse()
             char strline[1000];
             snprintf(strout,10000,"");
             unsigned int i;
+            int maxnamelen = 0;
             for(i=0;i<xvals.size();i++)
             {
-                snprintf(strline,1000,"%s:\t%f\n",xvals[i].name.data(),xvals[i].value);
+                std::string strname = xvals[i].name;
+                int nlenstr = strname.length();
+                if(nlenstr > maxnamelen)maxnamelen = nlenstr;
+            }
+            for(i=0;i<xvals.size();i++)
+            {
+                int nlenstr = xvals[i].name.length();
+                int nspace = maxnamelen - nlenstr + 1;
+                snprintf(strline,1000,"%s:%*s\t%g\n",xvals[i].name.data(),nspace," ",xvals[i].value);
                 strncat(strout,strline,10000);
             }
+            QFont xFont = ui->plainTextEdit_Value->font();
+            xFont.setFamily("Courier New"); // 设置等宽字体族
+            xFont.setFixedPitch(true);
+            ui->plainTextEdit_Value->setFont(xFont);
             ui->plainTextEdit_Value->setPlainText(strout);
+
         }
         else
         {
@@ -467,6 +487,13 @@ void MainWindow::resizeEvent(QResizeEvent *event)
 
     ui->plainTextEdit_Value->setGeometry(50,180,sizemain.width()-100,sizemain.height() -230);
 
+    ui->pushButton_Pre->setGeometry(sizemain.width()-250,80,90,40);
+    ui->pushButton_Next->setGeometry(sizemain.width()-140,80,90,40);
+    ui->lineEdit_FrameGo->setGeometry(sizemain.width()-250,126,90,40);
+    ui->pushButton_Goto->setGeometry(sizemain.width()-140,126,90,40);
+
+    ui->plainTextEdit_Frame->setGeometry(50,80,sizemain.width()-320,86);
+
 }
 
 

+ 6 - 6
src/test/testcandbc/mainwindow.ui

@@ -111,8 +111,8 @@
      <rect>
       <x>550</x>
       <y>79</y>
-      <width>91</width>
-      <height>41</height>
+      <width>90</width>
+      <height>40</height>
      </rect>
     </property>
     <property name="text">
@@ -124,8 +124,8 @@
      <rect>
       <x>660</x>
       <y>78</y>
-      <width>91</width>
-      <height>41</height>
+      <width>90</width>
+      <height>40</height>
      </rect>
     </property>
     <property name="text">
@@ -149,9 +149,9 @@
     <property name="geometry">
      <rect>
       <x>550</x>
-      <y>130</y>
+      <y>127</y>
       <width>101</width>
-      <height>31</height>
+      <height>41</height>
      </rect>
     </property>
    </widget>