Tange Cloud for Device
 Rev.333
载入中...
搜索中...
未找到
ec_const.h
浏览该文件的文档.
1/** \file ec_const.h
2 * \brief 常数和错误码定义
3 */
4
5#ifndef __ec_const_h__
6#define __ec_const_h__
7
8/** \addtogroup api_const
9 * @{*/
10
11/** @anchor video_frame_flags */
12/** @name 视频帧标志
13 * @{*/
14#define FF_KEYFRAME 0x00000001 ///< 关键帧
15#define FF_TIMELAPSE 0x00000002 ///< 非连续帧(缩时)
16/**@}*/
17
18
19/** @name Media Type
20 * @{
21 */
22/** \enum TCMEDIA
23 * 媒体类型枚举常数
24 */
25typedef enum TCMEDIA {
26 TCMEDIA_INVALID = 0, ///< 无效类型
27 TCMEDIA_VIDEO_H264 = 1, ///< H.264 "h264"
28 TCMEDIA_AUDIO_G711A = 2, ///< G.711A "g711a" "alaw"
29 TCMEDIA_AUDIO_ALAW = TCMEDIA_AUDIO_G711A, ///< G.711A "g711a" "alaw"
30
31 //----------------------------------
32 TCMEDIA_VIDEO_IJPG = 10, ///< Private Inter-frame jpeg codec
33 TCMEDIA_VIDEO_MPEG = 11, ///< Mpeg "mpeg"
34 TCMEDIA_VIDEO_JPEG = 12, ///< jpeg "jpeg"
36 TCMEDIA_VIDEO_H265 = 13, ///< H.265 "h265"
37 TCMEDIA_VIDEO_MAX,
38
39 TCMEDIA_AUDIO_ULAW = 51, ///< G.711U "g711u" "ulaw"
41 TCMEDIA_AUDIO_PCM = 52, ///< Raw PCM "pcm"
42 TCMEDIA_AUDIO_ADPCM = 53, ///< ADPCM "adpcm"
44 TCMEDIA_AUDIO_ADPCM_DVI4 = 54, ///< DVI4 "adpcm-dvi4"
45 TCMEDIA_AUDIO_G726_16 = 55, ///< G.726-16
46 TCMEDIA_AUDIO_G726_24 = 56, ///< G.726-24
47 TCMEDIA_AUDIO_G726_32 = 57, ///< G.726-32
48 TCMEDIA_AUDIO_G726_40 = 58, ///< G.726-40
49 TCMEDIA_AUDIO_AAC = 59, ///< AAC "aac"
50 TCMEDIA_AUDIO_MP3 = 60, ///< MP3 "mp3"
51 TCMEDIA_AUDIO_AMR = 61, ///< AMR "amr"
52 TCMEDIA_AUDIO_MAX
53} TCMEDIA;
54
55/** 是否视频媒体类型 */
56#define TCMEDIA_IS_VIDEO(mt) ((mt) && (((mt)<TCMEDIA_VIDEO_MAX && (mt)>TCMEDIA_AUDIO_G711A) || (mt)==TCMEDIA_VIDEO_H264))
57/** 是否音频媒体类型 */
58#define TCMEDIA_IS_AUDIO(mt) ((mt) && ((mt)==TCMEDIA_AUDIO_G711A || ((mt)>=TCMEDIA_AUDIO_ULAW && (mt)<TCMEDIA_AUDIO_MAX)))
59
60/**@}*/ //name: Media Type
61
62/** @anchor audio_sample_fmt
63 * @name 音频采样格式
64 *
65 * int TciSendFrame(int stream, TCMEDIA mt, const uint8_t *pFrame, int length, uint32_t ts, int uFrameFlags); \n
66 * int TciSendFrameEx(int channel, int stream, TCMEDIA mt, const uint8_t *pFrame, int length, uint32_t ts, int uFrameFlags); \n
67 * int TciSendPbFrame(p2phandle_t handle, uint32_t id_mt, const uint8_t *frame, int len, uint32_t timestamp, int uFrameFlags);
68 *
69 * 上面接口的最后一个参数 \c uFrameFlags ,当媒体类型为音频时,为音频采样格式.
70 *
71 * 该格式由采样频率、采样位宽和声道数据组成:
72 *
73 * \code
74 * uFrameFlags = (samplerate << 2) | (datebits << 1) | channel
75 * \endcode
76 *
77 * 当 \c uFrameFlags 为0时,SDK会将其改为默认配置.
78 *
79 * 本系统默认的音频采样格式为 8000/16位/单声道, 对应
80 * \code
81 * uFrameFlags = (AUDIO_SAMPLE_8K << 2) | (AUDIO_DATABITS_16 < 1) | AUDIO_CHANNEL_MONO = 2
82 * \endcode
83 *
84 * @{ */
85
86/** \enum ENUM_AUDIO_SAMPLERATE
87 * 音频采样频率常数 */
89 AUDIO_SAMPLE_8K = 0x00, ///< 8000
90 AUDIO_SAMPLE_11K = 0x01, ///< 11000
91 AUDIO_SAMPLE_16K = 0x02, ///< 16000
92 AUDIO_SAMPLE_22K = 0x03, ///< 22000
93 AUDIO_SAMPLE_24K = 0x04, ///< 24000
94 AUDIO_SAMPLE_32K = 0x05, ///< 32000
95 AUDIO_SAMPLE_44K = 0x06, ///< 44000
96 AUDIO_SAMPLE_48K = 0x07 ///< 48000
98
99/** \enum ENUM_AUDIO_CHANNEL 音频采样位宽常数 */
101 AUDIO_DATABITS_X = 0, ///< 16 bits. 为了兼容,0也表示16位采样。8位采样用别的方式表示
102 AUDIO_DATABITS_16 = 1 ///< 16 bits
104
105/** \enum ENUM_AUDIO_CHANNEL
106 * 音频通道数 */
107typedef enum ENUM_AUDIO_CHANNEL {
108 AUDIO_CHANNEL_MONO = 0, ///< 单声道
109 AUDIO_CHANNEL_STERO = 1 ///< 双声道
111
112/**@}*/
113
114/** \enum ECEVENT
115 * 上报事件类型.
116 * 事件可能需要携带额外参数。参数通过 EVENTPARAM::evt_data 传递,内容与具体事件相关
117 */
118typedef enum ECEVENT {
119 ECEVENT_NONE = 0, ///< [] none
120 ECEVENT_MOTION_DETECTED, ///< [motion] is detected (=1)
121 ECEVENT_HUMAN_BODY, ///< [body] human body is detected (=2)
122 ECEVENT_SOUND, ///< [sound] (=3)
123 ECEVENT_PIR, ///< [pir](=4)
124
125 ECEVENT_SMOKE, ///< [smoke] (=5)
126 ECEVENT_TEMPERATURE_L, ///< [tempL] temperature low(=6). 参数: MKEVTDATA_Temperatur()
127 ECEVENT_TEMPERATURE_H, ///< [tempH] temperature high(=7). 参数: MKEVTDATA_Temperatur()
128 ECEVENT_HUMIDITY_L, ///< [humidL] humidity low(=8). 参数: MKEVTDATA_Humidity()
129 ECEVENT_HUMIDITY_H, ///< [humidH] humidity high(=9). 参数: MKEVTDATA_Humidity()
130 ECEVENT_GENERIC_SENSOR, ///< [generic] 通用传感器类消息 (=10)
131
132 ECEVENT_DR_BEGIN, ///< 行车记录仪事件范围开始(=11)
133 ECEVENT_G_SENSOR = ECEVENT_DR_BEGIN, ///< [g-sensor] G-Sensor(碰撞事件)(=11). 参数: NULL or EVTDATA_SERIOUS_COLLISION
134 ECEVENT_COLLISION = ECEVENT_G_SENSOR, ///< = @ref ECEVENT_G_SENSOR(=11)
135 ECEVENT_SETOFF, ///< [set-off] set off car (=12)
136 ECEVENT_PARK, ///< [park] car parked(=13)
137 ECEVENT_SPEED_UP, ///< [speed-up] speed burstly up(=14)
138 ECEVENT_SPEED_DOWN, ///< [speed-down] speed burstly down(=15)
139 ECEVENT_DR_END = ECEVENT_SPEED_DOWN, ///< 行车记录仪事件范围结束(=15)
140
141 ECEVENT_CALL, ///< [call] (=16)
142 ECEVENT_DOORBELL = ECEVENT_CALL, ///< 保留旧的命名 = ECEVENT_CALL
143 ECEVENT_PASSBY, ///< [passby] 有人路过(=17)
144 ECEVENT_STAY, ///< [stay] 有人停留(=18)
145
146 //ECEVENT_OBJECT, ///< object recognization
147 //ECEVENT_CAR = ECEVENT_OBJECT, ///<
148
149 ECEVENT_LOCK, ///< [lock] 门锁消息(大类)(=19). 细分消息在data部分
150
151 ECEVENT_CRY, ///< [cry] 检测到哭声(=20)
152 ECEVENT_ENTER, ///< [enter] 进入区域(=21)
153 //参数: MKEVTDAT_SitPoseSens()。这个在sdk内部处理
154 ECEVENT_SITPOSE, ///< [bad_posture] sitting pose. 坐姿检测.(=22)
155
156 ECEVENT_LEAVE, ///< [leave] 离开区域 "leave". 由sdk生成?(=23)
157 ECEVENT_TUMBLE, ///< [tumble] 摔倒(=24)
158
159 ECEVENT_SNAPSHOT, ///< [snapshot] 手动抓拍(=25)
160 ECEVENT_CALL2, ///< [call.2]呼叫按键2(=26)
161
162 ECEVENT_MAX,
163 ECEVENT_USER_DEFINED = 255, ///< 自定义事件。使用方式见文档 @ref Feature_EventSet, @ref Feature_Cap-AI
164 ECEVENT_BY_NAME = ECEVENT_USER_DEFINED
165
166} ECEVENT;
167
168#define IsDoorBellEvent(e) (e==ECEVENT_CALL||e==ECEVENT_CALL2)
169
170/** \enum ECALLSTATE
171 * Doorbell call state */
172typedef enum ECALLSTATE {
173 CALLSTATE_MISSED, ///< 未接. 门铃呼叫由sdk内部定时. wxvoip呼叫代理会通过 TCI_CMD_ANSWERTOCALL 通知设备
174 CALLSTATE_ANSWERED, ///< 已接。@ref TCI_CMD_ANSWERTOCALL
175 CALLSTATE_REJECTED, ///< 拒接。@ref TCI_CMD_ANSWERTOCALL
176
177 CALLSTATE_CANCELLED, ///< 设备端取消呼叫(上报 ECEVENT_CALL 事件 status=0)
178
179 CALLSTATE_HANGUP, ///< 用户结束通话挂断接听. sdk在连接断开时也会产生。@ref TCI_CMD_ANSWERTOCALL
180
181 CALLSTATE_BUSY ///< 用户占线(呼叫微信小程序用户时)
183
184/** \enum ECSERVICETYPE
185 * 云服务类型 */
186typedef enum ECSERVICETYPE {
187 ECGS_TYPE_STORAGE = 1, ///< 云存储服务
188 ECGS_TYPE_AI = 2, ///< AI服务
189 ECGS_TYPE_WXVOIP = 3 ///< 微信 VoIP
191
192/** 云服务子类型 */
193typedef enum {
194 /* Store */
195 EC_SVC_EVENT = 1, ///< 事件录像
196 EC_SVC_CONTINUOUS, ///< 全天录像
197 EC_SVC_FOR_AI, ///< 仅为ai服务提供短录像,其它事件不录像
198 EC_SVC_IMAGE_N, ///< 保存N张图片
199
200 /* AI */
201 EC_AI_SVC_MIN = 11,
202 EC_AI_SVC_BODY = EC_AI_SVC_MIN,
203 EC_AI_SVC_OBJECTS = 12,
204
205 /* WeiXin VoIP */
206 EC_WX_VOIP = 21
207} ECSVCTYPE;
208
209#define ECSVC_IS_STORE(e) ((e) >= EC_SVC_EVENT && (e) <= EC_SVC_IMAGE_N)
210#define ECSVC_IS_AI(e) ((e) >= EC_AI_SVC_MIN && (e) <= EC_AI_SVC_OBJECTS)
211#define ECSVC_IS_WXVOIP(e) ((e) == EC_WX_VOIP)
212
213/** \enum ECG4STATE
214 * 4G状态 */
215typedef enum ECG4STATE {
216 G4STATE_IDLE, ///< communicate by lan
217 G4STATE_WORKING, ///< communicate by 4g
218 G4STATE_FAILURE ///< 4g module has failure
220
221/** \enum ECBUFFERHINT 云上传文件队列长度.
222 * - 队列长度大于0时,SDK内部生成的云录像会被放到上传队列依次上传。 \n
223 * 正常情况下,在下一个文件生成并投入队列前,当前文件已经上传完成并从队列中移出. \n
224 * 但当网络有问题时,则正在上传或待上传的文件仍在队列中,队列满时,新的文件不能 \n
225 * 再投入队列中。 \n
226 * 如果设了后存储,当队列满或上传失败,文件会写到后备空间, 然后择机重传, 否则丢弃。
227 * - 队列长度为0时,文件直接写到后备空间。
228 * - 较大的队列长度在网络不好、没有后备存储时对改善事件云录像丢包有利. 但应用要保证 \n
229 * 系统有足够的内存可用 -- 每个文件长5", 应用按最大可能的码流来估算用于上传队列的 \n
230 * 内存空间
231 */
232typedef enum ECBUFFERHINT {
233 BUFFERHINT_NONE = 0, ///< 无缓冲. 数据先写卡再从卡上传, 仅用于行车记录仪的报警录像
234 BUFFERHINT_SMALLEST = BUFFERHINT_NONE, ///< BUFFERHINT_NONE 的旧名
235 BUFFERHINT_1FILE = 1, ///< 队列长度为1.
236 BUFFERHINT_SMALL = BUFFERHINT_1FILE, ///< BUFFERHINT_1BUFFER 的旧名
237 BUFFERHINT_2FILES = 2, ///< 队列长度为2
238 BUFFERHINT_DEFAULT = BUFFERHINT_2FILES, ///< 默认队列长度为2
239 BUFFERHINT_3FILES = 3, ///< 队列长度3
240 BUFFERHINT_4FILES = 4, ///< 队列长度4
241 BUFFERHINT_5FILES = 5, ///< 队列长度5
242 BUFFERHINT_6FILES = 6 ///< 队列长度6
244
245/**@}*/ //group: api_const
246
247/** \addtogroup api_structure
248 * @{*/
249/** @name 特定事件相关参数
250 * 参见 @ref EVENTPARAM::evt_data
251 * @{*/
252#define EVTDATA_SERIOUS_COLLISION (void*)0x01 ///< 仅针对 ECEVENT_COLLISION 事件, 严重碰撞
253#define EVTDATA_PARKING_COLLISION (void*)0x02 ///< 停车时碰撞
254/**@}*/
255
256typedef struct EVENTPARAM_v0 {
257 int cbSize;
258 ECEVENT event;
259 long int tHappen;
260 int status;
261 char *jpg_pic;
262 unsigned int pic_len;
263 int evtp_flags;
264 void *evt_data;
265 void *pic_extra;
267
268typedef struct EVENTPARAM_v1 {
269 int cbSize;
270 ECEVENT event;
271 long int tHappen;
272 int status;
273 char *jpg_pic;
274 unsigned int pic_len;
275 int evtp_flags;
276 void *evt_data;
277 void *pic_extra;
278 const char *x_event_name;
280
281/** 事件上报参数. 设置时, 调用 memset(&ep, 0, sizeof(ep) 将所有未用到成员清0 */
282typedef struct EVENTPARAM {
283 int cbSize; ///< 本结构大小, =sizeof(EVENTPARAM)。调用者要设置此成员。用于以后结构变化
284
285 ECEVENT event; ///< 事件类型. 参数(evt_data)见事件的说明
286 long int tHappen; ///< 事件发生时间
287 int status; ///< 1:事件开始; 0:事件结束(暂不支持)
288
289 char *jpg_pic; ///< 图片指针。没有图片时为NULL
290 unsigned int pic_len; ///< 图片长度
291
292/** @anchor eventparam_flags */
293/** @name 事件参数标志位 */
294/**@{*/
295#define EPF_RELEASE_PIC_IN_SDK 0x01 ///< 由sdk释放图片内存
296#define EPF_ONLY_AIEVENT_IF_SVCFORAI 0x02 ///< used internally by sdk
297#define EPF_DONT_RECORD 0x04 ///< 事件不录像, 例如大多数门锁事件。 used internally by sdk
298#define EPF_SNAPSHOT_ON_NEED 0x08 ///< 需要时由sdk请求图片。有此标志时,设置 jpg_pic=NULL, pic_len=0
299#define EPF_POST_EVENT_REPORT 0x10 ///< 事件补报(已经在mcu里上报过), 只记录不推送 <-- 目前只上报图片
300#define EPF_RECORD_ONLY 0x20 ///< 仅触发录像,不上报事件和上传图片
301/**@}*/
302 /** 事件处理的标志. 0 或 @ref eventparam_flags "事件参数标志位" 的组合 */
304
305 /** 特定事件相关参数.
306 * 其值是个预定义常数或json字符串或cJSON对象. 内容会同事件一起上传到平台并记录。 \n
307 * json字符串可以使用 MKEVTDATA_xxxx 辅助函数来生成. 返回值及其处理同 snprintf()。\n
308 * cJSON对象使用 MKEVTDAT_xxx 来生成. \n
309 * MKEVTDATA_xxx/MKEVTDAT_xxx 定义在 tgutil.h 中. \n
310 * 默认要设置为NULL */
311 void *evt_data;
312
313 void *pic_extra; ///< 图片的额外参数, 用于图片处理,不与事件一起记录. 目前用于ai
314
315 /** [2024/3/25添加]
316 * 如果event为 ECEVENT_USER_DEFINED, 这里为自定义事件名. 否则要设为 NULL
317 * 自定义名称以 "x:"(普通事件) 或 "xa:"(ai-market下载的扩展ai事件) 开头,
318 * 需要在平台先注册.
319 */
320 const char *x_event_name;
321
322 /** [2024/6/7] */
323 ECEVENT evtToReplace; ///< 要替换的事件的类型
324 long int tPrevEvent; ///< 要替换的事件的时间戳
325} EVENTPARAM;
326
327/** \struct AiResult
328 * AI服务器检测结果 */
329struct AiResult {
330 int id; ///< 序号。一张图片如果有多个ai结果,id从0开始递增
331 char *name; ///< 识别结果。NULL则没有识别到对象
332 void *jpg_pic; ///< Ai结果对应的图片
333 int pic_len; ///< 图片长度
334
335 /** 调用时为0. 如果应用不希望sdk释放图片空间,可以将这个值设为1. \n
336 * 回调返回后应用可以继续使用图片,但要记得以后自己释放 */
338};
339
340/** \struct EcFileLink
341 * 自定义文件的下载信息
342 */
343typedef struct EcFileLink {
344 char url[256]; ///< 下载地址
345 int fsize; ///< 文件大小
346 unsigned char md5[16]; ///< md5校验值
347} EcFileLink;
348/**@}*/
349
350/** \addtogroup error_code
351 * @{*/
352#define ECP_E_OK 0 ///< No error
353//300~599 error code defined in http protocol
354
355/** @name 本地错误
356 * @{*/
357#define ECP_E_COMMUNICATION -10000 ///< error in network communication
358#define ECP_E_NOT_INITIALIZED -10001 ///< McFetchNewOssToken is not called
359#define ECP_E_INVALID_PARAMETER -10002 ///< Invalid parameter
360#define ECP_E_OUT_OF_MEMORY -10003 ///< Out of memory
361#define ECP_E_UNEXPECTED_RESPONSE -10004 ///< unexpected response
362#define ECP_E_TOO_FREQUENT -10005 ///< Too frequent calls
363#define ECP_E_NOTALLOWED -10006 ///< Not Allowed
364/**@}*/
365
366/** @name 服务器端错误码
367 * @{
368 */
369#define ECP_E_OHTER -20000 ///< Other errors
370#define ECP_E_USERID_NOT_FOUND -20001 ///< userid 未找到
371#define ECP_E_UUID_NOT_FOUND -20002 ///< uuid 不存在
372#define ECP_E_UUID_ALREADY_ACTIVATED -20003
373#define ECP_E_UUID_NOT_ACTIVATED -20004
374#define ECP_E_UUID_IS_UNBOUND -20005
375#define ECP_E_CANNOT_GET_TOKEN -20006
376
377#define ECP_E_OSS_TIMESKEWED -20007
378#define ECP_E_OSS_INVALIDACCESSKEY -20008
379#define ECP_E_OSS_ACCESSDENIED -20009
380/**@}*/
381
382/**@}*/
383
384#endif
385
ECBUFFERHINT
云上传文件队列长度.
ECEVENT
上报事件类型.
ECSVCTYPE
云服务子类型
ECG4STATE
4G状态
ENUM_AUDIO_CHANNEL
音频采样位宽常数
ECSERVICETYPE
云服务类型
TCMEDIA
媒体类型枚举常数
ENUM_AUDIO_SAMPLERATE
音频采样频率常数
ENUM_AUDIO_DATABITS
ECALLSTATE
Doorbell call state
@ BUFFERHINT_DEFAULT
默认队列长度为2
@ BUFFERHINT_4FILES
队列长度4
@ BUFFERHINT_5FILES
队列长度5
@ BUFFERHINT_SMALL
BUFFERHINT_1BUFFER 的旧名
@ BUFFERHINT_2FILES
队列长度为2
@ BUFFERHINT_SMALLEST
BUFFERHINT_NONE 的旧名
@ BUFFERHINT_NONE
无缓冲. 数据先写卡再从卡上传, 仅用于行车记录仪的报警录像
@ BUFFERHINT_3FILES
队列长度3
@ BUFFERHINT_6FILES
队列长度6
@ BUFFERHINT_1FILE
队列长度为1.
@ ECEVENT_HUMAN_BODY
[body] human body is detected (=2)
@ ECEVENT_SETOFF
[set-off] set off car (=12)
@ ECEVENT_CRY
[cry] 检测到哭声(=20)
@ ECEVENT_SOUND
[sound] (=3)
@ ECEVENT_COLLISION
= ECEVENT_G_SENSOR(=11)
@ ECEVENT_TUMBLE
[tumble] 摔倒(=24)
@ ECEVENT_SPEED_DOWN
[speed-down] speed burstly down(=15)
@ ECEVENT_CALL2
[call.2]呼叫按键2(=26)
@ ECEVENT_PASSBY
[passby] 有人路过(=17)
@ ECEVENT_SMOKE
[smoke] (=5)
@ ECEVENT_SNAPSHOT
[snapshot] 手动抓拍(=25)
@ ECEVENT_TEMPERATURE_L
[tempL] temperature low(=6). 参数: MKEVTDATA_Temperatur()
@ ECEVENT_PIR
[pir](=4)
@ ECEVENT_PARK
[park] car parked(=13)
@ ECEVENT_SITPOSE
[bad_posture] sitting pose. 坐姿检测.(=22)
@ ECEVENT_STAY
[stay] 有人停留(=18)
@ ECEVENT_ENTER
[enter] 进入区域(=21)
@ ECEVENT_SPEED_UP
[speed-up] speed burstly up(=14)
@ ECEVENT_DOORBELL
保留旧的命名 = ECEVENT_CALL
@ ECEVENT_USER_DEFINED
自定义事件。使用方式见文档 EventSet, Cap-AI
@ ECEVENT_DR_BEGIN
行车记录仪事件范围开始(=11)
@ ECEVENT_LEAVE
[leave] 离开区域 "leave". 由sdk生成?(=23)
@ ECEVENT_G_SENSOR
[g-sensor] G-Sensor(碰撞事件)(=11). 参数: NULL or EVTDATA_SERIOUS_COLLISION
@ ECEVENT_NONE
[] none
@ ECEVENT_DR_END
行车记录仪事件范围结束(=15)
@ ECEVENT_HUMIDITY_H
[humidH] humidity high(=9). 参数: MKEVTDATA_Humidity()
@ ECEVENT_MOTION_DETECTED
[motion] is detected (=1)
@ ECEVENT_LOCK
[lock] 门锁消息(大类)(=19). 细分消息在data部分
@ ECEVENT_TEMPERATURE_H
[tempH] temperature high(=7). 参数: MKEVTDATA_Temperatur()
@ ECEVENT_CALL
[call] (=16)
@ ECEVENT_GENERIC_SENSOR
[generic] 通用传感器类消息 (=10)
@ ECEVENT_HUMIDITY_L
[humidL] humidity low(=8). 参数: MKEVTDATA_Humidity()
@ EC_SVC_IMAGE_N
保存N张图片
@ EC_SVC_EVENT
事件录像
@ EC_SVC_CONTINUOUS
全天录像
@ EC_SVC_FOR_AI
仅为ai服务提供短录像,其它事件不录像
@ G4STATE_FAILURE
4g module has failure
@ G4STATE_IDLE
communicate by lan
@ G4STATE_WORKING
communicate by 4g
@ AUDIO_CHANNEL_MONO
单声道
@ AUDIO_CHANNEL_STERO
双声道
@ ECGS_TYPE_STORAGE
云存储服务
@ ECGS_TYPE_AI
AI服务
@ ECGS_TYPE_WXVOIP
微信 VoIP
@ TCMEDIA_AUDIO_ADPCM_DVI4
DVI4 "adpcm-dvi4"
@ TCMEDIA_AUDIO_ALAW
G.711A "g711a" "alaw"
@ TCMEDIA_INVALID
无效类型
@ TCMEDIA_AUDIO_G726_24
G.726-24
@ TCMEDIA_VIDEO_H265
H.265 "h265"
@ TCMEDIA_AUDIO_MP3
MP3 "mp3"
@ TCMEDIA_VIDEO_JPEG
jpeg "jpeg"
@ TCMEDIA_AUDIO_G726_40
G.726-40
@ TCMEDIA_AUDIO_AMR
AMR "amr"
@ TCMEDIA_AUDIO_PCM
Raw PCM "pcm"
@ TCMEDIA_AUDIO_ADPCM
ADPCM "adpcm"
@ TCMEDIA_AUDIO_G711U
G.711U
@ TCMEDIA_VIDEO_IJPG
Private Inter-frame jpeg codec
@ TCMEDIA_AUDIO_G726_32
G.726-32
@ TCMEDIA_VIDEO_H264
H.264 "h264"
@ TCMEDIA_VIDEO_MPEG
Mpeg "mpeg"
@ TCMEDIA_AUDIO_ULAW
G.711U "g711u" "ulaw"
@ TCMEDIA_AUDIO_AAC
AAC "aac"
@ TCMEDIA_AUDIO_ADPCM_IMA
ADPCM "adpcm"
@ TCMEDIA_VIDEO_MJPEG
Mjpeg "jpeg"
@ TCMEDIA_AUDIO_G711A
G.711A "g711a" "alaw"
@ TCMEDIA_AUDIO_G726_16
G.726-16
@ AUDIO_SAMPLE_8K
8000
@ AUDIO_SAMPLE_11K
11000
@ AUDIO_SAMPLE_16K
16000
@ AUDIO_SAMPLE_22K
22000
@ AUDIO_SAMPLE_24K
24000
@ AUDIO_SAMPLE_44K
44000
@ AUDIO_SAMPLE_32K
32000
@ AUDIO_SAMPLE_48K
48000
@ AUDIO_DATABITS_16
16 bits
@ AUDIO_DATABITS_X
16 bits. 为了兼容,0也表示16位采样。8位采样用别的方式表示
@ CALLSTATE_ANSWERED
已接。TCI_CMD_ANSWERTOCALL
@ CALLSTATE_MISSED
未接. 门铃呼叫由sdk内部定时. wxvoip呼叫代理会通过 TCI_CMD_ANSWERTOCALL 通知设备
@ CALLSTATE_CANCELLED
设备端取消呼叫(上报 ECEVENT_CALL 事件 status=0)
@ CALLSTATE_REJECTED
拒接。TCI_CMD_ANSWERTOCALL
@ CALLSTATE_HANGUP
用户结束通话挂断接听. sdk在连接断开时也会产生。TCI_CMD_ANSWERTOCALL
@ CALLSTATE_BUSY
用户占线(呼叫微信小程序用户时)
long int tPrevEvent
要替换的事件的时间戳
int id
序号。一张图片如果有多个ai结果,id从0开始递增
void * pic_extra
图片的额外参数, 用于图片处理,不与事件一起记录. 目前用于ai
ECEVENT event
事件类型. 参数(evt_data)见事件的说明
int fsize
文件大小
char * jpg_pic
图片指针。没有图片时为NULL
int dont_release
调用时为0.
char url[256]
下载地址
int pic_len
图片长度
int cbSize
本结构大小, =sizeof(EVENTPARAM)。调用者要设置此成员。用于以后结构变化
const char * x_event_name
[2024/3/25添加] 如果event为 ECEVENT_USER_DEFINED, 这里为自定义事件名.
void * jpg_pic
Ai结果对应的图片
void * evt_data
特定事件相关参数.
char * name
识别结果。NULL则没有识别到对象
int status
1:事件开始; 0:事件结束(暂不支持)
unsigned char md5[16]
md5校验值
unsigned int pic_len
图片长度
int evtp_flags
事件处理的标志.
long int tHappen
事件发生时间
ECEVENT evtToReplace
[2024/6/7]
AI服务器检测结果
事件上报参数.