package com.ycl.api.YS.config.network; 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_NETWORKCFG_S; import javax.swing.*; import java.util.InputMismatchException; /** * * @introduction DHCP * @description Support IPC/NVR */ public class DHCP { /** * * @introduction Get DHCP * @description Calling the interface of NETDEV_GetDevConfig * */ public static void getDHCP() { if(null == NetDemo.lpUserID){ JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } if(NetDemo.ChannelID == 0){ JOptionPane.showMessageDialog(null, "Please select an online channel after login."); return; } NETDEV_NETWORKCFG_S stNetworkcfg = new NETDEV_NETWORKCFG_S(); IntByReference dwBytesReturned = new IntByReference(); boolean bRet = NetDemo.netdevsdk.NETDEV_GetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_GET_NETWORKCFG, stNetworkcfg.getPointer(), stNetworkcfg.size(), dwBytesReturned ); if(bRet != true) { JOptionPane.showMessageDialog(null, "Get data error,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_GetDevConfig failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; } stNetworkcfg.read(); NetDemo.textFieldConfigNetWorkMTU.setText(String.valueOf(stNetworkcfg.dwMTU)); if(stNetworkcfg.bIPv4DHCP == 1) { NetDemo.chckbxConfigNetWorkDHCPEnable.setSelected(true); } NetDemo.textFieldConfigNetWorkIPAddr.setText(Common.byteArrayToString(stNetworkcfg.szIpv4Address)); NetDemo.textFieldConfigNetWorkSubMask.setText(Common.byteArrayToString(stNetworkcfg.szIPv4SubnetMask)); NetDemo.textFieldConfigNetWorkGateway.setText(Common.byteArrayToString(stNetworkcfg.szIPv4GateWay)); } /** * * @introduction Set DHCP * @description Calling the interface of NETDEV_SetDevConfig * */ public static void setDHCP() { if(null == NetDemo.lpUserID){ JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } if(NetDemo.ChannelID == 0){ JOptionPane.showMessageDialog(null, "Please select an online channel after login."); return; } NETDEV_NETWORKCFG_S stNetworkcfg = new NETDEV_NETWORKCFG_S(); IntByReference dwBytesReturned = new IntByReference(); boolean bRet = NetDemo.netdevsdk.NETDEV_GetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_GET_NETWORKCFG, stNetworkcfg.getPointer(), stNetworkcfg.size(), dwBytesReturned ); if(bRet != true) { JOptionPane.showMessageDialog(null, "Get data failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_GetDevConfig failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; }else { stNetworkcfg.read(); if(NetDemo.chckbxConfigNetWorkDHCPEnable.isSelected() == true) { stNetworkcfg.bIPv4DHCP = 1; }else { stNetworkcfg.bIPv4DHCP = 0; } if(NetDemo.textFieldConfigNetWorkIPAddr.getText()==null||NetDemo.textFieldConfigNetWorkIPAddr.getText().equals("")) { JOptionPane.showMessageDialog(null, "Please input ip"); return; } if(Common.isIP(NetDemo.textFieldConfigNetWorkIPAddr.getText())) { Common.stringToByteArray(NetDemo.textFieldConfigNetWorkIPAddr.getText(), stNetworkcfg.szIpv4Address); }else { JOptionPane.showMessageDialog(null, "Ip format is error"); return; } if(NetDemo.textFieldConfigNetWorkSubMask.getText()==null||NetDemo.textFieldConfigNetWorkSubMask.getText().equals("")) { JOptionPane.showMessageDialog(null, "Please input Mask parameter"); return; } Common.stringToByteArray(NetDemo.textFieldConfigNetWorkSubMask.getText(), stNetworkcfg.szIPv4SubnetMask); if(NetDemo.textFieldConfigNetWorkGateway.getText()==null||NetDemo.textFieldConfigNetWorkGateway.getText().equals("")) { JOptionPane.showMessageDialog(null, "Please input gateway parameter"); return; } Common.stringToByteArray(NetDemo.textFieldConfigNetWorkGateway.getText(), stNetworkcfg.szIPv4GateWay); String FieldConfigNetWorkMTU= NetDemo.textFieldConfigNetWorkMTU.getText(); if( FieldConfigNetWorkMTU==null||FieldConfigNetWorkMTU.equals("")) { JOptionPane.showMessageDialog(null, "MTU is null"); return; } int getFieldConfigNetWorkMTU=0; try { getFieldConfigNetWorkMTU=Integer.parseInt(FieldConfigNetWorkMTU); }catch(NumberFormatException |InputMismatchException e2) { JOptionPane.showMessageDialog(null, "MTU is null or transformation Exception"); NetDemo.textFieldConfigNetWorkMTU.setText(null); return; } if(getFieldConfigNetWorkMTU<576||getFieldConfigNetWorkMTU>1500) { JOptionPane.showMessageDialog(null, "MTU must between 576 and 1500"); NetDemo.textFieldConfigNetWorkMTU.setText(null); return; }else { stNetworkcfg.dwMTU = getFieldConfigNetWorkMTU; } stNetworkcfg.write(); boolean bRet2 = NetDemo.netdevsdk.NETDEV_SetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_SET_NETWORKCFG, stNetworkcfg.getPointer(), stNetworkcfg.size()); if(bRet2 != true) { JOptionPane.showMessageDialog(null, "Set data failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_SetDevConfig failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; }else { JOptionPane.showMessageDialog(null, "Set suceess"); NetDemo.jButtonGetConfigNetWorkNet.doClick(); } } } }