#ifndef MODULE_LCM_CTRL_H_
#define MODULE_LCM_CTRL_H_
#include <stdint.h>
#include <stdbool.h>
#include "../Define/define.h"

//------------------------------------------------------------------------------
#define PREAUTHMONEY						2000
#define RETURNIDLE_Timeout					60
#define DEFAULT_AC_INDEX                        (2)

#define TIME_MAX_SEC                            (2592000) // 一個月,秒數
#define POWER_MAX_KW                            (5000)
#define ENERGY_MAX_KWH                          (5000)

#define CMD_TITLE_1                             (0x5A)
#define CMD_TITLE_2                             (0xA5)
#define CMD_READ                                (0x80)
#define CMD_WRITE                               (0x81)
#define CMD_MULTI_WRITE                         (0x82)
#define CMD_MULTI_READ                          (0x83)

#define CMD_BACKLIGHT                           (0x01)
#define CMD_REGISTER                            (0x03)

#define CMD_HEADER_1                        0x5A
#define CMD_HEADER_2                        0xA5
#define CMD_REG_WRITE                       0x80
#define CMD_REG_READ                        0x81
#define CMD_REG_WRITE_DATA                  0x82
#define CMD_REG_READ_DATA                   0x83

#define REG_ADDRESS_READ_VERSION            0x0F
#define REG_ADDRESS_READ_RTC                0x10
#define REG_ADDRESS_READ_PAGE_ID            0x14
#define REG_ADDRESS_READ_BRIGHTNESS         0x31
#define REG_ADDRESS_WRITE_BRIGHTNESS        0X82
#define REG_ADDRESS_SET_PAGE_ID             0x84
#define REG_ADDRESS_SET_RTC                 0x9C
#define REG_TYPE_CONTROL                    0x00
#define REG_TYPE_RAM                        0x01
#define REG_TYPE_SPECIAL_CONTROL            0x02

#define _CHANGE_REMOTESTART     0x01
#define _CHANGE_REFUNDING       0x02
#define _CHANGE_REFUNDAMOUNT    0x03
#define _CHANGE_NOREFUND        0x04
#define _CHANGE_PREPAYMENTINFO  0x05
#define _CHANGE_PAYMENT_OK      0x06
#define _CHANGE_PAYMENT_FAIL    0x07


#define _Animation				0x1000
#define _Icon_TouchStart		0x1002
#define _Icon_Location			0x1004
#define _Icon_Week				0x1006
#define _Icon_Weather			0x1008
#define _Icon_Welcom_Ad			0x100A
#define _Icon_Select_Left		0x100C
#define _Icon_Select_Right		0x100E
#define _Icon_NHOA				0x1010
#define _Icon_Return			0x1012
#define _Icon_Donate			0x1014
#define _Icon_Add_Line			0x1016
#define _Icon_ShowLeft			0x1018
#define _Icon_ShowRight			0x101A
#define _Icon_ScanComplete		0x101C
#define _Icon_WordYes			0x101E
#define _Icon_WordNo			0x1020
#define _Icon_WordAddFriend		0x1022
#define _Icon_PayFrame			0x1024
#define _Icon_SenseRadio		0x1026
#define _Icon_MobilePay			0x1028
#define _Icon_CardPay			0x102A
#define _Icon_CreditCardFrame	0x102C
#define _Icon_PreAuth			0x102E
#define _Icon_Ani_Dot			0x1030
#define _Icon_PreAuth_Complete	0x1032
#define _Icon_Precharge			0x1034
#define _Icon_ChargeFrame		0x1036
#define _Icon_WordKW			0x1038
#define _Icon_ChargeCircle		0x103A
#define _Icon_ChargeBar			0x103C
#define _Icon_Paying			0x103E
#define _Icon_CompleteFrame		0x1040
#define _Icon_CompleteCircle	0x1042
#define _Icon_ExitAd			0x1044
#define _Icon_ExitBar			0x1046
#define _Icon_ExitWord			0x1048
#define _Icon_PlugoutFrame		0x104A
#define _Icon_PreAuthFail		0x104C
#define _Icon_ReWork			0x1050
#define _Icon_FixFrame			0x1052
#define _Icon_Warming0			0x1054
#define _Icon_Warming1			0x1056
#define _Icon_Warming2			0x1058
#define _Icon_Warming3			0x105A
#define _Icon_Warming4			0x105C
#define _Icon_StopCharge		0x105E
#define _Icon_CountDownBG		0x1060
#define _Icon_CancelCntDownTen	0x1062
#define _Icon_CancelCntDownDigits	0x1064
#define _Icon_ScanCntDownTen    0x1066
#define _Icon_ScanCntDownDigits 0x1068
#define _Icon_AuthCntDownTen    0x106A
#define _Icon_AuthCntDownDigits 0x106C

#define _String_Date			0x3000
#define _String_Tempture		0x3010
#define _QRCode_AddLine			0x3020
#define _String_ChargeRate		0x3030
#define _String_ChargeTime		0x3040
#define _String_ChargePower		0x3050
#define _String_Battery			0x3060
#define _Strting_Energy			0x3070
#define _String_Money			0x3080
#define _String_ParkRate		0x3090
#define _String_Carbon			0x30A0
#define _QRCode_Service			0x30B0
#define _Strting_Warming0		0x30C0
#define _Strting_Warming1		0x30D0
#define _Strting_Warming2		0x30E0
#define _Strting_Warming3		0x30F0
#define _Strting_Warming4		0x3100


#define _Touch_IDLE				0x1500
#define _Touch_Select_Left		0x1502
#define _Touch_Select_Right		0x1504
#define _Touch_Show_Left		0x1506
#define _Touch_Show_Right		0x1508
#define _Touch_Return			0x150A
#define _Touch_DonateBill		0x150C
#define _Touch_DonateYes		0x150E
#define _Touch_DonateNo			0x1510
#define _Touch_StopCharge		0x1512
#define _Touch_Stop_Confirm		0x1514
#define _Touch_Stop_Cancel		0x1516
#define _Touch_Pay_CreditCard	0x1518
#define _Touch_Pay_Icash		0x151A
#define _Touch_Pay_LinePay		0x151C

enum _TCC_ICON_LIST_ {
	/*
    _ICON_Empty 			= 0,
	_ICON_StatusInit,
	_ICON_StatusAuthorize,
	_ICON_StatusCharge,
	_ICON_StatusComplete,
	_ICON_AllIdle,
	_ICON_LeftGunSelect,
	_ICON_RightGunSelect,
	_ICON_AllSelect,
	_ICON_TCCare,
	_ICON_StartTouch,

	_ICON_Furthure 			= 15,
	_ICON_Weather,
	_ICON_Welcome,
	_ICON_QRCode,
	_ICON_exclamation,
	_ICON_plugin,
	_ICON_Plugout,
	_ICON_Return,
	_ICON_PrepareCharge,

	_ICON_min 				= 26,
	_ICON_Rate_13,
	_ICON_Complete,
	_ICON_kg,
	_ICON_Rate_14,
	_ICON_Exit,
	_ICON_HaveANiceDay,
	_ICON_HaveANiceTrip,
	_ICON_SaftDrive,
	_ICON_Charging,

	_ICON_Battery_0 		= 40,
	_ICON_Battery_1,
	_ICON_Battery_2,
	_ICON_Battery_3,
	_ICON_Battery_4,
	_ICON_Battery_5,
	_ICON_Battery_6,
	_ICON_Battery_7,
	_ICON_Battery_8,
	_ICON_Battery_9,
	_ICON_Battery_10,
	_ICON_Battery_11,
	_ICON_Battery_12,
	_ICON_Battery_13,
	_ICON_Battery_14,
	_ICON_Battery_15,
	_ICON_Battery_16,
	_ICON_Battery_17,
	_ICON_Battery_18,
	_ICON_Battery_19,
	_ICON_Battery_20,
	_ICON_Battery_21,
	_ICON_Battery_22,
	_ICON_Battery_23,
	_ICON_Battery_24,
	_ICON_Battery_25,
	_ICON_Battery_26,
	_ICON_Battery_27,
	_ICON_Battery_28,
	_ICON_Battery_29,
	_ICON_Battery_30,
	_ICON_Battery_31,
	_ICON_Battery_32,
	_ICON_Battery_33,
	_ICON_Battery_34,
	_ICON_Battery_35,
	_ICON_Battery_36,
	_ICON_Weather_Sun,
	_ICON_Weather_Cloudy,
	_ICON_Weather_Rain,
	_ICON_Weather_Thunder,
	_ICON_Weather_Snow,
	_ICON_Weather_Fog,

	_ICON_PrePare_1   = 86,
	_ICON_PrePare_2,
	_ICON_PrePare_3,
	_ICON_PrePare_4,
	_ICON_PrePare_5,
	_ICON_PrePare_6,
	_ICON_PrePare_7,
	_ICON_PrePare_8,
	_ICON_PrePare_9,
	_ICON_PrePare_10,
	_ICON_PrePare_11,
	_ICON_PrePare_12,
	_ICON_PrePare_13,
	_ICON_PrePare_14,
	_ICON_Left_CCS1_Off,
	_ICON_Left_CCS2_Off,
	_ICON_Left_CHAdeMO_Off,
	_ICON_Left_CCS1_ON,
	_ICON_Left_CCS2_ON,
	_ICON_Left_CHAdeMO_ON,
	_ICON_Right_CCS1_Off,
	_ICON_Right_CCS2_Off,
	_ICON_Right_CHAdeMo_Off,
	_ICON_Right_CCS1_ON,
	_ICON_Right_CCS2_ON,
	_ICON_Right_CHAdeMO_ON,
	_ICON_WARMING,
	_ICON_SELECT_TEXT,
	_ICON_MONDAY,
	_ICON_TUESDAY,
	_ICON_WENSDAY,
	_ICON_THRUDAY,
	_ICON_FRIDAY,
	_ICON_SATURDAY,
	_ICON_SUNDAY,
	_ICON_LOCATION_TAIPEI,

	_ICON_PAYFAIL = 126,
	_ICON_PROGREEPAY_1,
	_ICON_PROGREEPAY_2,
	_ICON_PROGREEPAY_3,
	_ICON_PROGREEPAY_4,
	_ICON_PROGREEPAY_5,
	_ICON_PROGREEPAY_6,
	_ICON_PROGREEPAY_7,
	_ICON_PROGREEPAY_8,
	_ICON_PROGREEPAY_9,
	_ICON_PROGREEPAY_10,
	_ICON_PROGREEPAY_11,
	_ICON_PROGREEPAY_12,
	_ICON_PROGREEPAY_13,
	_ICON_PROGREEPAY_14,
	_ICON_PROGREEPAY_15,
	_ICON_STOPSERVICE,
	_ICON_WELCOMELEFTCCS1,
	_ICON_WELCOMELEFTCCS2,
	_ICON_WELCOMELEFTCHADEMO,
	_ICON_WELCOMERIGHTCCS1,
	_ICON_WELCOMERIGHTCCS2,
	_ICON_WELCOMERIGHTCHADEMO,
	_ICON_PAYFAILLEFTCCS1,
	_ICON_PAYFAILLEFTCCS2,
	_ICON_PAYFAILLETCHADEMO,
	_ICON_PAYFAILRIGHTCCS1,
	_ICON_PAYFAILRIGHTCCS2,
	_ICON_PAYFAILRIGHTCHADEMO,
	*/
	_ICON_Empty 			= 0,
	_TCC_Week_Monday,
	_TCC_Week_Tuesday,
	_TCC_Week_Wensday,
	_TCC_Week_Thrusday,
	_TCC_Week_Friday,
	_TCC_Week_Saturday,
	_TCC_Week_Sunday,
	_TCC_TouchStart,
	_TCC_Sun,
	_TCC_Cloudy,
	_TCC_Rain,
	_TCC_Snow,
	_TCC_Thunder,
	_TCC_Fog,
	_TCC_Taipei_ZhongShan,
	_TCC_Hualien_Xiulin,
	_TCC_Welcom_Coffee,
	_TCC_SelectLeft_CCS1,
	_TCC_SelectLeft_CCS2,
	_TCC_SelectLeft_CHAdeMo,
	_TCC_SelectRight_CCS1,
	_TCC_SelectRight_CCS2,
	_TCC_SelectRight_CHAdeMo,
	_TCC_Return,
	_TCC_DonateBill,
	_TCC_GetBill,
	_TCC_ShowLeft_CCS1_Off,
	_TCC_ShowLeft_CCS2_Off,
	_TCC_ShowLeft_CHAdeMo_Off,
	_TCC_ShowLeft_CCS1_On,
	_TCC_ShowLeft_CCS2_On,
	_TCC_ShowLeft_CHAdeMo_On,
	_TCC_ShowRight_CCS1_Off,
	_TCC_ShowRight_CCS2_Off,
	_TCC_ShowRight_CHAdeMo_Off,
	_TCC_ShowRight_CCS1_On,
	_TCC_ShowRight_CCS2_On,
	_TCC_ShowRight_CHAdeMo_On,
	_TCC_ScanQR_Pass,
	_TCC_SelectPayMode,
	_TCC_CreditCard_Wifi,
	_TCC_CreditCard_Frame,
	_TCC_iCash,
	_TCC_LinePay,
	_TCC_CardSensing_Frame,
	_TCC_PreAuth,
	_TCC_Dot_0,
	_TCC_PaySuccess 		= 62,
	_TCC_Plugin,
	_TCC_ChargingFrame,
	_TCC_StopCharging,
	_TCC_String_KW,
	_TCC_Charging_Circle0,
	_TCC_Charging_Bar0     	= 104,
	_TCC_NHOA 				= 204,
	_TCC_WordYes			= 206,
	_TCC_WordNo,
	_TCC_Paying,
	_TCC_CompleteFrame,
	_TCC_CompleteCircle0,
	_TCC_EnjoyLife   		= 247,
	_TCC_BlackBar,
	_TCC_ExitAd,
	_TCC_PayFail,
	_TCC_Restart,
	_TCC_PlugOutFrame,
	_TCC_ErrorFrame,
	_TCC_Warming,
	_TCC_ShowLeftGunCharging_CCS1 = 292,
	_TCC_ShowLeftGunCharging_CCS2,
	_TCC_ShowLeftGunCharging_CHAdeMo,
	_TCC_ShowRightGunCharging_CCS1,
	_TCC_ShowRightGunCharging_CCS2,
	_TCC_ShowRightGunCharging_CHAdeMo,
	_TCC_ReturnFrontPage,
	_TCC_CancelNum_0,
	_TCC_TradeCancelString = 309,
	_TCC_TradeCancelFrame,
	_TCC_SecondSense,
	_TCC_CntDownNumber0,
};


/* Show Version */

#define _Version_Cabient_Name_Text          0x0500
#define _Version_Cabient_BootLoader_Text    0x0510
#define _Version_Cabient_Kernel_Text        0x0520
#define _Version_Cabient_CSU_Text           0x0530
#define _Version_Cabient_Priamry_Text       0x0540
#define _Version_Cabient_Relay0_Text        0x0550
#define _Version_Cabient_Relay1_Text        0x0560
#define _Version_Cabient_Fan_Text           0x0570
#define _Version_Cabient_IPAddr_Text        0x0580
#define _Version_Cabient_PSU1_Text          0x0590
#define _Version_Cabient_PSU2_Text          0x05A0
#define _Version_Cabient_PSU3_Text          0x05B0
#define _Version_Cabient_PSU4_Text          0x05C0
#define _Version_Cabient_PSU5_Text          0x05D0
#define _Version_Cabient_PSU6_Text          0x05E0
#define _Version_Cabient_PSU7_Text          0x05F0
#define _Version_Cabient_PSU8_Text          0x0600
#define _Version_Cabient_PSU9_Text          0x0610
#define _Version_Cabient_PSU10_Text         0x0620
#define _Version_Cabient_PSU11_Text         0x0630
#define _Version_Cabient_PSU12_Text         0x0640

#define _Version_Cabient_Primary_Text       0x0920
#define _Version_Cabient_Secondary_Text     0x0930

#define _Version_Cabient_Model_value        0x0650
#define _Version_Cabient_BootLoader_value   0x0660
#define _Version_Cabient_Kernel_value       0x0670
#define _Version_Cabient_CSU_value          0x0680
#define _Version_Cabient_Priamry_value      0x0690
#define _Version_Cabient_Relay0_value       0x06A0
#define _Version_Cabient_Relay1_value       0x06B0
#define _Version_Cabient_Fan_value          0x06C0
#define _Version_Cabient_IPAddr_value       0x06D0
#define _Version_Cabient_PSU_Prim1_value    0x06E0
#define _Version_Cabient_PSU_Prim2_value    0x06F0
#define _Version_Cabient_PSU_Prim3_value    0x0700
#define _Version_Cabient_PSU_Prim4_value    0x0710
#define _Version_Cabient_PSU_Prim5_value    0x0720
#define _Version_Cabient_PSU_Prim6_value    0x0730
#define _Version_Cabient_PSU_Sec1_value     0x0740
#define _Version_Cabient_PSU_Sec2_value     0x0750
#define _Version_Cabient_PSU_Sec3_value     0x0760
#define _Version_Cabient_PSU_Sec4_value     0x0770
#define _Version_Cabient_PSU_Sec5_value     0x0780
#define _Version_Cabient_PSU_Sec6_value     0x0790

#define _Version_Cabient_PSU_Prim7_value    0x09E0
#define _Version_Cabient_PSU_Prim8_value    0x09F0
#define _Version_Cabient_PSU_Prim9_value    0x1000
#define _Version_Cabient_PSU_Prim10_value   0x1010
#define _Version_Cabient_PSU_Prim11_value   0x1020
#define _Version_Cabient_PSU_Prim12_value   0x1030
#define _Version_Cabient_PSU_Sec7_value     0x1040
#define _Version_Cabient_PSU_Sec8_value     0x1050
#define _Version_Cabient_PSU_Sec9_value     0x1060
#define _Version_Cabient_PSU_Sec10_value    0x1070
#define _Version_Cabient_PSU_Sec11_value    0x1080
#define _Version_Cabient_PSU_Sec12_value    0x1090

#define _Version_Dispenser_Name_Text        0x07A0
#define _Version_Dispenser_BootLoader_Text  0x07B0
#define _Version_Dispenser_Kernel_Text      0x07C0
#define _Version_Dispenser_CSU_Text         0x07D0
#define _Version_Dispenser_Relay_Text       0x07E0
#define _Version_Dispenser_Fan_Text         0x07F0
#define _Version_Dispenser_Priamry_Text     0x0800
#define _Version_Dispenser_LCM_Text         0x0810
#define _Version_Dispenser_LED_Text         0x0820
#define _Version_Dispenser_Connector0_Text  0x0830
#define _Version_Dispenser_Connector1_Text  0x0840
#define _Version_Dispenser_IPAddr_Text      0x0850

#define _Version_Dispenser_Model_value      0x0860
#define _Version_Dispenser_BootLoader_value 0x0870
#define _Version_Dispenser_Kernel_value     0x0880
#define _Version_Dispenser_CSU_value        0x0890
#define _Version_Dispenser_Relay_value      0x08A0
#define _Version_Dispenser_Fan_value        0x08B0
#define _Version_Dispenser_Priamry_value    0x08C0
#define _Version_Dispenser_LCM_value        0x08D0
#define _Version_Dispenser_LED_value        0x08E0
#define _Version_Dispenser_Connector0_value 0x08F0
#define _Version_Dispenser_Connector1_value 0x0900
#define _Version_Dispenser_IPAddr_value     0x0910

#endif //MODULE_LCM_CTRL_H_