package com.ycl.api.YS.vca.vehicle; import com.sun.jna.Pointer; import com.ycl.api.YS.NetDemo; import com.ycl.api.YS.util.Common; import com.ycl.api.YS.lib.NetDEVSDKLib; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_LIB_INFO_S; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_MONITION_INFO_S; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_MONITION_RULE_INFO_S; import javax.swing.*; import javax.swing.border.TitledBorder; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Map; public class VehicleMonitor extends JDialog{ /** * */ private static final long serialVersionUID = 1L; NetDEVSDKLib netdevsdk = NetDEVSDKLib.NETDEVSDK_INSTANCE; private JTextField textFieldVehicleMonitorTaskName; private JTextField textFieldVehicleMonitorDescribe; private JComboBox comboBoxVehicleMonitorLib = new JComboBox(); private JComboBox comboBoxVehicleMonitorReason = new JComboBox(); private JButton btnVehicleLibFind; private JButton btnFindVehicleMonitor; public static class VEHICLE_MONITOR_OPERATE_WINDOW_EFFECT{ public static final int VEHICLE_MONITOR_OPERATE_WINDOW_ADDVEHICLEMONITOR = 1; /* 添加人脸布控 */ public static final int VEHICLE_MONITOR_OPERATE_WINDOW_MODIFYVEHICLEMONITOR = 2; /* 修改人脸布控 */ } public VehicleMonitor(int dwOperateType, JButton btnVehicleLibFind,JButton btnFindVehicleMonitor) { this.setSize(689,600); setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); 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); JPanel VehicleMonitorOperatePanel = new JPanel(); getContentPane().add(VehicleMonitorOperatePanel, BorderLayout.CENTER); VehicleMonitorOperatePanel.setLayout(null); JLabel lblVehicleMonitorMissionName = new JLabel("* Task name"); lblVehicleMonitorMissionName.setBounds(31, 27, 95, 15); VehicleMonitorOperatePanel.add(lblVehicleMonitorMissionName); textFieldVehicleMonitorTaskName = new JTextField(); textFieldVehicleMonitorTaskName.setBounds(153, 24, 474, 21); VehicleMonitorOperatePanel.add(textFieldVehicleMonitorTaskName); textFieldVehicleMonitorTaskName.setColumns(10); this.btnVehicleLibFind=btnVehicleLibFind; this.btnFindVehicleMonitor=btnFindVehicleMonitor; btnVehicleLibFind.doClick(); JLabel lblVehicleMonitorType = new JLabel("* Monitor type"); lblVehicleMonitorType.setBounds(31, 78, 95, 15); VehicleMonitorOperatePanel.add(lblVehicleMonitorType); JRadioButton rdbtnVehicleMonitorMatch = new JRadioButton("Match"); rdbtnVehicleMonitorMatch.setBounds(153, 74, 121, 23); VehicleMonitorOperatePanel.add(rdbtnVehicleMonitorMatch); JRadioButton rdbtnVehicleMonitorNoMatch = new JRadioButton("Not match"); rdbtnVehicleMonitorNoMatch.setBounds(386, 74, 121, 23); VehicleMonitorOperatePanel.add(rdbtnVehicleMonitorNoMatch); ButtonGroup MonitorTypeGroup = new ButtonGroup(); MonitorTypeGroup.add(rdbtnVehicleMonitorMatch); MonitorTypeGroup.add(rdbtnVehicleMonitorNoMatch); JLabel lblVehicleMonitorReason = new JLabel("Monitor reason"); lblVehicleMonitorReason.setBounds(31, 132, 95, 15); VehicleMonitorOperatePanel.add(lblVehicleMonitorReason); JLabel lblVehicleMonitorDescribe = new JLabel("Describe"); lblVehicleMonitorDescribe.setBounds(31, 191, 77, 15); VehicleMonitorOperatePanel.add(lblVehicleMonitorDescribe); textFieldVehicleMonitorDescribe = new JTextField(); textFieldVehicleMonitorDescribe.setBounds(153, 188, 474, 21); VehicleMonitorOperatePanel.add(textFieldVehicleMonitorDescribe); textFieldVehicleMonitorDescribe.setColumns(10); JPanel panelPersonMonitorLib = new JPanel(); panelPersonMonitorLib.setBorder(new TitledBorder(null, "Vehicle lib", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panelPersonMonitorLib.setBounds(31, 237, 605, 204); VehicleMonitorOperatePanel.add(panelPersonMonitorLib); panelPersonMonitorLib.setLayout(null); comboBoxVehicleMonitorLib.setBounds(30, 35, 172, 21); panelPersonMonitorLib.add(comboBoxVehicleMonitorLib); JButton btnVehicleMonitorComplete = new JButton("Complete"); btnVehicleMonitorComplete.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { boolean bRet = false; if(dwOperateType == VEHICLE_MONITOR_OPERATE_WINDOW_EFFECT.VEHICLE_MONITOR_OPERATE_WINDOW_ADDVEHICLEMONITOR) { NETDEV_MONITION_INFO_S stMonitorInfo = new NETDEV_MONITION_INFO_S(); stMonitorInfo.stMonitorRuleInfo = new NETDEV_MONITION_RULE_INFO_S(); stMonitorInfo.stMonitorRuleInfo.bEnabled = 1; if(textFieldVehicleMonitorTaskName.getText().equals("")||textFieldVehicleMonitorTaskName.getText()==null) { JOptionPane.showMessageDialog(null, "please input monitor name"); return; } Common.stringToByteArray(textFieldVehicleMonitorTaskName.getText(), stMonitorInfo.stMonitorRuleInfo.szName); Common.stringToByteArray(textFieldVehicleMonitorDescribe.getText(), stMonitorInfo.stMonitorRuleInfo.szReason); if(rdbtnVehicleMonitorMatch.isSelected() == true) { stMonitorInfo.stMonitorRuleInfo.udwMonitorType = 0; } else { stMonitorInfo.stMonitorRuleInfo.udwMonitorType = 1; } if(comboBoxVehicleMonitorReason.getItemAt(comboBoxVehicleMonitorReason.getSelectedIndex()).equals("Robbed car")) { stMonitorInfo.stMonitorRuleInfo.udwMonitorReason=0; }else if(comboBoxVehicleMonitorReason.getItemAt(comboBoxVehicleMonitorReason.getSelectedIndex()).equals("Stolen car")) { stMonitorInfo.stMonitorRuleInfo.udwMonitorReason=1; } else if(comboBoxVehicleMonitorReason.getItemAt(comboBoxVehicleMonitorReason.getSelectedIndex()).equals("Suspected vehicle")) { stMonitorInfo.stMonitorRuleInfo.udwMonitorReason=2; }else if(comboBoxVehicleMonitorReason.getItemAt(comboBoxVehicleMonitorReason.getSelectedIndex()).equals("Illegal vehicles")) { stMonitorInfo.stMonitorRuleInfo.udwMonitorReason=3; }else if(comboBoxVehicleMonitorReason.getItemAt(comboBoxVehicleMonitorReason.getSelectedIndex()).equals("Emergency check and control vehicle")) { stMonitorInfo.stMonitorRuleInfo.udwMonitorReason=4; } stMonitorInfo.stMonitorRuleInfo.udwLibNum = 1; NETDEV_LIB_INFO_S stVehicleLibInfo = NetDemo.mapVehicleLib.get(comboBoxVehicleMonitorLib.getItemAt(comboBoxVehicleMonitorLib.getSelectedIndex())); if(stVehicleLibInfo==null) { JOptionPane.showMessageDialog(null, "There are no vehicle libraries to use. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } stMonitorInfo.stMonitorRuleInfo.audwLibList[0] = stVehicleLibInfo.udwID; stMonitorInfo.write(); bRet = netdevsdk.NETDEV_AddVehicleMonitorInfo(NetDemo.lpUserID, stMonitorInfo); if(false == bRet) { System.out.printf("NETDEV_AddVehicleMonitorInfo failed:%d\n", netdevsdk.NETDEV_GetLastError()); return; } } else if(dwOperateType == VEHICLE_MONITOR_OPERATE_WINDOW_EFFECT.VEHICLE_MONITOR_OPERATE_WINDOW_MODIFYVEHICLEMONITOR) { String strVehicleMonitorName = (String) NetDemo.jTableVehicleMonitor.getValueAt(NetDemo.jTableVehicleMonitor.getSelectedRow(), 0); NETDEV_MONITION_INFO_S stVehicleMonitorInfo = NetDemo.mapVehicleMonitorMap.get(strVehicleMonitorName); NETDEV_MONITION_RULE_INFO_S stMonitorRuleInfo = new NETDEV_MONITION_RULE_INFO_S(); bRet = netdevsdk.NETDEV_GetVehicleMonitorInfo(NetDemo.lpUserID, stVehicleMonitorInfo.udwID, stMonitorRuleInfo); if(false == bRet) { System.out.printf("NETDEV_GetVehicleMonitorInfo failed:%d\n", netdevsdk.NETDEV_GetLastError()); return; }else { stMonitorRuleInfo.read(); Common.stringToByteArray(textFieldVehicleMonitorTaskName.getText(), stMonitorRuleInfo.szName); Common.stringToByteArray(textFieldVehicleMonitorDescribe.getText(), stMonitorRuleInfo.szReason); if(rdbtnVehicleMonitorMatch.isSelected() == true) { stMonitorRuleInfo.udwMonitorType = 0; } else { stMonitorRuleInfo.udwMonitorType = 1; } stMonitorRuleInfo.udwLibNum = 1; NETDEV_LIB_INFO_S stVehicleLibInfo = NetDemo.mapVehicleLib.get(comboBoxVehicleMonitorLib.getItemAt(comboBoxVehicleMonitorLib.getSelectedIndex())); stMonitorRuleInfo.audwLibList[0] = stVehicleLibInfo.udwID; if(comboBoxVehicleMonitorReason.getItemAt(comboBoxVehicleMonitorReason.getSelectedIndex()).equals("Robbed car")) { stMonitorRuleInfo.udwMonitorReason = 0; }else if(comboBoxVehicleMonitorReason.getItemAt(comboBoxVehicleMonitorReason.getSelectedIndex()).equals("Stolen car")) { stMonitorRuleInfo.udwMonitorReason = 1; } else if(comboBoxVehicleMonitorReason.getItemAt(comboBoxVehicleMonitorReason.getSelectedIndex()).equals("Suspected vehicle")) { stMonitorRuleInfo.udwMonitorReason = 2; }else if(comboBoxVehicleMonitorReason.getItemAt(comboBoxVehicleMonitorReason.getSelectedIndex()).equals("Illegal vehicles")) { stMonitorRuleInfo.udwMonitorReason = 3; }else if(comboBoxVehicleMonitorReason.getItemAt(comboBoxVehicleMonitorReason.getSelectedIndex()).equals("Emergency check and control vehicle")) { stMonitorRuleInfo.udwMonitorReason = 4; } stMonitorRuleInfo.write(); bRet = netdevsdk.NETDEV_SetVehicleMonitorInfo(NetDemo.lpUserID, stVehicleMonitorInfo.udwID, stMonitorRuleInfo); if(false == bRet) { System.out.printf("NETDEV_SetVehicleMonitorInfo failed:%d\n", netdevsdk.NETDEV_GetLastError()); return; } } } dispose(); btnFindVehicleMonitor.doClick(); } }); btnVehicleMonitorComplete.setBounds(406, 528, 93, 23); VehicleMonitorOperatePanel.add(btnVehicleMonitorComplete); JButton btnVehicleMonitorCancel = new JButton("Cancel"); btnVehicleMonitorCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { dispose(); } }); btnVehicleMonitorCancel.setBounds(534, 528, 93, 23); VehicleMonitorOperatePanel.add(btnVehicleMonitorCancel); comboBoxVehicleMonitorReason.setModel(new DefaultComboBoxModel(new String[] {"Robbed car", "Stolen car", "Suspected vehicle", "Illegal vehicles", "Emergency check and control vehicle"})); comboBoxVehicleMonitorReason.setBounds(153, 129, 474, 21); VehicleMonitorOperatePanel.add(comboBoxVehicleMonitorReason); comboBoxVehicleMonitorReason.setSelectedIndex(0); if(dwOperateType == VEHICLE_MONITOR_OPERATE_WINDOW_EFFECT.VEHICLE_MONITOR_OPERATE_WINDOW_ADDVEHICLEMONITOR) { this.setTitle("Add vehicle monitor"); AddPersonMonitorInit(); } else if(dwOperateType == VEHICLE_MONITOR_OPERATE_WINDOW_EFFECT.VEHICLE_MONITOR_OPERATE_WINDOW_MODIFYVEHICLEMONITOR) { this.setTitle("Modify vehicle monitor"); ModifyCrMonitorInit(); String strVehicleMonitorName2 = (String) NetDemo.jTableVehicleMonitor.getValueAt(NetDemo.jTableVehicleMonitor.getSelectedRow(), 0); NETDEV_MONITION_INFO_S stMonitorInfo = NetDemo.mapVehicleMonitorMap.get(strVehicleMonitorName2); textFieldVehicleMonitorTaskName.setText(Common.byteArrayToString(stMonitorInfo.stMonitorRuleInfo.szName)); if(stMonitorInfo.stMonitorRuleInfo.udwMonitorType == 0) { rdbtnVehicleMonitorMatch.setSelected(true); } else { rdbtnVehicleMonitorNoMatch.setSelected(true); } textFieldVehicleMonitorDescribe.setText(Common.byteArrayToString(stMonitorInfo.stMonitorRuleInfo.szReason)); } } void AddPersonMonitorInit() { for(Map.Entry entry : NetDemo.mapVehicleLib.entrySet()) { String strVehiclePersonLibNameString22 = entry.getKey(); NETDEV_LIB_INFO_S stVehicleLibInfo =entry.getValue(); if(stVehicleLibInfo.udwID==1) { continue; } else if(stVehicleLibInfo.udwMemberNum==0) { continue; } else { comboBoxVehicleMonitorLib.addItem(strVehiclePersonLibNameString22); } } } void ModifyCrMonitorInit() { btnVehicleLibFind.doClick(); comboBoxVehicleMonitorLib.setEnabled(false); String strVehicleMonitorName = (String) NetDemo.jTableVehicleMonitor.getValueAt(NetDemo.jTableVehicleMonitor.getSelectedRow(), 0); NETDEV_MONITION_INFO_S stVehicleMonitorInfo = NetDemo.mapVehicleMonitorMap.get(strVehicleMonitorName); NETDEV_MONITION_RULE_INFO_S stMonitorRuleInfo = new NETDEV_MONITION_RULE_INFO_S(); boolean bRet2 = netdevsdk.NETDEV_GetVehicleMonitorInfo(NetDemo.lpUserID, stVehicleMonitorInfo.udwID, stMonitorRuleInfo); if(false == bRet2) { System.out.printf("NETDEV_GetVehicleMonitorInfo failed:%d\n", netdevsdk.NETDEV_GetLastError()); return; }else { stMonitorRuleInfo.read(); System.out.println("布控原因"+stMonitorRuleInfo.udwMonitorReason); if(stMonitorRuleInfo.udwMonitorReason==0) { comboBoxVehicleMonitorReason.setSelectedIndex(0); }else if(stMonitorRuleInfo.udwMonitorReason==1) { comboBoxVehicleMonitorReason.setSelectedIndex(1); }else if(stMonitorRuleInfo.udwMonitorReason==2) { comboBoxVehicleMonitorReason.setSelectedIndex(2); }else if(stMonitorRuleInfo.udwMonitorReason==3) { comboBoxVehicleMonitorReason.setSelectedIndex(3); }else if(stMonitorRuleInfo.udwMonitorReason==4) { comboBoxVehicleMonitorReason.setSelectedIndex(4); } System.out.println("布控所在库id"+stMonitorRuleInfo.audwLibList[0]); Pointer lpVehiclelibHandle = netdevsdk.NETDEV_FindVehicleLibList(NetDemo.lpUserID); if(lpVehiclelibHandle != null) { while(true) { NETDEV_LIB_INFO_S stVehicleLibInfo = new NETDEV_LIB_INFO_S(); boolean bRet3 = netdevsdk.NETDEV_FindNextVehicleLibInfo(lpVehiclelibHandle, stVehicleLibInfo); if(bRet3 != true) { System.out.printf("NETDEV_FindNextVehicleLibInfo failed:%d\n", netdevsdk.NETDEV_GetLastError()); break; } else { comboBoxVehicleMonitorLib.removeAllItems(); for(Map.Entry entry : NetDemo.mapVehicleLib.entrySet()) { NETDEV_LIB_INFO_S lib2=entry.getValue(); String strVechileLibNameString4 = entry.getKey(); comboBoxVehicleMonitorLib.addItem(strVechileLibNameString4); if(lib2.udwID==stMonitorRuleInfo.audwLibList[0]) { for(int s=0;s