1 / 20

GooLink API v1.0

GooLink API v1.0. 浪涛互动. GooLink 简介. 浪涛互动 GooLink 实现基于云计算的到监控设备的点对点连接,具有以下特点: 内网设备发现与直连; 内网设备穿透,广域网直连; 可靠的音视频数据传输; 离线告警信息推送;. GooLink 简介. LAN. LAN. LAN. GooLink cloud. GooLink API. GooLink API 是浪涛互动开发的设备端 SDK ,用于接入 GooLink 云服务; 采用类似 Socket 接口方式,方便设备程序集成;

Download Presentation

GooLink API v1.0

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GooLink API v1.0 浪涛互动

  2. GooLink简介 • 浪涛互动GooLink实现基于云计算的到监控设备的点对点连接,具有以下特点: • 内网设备发现与直连; • 内网设备穿透,广域网直连; • 可靠的音视频数据传输; • 离线告警信息推送;

  3. GooLink简介 LAN LAN LAN GooLink cloud

  4. GooLink API • GooLink API是浪涛互动开发的设备端SDK,用于接入GooLink云服务; • 采用类似Socket接口方式,方便设备程序集成; • Session,每个连接对应一个Session,可以配置最多支持的session数目; • 调试功能,可以获取某一session或者打印所有session的信息;

  5. GooLink API • glnk_get_version • glnk_set_max_ses_allowed • glnk_init • glnk_destroy • glnk_poll • glnk_ses_read • glnk_ses_write • glnk_ses_getinfo • glnk_ses_close • glnk_print_sessions • glnk_push_alarm

  6. GooLink API • unsigned long glnk_get_version() • 说明: • 获取GooLink SDK版本号 • 返回值: • GooLink SDK版本号,例如版本1.0.0,用16进制表示为0x100

  7. GooLink API • void glnk_set_max_ses_allowed(unsigned long num) • 说明: • 设置最多支持的session数目,如果num为0,则默认支持16个session; • 注意,如果需要设置session数目,必须在 glnk_init()前调用;

  8. GooLink API • int glnk_init( unsigned char *dev, unsigned short locport, unsigned char *udid, NetParam *net_params, int param_size ) • 说明:初始化GooLink SDK • dev,网络设备(网卡)名,例如”eth0”; • locport,本地端口号; • udid,设备全局id; • net_params,网络设置参数集,见下页; • param_size,网络设置参数个数,最多支持3个参数设置;

  9. GooLink API typedef struct NetParam { char extern_addr[16]; // 路由器地址,例如192.168.1.1 char protocol[8]; // 网络传输协议,目前只支持”TCP” char description[48]; // 应用描述,例如”IP Camera” unsigned short intern_port; // 待映射内网端口 unsigned short extern_port; // 映射出去的外网端口 } NetParam; • 返回值 • GLNK_ERR_NOERR,初始化正常; • GLNK_ERR_NOMEM,内存分配失败; • GLNK_ERR_THREAD,线程错误;

  10. GooLink API • int glnk_destroy() • 说明:释放GooLink SDK资源 • 返回值: • GLNK_ERR_NOERR

  11. GooLink API • int glnk_poll(unsigned long to) • 说明:轮询session • to,轮询超时,单位ms,最小不低于200ms,如果to为0,则调用将一直阻塞,直到有新的session创建; • 返回值: • 如果在超时时间内有新的session创建,则返回该session的id,session id在读写数据时作为session的唯一标识; • 如果在超时时间没有新的session创建,返回0;

  12. GooLink API • int glnk_ses_read(int sid, char *rbuf, int rbsize, unsigned long to) • 说明:从session读取数据 • sid,session id; • rbuf,读数据缓存; • rbsize,读取数据长度,glnk_ses_read实际读取的数据长度可能小于rbsize; • to,超时时间 • 返回值: • >0,实际读取的数据长度; • 0,连接中断,应用程序应调用glnk_ses_close清理session资源; • -1,读数据超时,应用程序可以再次读取或者关闭session;

  13. GooLink API • int glnk_ses_write( int sid, char *sbuf, int sbsize , unsigned long to) • 说明:向session发送数据 • sid,session id; • sbuf,数据缓存; • sbsize,发送数据长度,glnk_ses_write实际发送的数据长度可能小于sbsize; • to,超时时间 • 返回值: • >0,实际发送的数据长度; • 0,连接中断,应用程序应调用glnk_ses_close清理session资源; • -1,读数据超时,应用程序可以再次发送或者关闭session;

  14. GooLink API • int glnk_ses_getinfo(intsid, GTSessionInfo *info) • 说明:获取session信息 • sid,session id • info,session信息结构体指针 typedef struct _GTSessionInfo { int32_t sid; // session id int32_t mode; // 0-外网直连,1-内网直连,2-中转连接 int32_t protocol; // 传输协议,0-TCP, 1-UDP int8_t addr[16]; // 对端地址 int32_t port; // 对端端口号 } GTSessionInfo;

  15. GooLink API • 返回值: • GLNK_ERR_PARAM,参数为空; • GLNK_ERR_IVALSID,无效session id; • GLNK_ERR_NOERR,找到session信息;

  16. GooLink API • void glnk_ses_close(intsid) • 说明:关闭session,释放session资源 • sid,session id

  17. GooLink API • void glnk_print_sessions() • 说明:打印所有session信息,注意,该API仅在调试时使用;

  18. GooLink API • void glnk_push_alarm(PushAlarm alarm) • 说明:推送离线告警 • alarm,告警信息 typedef struct _PushAlarm { int16_t alarm_type; // 告警类型 int16_t channel; // 告警通道号 GooTime timestamp; // 告警时间 } PushAlarm;

  19. GooLink API • 目前支持的告警类型有 ypedefenum _PushAlarmType { PAT_VIDEO_FRAME = 0, // 视频帧检测告警 PAT_DEVICE_RESTART = 1, // 设备重启 PAT_MOTION_DETECT = 2, // 移动侦测 PAT_VIDEO_LOSS = 3, // 视频丢失 PAT_DISK_FULL = 4, // 磁盘满 PAT_BLIND_DETECT = 5, // 视频遮盖 PAT_SD_ERROR = 6, // SD 卡错误 PAT_ADDR_CONFLICT = 7, // IP地址冲突 PAT_INFRARED = 8, // 红外开关告警 PAT_VIDEO_ALARM = 9, // 视频告警 PAT_AUDIO_ALARM = 10, // 音频告警 PAT_TEMPERATURE = 11, // 温度传感器告警 PAT_FUME = 12, // 烟感告警 PAT_INVASION = 13 // 非法闯入告警 } PushAlarmType;

  20. GooLink 设备端工作流程 start glnk_poll glnk_set_max_ses_allowed glnk_ses_read/write glnk_init glnk_ses_close glnk_destroy end

More Related