Tange Cloud for Device
 Rev.333
载入中...
搜索中...
未找到
API数据结构

API接口用到的数据结构 更多...

结构体

struct  TCIDEVICEINFO
 设备基本信息 更多...
 
struct  TCISERVICEINFO
 云服务信息 更多...
 
struct  TransStatUser
 P2P发送统计数据结构 更多...
 
struct  TciCB
 sdk 回调函数结构 更多...
 
struct  Ipv4Addr
 IPv4 地址表示(网络字节顺序) 更多...
 
struct  SIMPLEBUFFER
 Simple Buffer 更多...
 
struct  paramf_ops
 参数文件读写函数据指针结构 更多...
 
union  TgfDest
 用户文件下载目的地. 更多...
 
struct  DEVICEOTAINFO
 设备升级包信息 更多...
 
struct  TG4GINFO
 4G 设备信息 更多...
 
struct  InCallInfo
 呼叫者信息. 更多...
 
struct  SDER
 服务端定义的事件上报(Server Defined Event Report), 在 on_status() 回调里通过 STATUS_SDER 通知 更多...
 
struct  TgUserData
 用户自定义数据通知. 更多...
 
struct  RTMSGHEAD_t
 在媒体流中插入的 消息/数据帧 帧头 (for App Developer). 更多...
 
struct  EVENTPARAM_v0
 
struct  EVENTPARAM_v1
 
struct  EVENTPARAM
 事件上报参数. 更多...
 
struct  AiResult
 AI服务器检测结果 更多...
 
union  TCISERVICEINFO.__unnamed1__
 
union  InCallInfo.__unnamed10__
 
struct  InCallInfo.__unnamed10__.tg
 

类型定义

typedef void * p2phandle_t
 p2p连接句柄.
 
typedef int(* TGCMDHANDLER) (p2phandle_t handle, int cmd, const void *data, int len)
 命令回调类型
 

特定事件相关参数

参见 EVENTPARAM::evt_data

#define EVTDATA_SERIOUS_COLLISION   (void*)0x01
 仅针对 ECEVENT_COLLISION 事件, 严重碰撞
 
#define EVTDATA_PARKING_COLLISION   (void*)0x02
 停车时碰撞
 

详细描述

API接口用到的数据结构


结构体说明

◆ TCIDEVICEINFO

struct TCIDEVICEINFO

设备基本信息

在文件 TgCloudApi.h124 行定义.

成员变量
char device_type[16] Not used
char vendor[16] 设备生产厂商 OEM
char firmware_id[32] ota 升级用的固件标识, 平台唯一.

两款设备,如果升级包一样,就有相同的 firmware_id。 可以按 "公司_方案_设备类型_其它信息" 的规则自己定义一个字符串, 例如: "TANGE_HISI_IPC_001". 标识里不能有"."。 平台按字符串比较,不关心具体内容.

char firmware_ver[10] 固件主版本,8个数字组成的字符串。like: "03020201", means 3.2.2.1.
char model[32] 产品型号

◆ TCISERVICEINFO

struct TCISERVICEINFO

云服务信息

在文件 TgCloudApi.h136 行定义.

成员变量
ECSERVICETYPE serviceType 云服务类型
time_t expiration 过期时间(utc)
union TCISERVICEINFO.__unnamed1__ __unnamed__

◆ TransStatUser

struct TransStatUser

P2P发送统计数据结构

在文件 TgCloudApi.h168 行定义.

成员变量
short id 用户(连接)标识
short vchannel 视频通道
short vstream 码流
short is_igop 1:统计间隔为一个I帧间隔; 0:周期约为~1s
int nBytesInBuff 位于发送缓冲区的字节数
int nBytesSent 已经发送的字节数
int nBytesTotal 总共收到的字节数
int nBytesThrow 丢掉的字节数。丢包会持续到到一个I帧,这期间即使网络恢复也会丢,所以其值只能作为参考, 不能用于计算网速
int msStatInterval 统计周期(单位: ms)

◆ TciCB

struct TciCB

sdk 回调函数结构

在文件 TgCloudApi.h181 行定义.

成员变量
int(*)(TCIDEVICEINFO *info) get_info 获取设备基本信息
int(*)(const char *key, char *buf, int size) get_feature 设备能力.

参见 设备能力描述

参数
key能力名
buf返回能力描述的缓冲区
size缓冲区大小
返回值
0ok
<0failed(not recognize)
int(*)(const char *key, char *buf, int size) get_state 取设备当前状态或初始默认设置.
参数
key状态名
  • CVideoQuality 云录像清晰度. 格式: stream:channel
  • streamQuality 实时视频默认码流. 格式: stream:channel
    • stream 码流: 0-高清; 1-标清
    • channel 视频通道号: 0, 1, ...
  • mac 设备mac地址, null结尾的12个十六进制字符
  • versions 版本号的json数组。格式: ["main_ver", "sub_ver1", ...]. 版本号为8个数字级成的字符串如"01000208"(=1.0.2.8)
buf返回值缓冲区
size缓冲区大小
int(*)(const char *user, const char *key) on_apmode_login 直连模式下用户登录帐号检查
参数
user用户名, 目前未使用
key用户密码加密
返回值
1验证成功
0失败
int(*)(const char *new_version, unsigned int size) on_ota_download_start OTA升级开始
参数
new_version升级包版本
size升级包大小
返回
0 升级继续; -1 升级中止
int(*)(const uint8_t *buff, int size) on_ota_download_data 升级包数据 升级包下载过程中,sdk调用此回调将数据传给应用层
参数
buff数据
size数据长度
返回
0 继续; -1 传输中止
int(*)(int status) on_ota_download_finished 升级包下载结束
参数
status完成状态: 0-ok, 可以执行升级; 1-下载中断; 2-数据校验错
返回值
-1应用中止升级过程
0如果应用可以立即执行升级,可以返回0表示升级成功
1如果应用要退出进程再升级,返回1通知APP等待.
注解
因为返回0/1后应用会退出,不保证APP端一定能收到应答
int(*)(void) qrcode_start 二维码扫描开始 应用层在此开启取Y数据的通道
返回
0 ok; -1 failed
int(*)(uint8_t **ppYBuff, int *width, int *height) qrcode_get_y_data 获取Y图片
参数
[in,out]ppYBuff
[out]width返回图片宽度
[out]height返回图片高度
返回
0 ok; -1 停止扫描
注解
第一次调用时 *ppYBuff为NULL. 应用层在此分配一个缓冲区, 填入Y数据,并把缓冲区指针保存到*ppYBuff.
之后的调用 *ppYBuff为之前设置的值
void(*)(uint8_t *pYBuff) qrcode_end 结束二维码扫描
参数
ppYBuff*ppYBuff中为最后一次在on_get_y_data中返回的值
注解
应用层在此释放前面分配的内存(free(*ppYBuff)), 关闭Y通道
int(*)(int type, uint8_t **ppJpg, int *size) snapshot 抓取图片.

目前只支持jpeg格式

参数
type图片类型 in TciCloudConst.h
ppJgp*ppJpg为图片地址或用于返回图片的址.见note
size返回时*size为图片字节数
返回
0 ok; TCE_BUFFER_TOO_SMALL; -1 其它错误
注解
如果*ppJpg为NULL,应用层分配图片空间, 空间指针和图片大小分别保存在*ppJpg和*size. sdk内部负责释放空间。 如果*ppJpg为非空,*ppJpg为SDK内分配的空间地址,*size为空间大小。返回时*size为实际图片大小
int(*)(int is_switching, const char *ssid, const char *key) set_wifi 设置wifi参数
参数
is_switching0:配网; 1:添加成功后修改wifi
返回
0 配置ok; -1 配置不对
注解
返回时, wifi处在station模式
int(*)(const char *tzs) set_timezone 设置时区
参数
tzs时区字符串. Refer to man page of tzset().
int(*)(time_t time) set_time 设置时间
参数
timeutc 时间
int(*)(int event, const void *pData, int len) on_status sdk内部状态
参数
status状态. Refer to Status Code in TgCloudConst.h
pData状态相关数据
返回
返回值同event的值有关. 请查看 TciCB::on_status()回调状态码 。默认返回0
int(*)(void) on_talkback_start 开始对讲
返回
0 ok; -1 中断
int(*)(TCMEDIA at, const uint8_t *audio, int len) talkback 对讲数据回调 格式在前面已经协商过
返回
0 if played
void(*)(void) on_talkback_stop 结束对讲
int(*)(int vstream) request_iframe
弃用
请求I帧. 请使用 request_iframe_ex
参数
vstream视频流. 0-主码流; 1-辅码流
返回
0
void(*)(int type, const uint8_t *pJpg, int len) ai_result 当AI识别成功,通过本回调通知应用.

(本回调未使用,设为NULL)

参数
type图片类别指示
pJpg正识别图片
len 图片长度
int(*)(int action, char *logfile) log 在平台端采集设备日志
参数
action0-开始长日志采集; 1-停止长日志采集; 2-获取日志文件用于上传云端. 文件路径不能有空格 102-获取日志文件用于传给app。文件只支持文本格式, 路径不能有空格
logfileNULL if action is 0 or 1, 当action为2时,应用层填入日志文件路径
返回
0:ok; -1:failed
int(*)(int channel, int vstream) request_iframe_ex 请求指定图像通道的I帧
参数
channel图像通道
vstream视频流. 0-主码流; 1-辅码流
返回
0
void(*)(const struct TransStatUser *_stat) trans_stat 网络传输统计回调
void(*)(int channel, int stream, const char *qstr) switch_quality 切换图像质量
参数
channel图像通道。目前为0
stream码流 0,1,..., 在"Resolutions"能力中返回
qstr质量描述串, 例如 HD/SD/FHD/..., 在"Resolutions"能力中返回.
void(*)(int mt, unsigned int ts, const void *data, int len, unsigned int uFrameFlags) talkback_ex

◆ Ipv4Addr

struct Ipv4Addr

IPv4 地址表示(网络字节顺序)

在文件 TgCloudApi.h379 行定义.

成员变量
unsigned int ip ip, network byte-order
unsigned short port port, network byte-order

◆ SIMPLEBUFFER

struct SIMPLEBUFFER

Simple Buffer

在文件 TgCloudApi.h385 行定义.

成员变量
uint8_t * data 数据缓冲区指针
int size 缓冲区大小
int len 数据长度

◆ paramf_ops

struct paramf_ops

参数文件读写函数据指针结构

在文件 TgCloudApi.h392 行定义.

成员变量
int(*)(SIMPLEBUFFER *buff, int cbExtra) alloc_and_readall 分配缓冲区,并读出参数文件.
参数
buff缓冲区结构指针. 由实现填充结构成员。缓冲区大小为参数文件大小加上 cbExtra
cbExtra额外分配的字节数
返回值
1ok
0failed
int(*)(const SIMPLEBUFFER *buff) save_buff 写参数文件
参数
buff参数缓冲区指针
返回值
1ok
0failed
void(*)(SIMPLEBUFFER *buff) free_buff 释放参数缓冲区
void(*)(void) remove 删除参数文件(或者清空参数文件)。下一次读出时 len为0

◆ TgfDest

union TgfDest

用户文件下载目的地.

TciGetUserFile()

在文件 TgCloudApi.h417 行定义.

成员变量
struct to_file file 文件
struct to_mem mem 目标

◆ DEVICEOTAINFO

struct DEVICEOTAINFO

设备升级包信息

在文件 TgCloudApi.h430 行定义.

成员变量
int size 升级包大小
char ver[16] 升级包版本
char md5[36] md5 检验字符串
char url[256] 下载地址

◆ TG4GINFO

struct TG4GINFO

4G 设备信息

在文件 TgCloudApi.h438 行定义.

成员变量
char imei[24] 4g模块标识
char iccid[24] sim卡号
SIMCARDTYPE sim_type sim卡类型

◆ InCallInfo

struct InCallInfo

呼叫者信息.

除 type/user_id/nickname 外,其它域对应用是透明的

在文件 TgCloudConst.h110 行定义.

成员变量
int type 呼叫者类型。 ECALLERTYPE
char * user_id 呼叫者ID, 可为NULL
char * nickname 呼叫者昵称, 可为NULL
union InCallInfo.__unnamed10__ __unnamed__
char data[1]

◆ SDER

struct SDER

服务端定义的事件上报(Server Defined Event Report), 在 on_status() 回调里通过 STATUS_SDER 通知

在文件 TgCloudConst.h218 行定义.

成员变量
char event[16] 事件名。这个值传给 TciUduBegin2() 的evt参数
time_t t_start 录像开始时间
int tLen 录像长度
int need_image 1:上传图片和视频; 2:仅上传图片

◆ TgUserData

struct TgUserData

用户自定义数据通知.

用户自定义数据通过STATUS_USER_DATA 在本结构中传递给应用

在文件 TgCloudConst.h228 行定义.

成员变量
unsigned char * data 用户数据
int len 用户数据长度
const char * id 请求标识
unsigned char * resp 应用返回的数据. 目前忽略
int resp_len 返回数据长度

◆ RTMSGHEAD_t

struct RTMSGHEAD_t

在媒体流中插入的 消息/数据帧 帧头 (for App Developer).

本结构与 FRAMEINFO_t 一样有相同的长度,并用 codec_id来区分结构体内容;extra_len 为结构后的数据长度。
插放器遇到不能识别的 codec_id 时,可以跳过本结构和后面的 extra_len 字节。
设备端调用 TciSendLiveMessage()TciSendPbMessage() 分别在实时流或回放流中插入消息

在文件 TgCloudConst.h241 行定义.

成员变量
unsigned short codec_id 0: 标志本结构
unsigned short type 消息类型。 RTMTYPE
unsigned int data1 消息类型相关数据1
unsigned int extra_len Size of frame
unsigned int data2 消息类型相关数据2

◆ EVENTPARAM_v0

struct EVENTPARAM_v0

在文件 ec_const.h256 行定义.

成员变量
int cbSize
ECEVENT event
long int tHappen
int status
char * jpg_pic
unsigned int pic_len
int evtp_flags
void * evt_data
void * pic_extra

◆ EVENTPARAM_v1

struct EVENTPARAM_v1

在文件 ec_const.h268 行定义.

成员变量
int cbSize
ECEVENT event
long int tHappen
int status
char * jpg_pic
unsigned int pic_len
int evtp_flags
void * evt_data
void * pic_extra
const char * x_event_name

◆ EVENTPARAM

struct EVENTPARAM

事件上报参数.

设置时, 调用 memset(&ep, 0, sizeof(ep) 将所有未用到成员清0

在文件 ec_const.h282 行定义.

成员变量
int cbSize 本结构大小, =sizeof(EVENTPARAM)。调用者要设置此成员。用于以后结构变化
ECEVENT event 事件类型. 参数(evt_data)见事件的说明
long int tHappen 事件发生时间
int status 1:事件开始; 0:事件结束(暂不支持)
char * jpg_pic 图片指针。没有图片时为NULL
unsigned int pic_len 图片长度
int evtp_flags 事件处理的标志.

0 或 事件参数标志位 的组合

void * evt_data 特定事件相关参数.

其值是个预定义常数或json字符串或cJSON对象. 内容会同事件一起上传到平台并记录。
json字符串可以使用 MKEVTDATA_xxxx 辅助函数来生成. 返回值及其处理同 snprintf()。
cJSON对象使用 MKEVTDAT_xxx 来生成.
MKEVTDATA_xxx/MKEVTDAT_xxx 定义在 tgutil.h 中.
默认要设置为NULL

void * pic_extra 图片的额外参数, 用于图片处理,不与事件一起记录. 目前用于ai
const char * x_event_name [2024/3/25添加] 如果event为 ECEVENT_USER_DEFINED, 这里为自定义事件名.

否则要设为 NULL 自定义名称以 "x:"(普通事件) 或 "xa:"(ai-market下载的扩展ai事件) 开头, 需要在平台先注册.

ECEVENT evtToReplace [2024/6/7]

要替换的事件的类型

long int tPrevEvent 要替换的事件的时间戳

◆ AiResult

struct AiResult

AI服务器检测结果

在文件 ec_const.h329 行定义.

成员变量
int id 序号。一张图片如果有多个ai结果,id从0开始递增
char * name 识别结果。NULL则没有识别到对象
void * jpg_pic Ai结果对应的图片
int pic_len 图片长度
int dont_release 调用时为0.

如果应用不希望sdk释放图片空间,可以将这个值设为1.
回调返回后应用可以继续使用图片,但要记得以后自己释放

◆ EcFileLink

struct EcFileLink

自定义文件的下载信息

在文件 ec_const.h343 行定义.

成员变量
char url[256] 下载地址
int fsize 文件大小
unsigned char md5[16] md5校验值

◆ TCISERVICEINFO.__unnamed1__

union TCISERVICEINFO.__unnamed1__

在文件 TgCloudApi.h139 行定义.

成员变量
uint32_t sub_type 当 serviceType = ECGS_TYPE_STORAGE, sub_type 为云存服务子类型:
  • EC_SVC_EVENT: 事件录像
  • EC_SVC_CONTINUOUS: 全天录像
  • EC_SVC_FOR_AI: 仅为ai服务提供短录像,其它事件不录像
  • EC_SVC_IMAGE_N: 保存N张图片
char * objects 当 serviceType = ECGS_TYPE_AI, objects 为 '\0'结尾并以一个额外 '\0'结束的允许检测的ai对象列表。例如: "body\0car\0cry\0"

◆ InCallInfo.__unnamed10__

union InCallInfo.__unnamed10__

在文件 TgCloudConst.h116 行定义.

成员变量
char * roomid
struct InCallInfo.__unnamed10__.tg tg

◆ InCallInfo.__unnamed10__.tg

struct InCallInfo.__unnamed10__.tg

在文件 TgCloudConst.h118 行定义.

成员变量
int sub_type
void * ptr

宏定义说明

◆ EVTDATA_SERIOUS_COLLISION

#define EVTDATA_SERIOUS_COLLISION   (void*)0x01

仅针对 ECEVENT_COLLISION 事件, 严重碰撞

在文件 ec_const.h252 行定义.

◆ EVTDATA_PARKING_COLLISION

#define EVTDATA_PARKING_COLLISION   (void*)0x02

停车时碰撞

在文件 ec_const.h253 行定义.

类型定义说明

◆ p2phandle_t

typedef void* p2phandle_t

p2p连接句柄.

A opaque pointer

在文件 TgCloudApi.h156 行定义.

◆ TGCMDHANDLER

typedef int(* TGCMDHANDLER) (p2phandle_t handle, int cmd, const void *data, int len)

命令回调类型

在文件 TgCloudApi.h158 行定义.