這是一個針對 Windows CE / WinCE 作業系統設計的 GPS 串口通訊基類,封装了串口開關、參數配置、數據收發與 NMEA 協議解析功能。
類別 GPs 內部透過 P/Invoke 調用 coredll.dll 中的 Win32 API 實現底層串口操作,包含:
CreateFile, CloseHandle)COMMTIMEOUTS)ReadFile, WriteFile, OVERLAPPED)依序執行:開啟串口 → 設置超時 → 獲取當前 DCB → 修改波特率/標誌/校驗/資料位/停止位 → 套用新 DCB → 標記 Opened = true。若任何步驟失敗拋出 ApplicationException。
使用 OVERLAPPED 結構進行非同步讀取,回傳實際讀到的位元組陣列。
同樣採用重疊 I/O 寫入,若串口未開啟則拋出異常。
支援從 $GPRMC 句型中提取:
X:經度 (轉十進制度)Y:緯度 (轉十進制度)T:時間 (UTC+8)V:速度 (節轉 km/h)內含 DM2DD (度分轉十進制) 與 T2Time (時間格式化) 輔助方法。
嘗試開啟埠口讀取 512 位元組,檢查是否包含 $GP 標識,自動關閉埠口並回傳布林結果。
提供位元組陣列與十六進制字串互轉功能:ByteToString、StringToByte。
完整程式碼已整合於內容中,可直接引用於 WinCE 嵌入式專案進行 GPS 數據接收與解析。