跳到内容 跳到主导航 跳到页脚

灯效控制

一、简介

本文档介绍 RobotApi 中灯效控制相关接口的使用方法。不同机型配备的灯硬件不同,对应的接口也不同,使用前请先确认目标机型,选择对应章节的接口。


二、豹小秘 / 招财豹 / 豹小递max 灯效 API

2.1 设置灯效

方法名称: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(reqId, params.toString(), listener);

参数:

  • reqId:int 类型,命令 id
  • params:String 类型,JSON 字符串,包含以下字段:
  • type:灯效类型,填 0
  • startColor:灯效起始颜色值
  • endColor:灯效结束颜色值
  • startTime:渐变开始颜色停留的时间
  • endTime:渐变结束颜色停留的时间
  • loopTime:灯效渐变重复次数
  • duration:渐变过程花费的时间
  • finalColor:渐变过渡颜色
  • listenerActionListener 类型,消息回调

颜色值格式: 使用 RGB 排列的 16 进制字符串,例如 "F3F3F3""00FF00"

返回值:int0 表示命令执行,-1 表示没有执行。

适用机型:

豹小秘mini招财豹豹小递max豹小秘DP

设置灯效代码demo可以在这里找到(代码适用于豹小秘机器人,其他机器人请替换机器人jar包):点击这里

三、招财豹Pro / 豹小递Pro 灯效 API

3.1 查询是否支持底盘灯带

方法名称:isUseProZcbLed

调用方式:

boolean supported = RobotApi.getInstance().isUseProZcbLed();

说明: 调用 setProZcbLedEffect 前建议先通过此方法判断当前机型是否支持底盘灯带,返回 true 才可调用。


3.2 设置底盘灯带灯效

方法名称:setProZcbLedEffect

调用方式:

RobotApi.getInstance().setProZcbLedEffect(reqId, proZcbEffect, new CommandListener() {
    @Override
    public void onResult(int result, String message, String extra) {
        if (result == Definition.RESULT_SUCCEED) {
            // 设置成功
        } else {
            // 设置失败
        }
    }
});

参数:

  • reqId:int 类型,命令 id
  • proZcbEffect:int 类型,灯效常量,取值见本章末尾常量表
  • listenerCommandListener 回调,可为 null

3.3 查询是否有锁骨灯

方法名称:isHasClavicleLight

调用方式:

boolean hasLight = RobotApi.getInstance().isHasClavicleLight();

说明: 调用 setProIobLedEffect 前建议先通过此方法判断当前机型是否配备锁骨灯,返回 true 才可调用。


3.4 设置锁骨灯灯效

方法名称:setProIobLedEffect

调用方式:

RobotApi.getInstance().setProIobLedEffect(reqId, proIobLedEffect, new CommandListener() {
    @Override
    public void onResult(int result, String message, String extra) {
        if (result == Definition.RESULT_SUCCEED) {
            // 设置成功
        } else {
            // 设置失败
        }
    }
});

参数:

  • reqId:int 类型,命令 id
  • proIobLedEffect:int 类型,灯效常量,取值见本章末尾常量表
  • listenerCommandListener 回调,可为 null

3.5 灯效常量表(ZCB2UARTLED)

底盘灯带(setProZcbLedEffect)与锁骨灯(setProIobLedEffect)共用以下常量:

常量说明
Definition.ZCB2UARTLED_GREENBREATH绿色呼吸
Definition.ZCB2UARTLED_BLUEBREATH蓝色呼吸
Definition.ZCB2UARTLED_ORANGEBREATH橙色呼吸
Definition.ZCB2UARTLED_YELLOWBREATH黄色呼吸
Definition.ZCB2UARTLED_BLUENORMAL蓝色常亮
Definition.ZCB2UARTLED_REDNORMAL红色常亮
Definition.ZCB2UARTLED_ORANGENORMAL橙色常亮
Definition.ZCB2UARTLED_YELLOWNORMAL黄色常亮
Definition.ZCB2UARTLED_GREENNORMAL绿色常亮
Definition.ZCB2UARTLED_TURNRIGHT右转效果
Definition.ZCB2UARTLED_TURNLEFT左转效果
Definition.ZCB2UARTLED_REGFLASH红色闪烁
Definition.ZCB2UARTLED_YELLOWFLASH黄色闪烁
Definition.ZCB2UARTLED_ALLOFF关闭所有灯效

四、豹小秘Pro 灯效 API

4.1 灯效常量表(LED_EFFECT)

胸口灯与手臂灯接口统一使用以下常量:

常亮效果

常量说明适用灯位
Definition.LED_EFFECT_REDNORMAL红色常亮胸口灯、手臂灯
Definition.LED_EFFECT_GREENNORMAL绿色常亮胸口灯、手臂灯
Definition.LED_EFFECT_BLUENORMAL蓝色常亮胸口灯、手臂灯
Definition.LED_EFFECT_YELLOWNORMAL黄色常亮胸口灯、手臂灯
Definition.LED_EFFECT_ORANGENORMAL橙色常亮胸口灯、手臂灯

呼吸效果

常量说明适用灯位
Definition.LED_EFFECT_GREENBREATH绿色呼吸胸口灯、手臂灯
Definition.LED_EFFECT_BLUEBREATH蓝色呼吸胸口灯、手臂灯
Definition.LED_EFFECT_YELLOWBREATH黄色呼吸胸口灯、手臂灯
Definition.LED_EFFECT_ORANGEBREATH橙色呼吸胸口灯、手臂灯
Definition.LED_EFFECT_WHITEBREATH白色呼吸仅手臂灯

闪烁效果

常量说明适用灯位
Definition.LED_EFFECT_REDFLASH红色闪烁胸口灯、手臂灯
Definition.LED_EFFECT_GREENFLASH绿色闪烁胸口灯、手臂灯
Definition.LED_EFFECT_BLUEFLASH蓝色闪烁胸口灯、手臂灯
Definition.LED_EFFECT_YELLOWFLASH黄色闪烁胸口灯、手臂灯

流动 / 跑马灯效果

常量说明适用灯位
Definition.LED_EFFECT_BLUEFORWARDON蓝色流水灯:顺流亮胸口灯
Definition.LED_EFFECT_BLUEFORWARDOFF蓝色流水灯:顺流灭胸口灯
Definition.LED_EFFECT_BLUEMETEORFORWARD蓝色流星:正向胸口灯
Definition.LED_EFFECT_BLUEMETEORREVERSE蓝色流星:反向胸口灯
Definition.LED_EFFECT_GREENLOOP绿色循环仅手臂灯
Definition.LED_EFFECT_BLUELOOP蓝色循环仅手臂灯

特殊效果

常量说明适用灯位
Definition.LED_EFFECT_SLIM_CLAVICLE_TURNRIGHTSLIM 右转向灯(左灭右闪)胸口灯

关闭

常量说明适用灯位
Definition.LED_EFFECT_ALLOFF关闭所有灯胸口灯、手臂灯

4.2 设置胸口灯灯效

方法名称:setChestLedEffect

调用方式:

RobotApi.getInstance().setChestLedEffect(reqId, effect, new CommandListener() {
    @Override
    public void onResult(int result, String message, String extra) {
        if (result == Definition.RESULT_SUCCEED) {
            // 设置成功
        } else {
            // 设置失败
        }
    }
});

参数:

  • reqId:int 类型,命令 id
  • effect:int 类型,灯效常量,取值见 4.1 常量表
  • listenerCommandListener 回调,可为 null

4.3 设置左臂灯效

方法名称:setArmLeftLedEffect

调用方式:

RobotApi.getInstance().setArmLeftLedEffect(reqId, effect, new CommandListener() {
    @Override
    public void onResult(int result, String message, String extra) {
        if (result == Definition.RESULT_SUCCEED) {
            // 设置成功
        } else {
            // 设置失败
        }
    }
});

参数:

  • reqId:int 类型,命令 id
  • effect:int 类型,灯效常量,取值见 4.1 常量表
  • listenerCommandListener 回调,可为 null

4.4 设置右臂灯效

方法名称:setArmRightLedEffect

调用方式:

RobotApi.getInstance().setArmRightLedEffect(reqId, effect, new CommandListener() {
    @Override
    public void onResult(int result, String message, String extra) {
        if (result == Definition.RESULT_SUCCEED) {
            // 设置成功
        } else {
            // 设置失败
        }
    }
});

参数:

  • reqId:int 类型,命令 id
  • effect:int 类型,灯效常量,取值见 4.1 常量表
  • listenerCommandListener 回调,可为 null

4.5 设置双臂灯效(同步)

方法名称:setArmsLedEffect

调用方式:

RobotApi.getInstance().setArmsLedEffect(reqId, effect, new CommandListener() {
    @Override
    public void onResult(int result, String message, String extra) {
        if (result == Definition.RESULT_SUCCEED) {
            // 设置成功
        } else {
            // 设置失败
        }
    }
});

参数:

  • reqId:int 类型,命令 id
  • effect:int 类型,灯效常量,左右臂使用同一灯效,取值见 4.1 常量表
  • listenerCommandListener 回调,可为 null

说明: 该接口同时设置左右臂灯效。若需要左右臂显示不同灯效,请分别调用 setArmLeftLedEffectsetArmRightLedEffect


4.6 完整示例参考

完整调用示例请参考 RobotSample 工程中的: com.ainirobot.robotos.fragment.LedControlFragment

这篇文章是否有帮助?

0