7.1. AI SDK
Overview
AI_SDK常用于接入第三方服务器播歌,读绘本等抽象出来统一网络云平台服务功能的接口;外部直接调用功能接口有可能存在互斥的问题,引入AI_SDK是为了解决这个问题,应用程序无需关心使用互斥问题, ai_server任务统一了事件的操作,用户操作对应AI_SDK消息时候只需要将对应的AI_SDK名字传入即可;
7.1.1. DEMO
使用工程:示例代码见 apps/common/example/system/ai_sdk/main.c
,测试时需要在 apps/demo/demo_DevKitBoard/include/demo_config.h
,开启宏 USE_AI_SDK_DEMO
。
7.1.2. AI Server
AI Server用于对注册的AI Sdk进行统一的调度管理,无需关心互斥问题。示例中各个接口含义:
SERVER_REGISTER:创建ai_test_server
ai_test_server_open:查询AI_SDK是否存在,是则存储到结构体中,并且返回结构体
ai_test_server_init:初始化变量
ai_test_server_close:在ai_test_server服务关闭时调用,AI_SDK的disconnect函数并且初始化变量
ai_server_request: 分发处理各类型的消息
ai_test_req_connect: 处理ai_server连接请求
ai_test_req_disconnect:处理ai_server断开连接请求
ai_test_req_listen: 处理ai_server监听请求
ai_test_req_event:处理ai_server事件请求
ai_test_server_event_notify: 用于下发notify事件给AI_SDK
ai_test_server_event_url: 用于下发url事件给AI_SDK
ai_test_check_connect_state: 用于下发连接或断开事件给AI_SDK
7.1.3. AI Sdk
AI Sdk为统一的网络云平台功能接口主要提供开启、断开、状态检测和事件处理的接口。示例中各个接口含义:
结构体
struct ai_test_sdk_api { const char *name; int (*connect)(void); int (*state_check)(void); int (*do_event)(int event, int arg); int (*disconnect)(void); };
ai1_sdk_open : 对应的ai_sdk的connect函数
ai1_sdk_check: 对应的ai_sdk的state_check函数
ai1_sdk_do_event : 对应的ai_sdk的do_event函数
ai1_sdk_disconnect: 对应的ai_sdk的disconnect函数
REGISTER_AI_SDK :创建AI_SDK