#ifndef __DRV_QMC6310_V2_H__
#define __DRV_QMC6310_V2_H__

#ifdef __cplusplus
extern "C" {
#endif

/*Includes ------------------------------------------------------*/
#include <stdint.h>
#include <stdio.h>
#include <stdbool.h>

/*STRUCTION -----------------------------------------------------*/
typedef enum{
	QMC_MAG_ODR_OFF   		= 0x00,																											//关闭地磁计
	
	QMC_MAG_ODR_10HZ 			= 0x31,																											//采样频率 - 10赫兹
	
	QMC_MAG_ODR_100HZ 		= 0x39,																											//采样频率 - 100赫兹
	
	QMC_MAG_ODR_200HZ 		= 0x3D,																											//采样频率 - 200赫兹
	
} QMC_MAG_ODR_e;

typedef enum{
	QMC_MAG_FS_30GS   		= 0x00,																											//量程 - 30高斯
	
} QMC_MAG_FS_e;
typedef struct 
{
	QMC_MAG_ODR_e					mag_odr;																										//地磁计采样频率
	
	QMC_MAG_FS_e					mag_fs;																											//地磁计量程
	
} drv_qmc_config_param_t;

typedef struct
{
  int16_t 							mag[3];																											//地磁计三轴
	
} qmc_data_t;


/*API -------------------------------------------------------*/
/**
	@brief 		初始化QMC6310驱动
	@param 		无
	@return 	错误代码							- [out]	-1失败，0成功
*/
int drv_qmc6310_Init(void);
/**
	@brief 		QMC6310断电
	@param 		无
	@return 	错误代码							- [out]	-1失败，0成功
*/
int drv_qmc6310_power_off(void);
/**
	@brief 		QMC6310上电（默认配置挂起）
	@param 		无
	@return 	错误代码							- [out]	-1失败，0成功
*/
int drv_qmc6310_power_on(void);
/**
	@brief 		设置MAG量程
	@param 		mag_fs 								- [in]	MAG量程
	@return 	错误代码							- [out]	-1失败，0成功
*/
int	drv_qmc6310_set_mag_fs(QMC_MAG_FS_e mag_fs);
/**
	@brief 		获取配置MAG采样频率需要的步骤数量
	@return 	错误代码							- [out]	配置MAG采样频率需要的步骤数量
*/
int	drv_qmc6310_get_mag_odr_flow(void);
/**
	@brief 		设置MAG采样频率
	@param 		mag_odr 							- [in]	MAG采样频率
	@param 		flow 									- [in]	当前需要处理的步骤
	@return 	错误代码							- [out]	-1失败，0成功
*/
int	drv_qmc6310_set_mag_odr(QMC_MAG_ODR_e mag_odr, int flow);
/**
	@brief 		获取LSM配置参数
	@param 		param 								- [in]	LSM配置参数
	@return 	错误代码							- [out]	-1失败，0成功
*/
int	drv_qmc6310_get_config_param(drv_qmc_config_param_t	*p_param);
/**
	@brief 		获取LSM的ACC数据
	@param 		p_data 								- [out]	返回的ACC三轴数据
	@return 	错误代码							- [out]	-1失败，0成功
*/
int	drv_qmc6310_get_mag_data(qmc_data_t	*p_data);






#ifdef __cplusplus
}
#endif

#endif
















