前言
PS(2024-01-15:代码有更新,上传到github上去了,就不贴到这里了,主要增加了错误帧的解析)
在汽车行业里面,关于通信的话题绝对离不开的公司Vector,他们家的CANoe几乎是每个汽车厂家必备的设备。工程师在调试的时候,用于记录数据的BLF格式,是加密过的,需要用到CANoe才能打开,但是又不通每个人的电脑装个CANoe,毕竟这玩意要软件硬件一起搭配使用。但是Vector公司也提供了解析BLF文件格式的库,那就好办了,自己用他的库写一个转换软件就好了
以下是我自己用QT写的一个小工具。文末有下载地址

实践
开发环境:
VS2022+QT5.14,看你的吧,什么开发环境不是重点,有个界面就行
BLF解析库:下载地址。实在没有积分的,就直接去github下载工程文件吧
在VS配置好环境就行
主要部分:
void KUSBLFTOASC::runConveter()
{
QByteArray dd = m_sBlfName.toLocal8Bit();
LPCSTR pFileName = dd.data();
DWORD dwWritten;
LONG64 sta = 0;
QFile file(m_sAscName);
DWORD *pRead=new DWORD();
*pRead = 1;
{
HANDLE hFile;
VBLObjectHeaderBase base;
VBLCANMessage message;
VBLCANMessage2_t message2;
VBLEnvironmentVariable variable;
VBLEthernetFrame ethframe;
VBLAppText appText;
VBLFileStatisticsEx statistics = { sizeof(statistics) };
BOOL bSuccess;
if (NULL == pRead)
{
emit sigInit(-88);
return;
}
*pRead = 0;
/* open file */
hFile = BLCreateFile(pFileName, GENERIC_READ);
if (INVALID_HANDLE_VALUE == hFile)