public static unsafe int cbFreshDevStatus(IDs id, ref DeviceStatus1 status, UInt32 userData) { string strCBName = bytesToString(id.szID); for (int i = 0; i < allDeviceList.Count; i++) { string strLocal = bytesToString(allDeviceList[i].deviceID.szID); if (strCBName == strLocal) { if (status.m_emStatusType == eStatusType.emDevOnline) { onLineCBCount++; string strOnlineInfo = "****** emDevOnline Info CallBack devID = " + bytesToString(id.szID) + " All Device Count = " + allDeviceList.Count.ToString() + " CallBackCount = " + onLineCBCount.ToString() + "\n"; Console.WriteLine(strOnlineInfo); //Console.WriteLine("\n"); } if (status.m_emStatusType == eStatusType.emDevConfig) { Console.WriteLine("**********emDevConfig Info CallBack\n"); } if (status.m_emStatusType == eStatusType.emDevGpsInfo) { uint errorInfo = 0; Console.WriteLine("*****************GPS Info CallBack \n"); DEVCHN tDevSrc = new DEVCHN(); tDevSrc.deviceID.szID = allDeviceList[i].deviceID.szID; tDevSrc.domainID.szID = allDeviceList[i].domainID.szID; tDevSrc.nSrc = 0; tDevSrc.nChn = 0; DevGPSInfo _DevGpsInfo = new DevGPSInfo(); _DevGpsInfo.deviceID.szID = new byte[max_id_len]; while (myAPI.Kdm_GetDevGpsInfo(mcuHandle, tDevSrc, ref _DevGpsInfo, ref errorInfo) != 0) { lock (locker) { devGpsInfoList.Add(_DevGpsInfo); } tDevSrc.nSrc++; tDevSrc.nChn++; } } if (status.m_emStatusType == eStatusType.emDevRecStatus) { uint errorInfo = 0; TDevRecordStatus tDevSrcStat = new TDevRecordStatus(); uint nRtn = myAPI.Kdm_GetDevRecordStatus(mcuHandle, allDeviceList[i].deviceID, ref tDevSrcStat, ref errorInfo); if (nRtn == 1) { string strDevRecStatus = "Device Record Status :" + bytesToString(tDevSrcStat.m_tDevID.szID); Console.WriteLine(strDevRecStatus); //lbGpsInfo.Items.Add(strDevRecStatus); } } break; } } return(1); }
//获取设备的GPS信息 public extern static uint Kdm_GetDevGpsInfo(IntPtr mcuHandle, DEVCHN tDevChn, ref DevGPSInfo devGpsInfo, ref uint errorCode);