rpos::features::SystemResource类

系统资源功能特征类,该类提供了对原始激光扫描数据、电源管理系统、底盘状态信息等相关资源的访问API

头文件

rpos/features/system_resource/feature.h

父类

继承自rpos::core::Feature

构造器

SystemResource(boost::shared_ptr)
该构造器仅限SDK内部使用

SystemResource()
默认构造函数

方法

int getBatteryPercentage()
获取电池电量,返回值的单位是百分比。比如电池剩余为56%,则该返回值为56

bool getBatteryIsCharging()
电池是否处于充电状态

bool getDCIsConnected()
外部电源是否连接

system_resource::PowerStatus getPowerStatus()
获取电源相关信息,具体内容请参考rpos::features::system_resource::PowerStatus

void wakeUp()
唤醒机器人

int getBoardTemperature()
获取主板温度, 单位为摄氏度

std::string getSDPVersion()
获取底盘版本号

rpos::features::system_resource::LaserScan getLaserScan()
获取原始激光扫描数据, 具体内容请参考rpos::features::system_resource::LaserScan

bool restartModule(system_resource::RestartMode mode = system_resource::RestartModeSoft)
根据指定的重启模式(默认软复位)执行重启操作
重启模式

说明
RestartModeSoft 软复位,重启SDK,速度较快。建议使用
RestartModeHard 硬复位,速度较慢,需要几分钟时间。不建议经常使用

bool setSystemParameter(const std::string& param, const std::string& value)
调整系统参数

参数名称 类型 说明
param const std::string& 调整的参数名,目前可设置的参数见下表
value const std::string& 调整的参数值

系统参数

名称 说明 可设置的值
base.max_moving_speed 机器人最大移动速度 浮点数或者三个系统内置值:"high"、"medium"、"low"
motionplan.low_localization_quality_threshold 低定位质量阈值 0~100之间的整数
base.power_off_wait_time 关机等待时间 整数,单位秒

示例

bool bRet = platform.setSystemParameter(SYSPARAM_ROBOT_SPEED, SYSVAL_ROBOT_SPEED_HIGH);

std::string getSystemParameter(const std::string& param)
获取系统参数,系统参数名见setSystemParameter的说明

bool updateBinaryConfig(const Json::Value& jsnCfg)
设置新的binary config

bool shutdownSlamcore(const rpos::core::SlamcoreShutdownParam& shutdownArg)
关闭Slamware Core

参数名称 类型 说明
shutdownArg const rpos::core::SlamcoreShutdownParam& 该结构体包含成员restartTimeIntervalMinute,表示重启时间间隔;以及shutdownTimeIntervalMinute,表示关机时间间隔;注意重启时间必须大于关机时间,否则会抛出OperationFailException

system_resource::DeviceInfo getDeviceInfo()
获取设备信息, 具体内容请参考rpos::features::system_resource::DeviceInfo

rpos::features::system_resource::BaseHealthInfo getRobotHealth()
获取机器人当前的状态信息, 具体内容请参考rpos::features::system_resource::BaseHealthInfo

void clearRobotHealth(int errorCode)
清除机器人当前出错的状态信息

bool configurateNetwork(rpos::features::system_resource::NetworkMode mode, const std::map& options)
配置机器人的网络信息
参数

网络模式 ssid password channel ip dns gateway mask
NetworkModeAp 可选 可选 可选 可选 可选 可选 可选
NetworkModeStation 必选 可选 -- -- -- -- --
NetworkModeWifiDisabled -- -- -- -- -- -- --
NetworkModeDHCPDisabled -- -- -- -- -- -- --
NetworkModeDHCPEnabled -- -- -- -- -- -- --
  1. 目前暂支持以上五种mode形式,ssid,password,channel三个选项的信息如上表(--表示不可用)
  2. NetworkModeWifiDisabled将禁用无线设置

示例

std::map<std::string, std::string> options;
options[“ssid”] = “Slamtec”;
options[“password”] = “slamtect”;
Bool bRet = platform.configureNetwork(rpos::features::system_resource::NetworkModeStation,options);

std::map getNetworkStatus()
获取机器人当前无线网络的配置信息
注:目前返回的结果只包含mode,ssid和ip三个选项的值

system_resource::HeartBeatToken startHeartBeat(int heartBeatTimeoutInSeconds)
启用心跳功能。启用后,客户应用程序将会有规律地向Slamware Core发送数据以表示连接正常。如在设定的时间内未收到返回数据token,系统将判定Slamware core和客户应用程序断开连接,从而取消正在执行的操作。该功能使客户应用程序崩溃后再重新启动时的状态及行为更具可控性。

参数名称 类型 说明
heartBeatTimeoutInSeconds int 心跳超时时间,单位为秒,即超过该设定时间后将判定为超时

void refreshHeartBeat(system_resource::HeartBeatToken token)
刷新心跳。同一时刻仅一个token起作用。如果第二次调用startHeartBeat,之前的token以及timeout将失效,系统将采用新的token和timeout时间。

参数名称 类型 说明
token system_resource::HeartBeatToken 信令,每次启用心跳功能后返回数据为与该次启动操作唯一对应的信令。
该信令同步传到refreshHeartBeat和stopHeartBeat,以防止后续操作时误调用。

void stopHeartBeat(system_resource::HeartBeatToken token)
停止心跳功能

void voiceRespond()
发出提示音提示设备位置,扫地机专用,其他平台上暂不支持

void startFirmwareUpgrade(const std::string& filename)
开始更新固件

参数名称 类型 说明
filename const std::string& 待升级的的目标固件文件名,包含路径

void startFirmwareUpgrade(const std::vector& firmwareContent)
开始更新固件

参数名称 类型 说明
firmwareContent const std::vector& 待升级的的目标固件文件内容

void publishDepthCamFrame(int sensorId, const rpos::message::depth_camera::DepthCameraFrame& frame) 向Slamware传输深度摄像头数据

参数名称 类型 说明
sensorId int 传感器ID,见配置文件
frame const rpos::message::depth_camera::DepthCameraFrame& 一帧摄像头数据

std::vector getOperationAuditLogs()
获取操作日志

int sendAndRecvUserDefinedCBUSMessage(const void * payload, const size_t payloadsize, void * recvBuffer, size_t & recvDataSize)
自定义Control-Bus命令

system_resource::LidarAutoTweakRequestResult beginLidarAutoTweak()
开始雷达校准流程
返回值

返回值 说明
LidarAutoTweakRequestResultStarted 雷达校准开始
LidarAutoTweakRequestResultNotSupport 不支持该功能
LidarAutoTweakRequestResultDisabled 配置中禁用了该功能

system_resource::LidarAutoTweakStatus getLidarAutoTweakStatus() 获取雷达校准状态
返回值

返回值 说明
LidarAutoTweakStatusIdle 空闲状态,雷达校准流程未触发
LidarAutoTweakStatusWaitingForContext 雷达校准流程已触发,正在等待可用的环境数据
LidarAutoTweakStatusTweaking 雷达校准正在执行
LidarAutoTweakStatusDone 雷达校准已完成
LidarAutoTweakStatusFailed 雷达校准失败

bool acceptLidarTweakResult()
接受雷达校准结果,保存到雷达中

void resetLidarTweakResult()
重置雷达校准结果到初始值

void cancelLidarAutoTweak()
取消雷达校准流程