编辑 | blame | 历史 | 原始文档

IM23A 浜岃繘鍒跺崗璁鏄?

鏈枃妗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

IMU 甯э紙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瀽閫昏緫銆?