Improve doc for surface position decoding
This commit is contained in:
parent
ed18352c0c
commit
db57d7419f
@ -49,14 +49,19 @@ def typecode(msg):
|
|||||||
|
|
||||||
|
|
||||||
def position(msg0, msg1, t0, t1, lat_ref=None, lon_ref=None):
|
def position(msg0, msg1, t0, t1, lat_ref=None, lon_ref=None):
|
||||||
"""Decode position from a pair of even and odd position message
|
"""Decode surface or airborne position from a pair of even and odd
|
||||||
(works with both airborne and surface position messages)
|
position messages.
|
||||||
|
|
||||||
|
Note, that to decode surface position using the position message pair,
|
||||||
|
the reference position has to be provided.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
msg0 (string): even message (28 bytes hexadecimal string)
|
msg0 (string): even message (28 bytes hexadecimal string)
|
||||||
msg1 (string): odd message (28 bytes hexadecimal string)
|
msg1 (string): odd message (28 bytes hexadecimal string)
|
||||||
t0 (int): timestamps for the even message
|
t0 (int): timestamps for the even message
|
||||||
t1 (int): timestamps for the odd message
|
t1 (int): timestamps for the odd message
|
||||||
|
lat_ref (float): latitude of reference position
|
||||||
|
lon_ref (float): longitude of reference position
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
(float, float): (latitude, longitude) of the aircraft
|
(float, float): (latitude, longitude) of the aircraft
|
||||||
@ -65,11 +70,10 @@ def position(msg0, msg1, t0, t1, lat_ref=None, lon_ref=None):
|
|||||||
tc1 = typecode(msg1)
|
tc1 = typecode(msg1)
|
||||||
|
|
||||||
if 5 <= tc0 <= 8 and 5 <= tc1 <= 8:
|
if 5 <= tc0 <= 8 and 5 <= tc1 <= 8:
|
||||||
if (not lat_ref) or (not lon_ref):
|
if lat_ref is None or lon_ref is None:
|
||||||
raise RuntimeError(
|
raise RuntimeError(
|
||||||
"Surface position encountered, a reference \
|
"Surface position encountered, a reference position"
|
||||||
position lat/lon required. Location of \
|
" lat/lon required. Location of receiver can be used."
|
||||||
receiver can be used."
|
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
return surface_position(msg0, msg1, t0, t1, lat_ref, lon_ref)
|
return surface_position(msg0, msg1, t0, t1, lat_ref, lon_ref)
|
||||||
@ -83,7 +87,7 @@ def position(msg0, msg1, t0, t1, lat_ref=None, lon_ref=None):
|
|||||||
return airborne_position(msg0, msg1, t0, t1)
|
return airborne_position(msg0, msg1, t0, t1)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise RuntimeError("incorrect or inconsistent message types")
|
raise RuntimeError("Incorrect or inconsistent message types")
|
||||||
|
|
||||||
|
|
||||||
def position_with_ref(msg, lat_ref, lon_ref):
|
def position_with_ref(msg, lat_ref, lon_ref):
|
||||||
|
Loading…
Reference in New Issue
Block a user