fix:更新gps数据处理
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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(),
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user