zxl
3 天以前 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
package com.ycl.api.YS.config.temper;
 
import com.sun.jna.ptr.IntByReference;
import com.ycl.api.YS.NetDemo;
import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_CONFIG_COMMAND_E;
import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_TAMPER_DETECTION_RULE_INFO_S;
 
import javax.swing.*;
 
/**
 *
 * @introduction Temper detection
 * @description Suppport IPC/NVR
 */
public class TemperDetection {
 
    /**
     *
     * @introduction Get temper detection
     * @description Calling the interface of NETDEV_GetDevConfig
     *
     */
    public static void getTemperDetection() {
        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_TAMPER_DETECTION_RULE_INFO_S stTamperDetectionInfo = new NETDEV_TAMPER_DETECTION_RULE_INFO_S();
        stTamperDetectionInfo.write();
        IntByReference dwBytesReturned = new IntByReference();
 
        boolean bRet = NetDemo.netdevsdk.NETDEV_GetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_GET_TAMPER_DETECTION_RULE_INFO, stTamperDetectionInfo.getPointer(), stTamperDetectionInfo.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 {
            stTamperDetectionInfo.read();
            if(stTamperDetectionInfo.bEnabled == 1) {
                NetDemo.chckbxConfigTamperChannelEnable.setSelected(true);
            }else {
                NetDemo.chckbxConfigTamperChannelEnable.setSelected(false);
            }
            NetDemo.textFieldConfigTemperChannelSensitivity.setText(String.valueOf(stTamperDetectionInfo.udwSensitivity));
            NetDemo.textFieldConfigTemperChannelDuration.setText(String.valueOf(stTamperDetectionInfo.udwDuration));
        }
    }
 
    /**
     *
     * @introduction Set temper detection
     * @description Calling the interface of NETDEV_SetDevConfig
     *
     */
    public static void setTemperDetection() {
        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_TAMPER_DETECTION_RULE_INFO_S stTamperDetectionInfo = new NETDEV_TAMPER_DETECTION_RULE_INFO_S();
        stTamperDetectionInfo.write();
        IntByReference dwBytesReturned = new IntByReference();
 
        boolean bRet = NetDemo.netdevsdk.NETDEV_GetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_GET_TAMPER_DETECTION_RULE_INFO, stTamperDetectionInfo.getPointer(), stTamperDetectionInfo.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 {
             stTamperDetectionInfo.read();
             String FieldConfigTemperChannelSensitivity=NetDemo.textFieldConfigTemperChannelSensitivity.getText();
             if(FieldConfigTemperChannelSensitivity==null||FieldConfigTemperChannelSensitivity.equals("")) {
                 JOptionPane.showMessageDialog(null, "Sensitivity is null");
                 return;
             }
             int ConfigTemperChannelSensitivity=1;
             try {
                 ConfigTemperChannelSensitivity=Integer.parseInt(FieldConfigTemperChannelSensitivity);
             }catch(Exception o) {
                 JOptionPane.showMessageDialog(null, "Sensitivity transformation Exception");
                 NetDemo.textFieldConfigTemperChannelSensitivity.setText(null);
                 return;
             }
 
             if(ConfigTemperChannelSensitivity<1 || ConfigTemperChannelSensitivity>100) {
                 JOptionPane.showMessageDialog(null, "Sensitivity should between 1 and 100");
                 NetDemo.textFieldConfigTemperChannelSensitivity.setText(null);
                 return;
             }
 
                stTamperDetectionInfo.udwSensitivity = ConfigTemperChannelSensitivity;
                if(NetDemo.chckbxConfigTamperChannelEnable.isSelected() == true) {
                    stTamperDetectionInfo.bEnabled = 1;
                }else {
                    stTamperDetectionInfo.bEnabled = 0;
                }
 
                String FieldConfigTemperChannelDuration=NetDemo.textFieldConfigTemperChannelDuration.getText();
                if(FieldConfigTemperChannelDuration==null||FieldConfigTemperChannelDuration.equals("")) {
                    JOptionPane.showMessageDialog(null, "Duration is null");
                    return;
                    }
                int ConfigTemperChannelDuration=1;
                try {
                    ConfigTemperChannelDuration=Integer.parseInt(FieldConfigTemperChannelDuration);
                    }catch(Exception o) {
                        JOptionPane.showMessageDialog(null, "Duration transformation Exception");
                        NetDemo.textFieldConfigTemperChannelDuration.setText(null);
                        return;
                        }
                if(ConfigTemperChannelDuration<1 || ConfigTemperChannelDuration>10) {
                    JOptionPane.showMessageDialog(null, "Duration should between 1 and 10");
                    NetDemo.textFieldConfigTemperChannelDuration.setText(null);
                    return;
                 }
                stTamperDetectionInfo.udwDuration = ConfigTemperChannelDuration;
                stTamperDetectionInfo.write();
                boolean bRet2 = NetDemo.netdevsdk.NETDEV_SetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_SET_TAMPER_DETECTION_RULE_INFO, stTamperDetectionInfo.getPointer(), stTamperDetectionInfo.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 Success.");
                        }
                }
        }
    }