鏈枃妗h褰?IM23A 妯$粍杈撳嚭鐨?fmin锛堝鑸級涓?fmim锛圛MU锛夊抚鏍煎紡锛屼究浜庡浐浠朵笌 Python 宸ュ叿淇濇寔涓€鑷淬€?
鎵€鏈夊抚鍧囦互 ASCII 澶?f m i n 鎴?f m i m 寮€濮嬶紝浠?e d 缁撳熬銆?- 鏍¢獙鍜屼綅浜庡€掓暟绗?4~3 瀛楄妭锛屼负 **鍓?N 瀛楄妭锛堝惈甯уご銆佽礋杞斤級鎸夊瓧鑺傛眰鍜?* 鐨?uint16_t 灏忕鍊硷紱瀵艰埅甯?N=96锛孖MU 甯?N=48銆?
fmin锛屾€婚暱 100 瀛楄妭锛?| 瀛楁 | 绫诲瀷 | 璇存槑 |
|---|---|---|
| 1 | double | UTC 鏃堕棿 hhmmss.ss |
| 2 | double | 绾害 (掳) |
| 3 | double | 缁忓害 (掳) |
| 4 | double | 楂樼▼ (m) |
| 5 | float | 鍖楀悜閫熷害 (m/s) |
| 6 | float | 涓滃悜閫熷害 (m/s) |
| 7 | float | 鍚戜笅閫熷害 (m/s锛屽浐浠惰浆鎹负鍚戜笂閫熷害) |
| 8 | float | 妯粴瑙?(掳) |
| 9 | float | 淇话瑙?(掳) |
| 10 | float | 鑸悜瑙?(掳) |
| 11 | float | 瀹氫綅绮惧害 (m) |
| 12~14 | float | 鍔犻€熷害璁?XYZ 闆跺亸 |
| 15~17 | float | 闄€铻轰华 XYZ 闆跺亸 |
| 18 | float | 浼犳劅鍣ㄦ俯搴?(掳C) |
| 19 | uint32_t | 鐘舵€佸瓧锛堜綆 8 浣嶄綔涓哄畾浣嶈川閲忥級 |
| 20 | uint16_t | 鏍¢獙鍜? |
| 21 | char | e |
| 22 | char | d |
fmim锛屾€婚暱 52 瀛楄妭锛?| 瀛楁 | 绫诲瀷 | 璇存槑 |
|---|---|---|
| 1 | double | UTC 鏃堕棿 hhmmss.ss锛堣浆鎹负姣锛? |
| 2~4 | float | 鍔犻€熷害璁?XYZ (g) |
| 5~7 | float | 闄€铻轰华 XYZ (掳/s) |
| 8~10 | float | 棰勭暀 |
| 11 | uint16_t | 鏍¢獙鍜? |
| 12 | char | e |
| 13 | char | d |
鍙娇鐢?Python 灏嗗崄鍏繘鍒舵棩蹇楄В鏋愪负瀛楄妭娴侊紝骞舵寜涓嬭堪娴佺▼妫€娴嬪抚锛?python import struct, pathlib data = bytes(int(x, 16) for x in pathlib.Path("SaveWindows2025_11_27_17-46-32.TXT").read_text().split()) i, nav, imu = 0, 0, 0 while i <= len(data) - 4: head = data[i:i+4] length = 100 if head == b"fmin" else 52 if head == b"fmim" else None if length and data[i+length-2:i+length] == b"ed": payload = data[i:i+length] checksum = sum(payload[:-4]) & 0xFFFF if checksum == struct.unpack("<H", payload[-4:-2])[0]: nav += head == b"fmin" imu += head == b"fmim" i += length continue i += 1 print("nav", nav, "imu", imu)
GPS.c 涓殑 IM23A 瑙f瀽鍣ㄥ疄鐜颁笌涓婅堪鏍煎紡瀹屽叏涓€鑷达紝鑻ュ崗璁湁鍙樺姩锛岃鍚屾鏇存柊鏈枃浠跺拰瑙f瀽閫昏緫銆?