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
package com.netsdk.demo.intelligentTraffic;
 
import com.netsdk.lib.NetSDKLib;
import com.netsdk.lib.ToolKits;
import com.netsdk.lib.structure.NET_TRAFFICLIGHT_INFO;
import com.sun.jna.Pointer;
 
/**
 * className:LightSignalCallBack
 * description:
 * author:251589
 * createTime:2021/1/19 14:59
 *
 * @version v1.0
 */
public class LightSignalCallBack implements NetSDKLib.fTrafficLightState {
 
    private static LightSignalCallBack singleInstance = new LightSignalCallBack();
 
    public static LightSignalCallBack getSingleInstance() {
        if (singleInstance == null) {
            singleInstance = new LightSignalCallBack();
        }
        return singleInstance;
    }
 
    @Override
    public void invoke(NetSDKLib.LLong lLoginID, NetSDKLib.LLong lAttachHandle, Pointer pBuf, long dwUser) {
        NET_TRAFFICLIGHT_INFO info = new NET_TRAFFICLIGHT_INFO();
        ToolKits.GetPointerDataToStruct(pBuf, 0, info);
        System.out.println("设备登录句柄: " + lLoginID.longValue() + "\n" +
                "设备订阅句柄: " + lAttachHandle.longValue() + "\n" +
                "nLightChangedChannels 有效个数: " + info.nRetLightChangedNum + "\n" +
                "stuChannels 有效个数: " + info.nRetChannelNum + "\n" +
                "UTC时间, 发生红绿灯切换时的时间, 本地时区: " + info.stuUTC
        );
    }
}