海康Ehome协议java开发
生活随笔
收集整理的這篇文章主要介紹了
海康Ehome协议java开发
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
海康Ehome協議 java開發
注:我創建了springboot項目,
1.先把必要的包導入
maven依賴自己來
2.從海康demo里把這這三個文件導入
3.初始化CMS注冊,報警,存儲
@Component public class CodeCache {public static HCISUPCMS hcisupcms;public static HCISUPAlarm hcisupalarm;public static HCISUPSS hcisupss;@AutowiredHikSDKProperties hikSDKProperties;public static String alarmUrl;public static String cmsUrl;public static String ssUrl;@PostConstructpublic void init(){alarmUrl = hikSDKProperties.getAlarmPath();cmsUrl = hikSDKProperties.getCmsPath();ssUrl = hikSDKProperties.getSsPath();hcisupss = HCISUPSS.INSTANCE;hcisupalarm = HCISUPAlarm.INSTANCE;hcisupcms = HCISUPCMS.INSTANCE;}}2.在項目啟動后執行
@Component public class ApplicationRunnerImpl implements ApplicationRunner {public HCISUPCMS hcisupcms = CodeCache.hcisupcms;public HCISUPAlarm hcisupalarm = CodeCache.hcisupalarm;public HCISUPSS hcisupss = CodeCache.hcisupss;@Autowiredprivate HikServerProperties serverProperties;@Overridepublic void run(ApplicationArguments args) throws Exception {System.out.println("通過實現ApplicationRunner接口,在spring boot項目啟動后打印參數");//存儲服務器ss();//報警服務器ealarm();cms();}/*** 存儲監聽*/private void ss() {boolean sinit = hcisupss.NET_ESS_Init();if(!sinit){System.out.println("NET_ESS_Init失敗!");}HCISUPSS.NET_EHOME_SS_LISTEN_PARAM pSSListenParam = new HCISUPSS.NET_EHOME_SS_LISTEN_PARAM();pSSListenParam.fnSSMsgCb = new PSS_Message_Callback();pSSListenParam.fnSStorageCb = new MyEHomeSSStorageCallBack();// String strIP = "192.168.1.186";String strIP = serverProperties.getIp();System.arraycopy(strIP.getBytes(), 0, pSSListenParam.struAddress.szIP, 0, strIP.length());pSSListenParam.struAddress.wPort = 7661;String strKMS_UserName = "test";System.arraycopy(strKMS_UserName.getBytes(), 0, pSSListenParam.szKMS_UserName, 0, strKMS_UserName.length());String strKMS_Password = "12345";System.arraycopy(strKMS_Password.getBytes(), 0, pSSListenParam.szKMS_Password, 0, strKMS_Password.length());String strAccessKey = "test";System.arraycopy(strAccessKey.getBytes(), 0, pSSListenParam.szAccessKey, 0, strAccessKey.length());String strSecretKey = "12345";System.arraycopy(strSecretKey.getBytes(), 0, pSSListenParam.szSecretKey, 0, strSecretKey.length());pSSListenParam.byHttps = 0;pSSListenParam.write();NativeLong listenSS = hcisupss.NET_ESS_StartListen(pSSListenParam);//存儲監聽if (listenSS.intValue() == -1) {log.error("NET_ESS_StartListen啟動注冊監聽失敗,錯誤號:",hcisupss.NET_ESS_GetLastError());return;}System.out.println("存儲監聽:"+listenSS.intValue());}private void ealarm() {hcisupalarm.NET_EALARM_Init();HCISUPAlarm.NET_EHOME_ALARM_LISTEN_PARAM pAlarmListenParam = new HCISUPAlarm.NET_EHOME_ALARM_LISTEN_PARAM();pAlarmListenParam.fnMsgCb = new MyEHomeMsgCallBack(); // pAlarmListenParam.struAddress.szIP="192.168.1.186".getBytes();pAlarmListenParam.struAddress.szIP= serverProperties.getIp().getBytes();pAlarmListenParam.struAddress.wPort = 7662;pAlarmListenParam.pUserData = null;pAlarmListenParam.byProtocolType = 1; //0- TCP方式(保留,暫不支持),1- UDP方式pAlarmListenParam.byUseCmsPort = 0; //是否復用CMS端口:0- 不復用,非0- 復用//如果復用cms端口,協議類型字段無效,此時AMS的本地監聽信息struAddress填本地回環地址,//本地回環地址通過NET_ECMS_GetSDKLocalCfg、NET_ECMS_SetSDKLocalCfg獲取和設置)NativeLong nativeLong = hcisupalarm.NET_EALARM_StartListen(pAlarmListenParam);//報警監聽if(nativeLong.intValue() < -1){hcisupalarm.NET_EALARM_Fini();System.out.println("報警監聽失敗"+hcisupcms.NET_ECMS_GetLastError());return;}System.out.println("報警監聽"+nativeLong);}private void cms(){//CMS注冊模塊初始化hcisupcms.NET_ECMS_Init();System.out.println("版本號:"+hcisupcms.NET_ECMS_GetBuildVersion());HCISUPCMS.NET_EHOME_CMS_LISTEN_PARAM lpCMSListenPara = new HCISUPCMS.NET_EHOME_CMS_LISTEN_PARAM();lpCMSListenPara.fnCB = new RegisterCallBack(); // lpCMSListenPara.struAddress.szIP="192.168.1.186".getBytes();lpCMSListenPara.struAddress.szIP= serverProperties.getIp().getBytes();lpCMSListenPara.struAddress.wPort = 7660;//啟動監聽,接收設備注冊信息NativeLong nativeLong = hcisupcms.NET_ECMS_StartListen(lpCMSListenPara);if(nativeLong.intValue() < -1){log.info("注冊監聽失敗,error code:{}",hcisupcms.NET_ECMS_GetLastError());hcisupcms.NET_ECMS_Fini();return;}int lLoginID = nativeLong.intValue();try {while(true){Thread.sleep(1000);if(lLoginID >= 0){break;}}Thread.sleep(3000);}catch (Exception e){}log.info("NET_ECMS_StartListen啟動注冊監聽成功!{}",nativeLong.intValue());}}3.創建回調
注冊回調
報警回調
總結
以上是生活随笔為你收集整理的海康Ehome协议java开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 根据年月日计算是星期几的函数,基姆拉尔森
- 下一篇: 使用ASP.net 2.0 的一些新特性