用QT写CAN分析软件5--DBC数据的解析
发布日期:2021-05-14 00:50:03 浏览次数:14 分类:精选文章

本文共 5591 字,大约阅读时间需要 18 分钟。

���DbcMessageBase���������������������������UI������������������������������DBC������

������������������������������������DbcMessageBase���������������������������������������������������������������UI������������������������������������DBC������������������������������������������������DBC���������������������

���������DbcMessageBase������������������

��������������� void DbcMessageBase::getValue(const unsigned char *data, int len)

���������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������

  • ������������������������

    ������������������������������������������������������������������������������������������keystream���������������������8���������������������������������������������0xA5������������������101001001���

  • ���������������������������������

    ������������������������������������������������������������������������������������������������������������N������������������������������������������������������������������������������������������������������

  • ������������

    ������������������������������������������������������������������������������������������

  • ���������������

    • ������������������������������������������������������������������������������������������
    • ������������������N������������������������������������������������������

    ���������UI���������������������������

    ������������������������������������������DBC������������������������UI���������������������TreeView������������������������������DBC���������������������������������������������

    ���������������

  • ���������������

    ������������QStandardItemModel������������������������������["������", "������", "���������"]���������������������������������������������������������������������������������������

  • ������������

    ������MsgList���������������DBC���������������������������������������������������������������������������������������������������������������

  • ������������

    ������������������CAN���������������������������DBC������������������������TreeView������������������������

  • ���������������������TreeView������������������������������_child������������������������������������������������������������������������������������������������������������������

    ������������������

    ������������������������������������������������������������

    void DbcMessageBase::getValue(const unsigned char *data, int len){    QString bits;    for (int i = 0; i < len; ++i)    {        // ������������������������8���������������������        QByteArray bit audible;        audible.append((char)data[i]);        bits += QByteArray::toBase64String |>                QByteArray::��������������� |                ... // ������������������������������������    }    // ������������������������������������������    for (int j = 0; j < signalList.size(); ++j)    {        // ���������������������������������        const DbcSignalBase *signalBase = signalList[j];        bool isSigned = signalBase->isSigned;        // ������������������������������������������������������        if (!isSigned)        {            // ������������            ...        }        else        {            // ������������            ...        }        // ���������������������������������������        signalBase->value = value;    }}
    void MainWindow::getTreeView(){    model = new QStandardItemModel(ui->trwDisplay);    model->setHorizontalHeaderLabels({ "������", "������", "���������" });    for (int i = 0; i < Dbc->MsgList.size(); ++i)    {        const DbcMessageBase msgBase = Dbc->MsgList[i];        model->setItem(i, 0, new QStandardItem(msgBase.Name));        model->setItem(i, 1, new QStandardItem(QString::number(msgBase.can.Id, 16).toUpper()));        model->setItem(i, 2, new QStandardItem());        for (int j = 0; j < msgBase.signalList.size(); ++j)        {            const DbcSignalBase signalBase = msgBase.signalList[j];            model->item(i)->setChild(j, 0, new QStandardItem(signalBase.Name));            model->item(i)->setChild(j, 1, new QStandardItem(signalBase.Note));            model->item(i)->setChild(j, 2, new QStandardItem(signalBase straw::value ? RotateString������ : ""));        }    }    ui->trwDisplay->setModel(model);    ui->trwDisplay->setEditTriggers(QAbstractItemView::NoEditTriggers);}

    ���������������

    ���MainWindow������getTreeView������������������������������������������������������������������MsgList���������������������������������������������������������������������������������������������������TreeView������������������������������������������������������

    ������������������������

    ���������������������������������������������������������TreeView������������������������������������������������

    void MainWindow::UpdataReceive(CanDataBase *cdb){    static int lastUpdateIndex = -1;    for (int i = 0; i < this->Dbc->MsgList.size(); ++i)    {        if (this->Dbc->MsgList[i].Can.Id == cdb->Id)        {            this->Dbc->MsgList[i].getValue(cdb->Data, cdb->Len);            model->item(i, 2)->setText(cdb->StrData);        }    }}

    ���������������

  • ������������������������������
  • ������ID������������������ID������������������
  • ������getValue���������������������������������������
  • ������TreeView������������������������������
  • ������������

    ���������������������������������������������������������DBC���������������������DbcMessageBase���������getValue������������������������������������TreeView���������������������������������������������������������������������������������������������.data������������������������������

    上一篇:用QT写CAN分析软件6--仿CANoe曲线的实现
    下一篇:用QT写CAN分析软件4---DBC文件读取

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2025年05月06日 07时15分55秒