package com.netsdk.demo.example; import java.io.File; import com.netsdk.demo.util.CaseMenu; import com.netsdk.lib.NetSDKLib; import com.netsdk.lib.NetSDKLib.NET_IN_ATTACH_REMOTEUPGRADE_STATE; import com.netsdk.lib.NetSDKLib.NET_IN_START_REMOTE_UPGRADE_INFO; import com.netsdk.lib.NetSDKLib.NET_OUT_ATTACH_REMOTEUPGRADE_STATE; import com.netsdk.lib.NetSDKLib.NET_OUT_START_REMOTE_UPGRADE_INFO; import com.netsdk.lib.NetSDKLib.NET_REMOTE_UPGRADER_NOTIFY_INFO; import com.netsdk.lib.NetSDKLib.NET_REMOTE_UPGRADER_STATE; import com.netsdk.lib.NetSDKLib.NET_REMOTE_UPGRADE_CHNL_INFO; import com.netsdk.lib.ToolKits; import com.netsdk.lib.NetSDKLib.LLong; import com.netsdk.lib.NetSDKLib.NET_DEVICEINFO_Ex; import com.sun.jna.Memory; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; public class RemoteUpgrade { public static final NetSDKLib netSdk = NetSDKLib.NETSDK_INSTANCE; // 登陆句柄 private LLong loginHandle = new LLong(0); //开始升级远程设备程序句柄 private LLong lUpgradeID = new LLong(0); // 订阅ipc升级状态句柄 private LLong lAttachHandle = new LLong(0); // 设备信息扩展 private NET_DEVICEINFO_Ex deviceInfo = new NET_DEVICEINFO_Ex(); //private NET_TIME m_startTime = new NET_TIME(); // 开始时间 //private NET_TIME m_stopTime = new NET_TIME(); // 结束时间 public void InitTest(){ // 初始化SDK库 netSdk.CLIENT_Init(DisConnectCallBack.getInstance(), null); // 设置断线重连成功回调函数 netSdk.CLIENT_SetAutoReconnect(HaveReConnectCallBack.getInstance(), null); //打开日志,可选 NetSDKLib.LOG_SET_PRINT_INFO setLog = new NetSDKLib.LOG_SET_PRINT_INFO(); String logPath = new File(".").getAbsoluteFile().getParent() + File.separator + "sdk_log" + File.separator + "sdk.log"; setLog.bSetFilePath = 1; System.arraycopy(logPath.getBytes(), 0, setLog.szLogFilePath, 0, logPath.getBytes().length); setLog.bSetPrintStrategy = 1; setLog.nPrintStrategy = 0; if (!netSdk.CLIENT_LogOpen(setLog)){ System.err.println("Open SDK Log Failed!!!"); } Login(); } public void Login(){ // 登陆设备 int nSpecCap = NetSDKLib.EM_LOGIN_SPAC_CAP_TYPE.EM_LOGIN_SPEC_CAP_TCP; // TCP登入 IntByReference nError = new IntByReference(0); loginHandle = netSdk.CLIENT_LoginEx2(m_strIp, m_nPort, m_strUser, m_strPassword ,nSpecCap, null, deviceInfo, nError); if (loginHandle.longValue() != 0) { System.out.printf("Login Device[%s] Success!\n", m_strIp); } else { System.err.printf("Login Device[%s] Fail.Error[%s]\n", m_strIp, ToolKits.getErrorCode()); LoginOut(); } } public void LoginOut(){ System.out.println("End Test"); if( loginHandle.longValue() != 0) { netSdk.CLIENT_Logout(loginHandle); } System.out.println("See You..."); netSdk.CLIENT_Cleanup(); System.exit(0); } public void StartRemoteUpgrade(){ //入参 NET_IN_START_REMOTE_UPGRADE_INFO pInParam=new NET_IN_START_REMOTE_UPGRADE_INFO(); pInParam.nListNum=4; NET_REMOTE_UPGRADE_CHNL_INFO []msg=new NET_REMOTE_UPGRADE_CHNL_INFO[pInParam.nListNum]; for(int i=0;i