#ifndef _SRAM_VARIABLE_ADDRESS_H_
#define _SRAM_VARIABLE_ADDRESS_H_

/***********************变量地址定义*************************************/

/*设备信息 - LOG全局
地址范围：0x00B000 - 0x00BFFF*/ 
#define SRAM_LOG_Device_C5IO_Relay_Status				0x00B000	//继电器状态 - 3Byte
#define SRAM_LOG_Device_C5IO_DO_Status					0x00B003	//DO状态 - 1byte
#define SRAM_LOG_Device_C5IO_DI_Status					0x00B004	//DI状态 - 2Byte
#define SRAM_LOG_Device_C5MUSIC_Playback_Status			0x00B006	//音频 - 当前播放状态 - 1Byte
#define SRAM_LOG_Device_C5MUSIC_Volume_Status			0x00B007	//音频 - 当前播放音量 - 1Bye
#define SRAM_LOG_Device_C5MUSIC_idx_Status				0x00B008	//音频 - 当前播放序号 - 2Byte
#define SRAM_LOG_Device_Card_Status						0x00B00A	//插卡取电 - 1Byte		2025-09-03 已没使用
#define SRAM_LOG_Device_Temp_Status						0x00B00B	//温控器 - 2Byte

/**/
#define SRAM_LOG_Device_Switch_Type						0x00B00D	//开关类型 - 1Byte
#define SRAM_LOG_Device_Switch_Num						0x00B00E	//开关个数 - 1Byte
#define SRAM_LOG_Device_Switch1_Status					0x00B00F	//开关1数据 2Byte 一个开关占用2Byte数据内容
#define SRAM_LOG_Device_Switch2_Status					0x00B011	//开关2数据 2Byte 一个开关占用2Byte数据内容
#define SRAM_LOG_Device_Switch3_Status					0x00B013	//开关3数据 2Byte 一个开关占用2Byte数据内容
/*RCU重启原因记录，用于上报给服务器使用 2025-09-27
	0x01：软件复位
	0x02：上电复位RPOR
	0x03：外部手动复位
	0x04：从下电模式唤醒时的复位GRWSM
	0x05：看门狗复位
	0x06：Launcher_V4.4以下的看门狗复位(这个版本之前的无法区分复位源，一律都是看门狗复位)
	0x07：其他复位
*/
#define SRAM_LOG_RCU_Reboot_Reason						0x00B015	



/*设备信息 - UDP全局
地址范围：0x00C000 - 0x00CFFF*/ 
#define SRAM_UDP_Device_C5IO_Relay_Status				0x00C000	//继电器状态 - 3Byte
#define SRAM_UDP_Device_C5IO_DO_Status					0x00C003	//DO状态 - 1byte
#define SRAM_UDP_Device_C5IO_DI_Status					0x00C004	//DI状态 - 2Byte
#define SRAM_UDP_Device_C5MUSIC_Playback_Status			0x00C006	//音频 - 当前播放状态 - 1Byte
#define SRAM_UDP_Device_C5MUSIC_Volume_Status			0x00C007	//音频 - 当前播放音量 - 1Bye
#define SRAM_UDP_Device_C5MUSIC_idx_Status				0x00C008	//音频 - 当前播放序号 - 2Byte
#define SRAM_UDP_Device_Card_Status						0x00C00A	//插卡取电 - 1Byte
#define SRAM_UDP_Device_Temp_Status						0x00C00B	//温控器 - 2Byte
/**/
#define SRAM_UDP_Device_Switch_Type						0x00C00D	//开关类型 - 1Byte
#define SRAM_UDP_Device_Switch_Num						0x00C00E	//开关个数 - 1Byte
#define SRAM_UDP_Device_Switch1_Status					0x00C00F	//开关1数据 2Byte 一个开关占用2Byte数据内容


#define SRAM_UDP_ELEReport_Action						0x00C011	//UDP 取电上报中，取电服务状态动作判定
#define SRAM_UDP_ELEReport_EleState						0x00C012	//UDP 取电上报中，取电服务状态判定需不需要上报
#define SRAM_UDP_ELEReport_EleState_Last				0x00C013	
#define SRAM_UDP_ELEReport_CardState					0x00C014	//UDP 取电上报中，插卡取电状态判定需不需要上报
#define SRAM_UDP_ELEReport_CardState_Last				0x00C015
#define SRAM_UDP_ELEReport_CardType						0x00C016	//UDP 取电上报中，插卡取电身份判定需不需要上报
#define SRAM_UDP_ELEReport_CardType_Last				0x00C017
#define SRAM_UDP_ELEReport_VirtualCard					0x00C018	//UDP 取电上报中，无卡取电事件判定需不需要上报
#define SRAM_UDP_ELEReport_VirtualCard_Last				0x00C019
#define SRAM_UDP_Report_CarbonSatet						0x00C01A	//UDP 定期上报中，碳达人的状态

#define SRAM_UDP_ELEReport_EleState_Tick				0x00C01C	//UDP 取电上报中，取电服务状态改变时间戳
#define SRAM_UDP_ELEReport_CardState_Tick				0x00C020	//UDP 取电上报中，插卡取电状态改变时间戳
#define SRAM_UDP_ELEReport_CardType_Tick				0x00C024	//UDP 取电上报中，插卡取电身份改变时间戳
#define SRAM_UDP_ELEReport_VirtualCard_Tick				0x00C028	//UDP 取电上报中，无卡取电事件改变时间戳


/*SRAM中网络上报设备变化及下发控制缓冲区
地址范围：0x00D000 - 0x00DFFF*/
#define SRAM_UDP_SendData_Writeaddr					0x00D000			//设备动作数据写入地址
#define SRAM_UDP_SendData_Readaddr					0x00D004			//设备动作数据读取地址
#define SRAM_UDP_SendData_Tempaddr					0x00D008			//

#define SRAM_UDP_SendData_Startaddr					0x00D010			//设备动作数据保存起始地址
//#define SRAM_UDP_SendData_Endaddr					0x00D12A			//设备动作数据保存结束地址 - 测试使用
#define SRAM_UDP_SendData_Endaddr					0x00D7EA			//设备动作数据保存结束地址
#define SRAM_UDP_SendData_Size						0x9C				//一次发生最大数据量

#define SRAM_UDP_RecvData_Writeaddr					0x00D800			//接收服务器下发数据写入地址
#define SRAM_UDP_RecvData_Readaddr					0x00D804			//接收服务器下发数据读取地址
#define SRAM_UDP_RecvData_Tempaddr					0x00D808			//接收服务器下发数据临时地址
#define SRAM_UDP_RecvData_ControlNum				0x00D80C			//接收服务器下发控制设备数
#define SRAM_UDP_RecvData_Startaddr					0x00D810			//接收缓存数据起始地址
#define SRAM_UDP_RecvData_Endaddr					0x00DFEA			//接收缓存数据结束地址

/*临时全局变量 - 根据项目逻辑需要自行定义别名与增加地址
地址范围：0x00E000 - 0x00E1FF*/
#define SRAM_Global_Curtain_Start					0x00E000			//窗帘状态
#define SRAM_Global_Do_Not_Disturb_Start			0x00E001			//勿扰状态
#define SRAM_Global_Clear_Start						0x00E002			//清理状态
#define SRAM_Global_Mode_Start						0x00E003			//当前模式状态
#define SRAM_Global_NightMode_Start					0x00E004			//起夜状态
#define SRAM_Global_Off_Sleeplight_Flag				0x00E005			//关闭睡眠反馈灯标志位
#define SRAM_Global_Off_Sleeplight_Tick				0x00E006			//关闭睡眠反馈灯时间搓
#define SRAM_Global_Helpsleep_Mode_Start			0x00E00A			//静音模式状态
#define SRAM_Global_Volume_Plus_Start				0x00E00B			//音量+指示灯标志位
#define SRAM_Global_Volume_Plus_Tick				0x00E00F			//音量+指示灯时间戳
#define SRAM_Global_Volume_Subtraction_Start		0x00E013			//音量-指示灯标志位
#define SRAM_Global_Volume_Subtraction_Tick			0x00E014			//音量-指示灯时间戳
#define SRAM_Global_Helpsleep_Mode_Flag				0x00E018			//助眠模式控制标志位
#define SRAM_Global_Quiet_Mode_Status				0x00E019			//静音模式
#define SRAM_Global_Quiet_Mode_Flag					0x00E01A			//静音按键按下标志位
#define SRAM_Global_Quiet_Mode_Tick					0x00E01B			//静音按键按下时间搓
#define SRAM_Global_Door_Status_Flag				0x00E01C			//门磁触发标志位
#define SRAM_Global_Door_Status_Tick				0x00E01D			//门磁触发时间戳 - 4byte
#define SRAM_Global_SOS_Status_Flag					0x00E021			//SOS触发标志位
#define SRAM_Global_SOS_Status_Tick					0x00E022			//SOS闪烁时间戳
#define SRAM_Global_SOS_LEDStatus_Flag				0x00E026			//SOS闪烁灯状态标志位

#define SRAM_Global_Room_Rent_Status				0x00E027			//房间出租状态 0x02:出租 0x04:待租 0x08:退房 0x10:空房 服务器单向发送
#define SRAM_Global_Room_Rent_Flag					0x00E028			//控制标志位
#define SRAM_Global_Room_Rent_Tick					0x00E029			//控制时间戳
#define SRAM_Global_Card_Status						0x00E02D			//插卡标志位

#define SRAM_Global_Check_out_Status				0x00E031			//退房状态 0x00:未开启退房，0x01:退房确认中，0x02:开启退房
#define SRAM_Global_Check_out_Tick					0x00E032			//退房时间戳
#define SRAM_Global_Check_out_LED_Tick				0x00E036			//退房闪烁时间戳
#define SRAM_Global_Check_out_LED_Status			0x00E03A			//退房指示灯状态

//#define SRAM_Global_Power_on_Status		 			0x00E100			//干接点取电标志位
//#define SRAM_Global_Power_off_Tick					0x00E101			//拔卡时间搓 - 4Byte
//#define SRAM_Global_Window_Gauze_Start				0x00E105			//窗纱状态
//#define SRAM_Global_Ctrl_BackLight_Start		    0x00E106			//背光唤醒状态   1唤醒    0熄灭
/* 2025-09-08 修改 将0x0x00E100 ~ 0x00E1FF地址作为上电恢复参数 保存区域*/
#define SRAM_PowerOn_Restore_StartAddr				0x00E100
#define SRAM_PowerOn_Restore_Flag					0x00E100
#define SRAM_PowerOn_Restore_Len					0x00E101
#define SRAM_PowerOn_Restore_Check					0x00E102
#define SRAM_PowerOn_Restore_Param					0x00E103
#define SRAM_PowerOn_Restore_EndAddr				0x00E1FF

/*项目服务信息状态 - 根据项目逻辑需要自行定义别名与增加地址
地址范围：0x00E200 - 0x00E3FF*/
#define SRAM_Project_Service_CH1_State				0x00E200
#define SRAM_Project_Service_CH1_LastState			0x00E201
#define SRAM_Project_Service_CH2_State				0x00E202
#define SRAM_Project_Service_CH2_LastState			0x00E203
#define SRAM_Project_Service_CH3_State				0x00E204
#define SRAM_Project_Service_CH3_LastState			0x00E205
#define SRAM_Project_Service_CH4_State				0x00E206
#define SRAM_Project_Service_CH4_LastState			0x00E207
#define SRAM_Project_Service_CH5_State				0x00E208
#define SRAM_Project_Service_CH5_LastState			0x00E209
#define SRAM_Project_Service_CH6_State				0x00E20A
#define SRAM_Project_Service_CH6_LastState			0x00E20B
#define SRAM_Project_Service_CH7_State				0x00E20C
#define SRAM_Project_Service_CH7_LastState			0x00E20D
#define SRAM_Project_Service_CH8_State				0x00E20E
#define SRAM_Project_Service_CH8_LastState			0x00E20F
#define SRAM_Project_Service_CH9_State				0x00E210
#define SRAM_Project_Service_CH9_LastState			0x00E211
#define SRAM_Project_Service_CH10_State				0x00E212
#define SRAM_Project_Service_CH10_LastState			0x00E213
/*项目服务信息对应的别名 - 根据项目定义*/
#define SRAM_Service_Take_Electricity_State		 	SRAM_Project_Service_CH1_State			//服务信息 - 取电状态
#define SRAM_Service_Take_Electricity_LastState		SRAM_Project_Service_CH1_LastState		//服务信息 - 之前取电状态
#define SRAM_Service_Do_Not_Disturb_State			SRAM_Project_Service_CH2_State			//服务信息 - 勿扰
#define SRAM_Service_Do_Not_Disturb_LastState		SRAM_Project_Service_CH2_LastState		//服务信息 - 之前勿扰状态
#define SRAM_Service_Clear_State					SRAM_Project_Service_CH3_State			//服务信息 - 清理
#define SRAM_Service_Clear_LastState				SRAM_Project_Service_CH3_LastState		//服务信息 - 之前清理状态
#define SRAM_Service_CallOut_State					SRAM_Project_Service_CH4_State			//服务信息 - 呼叫
#define SRAM_Service_CallOut_LastState				SRAM_Project_Service_CH4_LastState		//服务信息 - 之前呼叫状态
#define SRAM_Service_Laundry_State					SRAM_Project_Service_CH5_State			//服务信息 - 洗衣
#define SRAM_Service_Laundry_LastState				SRAM_Project_Service_CH5_LastState		//服务信息 - 之前洗衣状态
#define SRAM_Service_Check_Out_State				SRAM_Project_Service_CH6_State			//服务信息 - 预约退房
#define SRAM_Service_Check_Out_LastState			SRAM_Project_Service_CH6_LastState		//服务信息 - 之前预约退房状态
#define SRAM_Service_Await_State					SRAM_Project_Service_CH7_State			//服务信息 - 等待
#define SRAM_Service_Await_LastState				SRAM_Project_Service_CH7_LastState		//服务信息 - 之前等待状态
#define SRAM_Service_SOS_State						SRAM_Project_Service_CH8_State			//服务信息 - SOS
#define SRAM_Service_SOS_LastState					SRAM_Project_Service_CH8_LastState		//服务信息 - 之前SOS状态

/*锦江都城 私有变量定义 地址范围：0x00E400 ~ 0x00E5FF*/
#define SRAM_Global_NodePir1_Status_Flag				0x00E400			//红外感应触发标志位
#define SRAM_Global_NodePir1_Status_Tick				0x00E401			//红外感应触发时间戳 - 4byte  用于第5路继电器延时
#define SRAM_Global_NodePir2_Status_Flag				0x00E405			//红外感应触发标志位
#define SRAM_Global_NodePir2_Status_Tick				0x00E406			//红外感应触发时间戳 - 4byte  用于第12路继电器延时

/*Launcher使用 用于记录Boot启动 写MCU Flash次数 大小：0x200 2025-04-28*/
#define SRAM_APP_FEATURE_2_CHECK_Addr					0x00E600

/*记录Launcher版本信息 大小：0x20 2025-07-07*/
#define SRAM_Launcher_SoftwareVer_Addr					0x00E800

/*Launcher使用 用于记录APP升级次数统计 大小:0x10 2026-01-14*/
#define SRAM_APP_Write_Count_Addr						0x00E900

/*2022.12.26 林开锐修改开始*/
/*设备离线状态记录	0x031400~0x031FFF	3K（每个设备保存6字节，一次总共能存509个设备）*/
#define SRAM_DEVICE_ONLINE_STATE_WRITE_ADDR				0x031400	//设备离线状态写入地址
#define SRAM_DEVICE_ONLINE_STATE_READ_ADDR				0x031404	//设备离线状态读取地址
#define SRAM_DEVICE_ONLINE_STATE_TEMP_ADDR				0x031408	//设备离线状态中间变量地址（用于清除读取的地址）
#define SRAM_DEVICE_ONLINE_STATE_START_ADDR				0x031410	//设备离线状态开始地址（实际开始写数据地址）
//#define SRAM_DEVICE_ONLINE_STATE_END_ADDR				0x031500	//设备离线状态结束地址（实际结束写数据地址） - 测试使用
#define SRAM_DEVICE_ONLINE_STATE_END_ADDR				0x031FFE	//设备离线状态结束地址（实际结束写数据地址）
/*2022.12.26 林开锐修改结束*/

#endif
