国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

詳解DBC的Signal與JSON文本結合

華穗科技 ? 來源:華穗科技 ? 2026-01-06 10:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為了優化CAN數據發送與接收的操作流程,更改以前手動輸入狀態對應數據的模式,采用下拉列表選擇內容,但這需要用到超出DBC原有承載能力的信息。因此,將JSON與其結合,采用JSON格式文本寫入Signal的Comment屬性,將Comment屬性的字符串通過JSON文本拓展信息承載能力。

下面請跟隨小編一起來學習一下吧!

本文分享:

DBC的Signal與JSON文本結合

一、JSON文本

JSON的全稱是JavaScript Object Notation,是一種輕量級的數據交換格式。JSON文本采用純文本形式,結構清晰,具有嚴格的語法規則、獨立于語言等核心特點,可以在客戶端和服務器之間傳遞數據,同時可以作為配置文件、數據存儲等。

1、基本語法規則

數據以鍵值對(名稱/值)的形式存在: "鍵": 值

鍵名必須是雙引號引起來的字符串。

值類型:

字符串:必須使用雙引號。 ("name": "張三")

數字:整數或浮點數。 ("age": 25)

布爾值: true 或 false。

空值: null。

對象: 用花括號 {} 包裹的一組無序的鍵值對。可以嵌套。

數組: 用方括號 [] 包裹的一組有序的值。

數據之間用逗號分隔。

最后一個元素后不能有逗號。

示例如下:

{
"company": "科技公司",
"year": 2023,
"isPublic": false,
"address": null,
"departments": [
{
"name": "研發部",
"employeeCount": 50
},
{
"name": "市場部",
"employeeCount": 30
}
],
"tags": ["互聯網", "創新", "敏捷開發"]
}

二、NI-XNET Database Editor

NI-XNET Database Editor是NI關于車載網絡的重要軟件,可以實現DBC數據庫文件的編輯。它通過直觀的圖形化界面,將復雜的通信協議——包括報文 ID、信號布局、物理值換算和網絡節點關系——轉化為可編輯、可驗證的工程對象。該工具生成的標準數據庫文件,可被NI-XNET驅動程序直接識別與調用,從而使上層的 LabVIEW等應用能夠以物理信號為單位便捷地讀寫CAN總線數據,實現了從協議設計、仿真測試到數據解析的全流程無縫集成。

三、操作步驟

1、LabVIEW中JSON文本轉換VI

在程序框圖中右擊,找到“平化/還原字符串”下的兩個VI,如下圖所示。這兩個VI分別為將簇轉為JSON文本、從JSON文本轉為簇。使用“從JSON文本轉為簇”即可將JSON文本轉化為LabVIEW中可以使用的簇,這樣就可以免去JSON文本向LabVIEW的數據需求轉換的代碼邏輯。

89fe3ec4-e524-11f0-8c8f-92fbcf53809c.png

8a55eff2-e524-11f0-8c8f-92fbcf53809c.png

2、UTF-8格式問題

由于“從JSON文本轉為簇”VI的文本編碼僅能為UTF-8,而DBC中讀取的Comment僅能為GBK編碼,導致轉換失敗。通過下圖所示的“GBK向UTF-8轉換”文本編碼轉換器,可以解決這個問題。

8aaf6ee2-e524-11f0-8c8f-92fbcf53809c.png

3、UTF8Encoding

圖中的“UTF8Encoding”可以通過“互聯接口”面板-“.NET”面板-“構造器節點”獲得,如下圖所示。

8b09dc7e-e524-11f0-8c8f-92fbcf53809c.png

在構造器節點里,“程序集”部分選擇”mscorlib(4.0.0.0)“,如下圖所示。

8b617646-e524-11f0-8c8f-92fbcf53809c.png

在“對象”部分雙擊“System.Text”,如下圖所示。

8bbb527e-e524-11f0-8c8f-92fbcf53809c.png

選擇“UTF8Encoding”,如下圖所示。

8c14d880-e524-11f0-8c8f-92fbcf53809c.png

四、示例

1、DBC編輯

將JSON文件中的信息填入Signal的Comment中,如圖所示。

8c6f441e-e524-11f0-8c8f-92fbcf53809c.png

2、關鍵程序

在程序中獲取Frame中所有Signal的Comment屬性,并將Comment通過“GBK向UTF-8轉換”VI轉化為UTF-8編碼,最后使用“從JSON文本轉為簇”VI即可將DBC中的所有拓展信息提取出來供LabVIEW程序使用。

8cc5e3dc-e524-11f0-8c8f-92fbcf53809c.png

3、最終效果

通過下拉列表選擇內容,實現CAN數據發送與接收,優化了手動輸入狀態對應的數據的操作。

8d1da662-e524-11f0-8c8f-92fbcf53809c.png

以上就是DBC的Signal與JSON文本結合的全部內容啦。歡迎大家留言討論,交流分享!更多關于測試系統中的實際軟硬件應用知識,可關注本公眾號/下方合集。

更多內容,敬請期待!

對LabVIEW編程技巧和相關內容感興趣的工程師們,歡迎持續關注、留言和點贊,也可以私信小編各位的技術困惑和技術需求,以獲取參加免費線下培訓和技術交流的機會哦。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 字符串
    +關注

    關注

    1

    文章

    596

    瀏覽量

    23165
  • 文本
    +關注

    關注

    0

    文章

    120

    瀏覽量

    17865
  • JSON
    +關注

    關注

    0

    文章

    128

    瀏覽量

    7781

原文標題:知識分享 | DBC的Signal與JSON文本結合

文章出處:【微信號:華穗科技,微信公眾號:華穗科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    求助,為什么在CAN數據庫(.dbc文本文件)中找不到報文?

    我有CAN數據庫(dbc文件)。這是一個文本文件。此文件的擴展名為 dbc。在Vector CANdb++編輯器中打開它時,將填充J1939報文和CAN ID。 但是,在.dbc
    發表于 01-23 06:28

    關于CANdb++ Editor編寫DBC文件時Factor的設置問題求解

    求助CANdb++ Editor編寫DBC文件時 Factor設置的問題: 編輯DBC文件時,當我設置Signal的Factor時,如果設置了0.0001,DBC就正常解析沒問題。但如
    發表于 04-12 07:03

    JSON是什么?如何去創建一種JSON

    1.JSON是一種輕量級的數據交換格式。是一種獨立于語言的文本格式。輕量級適合xml相比較。數據交換指的是客戶端和服務器之間的數據傳遞格式。1.1JavaScript中使用JSON創建:JSO
    發表于 07-09 07:06

    如何對基于stm32的json進行解析

    語言的json解析庫,可以將包含json文本解析成為C的數據格式。作為初學者的我,在接觸到這個庫的時候其實完全
    發表于 01-12 08:04

    為什么無法訪問HTTPS URL JSON

    我試圖訪問 HTTPS URL 上的 JSON 文本。不能在 HTTP 上這樣做。我使用了 Arduino IDE 文件選項卡 (ESP8266WiFi-HTTPSREQUEST) 示例部分中的模板
    發表于 02-24 06:26

    如何通過http get和post傳輸json文件來控制聯網的電源插座

    顯示一個儀表板中的文本字段。在此指令中,文本節點顯示電流,電壓,型號,固件版本或JSON版本。
    的頭像 發表于 10-28 17:50 ?4362次閱讀

    基于Json格式的文本視圖驗證工具

    基于Json格式的文本視圖驗證工具
    發表于 09-19 09:15 ?8次下載

    什么是JSON劫持 JSON和XML的區別

    什么是JSON劫持 單從字面上就可以理解的出來,JSON是一種輕量級的數據交換格式,而劫持就是對數據進行竊取(或者應該稱為打劫、攔截比較合適。惡意攻擊者通過某些特定的手段,將本應該返回給用戶
    的頭像 發表于 08-05 10:09 ?1993次閱讀

    什么是JSON JSON的語法規則

    )的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。 JSON
    的頭像 發表于 08-25 15:40 ?3501次閱讀

    DBC編輯_文本形式編輯

    1. DBCDBC是Data Base CAN的縮寫。DBC文件是用來描述CAN網絡通信信號的一種格式文件。ECU之間的通信、信息的交互以及相互之間的關系,都是通過DBC文件來管理的,也就是ECU
    發表于 12-05 20:51 ?17次下載
    <b class='flag-5'>DBC</b>編輯_<b class='flag-5'>文本</b>形式編輯

    CAN DBC文件解析

    CAN DBC 指的是CAN 報文的數據庫。簡單地說,通過CAN 總線通信的數據類型可以用DBC 文件來讀取和理解。DBC 是一種基于ASCII 的翻譯,是在20世紀90年代發展起來的標準文件,現在
    的頭像 發表于 08-14 11:35 ?5670次閱讀
    CAN <b class='flag-5'>DBC</b>文件解析

    更低內存占用的通用Json庫-RyanJson

    RyanJson是一個小巧的c語言json解析器,包含json文本文件解析 / 生成,專門針對內存占用進行優化,相比cJSON內存占用減少30% - 60%,運行速度和cJSON差不多。
    的頭像 發表于 08-24 17:23 ?2893次閱讀
    更低內存占用的通用<b class='flag-5'>Json</b>庫-RyanJson

    如何利用Python和pandas來處理json數據

    在實際工作中,尤其是web數據的傳輸,我們經常會遇到json數據。它不像常見的文本數據、數值數據那樣友好,而且它和Python中的字典類型數據又很相像,給很多人造成了困擾。 本文結合具體案例詳細介紹
    的頭像 發表于 11-01 10:59 ?3732次閱讀
    如何利用Python和pandas來處理<b class='flag-5'>json</b>數據

    什么是JSON數據庫

    如何理解JSON數據庫?作為NoSQL數據庫的一種類型,JSON數據庫有哪些優勢呢?JSON數據庫如何運作,它為應用程序開發者帶來了哪些價值呢?文章速覽:什么是JSON什么是
    的頭像 發表于 12-02 08:04 ?1793次閱讀
    什么是<b class='flag-5'>JSON</b>數據庫

    JSON協議是什么,物聯網中的RTU中如何使用JSON協議和服務器交互

    一 概述 1.1 什么是 JSON JSON是JavaScript Object Notation的簡稱,中文含義為“JavaScript 對象表示法”,它是一種數據交換的文本格式,而不是一種編程
    的頭像 發表于 09-25 16:14 ?2977次閱讀
    <b class='flag-5'>JSON</b>協議是什么,物聯網中的RTU中如何使用<b class='flag-5'>JSON</b>協議和服務器交互