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