增加can数据的部分解析

This commit is contained in:
mhvhm 2024-09-17 22:55:30 +08:00
parent a6e9af706c
commit baeb1f4e19
5 changed files with 97 additions and 74 deletions

View File

@ -2,7 +2,7 @@
CANThread::CANThread(QObject *parent) : QObject(parent) CANThread::CANThread(QObject *parent) : QObject(parent)
{ {
qRegisterMetaType<CAN_x>("CAN_x"); //注册 CAN_x 类型
} }
@ -179,12 +179,12 @@ void CANThread::doThreadWork()
while (1) while (1)
{ {
ret = VCI_Receive(m_canDeviceType, m_canDeviceIdx, CAN_1, data, CAN_RECV_BUF_SISE, 0); ret = VCI_Receive(m_canDeviceType, m_canDeviceIdx, CAN_1, data, CAN_RECV_BUF_SISE, 0);
if (ret != -1) if (ret > 0)
{ {
emit recvFinished(data, ret, CAN_1); emit recvFinished(data, ret, CAN_1);
} }
ret = VCI_Receive(m_canDeviceType, m_canDeviceIdx, CAN_2, data, CAN_RECV_BUF_SISE, 0); ret = VCI_Receive(m_canDeviceType, m_canDeviceIdx, CAN_2, data, CAN_RECV_BUF_SISE, 0);
if (ret != -1) if (ret > 0)
{ {
emit recvFinished(data, ret, CAN_2); emit recvFinished(data, ret, CAN_2);
} }

View File

@ -3,9 +3,12 @@
#include <QObject> #include <QObject>
#include <QDebug> #include <QDebug>
#include <QMetaType>
#include "ControlCAN.h" #include "ControlCAN.h"
#define USE_SINGLE_CAN (1)
#define CAN_RECV_BUF_SISE (2500) #define CAN_RECV_BUF_SISE (2500)
typedef enum typedef enum

View File

@ -1,6 +1,22 @@
#include "mainwindow.h" #include "mainwindow.h"
#include "ui_mainwindow.h" #include "ui_mainwindow.h"
typedef enum
{
DATA_TABLEWIDGET_IDX_NUM = 0,
DATA_TABLEWIDGET_IDX_DIR,
DATA_TABLEWIDGET_IDX_TIME,
DATA_TABLEWIDGET_IDX_STATUS,
DATA_TABLEWIDGET_IDX_NAME,
DATA_TABLEWIDGET_IDX_ID,
DATA_TABLEWIDGET_IDX_FORM,
DATA_TABLEWIDGET_IDX_TYPE,
DATA_TABLEWIDGET_IDX_DLC,
DATA_TABLEWIDGET_IDX_DATA,
DATA_TABLEWIDGET_IDX_ORI,
DATA_TABLEWIDGET_IDX_DETAIL,
}DATA_TABLEWIDGET_IDX;
MainWindow::MainWindow(QWidget *parent) MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent) : QMainWindow(parent)
, ui(new Ui::MainWindow) , ui(new Ui::MainWindow)
@ -154,6 +170,9 @@ void MainWindow::getCanRecvData(VCI_CAN_OBJ *data, DWORD retNum, CAN_x canChl)
qDebug() << "<<<recvCanData>>> <<<" << sender()->objectName() << ">>>"; qDebug() << "<<<recvCanData>>> <<<" << sender()->objectName() << ">>>";
for (DWORD i = 0; i < retNum; i++) for (DWORD i = 0; i < retNum; i++)
{ {
QByteArray byteArray(reinterpret_cast<const char*>(data->Data), data->DataLen);
QString dataStr = byteArray.toHex(' ');
QTableWidgetItem *item = new QTableWidgetItem(dataStr);
ui->tableWidget_data->setItem(tableLine++, DATA_TABLEWIDGET_IDX_DATA, &item);
} }
} }

View File

@ -29,6 +29,7 @@ private:
CANThread* can_drv; CANThread* can_drv;
QThread* recvThread; QThread* recvThread;
bool isRolling = true; // 是否滚动显示 bool isRolling = true; // 是否滚动显示
uint32_t tableLine = 0; // 表格行号
void UI_OpenCanDevice(); void UI_OpenCanDevice();

View File

@ -41,7 +41,7 @@
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>新建列</string> <string>时间</string>
</property> </property>
</column> </column>
<column> <column>
@ -56,7 +56,7 @@
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>新建列</string> <string>帧ID</string>
</property> </property>
</column> </column>
<column> <column>
@ -66,12 +66,12 @@
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>新建列</string> <string>类型</string>
</property> </property>
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>类型</string> <string>DLC</string>
</property> </property>
</column> </column>
<column> <column>
@ -99,68 +99,17 @@
<x>30</x> <x>30</x>
<y>10</y> <y>10</y>
<width>402</width> <width>402</width>
<height>123</height> <height>146</height>
</rect> </rect>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_3"> <layout class="QHBoxLayout" name="horizontalLayout_3">
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<layout class="QGridLayout" name="gridLayout" columnstretch="3,5" columnminimumwidth="3,5"> <layout class="QGridLayout" name="gridLayout" columnstretch="3,0">
<property name="horizontalSpacing"> <property name="horizontalSpacing">
<number>20</number> <number>20</number>
</property> </property>
<item row="0" column="0">
<widget class="QLabel" name="label_type">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>设备类型:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBox_type">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>USBCAN-2A</string>
</property>
</item>
<item>
<property name="text">
<string>USBCAN-2C</string>
</property>
</item>
<item>
<property name="text">
<string>CANalyst-II</string>
</property>
</item>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_typeIdx">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>设备索引:</string>
</property>
</widget>
</item>
<item row="1" column="1"> <item row="1" column="1">
<widget class="QComboBox" name="comboBox_typeIdx"> <widget class="QComboBox" name="comboBox_typeIdx">
<property name="sizePolicy"> <property name="sizePolicy">
@ -241,19 +190,6 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="2" column="0">
<widget class="QLabel" name="label_bandrate">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>波特率:</string>
</property>
</widget>
</item>
<item row="2" column="1"> <item row="2" column="1">
<widget class="QComboBox" name="comboBox_bandrate"> <widget class="QComboBox" name="comboBox_bandrate">
<property name="sizePolicy"> <property name="sizePolicy">
@ -324,6 +260,70 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="0" column="0">
<widget class="QLabel" name="label_type">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>设备类型:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_typeIdx">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>设备索引:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_bandrate">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>波特率:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBox_type">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>USBCAN-2A</string>
</property>
</item>
<item>
<property name="text">
<string>USBCAN-2C</string>
</property>
</item>
<item>
<property name="text">
<string>CANalyst-II</string>
</property>
</item>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>