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
package com.netsdk.demo.customize;
 
import com.netsdk.lib.NetSDKLib;
import com.netsdk.lib.ToolKits;
import com.netsdk.lib.callback.impl.DefaultDisconnectCallback;
import com.netsdk.lib.callback.impl.DefaultHaveReconnectCallBack;
import com.netsdk.lib.callback.impl.MessCallBack;
import com.netsdk.module.BaseModule;
import com.sun.jna.Callback;
import com.sun.jna.Pointer;
 
/**
 * @author 47081
 * @version 1.0
 * @description * \if ENGLISH_LANG
 * * <p>
 * * \else
 * * 获取太阳能系统的信息
 * * \endif
 * @date 2020/8/17
 */
public class GetSolarCellInfo {
    /**
     * netsdklib实例
     */
    private NetSDKLib netsdk = NetSDKLib.NETSDK_INSTANCE;
    private long loginHandler;
    private NetSDKLib.NET_DEVICEINFO_Ex deviceinfoEx;
 
    /**
     * 封装了一些基础功能的模块
     */
    private BaseModule baseModule;
 
    public GetSolarCellInfo() {
        this.baseModule = new BaseModule(netsdk);
    }
 
    /**
     * sdk初始化
     *
     * @return
     */
    public boolean init() {
        return baseModule.init(DefaultDisconnectCallback.getINSTANCE(), DefaultHaveReconnectCallBack.getINSTANCE(), true);
    }
 
    /**
     * 登录设备
     * 默认使用CLIENT_LoginWithHighLevelSecurity高安全级别登录接口
     *
     * @return
     */
    public boolean login() {
        loginHandler = baseModule.login(ip, port, username, password).getLoginHandler();
        if (loginHandler == 0) {
            return false;
        }
        return true;
    }
 
    /**
     * 监听事件,使用接口{@link NetSDKLib#CLIENT_StartListenEx(NetSDKLib.LLong)}
     * 设置监听回调函数{@link NetSDKLib#CLIENT_SetDVRMessCallBack(Callback, Pointer)}
     *
     * @param callBack
     * @return
     */
    public boolean listen(NetSDKLib.fMessCallBack callBack) {
        netsdk.CLIENT_SetDVRMessCallBack(callBack, null);
        //开始监听
        boolean result = netsdk.CLIENT_StartListenEx(new NetSDKLib.LLong(loginHandler));
        if (!result) {
            System.out.println("start listen failed." + ToolKits.getErrorCode());
        }
        return result;
    }
 
    private final String ip = "10.34.3.2";
    private final int port = 37777;
    private final String username = "admin";
    private final String password = "admin";
 
    public static void main(String[] args) {
        GetSolarCellInfo info = new GetSolarCellInfo();
        //sdk初始化
        if (!info.init()) {
            return;
        }
        //登录设备
        if (!info.login()) {
            return;
        }
        //开始监听
        if (!info.listen(MessCallBack.getInstance())) {
            return;
        }
        while (true) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}