fuliqi
2024-08-29 4163c93761115c7524ef74a557a1f5e01eafb429
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
package com.ycl.api.YS.vca.face;
 
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
import com.ycl.api.YS.NetDemo;
import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_ID_LIST_S;
import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_LIB_INFO_S;
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
 
public class SyncPersonLibWindow extends JDialog{
    
    private Pointer lpUserId;
    JPanel  PersonLibWindowPanel = new JPanel();
 
    
    public SyncPersonLibWindow(Pointer lpUserID) {
        this.lpUserId = lpUserID;
        this.setSize(429,299);
        setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        this.setTitle("Synchronize");
        this.setVisible(true);
        
        Toolkit toolkit=Toolkit.getDefaultToolkit();
        Dimension screenSize =toolkit.getScreenSize();
        int x=(screenSize.width-this.getWidth())/2;
        int y=(screenSize.height-this.getHeight())/2;
        this.setLocation(x,y);
        getContentPane().add(PersonLibWindowPanel, BorderLayout.CENTER);
        PersonLibWindowPanel.setLayout(null);
        
        JScrollPane SyncDeviceScrollPane = new JScrollPane();
        SyncDeviceScrollPane.setBounds(10, 10, 393, 207);
        PersonLibWindowPanel.add(SyncDeviceScrollPane);
        
        NetDemo.SyncLibToDeviceTable = new JTable(NetDemo.SyncDeviceModel) {
            public boolean isCellEditable(int row,int column) {
                return false;
            }
        };
        SyncDeviceScrollPane.setViewportView(NetDemo.SyncLibToDeviceTable);
        
        JButton jButtonSync = new JButton("Synchornize");
        jButtonSync.setBounds(59, 227, 110, 23);
        PersonLibWindowPanel.add(jButtonSync);
        
        JButton jButtonCancle = new JButton("Cancle");
        jButtonCancle.setBounds(235, 227, 110, 23);
        PersonLibWindowPanel.add(jButtonCancle);
        
        /* Get device ID */
        NetDemo.SyncLibToDeviceTable.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                int row = NetDemo.SyncLibToDeviceTable.rowAtPoint(e.getPoint());
                NetDemo.deviceID = Integer.parseInt(NetDemo.SyncLibToDeviceTable.getValueAt(row, 0).toString());
                }
            });
        
        jButtonCancle.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dispose();
            }
        });
        
        jButtonSync.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                NETDEV_LIB_INFO_S stPersonLibInfo = NetDemo.mapPersonLib.get(NetDemo.jComboBoxPersonLib.getItemAt(NetDemo.jComboBoxPersonLib.getSelectedIndex()));
                NETDEV_ID_LIST_S stDeviceIDList = new NETDEV_ID_LIST_S();
                stDeviceIDList.udwNum = 1;
                stDeviceIDList.pudwIDs = new IntByReference(NetDemo.deviceID);
                /* 将指定人脸库同步至设备 返回成功表示接口下发参数成功
                 * 获取同步信息需调用NETDEV_FindPersonLibSyncInfoList、NETDEV_FindNextPersonLibSyncInfo、NETDEV_FindClosePersonLibSyncInfoList */
                boolean bRet = NetDemo.netdevsdk.NETDEV_SyncPersonLibToDevice(lpUserID, stPersonLibInfo.udwID, stDeviceIDList);
                if (bRet) {
                    JOptionPane.showMessageDialog(null, "NETDEV_SyncPersonLibToDevice success");
                    
                } else {
                    JOptionPane.showMessageDialog(null, "NETDEV_SyncPersonLibToDevice failed: "+NetDemo.netdevsdk.NETDEV_GetLastError());
                    return;
                }
            }
        });
        
 
    }
}