1. 设备接口说明

1.1. flora接口说明

参考github的说明 flora

1.2. 蓝牙接口说明

YodaOS 上,蓝牙统一被bluetooth_service接管, 通过flora和蓝牙服务通讯,实现蓝牙操作。蓝牙服务在系统的源码路径如下:

frameworks/native/services/bluetooth_service

在目录frameworks/native/services/bluetooth_service/demo 下有一个测试程序和监控程序, 测试程序是测试蓝牙服务提供的接口 bluetooth_test.c , 监控程序bluetooth_monitor.c, 是打印蓝牙服务接收到到消息,用来程序调试用。

采用flora发送和接收消息。

1.2.1. A2DP 高质量音频数据传输的协议 source 操作

调用flora库的接口给bluetooth_service

flora_agent_post(agent, "bluetooth.a2dpsource.command", msg, FLORA_MSGTYPE_INSTANT)

msg的消息类型如下:

{
    name:"Rokid-Me-9999zz",
    proto:"A2DPSOURCE",
    command:"",    
}

command的取值类型:

类型 意义
"ON" 打开设备
"OFF" 关闭设备
"DISCONNECT_PEER" 断开链接点
"DISCOVERY" 搜索蓝牙设备
"GETSTATE" 获取当前状态

GETSTATE调用的是flora的同步接口, 参考如下:

152      flora_call_result result = {0};
153    if (flora_agent_call(agent, "bluetooth.a2dpsource.command", msg, "bluetoothservice-agent", &result, 0) == FLORA_CLI_SUCCESS) {
154    if (result.data && result.ret_code == FLORA_CLI_SUCCESS) {
155                     const char *buf = NULL;
156                     caps_read_string(result.data, &buf);
157                     printf("data :: %s\n", buf);
158                 }  
159   flora_result_delete(&result);
}
160

1.2.2. A2DP 高质量音频数据传输的协议 sink 操作

调用flora库的接口给bluetooth_service

flora_agent_post(agent, "bluetooth.a2dpsink.command", msg, FLORA_MSGTYPE_INSTANT)

msg的消息类型如下:

{
    name:"Rokid-Me-9999zz",
    proto:"A2DPSINK",
    command:"",    
}

1.3. 灯效接口说明

YodaOS对于AVS灯效的支持依靠lightservice支持,lightservice的源码路径:

frameworks/native/services/lightservice

控制灯效的接口如下,通过flora向lightservice发送"rokid.light.animation"以及msg消息,例如唤醒灯效:

int degree = 360;
Client::connect("unix:/var/run/flora.sock", &cb, 0, cli)
shared_ptr<Caps> msg = Caps::new_instance();
msg->write("awake");
msg->write(degree);

cli->post("rokid.light.animation", msg, FLORA_MSGTYPE_INSTANT);

msg消息值和对应的说明

函数名 参数 说明
active int degree Listening Start
thinking NULL
speaking NULL
idle NULL
micOn NULL Microphone on
micOff NULL Microphone off
alert NULL Timer/Alarm/Reminder
alertShort NULL Timer Short/Alarm
alertDismiss NULL
incomingNotification NULL
queuedNotification NULL
noNotification NULL
doNotDisturb NULL
btConnectState NULL Bluetooth connect
error NULL error
volume double value value = [0, 1] Volume setting
boot NULL starting up
bootEnd NULL finish starting up
config NULL wifi config
configEnd NULL finish wifi config

1.4. 本地音效接口说明

通过调用rplayer 播放本地音频文件进行声音提示。接口说明参见rplayer

yim-avs进程的音效文件都放在源代码目录:frameworks/yimo/res

音频文件在运行环境中的目录路径为:/data/yimo/res

results matching ""

    No results matching ""