package com.dahua.netsdk;
|
|
import com.dahua.netsdk.lib.LibraryLoad;
|
import com.dahua.netsdk.lib.NetSDKLib;
|
import com.dahua.netsdk.lib.callback.impl.AnalyzerDataCB;
|
import com.dahua.netsdk.lib.callback.impl.DefaultDisconnectCallback;
|
import com.dahua.netsdk.lib.callback.impl.DefaultHaveReconnectCallBack;
|
import com.dahua.netsdk.lib.enumeration.EM_EVENT_IVS_TYPE;
|
import com.dahua.netsdk.module.BaseModule;
|
import com.dahua.netsdk.module.entity.DeviceInfo;
|
|
public class AppDemo extends Thread {
|
private NetSDKLib netsdk = NetSDKLib.NETSDK_INSTANCE;
|
private long loginHandler;
|
private long attachHandler;
|
private final BaseModule baseModule;
|
|
public AppDemo() {
|
baseModule = new BaseModule(netsdk);
|
}
|
|
|
public void init() {
|
baseModule.init(DefaultDisconnectCallback.getINSTANCE(), DefaultHaveReconnectCallBack.getINSTANCE(), true);
|
}
|
|
/**
|
* 登录设备
|
*
|
* @param ip 设备ip
|
* @param port 设备端口
|
* @param username 用户名
|
* @param password 密码
|
* @return
|
*/
|
public boolean login(String ip, int port, String username, String password) {
|
DeviceInfo info = baseModule.login(ip, port, username, password);
|
if (info != null && info.getLoginHandler() != 0) {
|
loginHandler = info.getLoginHandler();
|
return true;
|
}
|
loginHandler = 0;
|
return false;
|
}
|
|
/**
|
* 订阅事件
|
*
|
* @return
|
*/
|
public boolean realLoad() {
|
attachHandler = baseModule.realLoadPicture(loginHandler, -1, EM_EVENT_IVS_TYPE.EVENT_IVS_ALL,
|
true, AnalyzerDataCB.getInstance(), null, null);
|
return attachHandler != 0;
|
}
|
|
/**
|
* 停止订阅
|
*/
|
public void stopRealLoad() {
|
baseModule.stopRealLoadPicture(attachHandler);
|
}
|
|
/**
|
* 登出
|
*/
|
public void logout() {
|
baseModule.logout(loginHandler);
|
}
|
|
/**
|
* 释放sdk资源
|
*/
|
public void cleanup() {
|
baseModule.clean();
|
}
|
|
public void run() {
|
LibraryLoad.setExtractPath("/home/sccg/libs/linux64/");
|
// LibraryLoad.setExtractPath("D:\\1.workcode\\ycyl\\sccg\\sccg_server\\ycl-platform\\src\\main\\resources\\libs\\win64\\");
|
BaseModule baseModule = new BaseModule();
|
// sdk初始化,设置断线回调和断线重连并开启sdk日志
|
baseModule.init(
|
DefaultDisconnectCallback.getINSTANCE(), DefaultHaveReconnectCallBack.getINSTANCE(), true);
|
String ip = "172.28.194.186";
|
int port = 37777;
|
String username = "admin";
|
String password = "scdx@123";
|
|
AppDemo demo = new AppDemo();
|
demo.init();
|
//登录后订阅
|
if (demo.login(ip, port, username, password) && demo.realLoad()) {
|
System.out.println("登录设备并订阅成功!");
|
//订阅成功后,等待设备上报事件,在回调AnalyzerDataCB中获取事件数据
|
while (true) {
|
try {
|
Thread.sleep(1000);
|
} catch (InterruptedException e) {
|
throw new RuntimeException(e);
|
}
|
}
|
}
|
demo.stopRealLoad();
|
demo.logout();
|
}
|
}
|