系统功能
系统状态监控
机器人有非常多的状态、事件可以监控,来辅助完成工作。监控主要使用下面函数来完成。
RobotApi.getInstance().registerStatusListener( Definition.STATUS_POSE_ESTIMATE, mStatusPoseListener);
能监控到的事件定义可以在SDK的Definition.Java 中找到。目前提供的监控状态如下:
STATUS_POSE = "navi_pose"; //位置改变 STATUS_MAP = "navi_map"; //地图改变 STATUS_EMERGENCY = "status_emergency"; //紧急状态 STATUS_POSE_ESTIMATE = "status_pose_estimate"; //机器人定位状态 STATUS_AVOID_STOPPING = "status_avoid_stopping";//动态避停 STATUS_SWITCH_MAP = "status_switch_map"; //地图切换 STATUS_RADAR = "status_radar"; //雷达状态 STATUS_BATTERY = "status_battery"; //电池充电状态 STATUS_MULTIPLE_ROBOT_WORKING = "status_multiple_robot_working"; //多机状态信息 STATUS_MAP_OUTSIDE = "status_map_outside_report"; //机器出地图(目前仅限招财) STATUS_ROBOT_BEING_PUSHED = "status_robot_being_pushed"; //机器被推动(目前仅限招财)
设置灯效
方法名称:setLight
调用方式:
JSONObject params = new JSONObject(); try { params.put(Definition.JSON_LAMB_TYPE, type); params.put(Definition.JSON_LAMB_TARGET, 0); params.put(Definition.JSON_LAMB_RGB_START, startColor); params.put(Definition.JSON_LAMB_RGB_END, endColor); params.put(Definition.JSON_LAMB_START_TIME, startTime); params.put(Definition.JSON_LAMB_END_TIME, endTime); params.put(Definition.JSON_LAMB_REPEAT, loopTime); params.put(Definition.JSON_LAMB_ON_TIME, duration); params.put(Definition.JSON_LAMB_RGB_FREEZE, finalColor); } catch (JSONException e) { e.printStackTrace(); }
RobotApi.getInstance().setLight(0, params.toString(), null);
参数
- reqId: int类型 命令id
- params: String类型, 可包含如下参数:
- type:填0
- startColor:灯效起始颜色值
- endColor:灯效结束颜色值
- startTime:渐变开始颜色停留的时间
- endTime:渐变结束颜色停留的时间
- loopTime:灯效渐变重复次数
- duration:渐变过程花费的时间
- finalColor:渐变过渡颜色
- listener: ActionListener类型 消息回调
- 颜色值: 使用RGB排列的16位字符串,例如“F3F3F3”或者“00FF00”。
返回值
- int result 0 命令执行 / -1 没有执行
适用平台:
豹小秘 | mini | 招财豹 | 豹小递max | 豹小秘DP |
是 | 否 | 是 | 是 | 否 |
设置灯效代码demo可以在这里找到(代码适用于豹小秘机器人,其他机器人请替换机器人jar包):点击这里
招财豹Pro和豹小递Pro设置灯效
方法名称:isUseProZcbLed
调用方法:
/**
* 是否使用ProZcbLed灯带接口
*/
RobotApi.getInstance().isUseProZcbLed()
方法名称:setProZcbLedEffect
调用方法:
/**
* 控制ZcbLed灯,即Saiph Pro的底盘灯带
* proZcbEffect 参数参考下面颜色定义
* Zcb:招财豹
*/
RobotApi.getInstance().setProZcbLedEffect(int reqId, int proZcbEffect, CommandListener listener)
方法名称:isHasClavicleLight
调用方法:
/**
* 是否有锁骨灯
*/
RobotApi.getInstance().isHasClavicleLight()
方法名称:setProIobLedEffect
调用方法:
/**
* 控制IobLed灯,即Saiph Pro的锁骨灯
* proIobLedEffect 参数参考下面颜色定义
*"Iob"应该是拼写错误,应该是Lobby,表示胸口部位的灯带。
*/
RobotApi.getInstance().setProIobLedEffect(int reqId, int proIobLedEffect, CommandListener listener)
颜色定义:
public static final int ZCB2UARTLED_GREENBREATH = 0xDE10; //绿色呼吸效果
public static final int ZCB2UARTLED_BLUEBREATH = 0xDE11; //蓝色呼吸效果
public static final int ZCB2UARTLED_ORANGEBREATH = 0xDE12; //橙色呼吸效果
public static final int ZCB2UARTLED_YELLOWBREATH = 0xDE13; //黄色呼吸效果
public static final int ZCB2UARTLED_BLUENORMAL = 0xDE14; //蓝色正常效果
public static final int ZCB2UARTLED_REDNORMAL = 0xDE15; //红色正常效果
public static final int ZCB2UARTLED_ORANGENORMAL = 0xDE16; //橙色正常效果
public static final int ZCB2UARTLED_YELLOWNORMAL = 0xDE17; //黄色正常效果
public static final int ZCB2UARTLED_GREENNORMAL = 0xDE18; //绿色正常效果
public static final int ZCB2UARTLED_TURNRIGHT = 0xDE19; //右转效果
public static final int ZCB2UARTLED_TURNLEFT = 0xDE20; //左转效果
public static final int ZCB2UARTLED_REGFLASH = 0xDE21; //红色闪效果
public static final int ZCB2UARTLED_YELLOWFLASH = 0xDE22; //黄色闪效果
public static final int ZCB2UARTLED_ALLOFF = 0xDE00; //关闭所有zcb效果
获取本机SN
方法名称:getRobotSn
调用方式:
boolean status = RobotApi.getInstance().getRobotSn( new CommandListener(){ @Override public void onResult(int result, String message) { if (Definition.RESULT_OK == result) { String serialNum = message; } else { } } });
参数
- listener CommandListener 消息回调{“code”:0, “message”:”err msg”}
返回值
- int result 1 命令执行 / -1 没有执行
适用平台:
豹小秘 | mini | 招财豹 | 豹小递max | 豹小秘DP |
是 | 是 | 是 | 是 | 是 |
获取系统版本
方法名称:getVersion
调用方式:
String version = RobotApi.getInstance().getVersion();
适用平台:
豹小秘 | mini | 招财豹 | 豹小递max | 豹小秘DP |
是 | 是 | 是 | 是 | 是 |
禁止系统功能
系统不再接管急停事件,没有急停画面,可用于用户自定义急停画面。在急停状态下,所以底盘相关功能API不可使用,唤醒、休眠等切换机器人状态的API也不生效。
方法名称:disableEmergency
调用方式:
RobotApi.getInstance.disableEmergency();
获取Emergency状态的API:
RobotApi.getInstance().getRobotStatus(Definition.STATUS_EMERGENCY,new StatusListener(){ @Override public void onStatusUpdate(String type, String data) throws RemoteException { Log.d("onStatusUpdate","Status:"+data); } }); //或者使用下面方法注册急停状态事件 RobotApi.getInstance().registerStatusListener(Definition.STATUS_EMERGENCY,new StatusListener(){ @Override public void onStatusUpdate(String type, String data) throws RemoteException { Log.d("onStatusUpdate","status:"+type+";value:"+data); } });
适用平台:
豹小秘 | mini | 招财豹 | 豹小递max | 豹小秘DP |
是 | 是 | 是 | 是 | 是 |
禁用当前电池界面,充电时可使用除底盘外client app任何能力
如果确认不需要充电接管,推荐在APP启动连上RobotAPI成功之后,直接调用此接口禁用。此后直到APP退出,充电接管画面都会处于禁用状态。
方法名称:disableBattery
调用方式:
RobotApi.getInstance().disableBattery();
获取Battery状态的API:
RobotSettingApi.getInstance().getRobotString(Definition.ROBOT_SETTINGS_BATTERY_INFO); //或使用下面方法监听电池状态变化 RobotApi.getInstance().registerStatusListener(Definition.STATUS_BATTERY,listener);
适用平台:
豹小秘 | mini | 招财豹 | 豹小递max | 豹小秘DP |
是 | 是 | 是 | 是 | 是 |
禁用功能键,招财豹头部后面按钮
方法名称:disableFunctionKey
调用方式:
RobotApi.getInstance().disableFunctionKey();
适用平台:
豹小秘 | mini | 招财豹 | 豹小递max | 豹小秘DP |
否 | 否 | 是 | 否 | 否 |
休眠
场景介绍:
休眠是让机器人在没有任务或者低电量的时候,保持低功耗运行的一种模式。使用休眠API需要添加如下权限: <uses-permission android:name="com.ainirobot.coreservice.robotSettingProvider" />
适用平台:
豹小秘 | mini | 招财豹 | 豹小递max | 豹小秘DP |
否 | 否 | 是 | 否 | 否 |
开始休眠
方法名称:robotStandby
调用方式:
RobotApi.getInstance().robotStandby(0, new CommandListener() { @Override public void onStatusUpdate(int status, String data, String extraData) { super.onStatusUpdate(status, data, extraData); } });
停止休眠
方法名称:robotStandbyEnd
调用方式:
RobotApi.getInstance().robotStandbyEnd(reqId);
安装APK
方法名称:installApk
调用方式:
RobotApi.getInstance().installApk(reqid, fullPathName, taskID);
参数:
- reqId: int类型 命令id
- fullPathName:安装包路径
- taskID:taskID,非空的任意字符串内容
适用平台:
豹小秘 | mini | 招财豹 | 豹小递max | 豹小秘DP |
是 | 是 | 是 | 是 | 是 |