package com.ycl.api.YS.vca.vehicle; import com.sun.jna.Memory; import com.ycl.api.YS.NetDemo; import com.ycl.api.YS.lib.NetDEVSDKLib.*; import javax.swing.*; /** * @description Vehicle data information report. * @introduction Only support VMS. */ public class VehicleAlarm { /** * @introduction To register vehicle match or not match. * @description Calling the interface of NETDEV_SetVehicleAlarmCallBack and NETDEV_SetAlarmCallBack_V30. */ public static void registerVehicleMatch() { if(null == NetDemo.lpUserID) { JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } boolean bRet = NetDemo.netdevsdk.NETDEV_SetVehicleAlarmCallBack(NetDemo.lpUserID, NetDemo.pfVehicleAlarmMessCB, NetDemo.lpUserID); if(false == bRet) { System.out.printf("NETDEV_SetVehicleAlarmCallBack failed:%d", NetDemo.netdevsdk.NETDEV_GetLastError()); return; } if(NetDemo.jComboBoxDeviceType.getSelectedIndex() == 0) { NETDEV_LAPI_SUB_INFO_S stSubInfo = new NETDEV_LAPI_SUB_INFO_S(); stSubInfo.udwType = 64; stSubInfo.udwLibIDNum = 0xffff; NETDEV_SUBSCRIBE_SUCC_INFO_S stSubSuccInfo = new NETDEV_SUBSCRIBE_SUCC_INFO_S(); bRet = NetDemo.netdevsdk.NETDEV_SubscibeLapiAlarm(NetDemo.lpUserID, stSubInfo, stSubSuccInfo); if(false == bRet) { JOptionPane.showMessageDialog(null, "NETDEV_SubscibeLapiAlarm failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_SubscibeLapiAlarm failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; } else { JOptionPane.showMessageDialog(null, "Register success"); } NetDemo.dwVehicleRecognizeMointerID = stSubSuccInfo.udwID; } else { bRet = NetDemo.netdevsdk.NETDEV_SetAlarmCallBack_V30(NetDemo.lpUserID, NetDemo.cbAlarmMessCallBack, null); if(false == bRet) { JOptionPane.showMessageDialog(null, "NETDEV_SetAlarmCallBack_V30 failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_SetAlarmCallBack_V30 failed:%d", NetDemo.netdevsdk.NETDEV_GetLastError()); } NETDEV_LAPI_SUB_INFO_S stSubInfo = new NETDEV_LAPI_SUB_INFO_S(); stSubInfo.udwType = 64; stSubInfo.udwLibIDNum = 0xffff; NETDEV_SUBSCRIBE_SUCC_INFO_S stSubSuccInfo = new NETDEV_SUBSCRIBE_SUCC_INFO_S(); bRet = NetDemo.netdevsdk.NETDEV_SubscibeLapiAlarm(NetDemo.lpUserID, stSubInfo, stSubSuccInfo); if(false == bRet) { JOptionPane.showMessageDialog(null, "NETDEV_SubscibeLapiAlarm failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_SubscibeLapiAlarm failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; } else { JOptionPane.showMessageDialog(null, "Register success"); } NetDemo.dwVehicleRecognizeMointerID = stSubSuccInfo.udwID; } } /** * @introduction To cancel vehicle match or not match. * @description Calling the interface of NETDEV_UnSubLapiAlarm and NETDEV_SetAlarmCallBack_V30. */ public static void cancelVehicleMatch() { if(null == NetDemo.lpUserID) { JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } if(NetDemo.jComboBoxDeviceType.getSelectedIndex() == 0){ boolean bRet = NetDemo.netdevsdk.NETDEV_UnSubLapiAlarm(NetDemo.lpUserID, NetDemo.dwVehicleRecognizeMointerID); if(false == bRet){ JOptionPane.showMessageDialog(null, "NETDEV_UnSubLapiAlarm failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_UnSubLapiAlarm failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; }else { JOptionPane.showMessageDialog(null, "Cancel success"); } NetDemo.dwVehicleRecognizeMointerID = -1; } else { boolean bRet = NetDemo.netdevsdk.NETDEV_SetAlarmCallBack_V30(NetDemo.lpUserID, null, null); if(false == bRet){ JOptionPane.showMessageDialog(null, "NETDEV_SetAlarmCallBack_V30 failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_SetAlarmCallBack_V30 failed:%d", NetDemo.netdevsdk.NETDEV_GetLastError()); } boolean bRet2 = NetDemo.netdevsdk.NETDEV_UnSubLapiAlarm(NetDemo.lpUserID, NetDemo.dwVehicleRecognizeMointerID); if(false == bRet2){ JOptionPane.showMessageDialog(null, "NETDEV_UnSubLapiAlarm failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_UnSubLapiAlarm failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; }else { JOptionPane.showMessageDialog(null, "Cancel success"); } NetDemo.dwVehicleRecognizeMointerID = -1; } } /** * @introduction To register vehicle alarm. * @description Calling the interface of NETDEV_SetStructAlarmCallBack. */ public static void registerVehicleAlarm() { if(null == NetDemo.lpUserID) { JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } if(0 == NetDemo.ChannelID){ JOptionPane.showMessageDialog(null, "Please select the device channel."); return; } boolean bRet = NetDemo.netdevsdk.NETDEV_SetStructAlarmCallBack(NetDemo.lpUserID, NetDemo.cbStructAlarmCallBack, NetDemo.lpUserID); if(false == bRet){ JOptionPane.showMessageDialog(null, "NETDEV_SetStructAlarmCallBack failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_SetStructAlarmCallBack failed:%d", NetDemo.netdevsdk.NETDEV_GetLastError()); return; } if(NetDemo.jComboBoxDeviceType.getSelectedIndex() == 0){ NETDEV_LAPI_SUB_INFO_S stSubInfo = new NETDEV_LAPI_SUB_INFO_S(); stSubInfo.udwType = 32; stSubInfo.udwLibIDNum = 0xffff; NETDEV_SUBSCRIBE_SUCC_INFO_S stSubSuccInfo = new NETDEV_SUBSCRIBE_SUCC_INFO_S(); bRet = NetDemo.netdevsdk.NETDEV_SubscibeLapiAlarm(NetDemo.lpUserID, stSubInfo, stSubSuccInfo); if(false == bRet){ JOptionPane.showMessageDialog(null, "NETDEV_SubscibeLapiAlarm failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_SubscibeLapiAlarm failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; }else { JOptionPane.showMessageDialog(null, "Register success"); } NetDemo.dwVehicleStructMointerID = stSubSuccInfo.udwID; } else { bRet = NetDemo.netdevsdk.NETDEV_SetAlarmCallBack_V30(NetDemo.lpUserID, NetDemo.cbAlarmMessCallBack, null); if(false == bRet){ JOptionPane.showMessageDialog(null, "NETDEV_SetAlarmCallBack_V30 failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_SetAlarmCallBack_V30 failed:%d", NetDemo.netdevsdk.NETDEV_GetLastError()); } NETDEV_SUBSCRIBE_SMART_INFO_S stSubscribeInfo = new NETDEV_SUBSCRIBE_SMART_INFO_S(); stSubscribeInfo.udwNum = 1; stSubscribeInfo.pudwSmartType = new Memory(4 * stSubscribeInfo.udwNum); stSubscribeInfo.pudwSmartType.setInt(0, NETDEV_SMART_ALARM_TYPE_E.NETDEV_SMART_ALARM_TYPE_VEHICLE_SNAP); NETDEV_SMART_INFO_S stSmartInfo = new NETDEV_SMART_INFO_S(); stSmartInfo.dwChannelID = NetDemo.ChannelID; bRet = NetDemo.netdevsdk.NETDEV_SubscribeSmart(NetDemo.lpUserID, stSubscribeInfo, stSmartInfo); if(false == bRet){ JOptionPane.showMessageDialog(null, "NETDEV_SubscribeSmart failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_SubscribeSmart failed:%d", NetDemo.netdevsdk.NETDEV_GetLastError()); return; }else { JOptionPane.showMessageDialog(null, "Register success"); } NetDemo.dwVehicleStructMointerID = stSmartInfo.udwSubscribeID; System.out.printf("开启订阅识别"+NetDemo.dwVehicleStructMointerID); } } /** * @introduction To cancel vehicle alarm. * @description Calling the interface of NETDEV_SetStructAlarmCallBack and NETDEV_UnSubLapiAlarm */ public static void cancelVehicleAlarm() { if(null == NetDemo.lpUserID) { JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } NetDemo.netdevsdk.NETDEV_SetStructAlarmCallBack(NetDemo.lpUserID, null, NetDemo.lpUserID); if(NetDemo.jComboBoxDeviceType.getSelectedIndex() == 0){ boolean bRet = NetDemo.netdevsdk.NETDEV_UnSubLapiAlarm(NetDemo.lpUserID, NetDemo.dwVehicleStructMointerID); if(false == bRet){ JOptionPane.showMessageDialog(null, "NETDEV_UnSubLapiAlarm failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_UnSubLapiAlarm failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; }else { JOptionPane.showMessageDialog(null, "Cancel success"); } NetDemo.dwVehicleStructMointerID = -1; } else { boolean bRet2 = NetDemo.netdevsdk.NETDEV_SetAlarmCallBack_V30(NetDemo.lpUserID, null, null); if(false == bRet2){ JOptionPane.showMessageDialog(null, "NETDEV_SetAlarmCallBack_V30 failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_SetAlarmCallBack_V30 failed:%d", NetDemo.netdevsdk.NETDEV_GetLastError()); } NETDEV_SMART_INFO_S stSmartInfo = new NETDEV_SMART_INFO_S(); stSmartInfo.dwChannelID = NetDemo.ChannelID; stSmartInfo.udwSubscribeID = NetDemo.dwVehicleStructMointerID; boolean bRet = NetDemo.netdevsdk.NETDEV_UnsubscribeSmart(NetDemo.lpUserID, stSmartInfo); if(false == bRet){ JOptionPane.showMessageDialog(null, "NETDEV_UnsubscribeSmart failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_UnsubscribeSmart failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; }else { JOptionPane.showMessageDialog(null, "Cancel success"); } NetDemo.dwVehicleStructMointerID = -1; } } }