fix:更新gps数据处理

This commit is contained in:
nnbcccscdscdsc
2026-04-11 13:56:37 +08:00
parent 59990b0e7c
commit 906428fc3b
5 changed files with 42 additions and 6 deletions

View File

@@ -19,8 +19,8 @@ VIDEO_TRAILER_ENDIANNESS = "little"
VIDEO_TRAILER_TIMESTAMP_UNIT = "ms"
VIDEO_TRAILER_TIMESTAMP_MULTIPLIER_NS = 1_000_000
VIDEO_TRAILER_TIMESTAMP_MAX_SKEW_NS = 7 * 24 * 60 * 60 * 1_000_000_000
VIDEO_TRAILER_COORDINATE_FORMAT = "float32 little-endian"
VIDEO_TRAILER_STRUCT = struct.Struct("<Qff")
VIDEO_TRAILER_COORDINATE_FORMAT = "uint64 timestamp_ms + float64 latitude + float64 longitude (little-endian)"
VIDEO_TRAILER_STRUCT = struct.Struct("<Qdd")
VIDEO_TRAILER_BYTES = VIDEO_TRAILER_STRUCT.size
CONTROL_PACKET = struct.Struct("<6f")

View File

@@ -80,6 +80,8 @@ class GpsDataService:
"utc_time": datetime.fromtimestamp(timestamp_seconds, timezone.utc).strftime("%H:%M:%S"),
"latitude": round(metadata.latitude, 6),
"longitude": round(metadata.longitude, 6),
"raw_latitude_hex": f"0x{metadata.raw_latitude_hex}",
"raw_longitude_hex": f"0x{metadata.raw_longitude_hex}",
"satellites": None,
"altitude_m": None,
"coordinate_system": "WGS84",

View File

@@ -182,6 +182,8 @@ class OmniSocketVideoReceiver:
return None
if not (-90.0 <= latitude <= 90.0) or not (-180.0 <= longitude <= 180.0):
return None
if abs(latitude) < 1e-9 and abs(longitude) < 1e-9:
return None
timestamp_ns = timestamp_ms * VIDEO_TRAILER_TIMESTAMP_MULTIPLIER_NS
if abs(time.time_ns() - timestamp_ns) > VIDEO_TRAILER_TIMESTAMP_MAX_SKEW_NS:
@@ -191,6 +193,8 @@ class OmniSocketVideoReceiver:
timestamp_ns=timestamp_ns,
latitude=latitude,
longitude=longitude,
raw_latitude_hex=trailer[8:16].hex(),
raw_longitude_hex=trailer[16:24].hex(),
received_at=received_at if received_at is not None else time.time(),
)