首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 讀取 GPS 數據基類實作 (適用於 Windows CE)

     編輯:關於C語言

這是一個針對 Windows CE / WinCE 作業系統設計的 GPS 串口通訊基類,封装了串口開關、參數配置、數據收發與 NMEA 協議解析功能。

核心架構

類別 GPs 內部透過 P/Invoke 調用 coredll.dll 中的 Win32 API 實現底層串口操作,包含:

  • 串口開啟/關閉 (CreateFile, CloseHandle)
  • DCB 結構配置波特率、校驗位、資料位、停止位
  • 通訊超時設置 (COMMTIMEOUTS)
  • 重疊 I/O 非同步讀寫 (ReadFile, WriteFile, OVERLAPPED)

關鍵功能方法

Open() - 開啟並配置串口

依序執行:開啟串口 → 設置超時 → 獲取當前 DCB → 修改波特率/標誌/校驗/資料位/停止位 → 套用新 DCB → 標記 Opened = true。若任何步驟失敗拋出 ApplicationException。

Read(int NumBytes) - 讀取指定位元組

使用 OVERLAPPED 結構進行非同步讀取,回傳實際讀到的位元組陣列。

Write(byte[] WriteBytes) - 發送數據

同樣採用重疊 I/O 寫入,若串口未開啟則拋出異常。

GetGPS(string strGPS, string strFind) - NMEA 解析

支援從 $GPRMC 句型中提取:

  • X:經度 (轉十進制度)
  • Y:緯度 (轉十進制度)
  • T:時間 (UTC+8)
  • V:速度 (節轉 km/h)

內含 DM2DD (度分轉十進制) 與 T2Time (時間格式化) 輔助方法。

ScanPort() - 掃描可用 GPS 埠

嘗試開啟埠口讀取 512 位元組,檢查是否包含 $GP 標識,自動關閉埠口並回傳布林結果。

輔助類別:HexCon

提供位元組陣列與十六進制字串互轉功能:ByteToString、StringToByte。

完整程式碼已整合於內容中,可直接引用於 WinCE 嵌入式專案進行 GPS 數據接收與解析。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved