/*********************************************************************************************************
* File    : haltypes.h
* sunpeng : 2018-5-7
*********************************************************************************************************/

#ifndef __HALTYPES_H__
#define __HALTYPES_H__


/*** 主函数调试模式，定以后代表开启，注释掉后关闭调试模式 ***/
//#define DEBUG_MAIN

/********************* 硬件采用的方案 ********************/
#define ESP8266_Station_Mode 		    1			/*采用ESP方案的WiFi服务端模式*/
#define CC254x_Slave_Mode				2			/*采用CC254x方案的蓝牙客户端模式*/
#define NRF52832_Slave_Mode				3			/*采用NRF52832 SOC方案的蓝牙客户端模式*/
#define CC254X_Peripheral_Mode			4			/*采用CC254X方案的蓝牙从机模式*/
#define NRF51822_Peripheral_Mode		5			/*采用NRF51822 SOC方案的蓝牙从机模式*/
#define NRF51802_Peripheral_Mode		6			/*采用NRF51802/NRF51822 SOC方案的蓝牙从机模式 GK*/

// 魔方无线芯片类型
#define ARCH_MODE  NRF52832_Slave_Mode

/***************************魔方阶数*****************************/
#define CUBE_ND_MODE_2D 			1			/*二阶魔方*/
#define CUBE_ND_MODE_3D 			2			/*三阶魔方*/
#define CUBE_ND_MODE_1D_MAG 		3			/*1x2简易魔方*/

//  魔方二阶、三阶 宏
#define CUBE_ND_MODE  CUBE_ND_MODE_3D

//  魔方阶数字符串名字
#if CUBE_ND_MODE_1D_MAG == CUBE_ND_MODE
#define CUBE_NAME_ND				"1x2x1"

#elif CUBE_ND_MODE_2D == CUBE_ND_MODE
#define CUBE_NAME_ND				"2x2x2"

#elif CUBE_ND_MODE_3D == CUBE_ND_MODE
#define CUBE_NAME_ND				"3x3x3"

#endif
/**************************魔方放大倍数******************************/
#define CUBE_NX_MODE_1X  			1			/*魔方放大1倍版本*/
#define CUBE_NX_MODE_2X  			2			/*魔方放大2倍版本*/
#define CUBE_NX_MODE_1X18  			3			/*魔方放大1.18倍版本*/

//  魔方体积倍数
#define CUBE_NX_MODE  CUBE_NX_MODE_1X18

/***************************方案开发代号*****************************/
#define DEVICE_NAME_BASE			"ECube"         /* 设备名前缀，可以用于蓝牙名 */

#if ARCH_MODE == NRF52832_Slave_Mode
#define DEVICE_VERSION				"R1"         	/* 设备版本代号 */
#endif

/************************************************************************************/
#define HW_VOICE_TYPE_BEEP			(1)		//声音硬件为蜂鸣器
#define HW_VOICE_TYPE_SPEAKER		(2)		//声音硬件为扬声器

/************************  通信协议数据源  *************************/
#define PROTOCOL_DATA_SOURCE_UART			1		/*通信协议数据源为串口*/
#define PROTOCOL_DATA_SOURCE_BLE			2		/*通信协议数据源为蓝牙*/
#define PROTOCOL_DATA_SOURCE_UART_BLE		3		/*通信协议数据源为串口+蓝牙*/

/************************  是否配置运动传感器  *************************/
#define MOTION_SENSOR_TYPE_NONE					1		/*无运动传感器*/
#define MOTION_SENSOR_TYPE_3X_ACCELERATOR		2		/*三轴加速度传感器*/
#define MOTION_SENSOR_TYPE_3X_GYROSCOPE			3		/*三轴陀螺仪传感器*/
#define MOTION_SENSOR_TYPE_3X_MAGNETOMETER		4		/*三轴磁力传感器*/
#define MOTION_SENSOR_TYPE_6X_ACCEL_GYRO		5		/*三轴加速度+三轴陀螺仪传感器*/
#define MOTION_SENSOR_TYPE_9X_ACCEL_GYRO_MAG	6		/*三轴加速度+三轴陀螺仪+三轴加速度传感器*/

/************************  电源模式  *************************/
#define POWER_TIMEOUT_OFF_MODE			1				/*电源超时关闭模式*/
#define POWER_LONGTIME_ON_MODE			2				/*电源常开模式*/

/************************  按键定义模式  *************************/
#define KEY_SWITCH_SERIAL_MODE			1				/*按键切换串行模式*/
#define KEY_SWITCH_SEPERATE_MODE		2				/*按键切换分散模式*/

/************************ 转动检测模式  *************************/
#define ROTATION_DETECT_20_40_MODE				1		/*转动检测20/40模式*/
#define ROTATION_DETECT_20_40_ACK_MODE			2		/*转动检测20/40确认模式*/
#define ROTATION_DETECT_15_30_MODE				3		/*转动检测15/30模式*/
#define ROTATION_DETECT_15_30_ACK_MODE			4		/*转动检测15/30确认模式*/


#if ARCH_MODE == NRF52832_Slave_Mode
#define PROTOCOL_DATA_SOURCE 	PROTOCOL_DATA_SOURCE_BLE	/* 设备版本代号 */
#define MOTION_SENSOR_TYPE	MOTION_SENSOR_TYPE_NONE			/*运动传感器类型*/
#define POWER_WORKING_MODE	POWER_LONGTIME_ON_MODE			/*电源工作模式*/
#define KEY_SWITCH_MODE		KEY_SWITCH_SERIAL_MODE			/* 按键切换模式 */
#define ROTATION_DETECT_MODE	ROTATION_DETECT_20_40_MODE	/*转动检测模式*/


#endif

#define SHUTDOWN_TIMEOUT_IN_SECONDS		(300)		/*关机倒计时时间 单位s*/


#endif

/*********************************************end of file*********************************************/

