#ifndef FACT_HeadersDrive
#define FACT_HeadersDrive

namespace Drive
{
    namespace State
    {
        enum states_t
        {
            kDisconnected = 1,
            kConnected,
            kLocked,
            kNotReady,
            kReady,
            kArmed,
            kMoving,
            kTracking,
        };
    };

    struct DimPointing
    {
    } __attribute__((__packed__));

    struct DimTracking
    {
    } __attribute__((__packed__));

    struct DimStarguider
    {
        double fMissZd;
        double fMissAz;

        double fNominalZd;
        double fNominalAz;

        double fCenterX;
        double fCenterY;

        double fBrightness;

        uint16_t fNumCorrelated;
        uint16_t fNumLeds;
        uint16_t fNumRings;
        uint16_t fNumStars;

    } __attribute__((__packed__));

    struct DimTPoint
    {
        double fRa;
        double fDec;

        double fNominalZd;
        double fNominalAz;

        double fPointingZd;
        double fPointingAz;

        double fFeedbackZd;
        double fFeedbackAz;

        uint16_t fNumLeds;
        uint16_t fNumRings;
 
        double fCenterX;
        double fCenterY;
        double fCenterMag;

        double fStarX;
        double fStarY;
        double fStarMag;

        double fRealMag;

    } __attribute__((__packed__));
};
#endif
