在阅读DLT日志后,我想解析它并将其存储在我想要的字段中。它从来不是DLT VIEWER实现。我只是想读取日志,然后将日志保存在我的结构中。
已经实现了向DLT数据库的输出。
目前我已经实现了以下代码来读取DLT日志。
FILE *pLogFile = NULL;
pLogFile = fopen(DLTfilename, "rb") ;
if ( pLogFile )
{
while ( fgets( buff, gBuffSize, pLogFile ) )
{
for ( int i=0; i < gBuffSize - 13 ; ++i )
{
// LF
if ( buff[i] == 0x0A )
{
break ;
}
//...............
//read and save
//...............
}
}
}
字符串
上面的代码扫描每个字节,直到找到所需的字符串,但它是如此之慢!我正在寻找一种方法来优化它。
我尝试了几种方法来阅读每一行,但我不能像“\n
”那样将其作为分隔符阅读,当我用记事本这样的程序阅读时,我注意到字符是混合的。
我有两个问题。
1.我想知道DLT日志的格式。
我在互联网上搜索,但我不能得到任何关于它的结构的线索。
1.如果你是一个阅读过DLT日志的开发人员,我想知道如何改进上面的代码。
这足以让我知道我可以参考哪些网站。
1条答案
按热度按时间3wabscal1#
1. DLT日志格式基本结构:header + payload
Autosar std 20-11术语:
字符串
表头:
型
在页眉中:标准页眉+扩展页眉
更多信息:
DLt plugin (javascript), also doing the same parsing work (50% progress)
DLT specification doc Autosar standard R20-11的
Message format (5.1) in R20-11 Autosar protocolv1的
2.优化代码:
我建议研究一些dlt_client实现,包括它们的解码机制(dlt-receive -a、dlt-viewer、dlt-convert -a等)