




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 !#$%&()*+,-./CD23456789:;?AB 修訂第 3 頁 共 29 頁日期修訂內容2013/1/5第一次發布2013/9/14增加登錄設備 API NETSDK_CreateSesEx增加獲取 SDK 版本 API NETSDK_Ver解決了打開后斷線重連的 BUG2013/9/291. 增加首次連接設備失敗時的事件上報(SOCKET_CONNECT_LOST)2013/11/12增加了 NETSDK_ReuseSes接口,復用已存在會話2013/12/4修正首次重連設備后主動斷開連接問題,心跳不穩定問題2014/3/1增加音格式描述及使用實例目錄簡 介5概述5適用性5設計原
2、則5編程說明5典型調用順序62接口定義8SDK 初始化8登錄設備8實時監視102.4 回放和.11回放控制13云臺控制13圖像配置13網絡配置152.92.10配置16配置16升級、搜索17獲取、設置系統時間18透明通道19獲取、設置 DDNS 信息19強制 I 幀192.16 設備主動.202.17 獲取 SDK 版本20格式2133.1格式213.2 音頻格式21使用實例22初始化 SDK22設備搜索22主動連接設備234.4 設備上報254.5 請求實時.26PTZ 控制27圖像參數配置27編碼參數配置28第 4 頁共 29 頁NetSDK 編程手冊1. 簡介1.1概述歡迎使用我公司網絡
3、SDK編程手冊,NetSDK是開發商在開發機聯網應用時的開發套件。本文檔詳細描述了開發包中各個函數實現的功能、接口及其函數之間的調用關系和示例實現。開發包所包括的文件有:1.2適用性設計原則1.3編程說明初始化和清除使用NetSDK 包首先調用 NETSDK_Initialize()對系統進行初始化,應用程序退出時調用 NETSDK_Uninitialize()所有占用的資源。用戶登錄和注銷用 戶 在前 端 設 備 之 前 必 須 通 過 調 用NETSDK_CreateSesEx() 或()登錄到前端設備上,登錄成功后返回一個全局唯一的句NETSDK_CreateSes柄。此句柄就像一個會話
4、通道,之后該用戶可通過此句柄前端設備。退出該會話時則通過 NETSDK_DestroySes()函數端設備上注銷此句柄以終止該會話通道的使用。建立連接與登錄是同步的。心跳功能在本開發包中提供自動心跳功能(5 秒一次心跳)當設備斷開回調給客戶端。回調函數一般都有由用戶自定義的參數, 用來傳入類對象指針, 方便回調處理在類中實現,回調應用都可以采取這種方式。第 5 頁共 29 頁網絡庫NetSDK.h頭文件NetSDKDef.h結構體定義文件NetSDK.libLib 文件NetSDK.dll接口庫NetSDK 編程手冊1.4典型調用順序A.初始化B.登錄連接設備C.實時D.回放/E.設備功能操作
5、與信息獲取F.控制G.注銷斷開設備第 6 頁共 29 頁斷開連接NETSDK_DestroySes()升級NETSDK_UpgradeDev () NETSDK_CancelUpgradeDev ()系統參數配置NETSDK_GetSeInfo ()NETSDK_SetSeInfo ()云臺控制NETSDK_PtzControl ()透明通道控制NETSDK_GetTransparentMSG()NETSDK_SetTransparentMSG()查詢NETSDK_SearchRecordFile ()回放及控制NETSDK_StartPlayFile ()NETSDK_PlayFileCon
6、trol()打開實時流NETSDK_CreateRealTimeStream()關閉實時流NETSDK_StopStream ()登入設備NETSDK_CreateSesEx ()SDK 初始化NETSDK_Initialize ()3 5 #!#!%!(!4 2接口定義2.1SDK 初始化1.32_tNETSDK_Initialize();函數說明:初始化 SDK, 在所有的 SDK 函數之前調用參數說明:0:ok,-1:failure2.void NETSDK_Uninitialize();函數說明:清空 SDK,參數:無 返回值:無占用的資源,在所有的 SDK 函數之后調用。典型應用:在
7、應用程序關閉時調用2.21.登錄設備NETSDK_hSesNETSDK_CreateSes(boolbDynamicIP,structsockaddr_in *addr, const char *username, constchar *password,16_trsvPort,u16_tmsgPort,u16_tstreort,uNETSDK_SesdevType = 0);EventCallBackcallback,LPVOIDparam,32_t函數說明:用戶到設備, 當設備端把用戶設置為復用( 設備默認的用戶如admin,不能設置為復用),則使用該帳號可以多次向設備參數說明:。inbD
8、ynamicIP是否動態 IP in addr設備 IPin username用戶名in password用戶in msgPort默認 8088信令端口in streort流端口,可以為 0: in rsvPort保留in callback事件回調函數,上線、下線、等事件通過該 回調函數通知調用者typedef void ( stdcall *NETSDK_SesEventCallBack)(第 8 頁共 29 頁NETSDK_hSesses,void* callbackParam,SesEvent_E event,void* eventParam); in param該參數將做為事件回調函數
9、 callbackParam 值。in devType設備類型,保留,常為 0返回值: 0 成功,否則失敗,登錄成功之后對設備的操作都可以通過此值(設備句柄)對應到相應的設備。典型應用:在初始化后就可以調用本接口登錄到指定的設備,成功后將返回設備句柄,給相關的函數調用2.NETSDK_hSesNETSDK_CreateSesEx(char* sIP, u16_t wPort,char*sUserName,char*sPassword,NETSDK_SesEventCallBackcallback, LPVOID param);函數說明:用戶到設備,當設備端把用戶設置為復用(設備默認的用戶如 a
10、dmin,不能設置為復用),則使用該帳號可以多次向設備參數說明:in sIP 設備 IP in wPort信令端口 默認 8088 in username 用戶名in password用戶in callback。事件回調函數,上線、下線、等事件通過該 回調函數通知調用者typedef void ( stdcall *NETSDK_SesEventCallBack)(NETSDK_hSesses,void* callbackParam,SesEvent_E event,void* eventParam); in param該參數將做為事件回調函數 callbackParam 值。返回值: 0 成
11、功,否則失敗,登錄成功之后對設備的操作都可以通過此值(設備句柄)對應到相應的設備。典型應用:在初始化后就可以調用本接口登錄到指定的設備,成功后將返回設備句柄,給第 9 頁共 29 頁相關的函數調用3.NETSDK_hSesNETSDK_ReuseSes(NETSDK_hSessid,char*sIP,u16_t wMsgPort,u*sPwd);16_t wStreort,char *sUserName, char函數說明:復用已存在的會話,避免設備因連接失敗頻繁創建 SES,以及用于設備IP&PORT 變化時,自動打開之前已存在的參數說明:會話insid:已存在的設備會話 IDin sIP設
12、備 IPin wMsgPort信令端口默認 8088in wStreort默認 8090信令端口in sUserName用戶名in sPwd用戶4.void NETSDK_DestroySes(NETSDK_hSesses);函數說明:注銷設備用戶參數說明:in sesNETSDK_CreateSes的返回值返回值:N/A典型應用:當需要設備主動斷開時調用;2.31.實時監視NETSDK_hStreamNETSDK_CreateRealTimeStream(NETSDK_hSesses,const StreamInfo_S *streamInfo, NETSDK_RecvDallBackrec
13、vDataFunc, LPVOID param);函數說明:啟動實時監視參數說明:in sesNETSDK_CreateSesin streamInfo的返回值請求流的信息,描述主、輔碼流等信息,詳見 NetSdkDef.h第 10 頁共 29 頁inrecvDataFunc流回調函數typedef void ( stdcall *NETSDK_RecvDallBack)(NETSDK_hSesses,NETSDK_hStream hStream,const u8_t *data,u32_t dataLen,32_t isKeyFrame,TimeTick_T timest,u32_t fra
14、meSeqId,void* param);inparam傳給回調函數的參數返回值:成功,否則失敗,成功返回實時流 ID(實時流句柄),將作為相關函數的參數。0典型應用:根據登錄時獲取到的設備信息,調用本接口,就可以打開任何有效的一路實時監視,并通過回調函數得到流數據。2.32_t NETSDK_StopStream(const NETSDK_hStream stream);函數說明:停止實時監視參數說明:in streamNETSDK_CreateRealTimeStream 的返回值返回值:成功返回 0,否則失敗典型應用:關閉實時流2.41.回放和32_t NETSDK_SearchReco
15、rdFile(NETSDK_hSesses, constRcdFileSearch_S*info,NETSDK_SearchResultCallBackrcdResultCallBack, LPVOID param);函數說明:查詢參數說明:文件in ses第 11 頁共 29 頁NETSDK_CreateSes的返回值in info查詢條件,RcdFileSearch_S 詳見 NetSDKDef.hout rcdResultCallBack回調函數,返回的文件信息typedef void ( stdcall *NETSDK_SearchResultCallBack)(NETSDK_hSes
16、ses,const char *data,u32_t arraySize,u8_t isEnd,void*param);data 為 RcdFileListResult_S, 詳見 NetSDKDef.hin param傳給回調函數的參數返回值:成功返回 0,失敗返回錯誤碼典型應用:在回放之前需要先調用本接口查詢2.NETSDK_hStreamNETSDK_StartPlayFile(NETSDK_hSesses,constPlayFiyTime_S*plyRcdFile,NETSDK_RecvDallBackrecvDataFunc, LPVOID param, u8_t playFlag)
17、;函數說明:回放參數說明:,收到的流通過回調函數送給調用者in sesNETSDK_CreateSesin plyRcdFile的返回值查詢條件 PlayFiyTime_S,詳見 NetSDKDef.h.out recvDataFunc回調函數,同 NETSDK_CreateRealTimeStreamin param傳給回調函數的參數in playFlag1:回放, 0:返回值:成功返回0,否則失敗第 12 頁 共 29 頁2.5回放控制1.32_tNETSDK_PlayFileControl(NETSDK_hStreamses,constPlayControl_SNULL);*contro
18、lInfo, PlayRecordByTime_S*timeInfo=函數說明:參數說明:回放控制。in sesNETSDK_StartPlayFile 的返回值in controlInfo暫停、快進等信息,詳見 NetSDKDef.h in timeInfo,詳見 NetSDKDef.h根據時間定位返回值:成功返回 0,否則失敗2.61.云臺控制32_tNETSDK_PtzControl(NETSDK_hSesses,PtzControlInfo_S *info);函數說明:云臺控制參數說明:in sesNETSDK_CreateSesin info的返回值設備通道號、預置位、速度、命令等,
19、詳見 NetSDKDef.h返回值:成功返回 0,否則失敗返回錯誤碼。相關函數:H264_DVR_Login,H264_DVR_RealPlay典型應用:控制云臺,但是必須在當前通道打開的情況下使用。2.7圖像配置1.32_tNETSDK_SetDefault(NETSDK_hSesdefualt);ses,32_t函數說明:恢復出廠2.32_t NETSDK_GetOSD(NETSDK_hSes*osdParam);ses, OUTOsd_S第 13 頁共 29 頁1 0*6 /&QR 6JzUCD 0*#) 00* 6 /&*,$2*#) 0* /&?VWX 0 ( 0*,$2 0* 6
20、/& ( 0 /&? 353* XXYZ* 023* 00* 6 /,10&*,$223* 0* /,10&8uX2 04 5 6 00* 6 E) /1)&*,$24 5 6 0*E) /1)&865 0 0,&*6 F, / F F 0*, / F,&IMN_a6 4F0& 0*6 , / 1&4F& 0*, /1&bo$ 0 0*6 / & 0* /&cde 0+) 0* &* 6 +) 0* /&fghi 0#75 0*6 / MN 0)2 ( 00* 6 A, /&*,$2)2 ( 0*A, /&z4 052 ( 00* 6 A, /&*,$252 ( 0*A, /&|o4w 2 3
21、.32_t NETSDK_GetAlarmOutput(NETSDK_hSesses,u16_tchnnlNo, OUT AlarmOutParam_S *info);/chnnlNo(0,1)32_t NETSDK_SetAlarmOutput(NETSDK_hSesAlarmOutParam_S *info);ses, const函數說警輸出設置4.32_tu16_tNETSDK_GetMotionDetect(NETSDK_hSeschnnlNo, OUT VMotionDetect_S *motionDetect);ses,32_t NETSDK_SetMotionDetect(NET
22、SDK_hSes VMotionDetect_S *motionDetect);函數說明:移動偵測靈敏度、偵測范圍設置ses, const2.11升級、搜索1.32_tNETSDK_UpgradeDev(NETSDK_hSesses,32_tTranferFileType_EfileNameLen);fileType,constchar*fileName,函數說明:設置對前端設備網絡升級程序參數說明:in sesNETSDK_CreateSesin fileType要升級的文件類型,詳見 NetSDKDef.h enum TranferFileType_E的返回值TRANFER_UPGRADE
23、_FILE = 0, /.升級系統;in fileName要升級的文件路徑名in fileNameLen要升級的文件名返回值:成功返回升級句柄 ID,失敗返回 0典型應用:升級2.32_t NETSDK_CancelUpgradeDev(NETSDK_hSesses);函數說明:停止升級參數說明:in ses第 17 頁共 29 頁NETSDK_CreateSes返回值:0 成功,否則失敗的返回值a)典型應用:停止升級3.32_t NETSDK_SearchDevice(u32_t msTimeOut);函數說明:搜索設備,以廣播方式搜索網內設備參數說明:in msTimeOut搜索時間,毫秒
24、。返回值:返回搜到的設備數。4.32_t NETSDK_GetDeviceInfo(udeviceInfo);32_t index,OUTDeviceInfo_S*函數說明:從搜索的結果中獲取設備的詳細信息。參數說明:in index設備索引out deviceInfo設備信息 DeviceInfo_S,詳見 NetSDKDef.h返回值:0 成功,否則失敗2.12獲取、設置系統時間1.32_tNETSDK_GetDeviceTime(NETSDK_hSesses,OUTSystemTime_S *pDevTime);32_tNETSDK_SetDeviceTime(NETSDK_hSesse
25、s,constSystemTime_S *pDevTime);d)函數說明:設置系統時間e) 參數說明:in sesNETSDK_CreateSes返回值in pDevTime系統時間 ,SystemTime_S 詳見 NetSDKDef.hf) 返回值:0 成功否則失敗第 18 頁共 29 頁/_ ) 50 0*7- 3* 0 /*7-4&0+ )*+ 3,-./01 4N! #bc$XYU(N a 0 0* 6 /& 0* /&8QR 99: 9,: * : %0( #bc-bH c + *+ ( 0*,$2 chnnlNo);m)n)函數說明: 強制 I 幀參數說明:in sesNETS
26、DK_CreateSes返回值in chnnlNo控制的設備通道號返回值:0 成功否則失敗2.16設備主動1.32_t NETSDK_GetServicePort(NETSDK_hSes*netConfigInfo);32_t NETSDK_SetServicePort(NETSDK_hSes*netConfigInfo);ses, OUT NetConfig_S2.ses, const NetConfig_So)函數說明:設置服務端口, NetConfig_S 中的如果設定了服務器的 IP 地址和端,則設備主服務器。p)參數說明:insesNETSDK_CreateSes返回值innetCo
27、nfigInfo網絡相關端口的結構體,NetConfig_S 詳見 NetSDKDef.hq)返回值:0 成功,否則失敗3.32_tNETSDK_GetDeviceID(NETSDK_hSesses,OUTDevName_S *pDevID);32_t NETSDK_SetDeviceID(NETSDK_hSesDevName_S *pDevID);ses, const函數說明:獲取/設置設備 ID, 該 ID 為主動時唯一標識設備2.17獲取 SDK 版本Const char* NETSDK_Ver();第 20 頁共 29 頁3格式來自設備的實時和回放通過回調函數NETSDK_RecvDa
28、llBack輸出數據格式為:數據頭(16 字節)+數據+音頻數據數據頭:3.1格式數據格式為標準的 H264:起始碼+NA編碼參數it3.2音頻格式音頻數據格式為對應的標準編碼格式第 21 頁共 29 頁編碼Profile分辨率幀率H.264Main:4.11080P 720P D1 VGA CIF QCIF30目前支持的音頻編碼參數,用于語音時客戶端接收設備的音頻編碼數據音頻參數 用于語音對講時客戶端發給設備的音頻編碼數據4使用實例使用 SDK 必須包含頭文件#include NetSdk.h#include netsdkdef.h4.1初始化 SDK1. NETSDK_Initialize
29、();2. NETSDK_Uninitialize();4.2設備搜索nCount = NETSDK_SearchDevice(1000);/1secondfor (nItem = 0; nItem errCode = 0)第 23 頁共 29 頁prf(連接設備成功sesid=%dn,ses);break;case EVENT_CONNECTION_LOST:prf(sesid=%d connectfailure!n,ses);break;/發起連接請求sesid =NETSDK_CreateSesEx(51,8088,super,999999,SesEventProc
30、,0);if (sesid 0)/ok第 24 頁 共 29 頁4.4設備上報接收設備的回調函數與連接設備的回調函數復用。支持的事件類型參考 EventType_Evoid CALL_METHOD SesEventProc(ses, LPVOIDcallbackParam, SesEvent_E SesEvent, LPVOIDeventParam)switch(SesEvent)case EVENT_ALARM_NOTIFY:MsgEventLogEventEx_S* pEvent = (MsgEventLogEventEx_S*)eventParam;nEventType = pEvent
31、 -event;switch(nEventType)caseEVENT_TYPE_IOINPUT:caseEVENT_TYPE_IOINPUTPASS:caseEVENT_TYPE_LOST:caseEVENT_TYPE_RESUME:caseEVENT_TYPE_MOTIONED:caseEVENT_TYPE_MOTIONPASS:第 25 頁共 29 頁4.5請求實時/流回調函數voidCALL_METHOD RecvDallBack(NETSDK_hSesses,NETSDK_hStream hStream,const u8_t *data, u32_tdataLen,32_t isKe
32、yFrame, TimeTick_Ttimest,u32_t frameSeqId, void* param)const FrameHead_S* pHeader = reret_cast(data);char*p= pHeader-body;char*pAudio = p+pHeader-Len;/發起打開請求StreamInfo_S streamInfo;/主碼流streamInfo.channel= 0;streamInfo.channelStream=CHANNEL_STREAM_MAIN;streamInfo.streamType=第 26共 29 頁頁STREOSITE;/副碼流/streamInfo.channel= 1;/streamInfo.channelStream = CHANNEL_STREAM_DUAL;/streamInfo.streamT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學團員發展管理制度
- 中央企業投資管理制度
- 合力的定義 物理
- 精細化就業服務體系的建設與完善路徑
- 介入人員授權管理制度
- 義齒公司進度管理制度
- 人臉識別簽到管理制度
- 會員收費標準管理制度
- 會計內部稽核管理制度
- 企業接單收款管理制度
- 護理安全管理課件
- 2025年甘肅省隴南市事業單位招聘247人筆試參考題庫及答案詳解一套
- 2025年心理健康指導師職業資格考試試題及答案
- 石油行業采購物資質量事故案例規律分析課件
- 七年級下冊道德與法治期末復習必刷主觀題含答案
- 2024年廣東省揭西縣教師招聘考試《教育學和心理學基礎知識》真題庫及答案
- 2025年新高考2卷(新課標Ⅱ卷)英語試卷(含答案解析)
- 北京市順義區2023-2024學年六年級下學期數學期末試卷(含答案)
- 公司安全廉政管理制度
- JG/T 283-2010膨脹玻化微珠輕質砂漿
- 電力法規考試試題及答案
評論
0/150
提交評論