#ifndef __V2XEPROT_H__
#define __V2XEPROT_H__

// 
// Frame Types
//

#define V2XE_FTYPE_GETMODINFO  (0x01)
#define V2XE_FTYPE_MODINFORESP (0x02)
#define V2XE_FTYPE_SETDATACOMP (0x03)
#define V2XE_FTYPE_GETDATA     (0x04)
#define V2XE_FTYPE_DATARESP    (0x05)
#define V2XE_FTYPE_SETCONFIG   (0x06)
#define V2XE_FTYPE_GETCONFIG   (0x07)
#define V2XE_FTYPE_CONFIGRESP  (0x08)
#define V2XE_FTYPE_SAVECONFIG  (0x09)
#define V2XE_FTYPE_STARTCAL    (0x0A)
#define V2XE_FTYPE_STOPCAL     (0x0B)
#define V2XE_FTYPE_GETCALDATA  (0x0C)
#define V2XE_FTYPE_CALDATARESP (0x0D)
#define V2XE_FTYPE_SETCALDATA  (0x0E)

//
// Component IDs
//

#define V2XE_CID_XRAW          (0x01)
#define V2XE_CID_YRAW          (0x02)
#define V2XE_CID_XCAL          (0x03)
#define V2XE_CID_YCAL          (0x04)
#define V2XE_CID_HEADING       (0x05)
#define V2XE_CID_MAGNITUDE     (0x06)
#define V2XE_CID_TEMPERATURE   (0x07)
#define V2XE_CID_DISTORTION    (0x08)
#define V2XE_CID_CALSTATUS     (0x09)

//
// Configuration Parameters
//

#define V2XE_PID_DECLINATION   (0x01)
#define V2XE_PID_TRUENORTH     (0x02)
#define V2XE_PID_CALSAMPLEFREQ (0x03)
#define V2XE_PID_SAMPLEFREQ    (0x04)
#define V2XE_PID_PERIOD        (0x05)
#define V2XE_PID_BIGENDIAN     (0x06)
#define V2XE_PID_DAMPINGSIZE   (0x07)

typedef enum { Float32, SInt32, SInt16, SInt8, UInt32, UInt16, UInt8, Boolean, FourCharCode, NoType } v2xeDataType;

int v2xeprotInit(void);

#endif /* __V2XEPROT_H__ */
