专栏算法工具链FAQ VehicleIO

FAQ VehicleIO

DR_KAN2023-09-26
108
0

Vehicleio 程序运行

(一)、export设置运行环境变量:

vehicleio执行程序为动态库依赖,运行需要手动 export 设置环境变量, export 到vehicleio集成包目录下的lib文件夹。

在集成包目录下可执行:

(二)、运行可执行程序:

  1. 存在运行脚本

执行:sh init.sh 便可启动程序
执行:sh deinit.sh 便可停止程序
  1. 无运行脚本

在集成包根目录下,export 设置环境变量后。

程序名 -h 可查看可执行程序对应的mode

程序名 + 配置文件路径 + 运行mode + log等级(可不写)

  • param_name : 对应的可执行程序名,例如vehicle_service
  • param_file_path : user_config.json对应的路径
  • param1 : 程序运行功能设定,可 -h 查看。例如:./bin/vehicle_service -h
  • 设置成1,表示对外发布can parser数据。
  • 设置成2,表示对外发布canraw数据。
  • 设置成3,表示canraw和can parser数据同时发布。

运行示例:

(三)、运行缺少动态库提示:

  1. error while loading shared libraries: libvehicleio_service.so: cannot open shared object file: No such file or directory

需要export 指定环境变量

  1. error while loading shared libraries: libcommunication.so: cannot open shared object file: No such file or directory

缺少libcommunication.so动态库文件

  1. error while loading shared libraries: libhlog.so: cannot open shared object file: No such file or directory

缺少libhlog.so动态库文件

程序异常处理流程

(一)、启动脚本异常

  1. 用户集成vehicleio数据接收不到,排查启动脚本,启动 mode 是否为 2

正常模式如下所示,最后一个参数

这里的2表示vehicle_service进程对外PUB的是canraw数据,若需要can parser数据,则应将这里的2改为1

(二)、配置异常

  1. Caution: config file not exist, please check path = xxx

  2. config is not json

  3. LoadConfig failed

  4. open cfg_file:config/car/xxxxx.json failed!

  5. Caution: parsermanager init failed please check: config/car/vehicleio.json

  6. [communication]parse config file[config/car/communication_xxx.json] failed

请检查vehicleio.json文件存在路径,以及vehicleio.json内部包含json的文件路径是否正确!!!

(三)、底层异常

spi通信异常

  1. rev can data in spi, ret = -10

  2. rev canfd data in spi, ret = -10

  3. HorizonHal_Group_Recv ret :-10

请检查spi端数据发送是否正常

j2、j3处理流程

(1)、检查SPI通信是否正常

执行命令 :

如果能够读到MCU版本号,则说明SPI通路可用(跳到步骤3);如果读取不到版本号,则检查spi_service进程运行状态是否正常,继续下一步

(2)、检查spi_service进程运行状态

spi_service进程如果处于"D"状态则属于异常。一旦出现异常状态,通常可通过重启spi_service来恢复其状态,且在重启spi_service后会输出三次握手信息,当三次握手成功后,SPI通信通路便可用。

spi_service进程运行异常时,kill该进程并重启命令如下:

重启之和再次检查SPI通信是否正常

(3)、执行can_sample程序

执行命令 : ./can_sample -r 1

执行命令 : ./can_sample_hal -r 1

ts:时间戳
信号的id:mcu收到信号的id
channel:当前总线通道
  0:总线can1
  1:总线can2
  2:总线can3
  3:总线can4
如果当前MCU收到的channel和硬件连接不匹配,请检查硬件连接
  信号的id没有发送信号的id存在,请检查mcu端信号发送是否正常

log中有对应的信号id存在, 则下一步排查

(4)、查看/etc/service.json文件

service.json中的变量是否全部为0。

不全是为 0 ,则改为0,再进行接收测试

检查如下目录的文件是否最新

/etc/service.json

/include/spihal

(5)、查看原始数据指令

1.开启并查看原始数据:

2.关闭:

3.kernel log 存储位置

/userdata/log/kernel


j5处理流程

  • 查看kernel log发送是否异常

查看底层数据接收是否正常,不正常则排查底层数据发送问题

1.开启:

2.关闭:

3.kernel log 存储位置

/log/kernel/

  • 查看通道数据是否正常

vehicle_service进程接收底盘CAN数据的channel一般默认是9(根据vehicleio.json配置文件),若通道所在行的每一个数值一直都是不变或全为0,确认MCU是否正确发送对应type的报文。


socketcan通信异常

  1. receive data from socket can failed

  2. data is empty or data_cache_size is 0.

检查板子上的socket can是否可用


(三)、解析异常(json文件信号不全/格式不符)

  1. ParseRawData canid is not exist, canid = xxx

1、json文件中解析的信号不全。

请添加之后再试

2、使用的json文件不对

修改vehicleio.json中的 如下两处路径:

  • 设置车身信号解析所需的json文件路径

  • 设置解析radar信号解析所需json文件路径

数据解析数值异常

检查信号对应的json文件,第一列名称是否符合VehicleIO识别要求

另外,枚举类型的信号量,其中的desp值也需要检查是否和信号映射表格中CANParseData的值定义一致

(四)、communication初始化异常

添加下面的路由信息:

算法工具链
官方教程
评论0
0/1000