为了让用户更好的控制SensorCenter,SensorCenter额外提供了sensor_tool工具,通过该工具,用户可以直接与SensorCenter进行命令行交互,当前sensor_tool已支持以下功能:
传感器控制,包括启动、停止、复位以及camera的ipi切换
SensorCenter版本信息获取
传感器信息获取,包括当前工作状态、基本信息
传感器数据包及拼帧统计
传感器数据回写
性能评测
1. 使用限制
在使用本工具前,请了解以下内容:
性能评测功能仅在linux系统下有效
传感器数据回写对camera、mic等传感器无效,因为它们不是通过SensorCenter的Hal层获取源数据的
2. 使用前准备
sensor_tool与SensorCenter之间的通信方式为service/client,其中SensorCenter作为service,sensor_tool作为client,因此,在使用工具前,请首先保证sensor_tool与SensorCenter已通过名称为”/tros/command/sensors”的topic完成communction连接。
3. 使用方法
sensor_tool根据不同的功能会有不同的参数输入界面,下面将依次介绍各个功能中的参数含义及输入方法:
首先执行如下命令进入到工具的交互界面:
在交互界面中我们进行输入待操作的功能名称,功能选项包括:
start
stop
reset
ipi
get_version
get_status
get_base_info
get_statistical_info
writeback
performance
set_log_level
set_user_param
get_user_param
3.1 start
start用于启动传感器工作的命令,通过此命令,可以使停止运行的传感器重新开始工作 当我们输入完start后,交互界面会继续提示你输入待启动的sensor_name,此时分为以下两种情况:
启动所有已启用的传感器: 直接按下Enter键
启动指定的传感器:依次输入传感器名称,按Enter键表示一个传感器名称输入结束,周而复始,直到所有的传感器都输入完成后,直接输入Enter键结束。 此时工具将根据输入的传感器名称去启动指定的传感器
3.2 stop
stop用于停止传感器工作的命令,通过此命令,可以使正在运行的传感器停止工作 同start
3.3 reset
reset用于对传感器进行复位 同start
3.4 ipi
ipi用于camera的group切换,执行该命令后,工具会紧接着依次会要求你输入:
group_id:目标组id
able:原先组是否保留使能
3.5 get_version
get_version用于获取SensorCenter的版本信息,输入指令后,无需输入任何其他参数,执行完毕后,版本信息会自动打印出来
3.6 get_status
get_status用于获取SensorCenter所有已启用的传感器的运行状态,输入指令后,无需输入任何其他参数,执行完毕后,状态信息会自动打印出来
3.7 get_base_info
get_base_info用于获取SensorCenter所有已启用的传感器的基础信息,包括型号、厂家、软件版本以及附加描述,输入指令后,无需输入任何其他参数,执行完毕后,基础信息会自动打印出来
3.8 get_statistical_info
get_statistical_info用于统计指定传感器的的收包、拼帧以及耗时情况,命令输入后,会依次提示输入以下参数:
sensor_name:传感器名称,同start
timeout_ms:超时时间,单位为ms
StatisticalType:统计结束条件,分为以下三种:
0:FRAME,以帧数作为结束条件:当传感器收到的总帧数达到条件时,将自动结束统计
1:FRAME,以接收到的包的个数作为结束条件:当传感器收到的总包数达到条件时,将自动结束统计
2:TIMEMS,以时长为结束条件:统计指定时长后,将自动结束统计 参数输入完成后,结果将自动展示。
3.9 writeback
writeback用于向指定传感器回写指定数据,命令输入后,会依次提示输入以下参数:
sensor_name:传感器名称,同start
write_back_data:待回写的数据
write_cfg_type:数据类型,用于vehicleio方式接入的传感器,其他传感器忽略即可
eth_port:用于eth方式接入的传感器,其他传感器忽略即可
3.10 performance
performance用于性能评测,评测的内容包括指定时间周期范围内的SensorCenter的CPU及内存占用情况,以及指定传感器的数据包在Hal层、插件侧、communction侧的耗时情况,此功能仅对Linux系统开放。命令输入后,会依次提示输入以下参数:
sensor_name:传感器名称,同start
evalute total time:评测的总时长,单位为秒
evalute period time:评测的周期的时长,单位为秒。工具会将总时长自动划为多个周期,其统计的结果将以周期为单位返回
save result:是否保存结果,若输入yes,评测的结果除了展示在终端外,还会保存在当前目录下perf_result.json
3.11 set_log_level
set_log_level用于动态修改日志等级,可以设置单模块的日志等级也可以设置全局的日志等级: 日志模块包括 [sensor_center] [communication] [vehicleio] [schedulegroup] [dataflow] [all],若日志模块选择 [all],则设置的是全局日志等级。 日志等级:0-trace,1-debug,2-info,3-warn,4-error,5-critical,6-never。 当设置全局的日志等级后,若想要再次修改模块的日志等级,需要先将全局的日志等级设置为 6-never,使全局日志失效,才可重新设置模块的日志等级。
3.12 set_user_param
set_user_param用于设置用户参数
3.13 get_user_param
get_user_param用于获取用户设置的参数
