def trk50(msg):
    """True track angle, BDS 5,0 message

    Args:
        msg (String): 28 bytes hexadecimal message (BDS50) string

    Returns:
        float: angle in degrees to true north (from 0 to 360)
    """
    d = hex2bin(data(msg))

    if d[11] == '0':
        return None

    sign = int(d[12])   # 1 -> west
    value = bin2int(d[13:23])

    if sign:
        value = value - 1024

    trk = value * 90.0 / 512.0

    # convert from [-180, 180] to [0, 360]
    if trk < 0:
        trk = 360 + trk

    return round(trk, 3)
def trk50 ( msg ) : d = hex2bin ( data ( msg ) ) if d [ 11 ] == '0' : return None sign = int ( d [ 12 ] ) value = bin2int ( d [ 13 : 23 ] ) if sign : value = value - 1024 trk = value * 90.0 / 512.0 if trk < 0 : trk = 360 + trk return round ( trk , 3 )
True track angle, BDS 5,0 message

    Args:
        msg (String): 28 bytes hexadecimal message (BDS50) string

    Returns:
        float: angle in degrees to true north (from 0 to 360)