一 儒拂,前言
要分析can的blf文件桶蛔,不是每個(gè)人都有能力的。為了便于其它人分析報(bào)文,我準(zhǔn)備從blf解析出來值,然后搭配之前的結(jié)構(gòu)體解析工具(python解析結(jié)構(gòu)體小工具--Apple的學(xué)習(xí)筆記),就能實(shí)現(xiàn)了從blf來解析信號的功能了冷溶。
目的是為了讓不懂can 報(bào)文分析的人也可以直接看到信號解析值渐白。那么就不用依賴canoe工具,也不用依賴其它人了逞频。最后就變成人人都有解析can報(bào)文的能力咯纯衍,這就是工具的魅力。
二苗胀,遇到問題
- 關(guān)于導(dǎo)入第三方工具作為源碼的方法
以前我自己做工具的時(shí)候襟诸,直接安裝第三方庫即可。但是發(fā)現(xiàn)要分享給別人的時(shí)候基协,需要把python源碼也更新歌亲,依賴項(xiàng)太多。所以我現(xiàn)在都是直接導(dǎo)入第三方庫作為我的源碼澜驮。但是我不清楚方法陷揪,有時(shí)候能用有時(shí)候不能用只能安裝庫,今天我抽時(shí)間研究下杂穷,因?yàn)閷砦抑幌脒x此方案悍缠。
答:網(wǎng)上找了下導(dǎo)入第三庫作為源碼主要是讓python運(yùn)行時(shí)候能找到路徑即可∧土浚基于這個(gè)原理飞蚓,只要把第三方庫的文件包路徑添加到sys路徑下,那么python運(yùn)行時(shí)候就會(huì)去掃描到廊蜒。原來就是那么簡單呢趴拧!
三,效果
import sys
sys.path.append('can') # can文件夾和當(dāng)前運(yùn)行的py主程序在同一目錄劲藐,否則可以用sys.path.append('./lib/can')
from can.io import BLFReader
import binascii
logfile = r"T08-1-05-01.blf"
canid = 0x52b
with BLFReader(logfile) as reader:
for msg in reader:
if msg.arbitration_id == canid:
print(binascii.b2a_hex(msg.data))
D:\python32_374\python.exe D:/pytorchpro/pcan/pcan.py
b'2b00010000000000'
b'2b00010000000000'
b'2b00010000000000'
b'2b00010000000000'
b'2b00010000000000'
b'2b00010000000000'
四八堡,小結(jié)
方法越多效率越高,這是我一直認(rèn)同的觀念聘芜。周末創(chuàng)造發(fā)明下小工具兄渺,還能提高將來的工作效率,何樂不為呢~