goolink api v1 0 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
GooLink API v1.0 PowerPoint Presentation
Download Presentation
GooLink API v1.0

Loading in 2 Seconds...

play fullscreen
1 / 20

GooLink API v1.0 - PowerPoint PPT Presentation


  • 249 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'GooLink API v1.0' - stone-fischer


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
goolink api v1 0

GooLink API v1.0

浪涛互动

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

LAN

LAN

LAN

GooLink cloud

goolink api
GooLink API
  • GooLink API是浪涛互动开发的设备端SDK,用于接入GooLink云服务;
    • 采用类似Socket接口方式,方便设备程序集成;
    • Session,每个连接对应一个Session,可以配置最多支持的session数目;
    • 调试功能,可以获取某一session或者打印所有session的信息;
goolink api1
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
goolink api2
GooLink API
  • unsigned long glnk_get_version()
  • 说明:
    • 获取GooLink SDK版本号
  • 返回值:
    • GooLink SDK版本号,例如版本1.0.0,用16进制表示为0x100
goolink api3
GooLink API
  • void glnk_set_max_ses_allowed(unsigned long num)
  • 说明:
    • 设置最多支持的session数目,如果num为0,则默认支持16个session;
    • 注意,如果需要设置session数目,必须在 glnk_init()前调用;
goolink api4
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个参数设置;
goolink api5
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,线程错误;
goolink api6
GooLink API
  • int glnk_destroy()
  • 说明:释放GooLink SDK资源
  • 返回值:
    • GLNK_ERR_NOERR
goolink api7
GooLink API
  • int glnk_poll(unsigned long to)
  • 说明:轮询session
    • to,轮询超时,单位ms,最小不低于200ms,如果to为0,则调用将一直阻塞,直到有新的session创建;
  • 返回值:
    • 如果在超时时间内有新的session创建,则返回该session的id,session id在读写数据时作为session的唯一标识;
    • 如果在超时时间没有新的session创建,返回0;
goolink api8
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;
goolink api9
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;
goolink api10
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;

goolink api11
GooLink API
  • 返回值:
    • GLNK_ERR_PARAM,参数为空;
    • GLNK_ERR_IVALSID,无效session id;
    • GLNK_ERR_NOERR,找到session信息;
goolink api12
GooLink API
  • void glnk_ses_close(intsid)
  • 说明:关闭session,释放session资源
    • sid,session id
goolink api13
GooLink API
  • void glnk_print_sessions()
  • 说明:打印所有session信息,注意,该API仅在调试时使用;
goolink api14
GooLink API
  • void glnk_push_alarm(PushAlarm alarm)
  • 说明:推送离线告警
    • alarm,告警信息

typedef struct _PushAlarm

{

int16_t alarm_type; // 告警类型

int16_t channel; // 告警通道号

GooTime timestamp; // 告警时间

} PushAlarm;

goolink api15
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;

goolink2
GooLink 设备端工作流程

start

glnk_poll

glnk_set_max_ses_allowed

glnk_ses_read/write

glnk_init

glnk_ses_close

glnk_destroy

end