package com.ycl.api.YS.maintenance; import com.sun.jna.ptr.IntByReference; import com.ycl.api.YS.NetDemo; import com.ycl.api.YS.util.Common; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_CONFIG_COMMAND_E; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_DEVICE_BASICINFO_S; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_DEVICE_TYPE_E; import javax.swing.*; import java.util.regex.Pattern; /** * @description To export or import the file of configuration. * @introduction Support IPC/NVR/VMS. */ public class Configuration { /** * @description To export the file of configuration. * @introduction Calling the interface of NETDEV_GetDevConfig NETDEV_GetConfigFile. */ public static void Export() { if(null == NetDemo.lpUserID) { JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } NETDEV_DEVICE_BASICINFO_S stDeviceInfo = new NETDEV_DEVICE_BASICINFO_S(); IntByReference dwBytesReturned = new IntByReference(); boolean bRet = NetDemo.netdevsdk.NETDEV_GetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_GET_DEVICECFG, stDeviceInfo.getPointer(), stDeviceInfo.size(), dwBytesReturned); if(bRet != true) { System.out.printf("NETDEV_GetDevConfig failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; } stDeviceInfo.read(); String strFileNameString = ""; String strCurrentpathString = ""; if(NetDemo.pstDeviceInfo.dwDeviceType == NETDEV_DEVICE_TYPE_E.NETDEV_DTYPE_IPC || NetDemo.pstDeviceInfo.dwDeviceType == NETDEV_DEVICE_TYPE_E.NETDEV_DTYPE_IPC_FISHEYE || NetDemo.pstDeviceInfo.dwDeviceType == NETDEV_DEVICE_TYPE_E.NETDEV_DTYPE_IPC_ECONOMIC_FISHEYE || NetDemo.pstDeviceInfo.dwDeviceType == NETDEV_DEVICE_TYPE_E.NETDEV_DTYPE_IPC_ACS ){ strFileNameString = Common.byteArrayToString(stDeviceInfo.szDevModel) + "_" + NetDemo.strIPAddr + "_" + "config.tgz"; strCurrentpathString = NetDemo.strConfigFilePath + strFileNameString; } else if((NetDemo.pstDeviceInfo.dwDeviceType == NETDEV_DEVICE_TYPE_E.NETDEV_DTYPE_NVR)|| (NetDemo.pstDeviceInfo.dwDeviceType == NETDEV_DEVICE_TYPE_E.NETDEV_DTYPE_NVR_BACKUP)|| (NetDemo.pstDeviceInfo.dwDeviceType == NETDEV_DEVICE_TYPE_E.NETDEV_DTYPE_HNVR)){ strFileNameString = Common.byteArrayToString(stDeviceInfo.szDevModel) + "_" + NetDemo.strIPAddr + "_" + "config.xml"; strCurrentpathString = NetDemo.strConfigFilePath + strFileNameString; } boolean bRet2 = NetDemo.netdevsdk.NETDEV_GetConfigFile(NetDemo.lpUserID, strCurrentpathString); if(bRet2 != true) { System.out.printf("NETDEV_GetConfigFile failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; } else { JOptionPane.showMessageDialog(null, "Export success,file path"+strCurrentpathString); } } /** * @description To import the file of configuration. * @introduction Calling the interface of NETDEV_SetConfigFile. */ public static void Import() { if(null == NetDemo.lpUserID) { JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } boolean bRet = NetDemo.netdevsdk.NETDEV_SetConfigFile(NetDemo.lpUserID, NetDemo.jTextFieldMaintenanceManualConfigurationImport.getText()); if(bRet != true) { System.out.printf("NETDEV_SetConfigFile failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); JOptionPane.showMessageDialog(null, "Import file failed, please reselect file, error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); NetDemo.jTextFieldMaintenanceManualConfigurationImport.setText(null); return; } else { JOptionPane.showMessageDialog(null, "Import file success"); } } /** * @description To browse the file of Configuration. */ public static void Browse() { JFileChooser fcFileChooser = new JFileChooser(); fcFileChooser.setMultiSelectionEnabled(false); int result=fcFileChooser.showSaveDialog(null); if (result==JFileChooser.APPROVE_OPTION) { fcFileChooser.getSelectedFile(); String strFilePath = fcFileChooser.getSelectedFile().getAbsolutePath(); if(strFilePath==null||strFilePath.equals("")) { System.out.println("No choose file"); return; } String newpath=null; try { newpath=strFilePath.substring(strFilePath.lastIndexOf(".")); }catch(Exception y) { JOptionPane.showMessageDialog(null, "File is not exist"); return; } if(newpath==null||newpath.equals("")) { System.out.println("No choose file"); return; } String reg = "(tgz|xml)"; Pattern p = Pattern.compile(reg); boolean boo = p.matcher(newpath).find(); if(boo) { JOptionPane.showMessageDialog(null, "Choose file ok"); NetDemo.jTextFieldMaintenanceManualConfigurationImport.setText(strFilePath); } else { JOptionPane.showMessageDialog(null, "Only support tgz file or xml file"); } } } }