/*
 * @Author       : ChenJie
 * @Date         : 2022-01-23 13:45:09
 * @Version      : V3.0
 * @LastEditors  : ChenJie
 * @LastEditTime : 2022-01-23 17:58:54
 * @Description  : file content
 * @FilePath     : \PLAT\project\ec616_0h00\apps\qx_app\src\AT_CMD\AppGlobalVar.h
 */
/*
 * AppGlobal.h
 *
 *  Created on:
 *      Author: QiXiang_CHENJIE
 */
#ifndef APPGLOBALVAR_H_
#define APPGLOBALVAR_H_

#include "hal_adapter.h"
#define MAX_LOSTHEART 30

extern uint8 BleMacAddr[6];
extern uint8 BleTargetMacAddr[6];	/* 目标蓝牙地址 */
/* 管理蓝牙设备的全局变量 */
extern uint8 BleConnectControl;    /* 蓝牙连接管理 0-无操作 1-连接蓝牙 2-断开蓝牙 （车端蓝牙暂时不提供主动连接功能）*/
extern uint8 BlePwrControl; 	   	/* 蓝牙开关机  0-无操作  1-关闭蓝牙 2-开启蓝牙*/

/* 管理WiFi设备的全局变量 */
extern uint8 WiFiConnectControl;     	/* WiFi连接管理 0-无操作 1-连接WiFi 2-断开WiFi */
extern uint8 WiFiPwrControl;         	/* 0-无操作 1-关闭WiFI 2-开启WiFI */

/* 心跳丢失次数 */
extern uint8 heartTickLost_W;
extern uint8 heartTickLost_B;

/* EBC状态 */
extern uint8 EBC_State;		  	/* EBC当前状态 0-行车 1-通信 2-换电 */
extern uint8 EBC_ExchangeMode;   	/* EBC换电模式状态 0-无线蓝牙 1-有线连接 默认无线连接 */
extern uint8 EBC_LockMode;       	/* EBC解锁与锁紧模式  0-单步模式 1-自动模式 默认为单步模式*/
extern uint8 EBC_ExchangeKind;   	/* 换电连接器种类 0-4连接器 1-单连接器 */
extern uint8 EBC_AExchangeCheck; 	/* 允许换电判断 0-不允许 1-允许*/

/* 传感器状态 */
extern uint8 UnlockCheck;        	/* 解锁完成判断 0-完全未解锁 1-完全解锁 2-未完全解 */
extern uint8 LockCheck;          	/* 锁紧完成判断 0-完全未锁紧 1-完全锁紧 2-未完全锁紧*/
extern uint8 BatPlace;			  	/* 电池底座到位判断  0-完全未到位 1-完全到位 2-未完全到位 */
extern uint8 UnlockSensorSignal; 	/* 解锁传感器信号  传感器0-3的状态 每bit：1-触发，0-不触发 */
extern uint8 LockSensorSignal;   	/* 锁紧传感器信号 传感器0-3的状态 每bit：1-触发，0-不触发 */
extern uint8 BaseSensorSignal;   	/* 底座落座传感器 bit0-bit1：传感器0-1的状态 每bit：1-触发，0-无触发 */
extern uint8 InterlockSignal;    	/* 互锁信号  bit0：连接器互锁，bit1：整车互锁 */
extern uint8 SolValActuSt;          /* 电磁阀驱动状态 0：驱动关闭    1：驱动打开 */
extern uint8 AirPrValue;        	/* 压力传感器气压值 单位Mpa，精度0.01Mpa*/
extern uint8 TheManFluid;        	/* 热管理液位状态 1-液位正常 0-液位过低 */

/* 车辆信息 */
extern uint8 WholeVehComState;   	/* 整车通信状态 0-通信中断 1-通信正常 */
extern uint8 KeySignal;          	/* 钥匙信号 1-触发（钥匙上电）0-无触发（钥匙下电）*/
extern uint8 VehicleState;       	/* 车辆状态 0001-车辆启动状态  0010-熄火 0011-  其他状态1111-无效 */
extern uint8 BrakeSignal; 		  	/* 刹车信号 bit0：手刹，bit1：脚刹，0-无效，1-有效 */
extern uint8 GearSignal;         	/* 挡位信号 FF-倒挡（R）0-空挡（N）X-前进档（DX）X取1-12 */
extern uint8 TurnSignal;         	/* 方向盘转动 bit0-左侧转向灯 bit1-右侧转向灯 每bit 0-OFF，1-ON*/
extern uint8 FrontAxleValue;	  	/* 前桥气压值 */
extern uint8 RearAxleValue;	  	  /* 后桥气压值 */
extern uint8 VehicleVin[17]; 		/* 车辆VIN码 17长度 */
/* 电池信息 */
extern uint8 BatComState; 		  	/* 电池通信状态 0-通信中断 1-通信正常 */
extern uint8 BatBMS_State;		  	/* 电池BMS状态 0-高压开启 1-预充 2-高压关断 3-高压上电故障 */
extern uint8 MContactorsState;	  	/* 主接触器状态 0-保留 1-断开 2-关闭 3-异常 */
extern uint8 SOC; 				  	/* 电池SOC 0.10% */
extern uint8 BatValtage; 		  	/* 电池电压 0.1V */
extern uint8 SOH;				  	/* 电池SOH 0.40% */
extern uint8 BatSN[26];		  	/* 电池SN码 */
extern uint16 BatteryCurrent;      /* 电池电流 */
extern uint16 BatRateRnergy;      /* 电池额定能量 */
/* 故障数据 */
extern uint8 ErrorLevel; 		  	/* 故障等级 */
extern uint8 ErrorCode;		 	/* 故障码 */
/* 累计信息 */
extern uint32 AccruedChargeAh;   	/* 累计充入Ah数  Ah 0.1 */
extern uint32 AccruedChargeKwh;  	/* 累计充入kwh数 kwh 0.1 */
extern uint32 AccruedDischargeAh;	/* 累计放出Ah数 Ah 0.1 */
extern uint32 AccruedDischargeKwh;	/* 累计放出kwh数 kwh 0.1*/
extern uint16 SingleChargeAh;    	/* 单次充电Ah数 Ah 0.1 */
extern uint16 SingleChargeKwh;   	/* 单次充电kwh数 kwh 0.1 */
extern uint32 AccruedMileage; 	  	/* 累计行驶力创 km 0.1 */
extern uint32 SS_AccruedChargeAh;	/* 累计换电站充入Ah数 Ah 0.1 */
extern uint32 SS_AccruedChargeKwh;	/* 累计换电站充入kwh数 kwh 0.1 */
extern uint32 IG_AccruedChargeAh; 	/* 累计插枪充入Ah数 Ah 0.1 */
extern uint32 IG_AccruedChargeKwh; /* 累计插枪充入kwh数 kwh 0.1 */
extern uint32 AFE_AccruedChargeAh; /* 累计动能回馈Ah数 */
extern uint32 AFE_AccruedChargeKwh;/* 累计动能回馈kwh数 */
extern uint16 ExchangeNum; 		/* 换电次数 */
extern uint16 ExchangeNumSuc; 		/* 换电成功次数 */
extern uint8 BleStateFlg;    	/* 蓝牙当前状态，0-未连接，1-已经连接 2-电源关机   -- 默认0与1状态下电源开机*/
extern uint8 tcp_server_process_status; /* WiFi当前状态 0-未连接，1-已经连接 2-电源关机 */

/* 通讯模块反馈状态 */
extern uint8 BLEConFed; 		   	 /* 0-无操作 1-蓝牙已连接 2-蓝牙已断开 */
extern uint8 BLEPWRFed;			 /* 0-无操作 1-蓝牙已关机 2-蓝牙已开机 */
extern uint8 WiFiConFed;			 /* 0-无操作 1-WIFI已连接 2-WIFI已断开 */
extern uint8 WiFiPWRFed;			 /* 0-无操作 1-WIFI已关机 2-WIFI已开机 */
extern uint8 EffectiveDataFed;		 /* 0-无数据应答 1-有数据应答 */
extern uint8 EmeStopSta; 			 /* 0-无操作，1-进行紧急停止 */
extern uint8 LockSta; 				 /* 0-无操作，1-控制锁机构锁紧（和解锁互斥，以锁紧为准） */
extern uint8 UnlockSta; 			 /* 0-无操作，1-控制锁机构解锁 */
extern uint8 AutoLockSta; 			 /* 0-无操作，1-锁机构自动锁紧 */
extern uint8 AutoUnlockSta; 		 /* 0-无操作，1-锁机构自动解锁 */
extern uint8 StateSwitch; 			 /* 0-无操作，1-切换为换电状态，2-切换为行车状态 */

extern uint8 BleCurrentRole;
extern uint8 BleSetRole;
extern uint8 BleSetRoleEnable;
extern uint8 BleConnectEnable;

extern uint8 BleDisconnectEnable;
extern uint8 BleDisconnectFlg;
extern uint8 BlePwrControlEnable;
extern uint8 BlePwrControlFlg;
extern uint8 BlePwrState;
extern uint32 BleVersion;
extern uint8 AT_MsgFlag;
extern QueueHandle_t McuDataSendHandle;
extern QueueHandle_t McuDataRecvHandle;
extern SemaphoreHandle_t ConnSemaphore;
extern SemaphoreHandle_t ConnSemaphore_wifi;
extern QueueHandle_t McuDataSend_wifi;
extern QueueHandle_t McuDataRecv_wifi;
extern uint8 wifiConnFlg;
extern uint8 wifiAskFlg ;
typedef struct
{
	uint8 RealLen;
    uint8 *DataPtr;
} QueueDataTrans_Type;

/*Can*/
extern uint8 CanIf_u8TxConfirmCnt;
extern boolean CanIf_bTxFlag;
extern uint8 CanIf_u8RxIndicationCnt;
extern boolean CanIf_bRxFlag;
extern QueueHandle_t CanRecvQueueHandle;
extern QueueHandle_t Uart2ToCanDataHandle;
extern QueueHandle_t CanToUart2DataHandle;

extern uint8  AT_WAT_Flag;
extern uint8  AT_WIFI_INFO_FLAG;
extern uint8  AT_IPINFO_SET_Flag;
extern uint8  AT_WPROTCLOSE_FLAG;
extern uint8  AT_WPROTSET_FLAG;
extern uint8  W_IP_FLAG;
extern uint8  W_TcpDisconnect;




extern uint8 lock_sta;
#define WIFI_MASTER false
#define WIFI_SLAVE  true

#endif /* APPGLOBALVAR_H_ */
