package com.netsdk.demo.intelligentTraffic; import com.netsdk.lib.NetSDKLib; import com.netsdk.lib.NetSDKLib.LLong; import com.netsdk.lib.NetSDKLib.SdkStructure; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; /** * 智能交通违法代码配置 * @author 29779 * */ public class TrafficViolationCode { static NetSDKLib netsdkApi = NetSDKLib.NETSDK_INSTANCE; static NetSDKLib configApi = NetSDKLib.CONFIG_INSTANCE; private NetSDKLib.NET_DEVICEINFO_Ex deviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex(); private static LLong loginHandle = new LLong(0); String address = "172.32.4.229"; int port = 37777; String username = "admin"; String password = "admin123"; private static class DisconnectCallback implements NetSDKLib.fDisConnect { private static DisconnectCallback instance = new DisconnectCallback(); private DisconnectCallback() {} public static DisconnectCallback getInstance() { return instance; } public void invoke(LLong loginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser){ System.out.printf("Device[%s:%d] Disconnect!\n" , pchDVRIP , nDVRPort); } } private static class HaveReconnectCallback implements NetSDKLib.fHaveReConnect { private static HaveReconnectCallback instance = new HaveReconnectCallback(); private HaveReconnectCallback() {} public static HaveReconnectCallback getInstance() { return instance; } public void invoke(LLong loginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser){ System.out.printf("Device[%s:%d] HaveReconnected!\n" , pchDVRIP , nDVRPort); } } public void EndTest() { System.out.println("End Test"); if( loginHandle.longValue() != 0) { netsdkApi.CLIENT_Logout(loginHandle); } System.out.println("See You..."); netsdkApi.CLIENT_Cleanup(); } public void InitTest() { //初始化SDK库 netsdkApi.CLIENT_Init(DisconnectCallback.getInstance(), null); //设置断线自动重练功能 netsdkApi.CLIENT_SetAutoReconnect(HaveReconnectCallback.getInstance(), null); // 向设备登入 final int nSpecCap = 0; /// login device by TCP final IntByReference error = new IntByReference(); loginHandle = netsdkApi.CLIENT_LoginEx2(address, (short)port, username, password, nSpecCap, null, deviceInfo, error); if(loginHandle.longValue() == 0) { System.err.printf("Login Device [%s:%d] Failed ! Last Error[%x]\n", address, port, netsdkApi.CLIENT_GetLastError()); return; } System.out.printf("Login Device [%s:%d] Success. \n", address, port); } private static boolean SetDevConfig(String strCmd , SdkStructure cmdObject , LLong hHandle , int nChn ) { boolean result = false; int nBufferLen = 100*1024; byte szBuffer[] = new byte[nBufferLen]; for(int i=0; i