zhanghua
2024-10-09 b11443475114cacb529130a04d45c7c9981ff375
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
package com.dahua.netsdk.lib.callback.securityCheck;
 
 
import com.dahua.netsdk.lib.NetSDKLib;
import com.dahua.netsdk.lib.ToolKits;
import com.dahua.netsdk.lib.enumeration.EM_INSIDE_OBJECT_TYPE;
import com.dahua.netsdk.lib.structure.NET_IN_PACKAGE_STATISTICS_BYGRADE;
import com.dahua.netsdk.lib.structure.NET_IN_PACKAGE_STATISTICS_BYTYPE;
import com.dahua.netsdk.lib.structure.NET_IN_XRAY_PACKAGE_STATISTICS_INFO;
import com.dahua.netsdk.lib.structure.NET_TIME_EX;
import com.sun.jna.Pointer;
/**
 * @author 291189
 * @version 1.0
 * @description 安检机包裹数量统计信息订阅回调函数实现类
 * @date 2021/7/1
 */
public class PackageInformationCallBack implements fXRayAttachPackageStatistics{
 
    private PackageInformationCallBack() {
    }
 
    private static class CallBackHolder {
        private static PackageInformationCallBack instance = new PackageInformationCallBack();
    }
 
    public static PackageInformationCallBack getInstance() {
        return CallBackHolder.instance;
    }
 
    @Override
    public void invoke(NetSDKLib.LLong lAttachHandle, Pointer pInfo, Pointer dwUser) {
        NET_IN_XRAY_PACKAGE_STATISTICS_INFO msg=new NET_IN_XRAY_PACKAGE_STATISTICS_INFO();
 
        ToolKits.GetPointerData(pInfo, msg);
        // UUID
        byte[] szUUID = msg.szUUID;
        System.out.println("uuid:"+new String(szUUID));
        // 统计信息ID
        int nStatisticsInfoID = msg.nStatisticsInfoID;
        System.out.println("nStatisticsInfoID:"+nStatisticsInfoID);
 
        //开始时间
        NET_TIME_EX stuBeginTime = msg.stuBeginTime;
        System.out.println("stuBeginTime:"+stuBeginTime);
        // 结束时间
        NET_TIME_EX stuEndTime = msg.stuEndTime;
        System.out.println("stuEndTime:"+stuEndTime);
        // 包裹总数
        int nTotalCount = msg.nTotalCount;
        System.out.println("nTotalCount:"+nTotalCount);
        // 按危险等级统计的信息的数量
        int nStatisticsInfoByGradeNum = msg.nStatisticsInfoByGradeNum;
        System.out.println("nStatisticsInfoByGradeNum:"+nStatisticsInfoByGradeNum);
 
        // 按危险等级统计的信息
        NET_IN_PACKAGE_STATISTICS_BYGRADE[] stuStatisticsInfoByGrade =
                msg.stuStatisticsInfoByGrade;
            for(int i=0;i<nStatisticsInfoByGradeNum;i++){
                NET_IN_PACKAGE_STATISTICS_BYGRADE stuStatisticsInfoGrade = stuStatisticsInfoByGrade[i];
                System.out.println("【stuStatisticsInfoGrade】"+i+":"+"emGrade="+stuStatisticsInfoGrade.emGrade+",nCount="+stuStatisticsInfoGrade.nCount);
            }
        //按危险类型统计的信息的数量
        int nStatisticsInfoByTypeNum = msg.nStatisticsInfoByTypeNum;
        System.out.println("nStatisticsInfoByTypeNum:"+nStatisticsInfoByTypeNum);
 
        // 按危险类型统计的信息
        NET_IN_PACKAGE_STATISTICS_BYTYPE[] stuStatisticsInfoByType = msg.stuStatisticsInfoByType;
        for(int i=0;i<nStatisticsInfoByTypeNum;i++){
            NET_IN_PACKAGE_STATISTICS_BYTYPE stuStatisticsInfoType = stuStatisticsInfoByType[i];
            /**
             * 违禁物品分类  {@link EM_INSIDE_OBJECT_TYPE}
             */
 
            System.out.println("【stuStatisticsInfoByType"+i+"】:"+"违禁物品分类="+ EM_INSIDE_OBJECT_TYPE.getNoteByValue(stuStatisticsInfoType.emType)+",数量="+stuStatisticsInfoType.nCount);
        }
 
 
    }
}