def mode_string_v09(msg):
    """mode string for 0.9 protocol"""
    mode = msg.mode
    nav_mode = msg.nav_mode
    MAV_MODE_UNINIT = 0
    MAV_MODE_MANUAL = 2
    MAV_MODE_GUIDED = 3
    MAV_MODE_AUTO = 4
    MAV_MODE_TEST1 = 5
    MAV_MODE_TEST2 = 6
    MAV_MODE_TEST3 = 7
    MAV_NAV_GROUNDED = 0
    MAV_NAV_LIFTOFF = 1
    MAV_NAV_HOLD = 2
    MAV_NAV_WAYPOINT = 3
    MAV_NAV_VECTOR = 4
    MAV_NAV_RETURNING = 5
    MAV_NAV_LANDING = 6
    MAV_NAV_LOST = 7
    MAV_NAV_LOITER = 8
    cmode = mode, nav_mode
    mapping = {(MAV_MODE_UNINIT, MAV_NAV_GROUNDED): 'INITIALISING', (
        MAV_MODE_MANUAL, MAV_NAV_VECTOR): 'MANUAL', (MAV_MODE_TEST3,
        MAV_NAV_VECTOR): 'CIRCLE', (MAV_MODE_GUIDED, MAV_NAV_VECTOR):
        'GUIDED', (MAV_MODE_TEST1, MAV_NAV_VECTOR): 'STABILIZE', (
        MAV_MODE_TEST2, MAV_NAV_LIFTOFF): 'FBWA', (MAV_MODE_AUTO,
        MAV_NAV_WAYPOINT): 'AUTO', (MAV_MODE_AUTO, MAV_NAV_RETURNING):
        'RTL', (MAV_MODE_AUTO, MAV_NAV_LOITER): 'LOITER', (MAV_MODE_AUTO,
        MAV_NAV_LIFTOFF): 'TAKEOFF', (MAV_MODE_AUTO, MAV_NAV_LANDING):
        'LANDING', (MAV_MODE_AUTO, MAV_NAV_HOLD): 'LOITER', (
        MAV_MODE_GUIDED, MAV_NAV_VECTOR): 'GUIDED', (MAV_MODE_GUIDED,
        MAV_NAV_WAYPOINT): 'GUIDED', (100, MAV_NAV_VECTOR): 'STABILIZE', (
        101, MAV_NAV_VECTOR): 'ACRO', (102, MAV_NAV_VECTOR): 'ALT_HOLD', (
        107, MAV_NAV_VECTOR): 'CIRCLE', (109, MAV_NAV_VECTOR): 'LAND'}
    if cmode in mapping:
        return mapping[cmode]
    return 'Mode(%s,%s)' % cmode
