1. 功能概述¶
本文档为地平线功能安全(FuSa)的诊断服务的Sample Code使用手册,文档说明了Diagnose Sample实现架构、平台支持、运行指南、运行结果说明、命令行等内容, 使得用户能够正确使用该Sample,从而了解如何编写一个用户APP来接入地平线诊断框架,快速实现诊断信息上报功能。
1.1. 软件架构说明¶
本文档提及的Sample主要为一个Diagnose Process示例。它主要实现以下功能:
(1)Sample通过diaglib提供的API,将诊断信息上报给MCU。
用户可以参考该Sample来编写一个Diagnose Process程序接入地平线诊断框架,快速实现诊断信息上报功能。

1.2. 代码位置及目录结构¶
本Sample的代码位于工程目录:{sdk_dir}/test/samples/platform_samples/source/S83_Sample/S83E03_BaseService/diagnose_sample;
目录结构如下:
1.3. API流程说明¶
API流程图如下:

主干代码:
2. 编译¶
2.1. 编译环境¶
本Sample的编译环境使用SDK中的build工具,请参考: Build环境建立。
2.2. 编译说明¶
本Sample编译依赖diagnose系统相关的头文件:
编译依赖的库有如下:
编译命令:
3. 运行¶
3.1. 支持平台¶
Matrix 6E/M
3.2. 板端部署及配置¶
刷写系统软件镜像后,本Sample的可执行文件位于板端:/app/sample/S83_Sample/S83E03_BaseService/diagnose_sample/bin/diagnose_sample;
3.3. 运行指南¶
3.3.1. 运行方法¶
本文的demo sample可以通过-h获取帮助。
执行诊断上报功能,执行命令:
执行携带payload的诊断上报功能,执行命令:
运行结果说明:参考 说明
3.3.2. 运行命令行说明¶
diagnose_sample :应用程序名字。
下面的表格是具体参数的说明:
参数名 | 用法 | 是否必需 |
|---|---|---|
-F | 指定功能参数 | 是 |
-m | 指定module_id | 是 |
-e | 指定event id | 是 |
-t | 指定event状态 | 是 |
-n | 指定上报次数 | 否 |
帮助菜单:
3.3.3. 运行结果说明¶
Sample可执行程序运行成功时,mcu串口日志会有如下打印: