/***********************************************************************
  * @brief  Initialise the resource for count.
  * @param  None
  * @retval None
************************************************************************/
void key_event_handler(void * p_event_data, uint16_t event_size)
{
	key_event_t * key_event_tmp = p_event_data;
	
	switch(key_event_tmp->eKey_event)
	{
		case KEY_INIT:
			KEY_Init();
			break;

		case KEY_HANDLE:
			#ifdef KEY_DEBUG
				printf("[KEY] KEY_HANDLE...\r\n");
			#endif
			if(key_is_pressed)
			{
				if(DataMem_GetTopGas() < REMAIN_GAS_MIN)
				{
					beeper_event.eBeeper_event = BEEPER;
					beeper_event.beeper_times = BEEPER_TIMES_REMEAN_GAS_LOW;
					app_sched_event_put(&beeper_event,sizeof(beeper_event),beeper_event_handler);
				}
				
				lcd_event.eLcd_event = LCD_DISPLAY_REMAIN_GAS;
            	app_sched_event_put(&lcd_event,sizeof(lcd_event),lcd_event_handler);

				key_is_pressed = 0;
			}
			break;
			
		default:
			break;
	}
}
uint32_t DataMem_GetRemainGas(void)
{
	uint32_t real_gas = 0;
	uint32_t top_gas = 0;

	#ifdef DATAMEM_DEBUG
		printf("[DATAMEM] DataMem_GetRemainGas\r\n");
	#endif

	real_gas = DataMem_GetRealGas();
	top_gas = DataMem_GetTopGas();

	return (top_gas - real_gas);
}