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
|
);
|
}
|
}
|