public void OnQueryResult(IntPtr session, IntPtr pCommand, IntPtr pEvent) { BVCU_Command command = (BVCU_Command)Marshal.PtrToStructure(pCommand, typeof(BVCU_Command)); BVCU_Event_SessionCmd sessionCmd = (BVCU_Event_SessionCmd)Marshal.PtrToStructure(pEvent, typeof(BVCU_Event_SessionCmd)); if (command.stMsgContent.pData == IntPtr.Zero || sessionCmd.stContent.pData == IntPtr.Zero) { return; } if (command.iSubMethod == 18) { Test_Struct s1 = (Test_Struct)Marshal.PtrToStructure(command.pUserData, typeof(Test_Struct)); BVCU_PUCFG_GPSData gpsdata = (BVCU_PUCFG_GPSData)Marshal.PtrToStructure(sessionCmd.stContent.pData, typeof(BVCU_PUCFG_GPSData)); } else if (command.iSubMethod == BVSDKAdapter.BVCU_SUBMETHOD.BVCU_SUBMETHOD_SEARCH_LIST) { BVCU_Search_Response searchResponse = (BVCU_Search_Response)Marshal.PtrToStructure(sessionCmd.stContent.pData, typeof(BVCU_Search_Response)); if (searchResponse.stSearchInfo.iType == (Int32)BVSDKAdapter.BVCU_SEARCH_TYPE.BVCU_SEARCH_TYPE_FILE) { BVCU_SearchInfo stSearchInfo = searchResponse.stSearchInfo; BVSearchResponse searchRes = new BVSearchResponse(searchResponse);//读取文件列表 m_session.showSearchRecordFiles(searchRes, command.szTargetID); } } }
public void onGpsData(IntPtr dialog, BVCU_PUCFG_GPSData gpsData, Int32 len) { if (null != m_mainForm && m_mainForm.IsHandleCreated) { if (null == deleGetGpsData) { deleGetGpsData = new OnGetGpsData(procGetGpsData); } m_mainForm.BeginInvoke(deleGetGpsData, new object[] { dialog, gpsData, len }); } }
void GpsDialog_OnData(IntPtr dialog, IntPtr pGpsData, Int32 len) { if (IntPtr.Zero == pGpsData) { return; } BVCU_PUCFG_GPSData gpsData = (BVCU_PUCFG_GPSData)Marshal.PtrToStructure(pGpsData, typeof(BVCU_PUCFG_GPSData)); m_dialog.onGpsData(dialog, gpsData, len); }
void procGetGpsData(IntPtr dialog, BVCU_PUCFG_GPSData gpsData, int len) { foreach (OneDialog dlg in m_gpsDialogs) { if (dlg.dialogHandle == dialog) { if (null != m_mainForm) { m_mainForm.onGetGpsData(dlg.pu.id, gpsData, len); } return; } } }
/// <summary> /// 获得Gps数据 /// </summary> public void onGetGpsData(string puId, BVCU_PUCFG_GPSData gpsData, Int32 len) { foreach (ListViewItem item in listViewGPSData.Items) { if (item.Text.Equals(puId, StringComparison.CurrentCultureIgnoreCase)) { float lat = 0; float lng = 0; ListViewItem.ListViewSubItem latItem = new ListViewItem.ListViewSubItem(); lat = (float)gpsData.iLatitude / BVCU.BVCU_LAT_LNG_UNIT; lng = (float)gpsData.iLongitude / BVCU.BVCU_LAT_LNG_UNIT; latItem.Text = lat.ToString("0.00000"); item.SubItems[1] = latItem; ListViewItem.ListViewSubItem lngItem = new ListViewItem.ListViewSubItem(); lngItem.Text = lng.ToString("0.00000"); item.SubItems[2] = lngItem; LogHelper.LogHelper.RecordLog(8, string.Format("({0}, {1})", lat.ToString("0.00000"), lng.ToString("0.00000"))); return; } } }