Tange Cloud for Device
Rev.345
载入中...
搜索中...
未找到
TgAiRtc.h
浏览该文件的文档.
1
/** \file TgAiRtc.h
2
*
3
* \brief AIGC RTC 功能接口和命令.
4
*
5
*
6
* # 连接代理
7
* 设备通过AIGC RTC 代理与云端的AI服务实现双向通话。 \n
8
* 根据业务约定,代理可能主动连接设备,也可能需要设备先发起连接请求(调用 TgAiRtcDial()). \n
9
* 代理可能主动断开设备(例如在一段时间静默后),也可能需要设备主动请求断开(调用 TgAiRtcHangup())。
10
*
11
* # 双向数据和通知
12
* 连接建立后,设备和代理间就可以双向发送媒体数据和通知。音视频的收发参见 <a href="index.html">探鸽云平台设备接入</a>.
13
*
14
* ## 通知: 代理->设备
15
* 代理到设备的通知通过命令 @ref TCI_CMD_AIRTC_NOTI 发送. \n
16
* 通知类型包括应答的开始(@ref ANOTI_ANSWER_START)/结束(@ref ANOTI_ANSWER_END)标志和其它事件(@ref ANOTI_EVENT). \n
17
* 其它事件内容需要参看平台端文档,可能包含字幕等信息.
18
*
19
* ## 通知: 设备->代理
20
* 设备到代理的通知内容由平台约定,可能包含主动打断等功能. \n
21
* <参见 https://tange-ai.feishu.cn/docx/UTsBdkRSCol81Nx0x78cUJpvn4g>
22
*
23
* 通知在设备连上代理(可以以收到 @ref TciCB::on_talkback_start() 回调为标志)后调用 TciSendRtMsg() 发送.
24
*
25
* TciSendRtMsg()调用采用以下参数:
26
* \code{.c}
27
#define TAG_AIGC 0x41494743
28
#define TAG_JSON 0x4a534f4e
29
TciSendRtMsg(0, RTM_USER, TAG_AIGC, TAG_JSON, <notification>, <length_of_notification>);
30
* \endcode
31
*
32
* 例如
33
* \code{.c}
34
const char event[] = "{\"jsonrpc\":\"2.0\",\"method\":\"interupt\"}";
35
TciSendRtMsg(0, RTM_USER, TAG_AIGC, TAG_JSON, event, sizeof(event) - 1);
36
* \endcode
37
*/
38
#pragma once
39
40
#include "basedef.h"
41
42
#ifdef __cplusplus
43
extern
"C"
{
44
#endif
45
46
47
#define TCI_CMD_AIRTC_NOTI 0x803A
///< 从代理收到的通知命令。req: TcisAiRtcState; 无需应答
48
typedef
enum
{
49
ANOTI_ANSWER_START
,
///< 应答开始. 无额外数据
50
ANOTI_ANSWER_END
,
///< 应答结束. 无额外数据
51
ANOTI_EVENT
///< 其它事件.
52
}
EAIRTCNOTI
;
53
54
/** \struct TcisAiRtcState.
55
* @ref TCI_CMD_AIRTC_NOTI 命令的参数
56
*/
57
typedef
struct
{
58
uint32_t
state
;
///< @ref EAIRTCNOTI
59
uint32_t reserved;
60
char
data[0];
///< ANOTI_EVENT 的数据. 内容由平台规定
61
}
TcisAiRtcState
;
62
63
/** 主动请求连接.
64
* @param jstr 呼叫配置,json格式的字符串,内容由设备与平台约定(参看<a href="https://tange-ai.feishu.cn/docx/UTsBdkRSCol81Nx0x78cUJpvn4g#share-WgBvdkFMQoWOecxaJlkcrDkkn0b">5. QWEN-AGENT 建连</a>)
65
* @return 0 或错误码 */
66
int
TgAiRtcDial
(
const
char
*jstr);
67
68
/** 主动挂断连接.
69
* @return 0 或错误码 */
70
int
TgAiRtcHangup
();
71
72
73
#ifdef __cplusplus
74
}
/* extern "C" */
75
#endif
TgAiRtcHangup
int TgAiRtcHangup()
主动挂断连接.
TgAiRtcDial
int TgAiRtcDial(const char *jstr)
主动请求连接.
TcisAiRtcState::state
uint32_t state
EAIRTCNOTI
定义
TgAiRtc.h:58
EAIRTCNOTI
EAIRTCNOTI
定义
TgAiRtc.h:48
ANOTI_ANSWER_START
@ ANOTI_ANSWER_START
应答开始. 无额外数据
定义
TgAiRtc.h:49
ANOTI_ANSWER_END
@ ANOTI_ANSWER_END
应答结束. 无额外数据
定义
TgAiRtc.h:50
ANOTI_EVENT
@ ANOTI_EVENT
其它事件.
定义
TgAiRtc.h:51
TcisAiRtcState
TCI_CMD_AIRTC_NOTI 命令的参数
定义
TgAiRtc.h:57
TgAiRtc.h
制作者
1.12.0