[Adaptive Autosar]深入理解--LogAndTrace

目录

1.log的主要功能

2.log生命周期

3.log的使用配置

4.log 模式

5.log消息类型

6.log等级

7.log使用案例


本文主要参考Adaptive Autosar的规范文档,说明log模块的功能要求。

以此借鉴写自己的log模块,以下均简称log。

1.log的主要功能

1)提供统一的十进制-十六进制-二进制的转换方法;

2)自动在log中打上时间戳;

3)不限网络-串口总线-控制台-文件系统等的log输出方法;

4)网络带宽限制。

2.log生命周期

启动:ara::core::Initialize

停止:ara::core::Deinitialize()

3.log的使用配置

使用log时,应用执行清单应包含

  • Application ID  -- 对应用户应用,方便过滤是哪个应用
  • Application  描述
  • log等级
  • log模式
  • log文件路径,如果指定到文件

log实例的上下文信息应包括

  • 上下文 ID -- 在应用进程范围内唯一
  • 上下文描述
  • 默认的log等级

4.log 模式

log模式类型:

  • remote,表示通过网络
  • file,保存到文件
  • console,输出到终端

log mode 指的是通过不同的方式传递log信息,如下图 

5.log消息类型

log区分两类消息,即所谓的:

  • Non-Modeled messages (verbose):发送完整消息
  • Modeled messages(non-verbose): 将静态不变部分不往总线发送,只发送动态变化消息,接收到消息后,将静态部分+动态部分 组合显示

6.log等级

  • off  ,表示 no logging
  • fatal , 表示致命错误,不可覆盖
  • error,错误,影响到正常功能
  • warn, 告警,可能对行为有影响
  • info,信息,帮助理解
  • debug,调试,帮助开发
  • verbase,超详细的调试消息(最高等级的信息)

7.log使用案例

/*
步骤1:
将ECU ID设置为与/opt/vrte/usr/etc中dlt.conf文件在目标ECU上定义的ECU ID相同。默认ECU ID为ECU1。
*/

/*
步骤2:
设置为运行DLT守护程序的目标ECU的IP地址,例如192.168.56.20,并确保使用默认端口3490。
*/
#include <ara/exec/execution_client.h>
#include <dlt/dlt.h>
#include <ara/log/logging.h>

ara::exec::ExecutionClient exeClient;
using namespace ara::log;

int main(int argc, char** argv)
{
    // 通知EM模块 :application is now running
    exeClient.ReportExecutionState( ara::exec::ExecutionState::kRunning );

    // 初始化log模块   console and remote
    ara::log::InitLogging( "agm1_",
                           "agm log 1",
                           LogLevel::kVerbose,
                           LogMode::kConsole | LogMode::kRemote,
                           "");

    // 创建 application log的 context
    Logger&  ctxa = CreateLogger( "CTXA", "application context" );

    // Log using custom context
    ctxa.LogInfo()<< "ARA::LOG LogInfo test message 1 \n";
    GlobalContext.LogFatal()  << "ARA::LOG LogInfo    Fatal test message";
    GlobalContext.LogError()  << "ARA::LOG LogInfo    error test message";
    GlobalContext.LogWarn()   << "ARA::LOG LogInfo    Warn  test message";
    GlobalContext.LogInfo()   << "ARA::LOG LogInfo    Info  test message ";
    GlobalContext.LogDebug()  << "ARA::LOG LogInfo    Debug test message";
    GlobalContext.LogVerbose()<< "ARA::LOG LogInfo    Verbose test message";

    LogStream log{ctxa.LogInfo()};
    log<<"----------------begin------------- \n";
    log<<"ARA::LOG LogInfo test message \n";
    log<<"ARA::LOG LogInfo test message \n";
    log<<"ARA::LOG LogInfo test message \n";
    log<<"ARA::LOG LogInfo test message \n";
    log<<"ARA::LOG LogInfo test message \n";
    log.Flush();
    log<<"-------------------end---------- \n";

    // 通知EM,application to terminate
    exeClient.ReportExecutionState( ara::exec::ExecutionState::kTerminating );
    return(EXIT_SUCCESS);

}

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Autosar是汽车行业的一个开放性的标准化平台,旨在推动汽车电子系统的可重用性、标准化和互操作性。Adaptive AutosarAutosar的最新版本,旨在通过引入自适应功能,实现更高级别的电子控制单元(ECU)架构和功能。 Adaptive Autosar标准-21-11是指版本为21.11的Adaptive Autosar标准。这个版本引入了一些新的功能和特性,以提升汽车电子系统的性能和灵活性。 首先,在-21-11版本中,引入了基于虚拟功能总线(VFB)的通信机制。VFB是一个软件组件,用于在不同的ECUs之间进行通信。通过使用VFB,不同ECUs之间的通信可以变得更加灵活和高效。此外,这个版本还引入了一种新的应用级别的网络协议,提供了更好的网络通信能力。 其次,-21-11版本还引入了一些新的自适应功能,例如自适应应用程序接口(API)和自适应软件体系结构。这些功能使车辆的软件系统能够根据不同的环境条件进行自适应,从而提升车辆的性能和安全性。同时,这个版本还引入了一些新的软件定义网络(SDN)功能,用于提供车辆互联和通信的灵活性。 最后,在-21-11版本中,还针对软件开发过程进行了一些改进。新的标准强调了模型驱动的开发方法和自动化测试技术的应用,以提高软件开发的效率和质量。 总体来说,Adaptive Autosar标准-21-11通过引入自适应功能和改进软件开发过程,提升了汽车电子系统的性能、灵活性和安全性。这将有助于推动汽车行业的技术创新和发展。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值