"""
RT29 (T0x data format) position defines
System and signal enum's etc. from rt_dat_defs.h
"""
dRec29_fixType_auto               = 0
dRec29_fixType_DGNSS              = 1
dRec29_fixType_SBAS               = 2
dRec29_fixType_RTK_float          = 3
dRec29_fixType_RTK_fix            = 4
dRec29_fixType_WA_RTK_float       = 5
dRec29_fixType_WA_RTK_fix         = 6
dRec29_fixType_Omni               = 7
dRec29_fixType_CDGPS              = 8  # obsolete
dRec29_fixType_KF_auto            = 9
dRec29_fixType_KF_DGNSS           = 10
dRec29_fixType_KF_SBAS            = 11
dRec29_fixType_KF_CDGPS           = 12 # obsolete
dRec29_fixType_KF_SBASplus        = 13
dRec29_fixType_KF_SBASplus_CDGPS  = 14 # obsolete
dRec29_fixType_RTX                = 15
dRec29_fixType_XPS_coarse         = 16
dRec29_fixType_XPS_fine           = 17
dRec29_fixType_INS_auto           = 18
dRec29_fixType_INS_DGNSS          = 19
dRec29_fixType_INS_RTK            = 20
dRec29_fixType_INS_SBAS           = 21
dRec29_fixType_INS_RTX_carrier    = 22
dRec29_fixType_INS_GVBS           = 23
dRec29_fixType_INS_Omni_precise   = 24
dRec29_fixType_INS_dead_reckoning = 25
dRec29_fixType_GVBS               = 26
dRec29_fixType_RTX_fast           = 27
dRec29_fixType_xFillX             = 28
dRec29_fixType_RTX_lite           = 29
dRec29_fixType_RTX_liteL1         = 30
dRec29_fixType_RTX_Field_Point    = 31
dRec29_fixType_RTX_fast_RAM       = 32 # not used??
dRec29_fixType_Titan_auto         = 33
dRec29_fixType_Titan_DGNSS        = 34
dRec29_fixType_Titan_SBAS         = 35
dRec29_fixType_QZSS_SLAS          = 36
dRec29_fixType_KF_QZSS_SLAS       = 37
dRec29_fixType_INS_xFillX         = 38
dRec29_fixType_CLAS               = 39
dRec29_fixType_INS_CLAS           = 40
dRec29_fixType_HAS                = 41
dRec29_fixType_INS_HAS            = 42
dRec29_fixType_SouthPAN           = 43
dRec29_fixType_INS_SouthPAN       = 44
dRec29_fixType_BEIDOU_PPP         = 45
dRec29_fixType_INS_BEIDOU_PPP     = 46
dRec29_fixType_INS_SLAS           = 47
dRec29_fixType_BVRS               = 48
dRec29_fixType_INS_BVRS           = 49

# Bit masks for struct rec35_sub2_position_t.flags
dRec35sub2_PositionFlags_MasterPosition            = 0x01
dRec35sub2_PositionFlags_MotionStatic              = 0x02
dRec35sub2_PositionFlags_PropagatedSoln            = 0x04
dRec35sub2_PositionFlags_MovingBaseCMRs            = 0x08
dRec35sub2_PositionFlags_LowLatencyRTK             = 0x10
dRec35sub2_PositionFlags_CanopyDetected            = 0x20
dRec35sub2_PositionFlags_VectorBaslineConstrained  = 0x40
dRec35sub2_PositionFlags_VectorClockConstrained    = 0x80
dRec35sub2_PositionFlags_RtkBridged                = 0x100
dRec35sub2_PositionFlags_AuthSoln                  = 0x200
dRec35sub2_PositionFlags_IonoGuardSrcLsb           = 0x400
dRec35sub2_PositionFlags_IonoGuardSrcMsb           = 0x800
dRec35sub2_PositionFlags_SmoothTransition          = 0x1000

dRec35sub2_PositionFlags_Names = {
    'MasterPosition': dRec35sub2_PositionFlags_MasterPosition,
    'MotionStatic': dRec35sub2_PositionFlags_MotionStatic,
    'PropagatedSoln': dRec35sub2_PositionFlags_PropagatedSoln,
    'MovingBaseCMRs': dRec35sub2_PositionFlags_MovingBaseCMRs,
    'LowLatencyRTK': dRec35sub2_PositionFlags_LowLatencyRTK,
    'CanopyDetected': dRec35sub2_PositionFlags_CanopyDetected,
    'VectorBaslineConstrained': dRec35sub2_PositionFlags_VectorBaslineConstrained,
    'VectorClockConstrained': dRec35sub2_PositionFlags_VectorClockConstrained,
    'RtkBridged': dRec35sub2_PositionFlags_RtkBridged,
    'AuthSoln': dRec35sub2_PositionFlags_AuthSoln,
    'IonoGuardSrcLsb': dRec35sub2_PositionFlags_IonoGuardSrcLsb,
    'IonoGuardSrcMsb': dRec35sub2_PositionFlags_IonoGuardSrcMsb,
    'SmoothTransition': dRec35sub2_PositionFlags_SmoothTransition,
}