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