1
zhanghua
2024-09-26 c775c6953d9759e70f08acbfa8f6d7490aaae3d1
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
146
147
148
149
150
151
package com.netsdk.demo.customize;
 
import com.netsdk.demo.util.CaseMenu;
import com.netsdk.lib.ToolKits;
import com.netsdk.lib.structure.NET_CFG_THERMOMETRY_SHIELD_INFO;
import com.netsdk.lib.structure.THERMOMETRY_SHIELD_INFO;
import com.netsdk.lib.utils.Initialization;
import com.sun.jna.Memory;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
 
import java.io.UnsupportedEncodingException;
 
import static com.netsdk.lib.enumeration.NET_EM_CFG_OPERATE_TYPE.NET_EM_CFG_THERMOMETRY_SHIELD;
 
 
/**
 * @author 291189
 * @version 1.0
 * @description ERR221024049
 * @date 2022/11/7 10:57
 */
public class ThermometryShieldDemo extends Initialization {
 
    int nChannelID=0;
    NET_CFG_THERMOMETRY_SHIELD_INFO msg=new NET_CFG_THERMOMETRY_SHIELD_INFO();
    public void getThermometry() {
 
        Pointer pstuConfigInfo=new Memory(msg.size());
        pstuConfigInfo.clear(msg.size());
        ToolKits.SetStructDataToPointer(msg, pstuConfigInfo, 0);
 
        boolean gRet = netSdk.CLIENT_GetConfig(loginHandle, NET_EM_CFG_THERMOMETRY_SHIELD, nChannelID, pstuConfigInfo, msg.size(), 3000, null);
 
        if(gRet){
            System.out.println("CLIENT_GetConfig success");
            ToolKits.GetPointerDataToStruct(pstuConfigInfo,0,msg);
            Native.free(Pointer.nativeValue(pstuConfigInfo)); //清理内存
            Pointer.nativeValue(pstuConfigInfo, 0);
 
        }else {
            System.err.printf("CLIENT_GetConfig  failed, ErrCode=%x\n", netSdk.CLIENT_GetLastError());
                    return;
        }
        int nRealInfoNumOfEachChennel
                = msg.nRealInfoNumOfEachChennel;
        System.out.println("nRealInfoNumOfEachChennel:"+nRealInfoNumOfEachChennel);
        THERMOMETRY_SHIELD_INFO[] stuThermometryShieldInfo
                = msg.stuThermometryShieldInfo;
 
        for(int i=0;i<nRealInfoNumOfEachChennel;i++){
            THERMOMETRY_SHIELD_INFO info = stuThermometryShieldInfo[i];
            System.out.println("["+i+"]:");
            /**
             屏蔽使能, 1开启, 0关闭
             */
            System.out.println("bEnable:"+info.bEnable);
            /**
             屏蔽区编号
             */
            System.out.println("nShieldId:"+info.nShieldId);
            try {
                /**
                 自定义名称
                 */
                System.out.println("szName:"+new String(info.szName,encode) );
                /**
                 坐标点
                 */
                System.out.println("stuRect:"+info.stuRect.toString() );
 
                /**
                 预置点编号
                 */
                System.out.println("nPresetId:"+info.nPresetId);
 
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
 
 
        }
 
    }
 
 
    public void setThermometry() {
 
        msg.nRealInfoNumOfEachChennel=1;
 
        THERMOMETRY_SHIELD_INFO info
                = msg.stuThermometryShieldInfo[0];
            info.bEnable=1;
 
            String name="test0001";
         byte[] szName
                = info.szName;
         StringToByteArr(name,szName,encode);
 
        Pointer pstuConfigInfo=new Memory(msg.size());
        pstuConfigInfo.clear(msg.size());
        ToolKits.SetStructDataToPointer(msg, pstuConfigInfo, 0);
        // 设置,在获取的基础上设置
        IntByReference restart = new IntByReference(0);
        boolean gSet
                = netSdk.CLIENT_SetConfig(loginHandle, NET_EM_CFG_THERMOMETRY_SHIELD, nChannelID, pstuConfigInfo, msg.size(), 3000, restart, null);
 
        if(gSet){
            System.out.println("CLIENT_SetConfig success");
            ToolKits.GetPointerDataToStruct(pstuConfigInfo,0,msg);
            Native.free(Pointer.nativeValue(pstuConfigInfo)); //清理内存
            Pointer.nativeValue(pstuConfigInfo, 0);
 
        }else {
            System.err.printf("CLIENT_SetConfig  failed, ErrCode=%x\n", netSdk.CLIENT_GetLastError());
            return;
        }
 
 
    }
 
    public static void StringToByteArr(String src, byte[] dst,String encode) {
        try {
            byte[] GBKBytes = src.getBytes(encode);
            for (int i = 0; i < GBKBytes.length; i++) {
                dst[i] = (byte) GBKBytes[i];
            }
        } catch (Exception e1) {
            e1.printStackTrace();
        }
    }
    public void RunTest()
    {
        System.out.println("Run Test");
        CaseMenu menu = new CaseMenu();
        menu.addItem(new CaseMenu.Item(this , "获取测温屏蔽区配置" , "getThermometry"));
 
        menu.addItem(new CaseMenu.Item(this , "设置测温屏蔽区配置" , "setThermometry"));
        menu.run();
    }
 
    public static void main(String[]args)
    {
 
        ThermometryShieldDemo demo = new ThermometryShieldDemo();
        InitTest("10.35.247.130",37777,"admin","admin123");
        demo.RunTest();
        LoginOut();
    }
}