zxl
1 天以前 3b0516a2959e25576e4f3fda697a3b025d06c8c9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
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();
            }
       }
   }
}