#ifndef MODULE_LCM_CTRL_H_
#define MODULE_LCM_CTRL_H_

//------------------------------------------------------------------------------
#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 NOODOE_QR_CODE_URL                    "https://ev-alpha-test.noodoe.com/station?id=" ////For Audi
#define NOODOE_QR_CODE_URL                      "https://ev.noodoe.com/station?id=" ////For Audi

#define LEFT_GUN_LOCAL_NAME     "1A"
#define RIGHT_GUN_LOCAL_NAME    "1B"
// Page
#define __VIEW_ALL_IDLE_        0x0001
#define __VIEW_LEFT_CHARGE_     0x0002
#define __VIEW_RIGHT_CHARGE_    0x0003
#define __VIEW_ALL_CHARGE_      0x0004
#define __START_SCAN_LEFT           0x0005
#define __START_AUTHORIZE_      0x0006
#define __START_AUTHORIZE_FAIL_LEFT 0x0007
#define __WAIT_PLUGIN_          0x0008
#define __LINKING_ERROR_LEFT    0x0009
#define __PRE_CHARGE_           0x000A
#define __VIEW_ALL_FAIL         0x000B
#define __VIEW_L_FAIL_R_CHARGE  0x000C
#define __VIEW_L_CHARGE_R_FAIL  0x000D
/*
#define __DETAIL_VIEW_          0x000B
#define __STOP_SCAN_RFID_       0x000C
#define __STOP_SCAN_APP_        0x000D
*/
#define __STOP_AUTHORIZE_       0x000E
//#define __STOP_RFID_FAIL_       0x000F

#define __WAIT_PLUGOUT_LEFT         0x0010
#define __SUMMARY_LEFT              0x0011
#define __EMERGENCY_BUTTON_     0x0012
#define __MAINTAIN_PAGE_        0x0013
#define __ERROR_PAGE_LEFT           0x0014
#define __SHOW_CABIENT_VERSION  0x0015
#define __SHOW_DISPENSER_VERASION 0x0016
#define __LINKING_ERROR_RIGHT   0x0017
#define __START_AUTHORIZE_FAIL_RIGHT 0x0018
#define __CONFIRM_STOP_LEFT     0x0019
#define __CONFIRM_STOP_RIGHT    0x001A
#define __WAIT_PLUGOUT_RIGHT    0x001B
#define __SUMMARY_RIGHT         0x001C
#define __ERROR_PAGE_RIGHT      0x001D
#define __WAIT_PLUGIN_RIGHT     0x001E
#define __START_SCAN_RIGHT      0x001F
#define __COMMUNICATION_PROCESS        0x0020
#define __GFD_PROCESS           0x0021
#define __PRECHARGE_PROCESS     0x0022
#define __VIEW_L_FAIL_R_IDLE    0x0023
#define __VIEW_L_IDLE_R_FAIL    0x0024

// ICON Map Address
#define _LeftGun_type_pic_U         0x0001
#define _LeftGun_type_pic_L         0x0003
#define _LeftGun_type_name          0x0005
#define _LeftGun_type_speed         0x0007
#define _LeftGun_Soc_Digits         0x0009
#define _LeftGun_Soc_Tens           0x000B
#define _LeftGun_Soc_Hundreds       0x000D
#define _RightGun_type_pic_U        0x0011
#define _RightGun_type_pic_L        0x0013
#define _RightGun_type_name         0x0015
#define _RightGun_type_speed        0x0017
#define _RightGun_Soc_Digits        0x0019
#define _RightGun_Soc_Tens          0x001B
#define _RightGun_Soc_Hundreds      0x001D
#define _Confirm_Gun_Left_symbol    0x0021
#define _Confirm_Gun_Right_symbol   0x0023
#define _ProgressBar_LEVEL          0x0025
#define _LeftGun_Symbol_Icon        0x0027
#define _RightGun_Symol_Icon        0x0029
#define _Percent_Number_Digits      0x0031
#define _Percent_Number_Tens        0x0033
#define _Percent_Number_Hundreds    0x0035
#define _Animation_Communcation     0x0037
#define _Animation_GFD              0x0039
#define _Animation_Precharge        0x003B
#define _Animation_Running          0x003D
#define _LeftGun_ConnectorId        0x003F
#define _RightGun_ConnectorId       0x0041

#define _LeftGun_info_time          0x0043
#define _LeftGun_info_cap           0x0047
#define _LeftGun_info_money         0x0049
#define _RightGun_info_time         0x004B
#define _RightGun_info_cap          0x0051
#define _RightGun_info_money        0x0053
#define _Icon_Warming0              0x0055
#define _Icon_Warming1              0x0057
#define _Icon_Warming2              0x0059
#define _Icon_Warming3              0x005B
#define _Icon_Warming4              0x005D

// String Map Address
#define _LeftGun_location           0x0100
#define _LeftGun_info_power         0x0110

#define _LeftGun_info_power_number  0x0150
#define _RightGun_location          0x0200
#define _RightGun_info_power        0x0210

#define _RightGun_info_power_number 0x0250
#define _Confirm_Gun_Left_name      0x0300
#define _Confirm_Gun_Right_name     0x0310
#define _Count_Down_Time            0x0320
#define _Detail_Power_Num           0x0330
#define _Detail_Time_Num            0x0340
#define _Detail_Cap_Num             0x0350
#define _Detail_Money_Num           0x0360
#define _Summary_total_money        0x0400
#define _Summary_Start_time_hr      0x0410
#define _Summary_Start_time_min     0x0420
#define _Summary_end_time_hr        0x0430
#define _Summary_end_time_min       0x0440
#define _Summary_duration_min       0x0450
#define _Summary_max_power          0x0460
#define _Summary_average_power      0x0470
#define _Summary_cap                0x0480
#define _Summary_cal_Total_money    0x0490
#define _Summary_cal_discount       0x04A0
#define _Summary_cal_Settlement     0x04B0
#define _Summary_duration_sec       0x04C0
#define _QR_CODE_AUTHORIZE          0x04D0
#define _Text_Warming0              0x1100
#define _Text_Warming1              0x1110
#define _Text_Warming2              0x1120
#define _Text_Warming3              0x1130
#define _Text_Warming4              0x1140

int DemoPage[22] = {
    1, // All Idle
    5, // Left Gun authorize
    6, // Authorizing
    8, // Left gun plugin Gun
    32, // preparing
    33, // Prepare for EVSE
    34, // Precharging
    2,  // Left Gun Charging
    31, // Right Gun authorize
    6,  // Authorizing
    30, // Right Gun plug in
    32, // preparing
    33, // Prepare for EVSE
    34, // Precharging
    04, // All Gun charging
    25, // Stop Left Gun
    16, // Left Gun plug out
    17, // Left Gun summary
    03, // Right gun charging
    26, // Right Gun stop
    27, // Right Gun Plug out
    28, // Right Gun summary
};

enum _ICON_LIST_ {
    _ICON_Empty,
    _ICON_CCS1_GUN_U = 1,
    _ICON_CCS1_GUN_L,
    _ICON_CCS2_GUN_U,
    _ICON_CCS2_GUN_L,
    _ICON_CCS1_Name,
    _ICON_CCS2_Name,
    _ICON_Speed,
    _ICON_High_Speed,
    _ICON_CCS1_Symbol,
    _ICON_CCS2_Symbol,
    _ICON_Power_Symbol,

    _ICON_Red_Num_0 = 31,
    _ICON_Red_Num_1,
    _ICON_Red_Num_2,
    _ICON_Red_Num_3,
    _ICON_Red_Num_4,
    _ICON_Red_Num_5,
    _ICON_Red_Num_6,
    _ICON_Red_Num_7,
    _ICON_Red_Num_8,
    _ICON_Red_Num_9,
    _ICON_Red_Percent,
    _ICON_White_Num_0,
    _ICON_White_Num_1,
    _ICON_White_Num_2,
    _ICON_White_Num_3,
    _ICON_White_Num_4,
    _ICON_White_Num_5,
    _ICON_White_Num_6,
    _ICON_White_Num_7,
    _ICON_White_Num_8,
    _ICON_White_Num_9,
    _ICON_White_Percent,
    _ICON_Card_Power,
    _ICON_Card_Time,
    _ICON_Card_Cap,
    _ICON_Card_Money,
    _ICON_CONNECTOR_1,
    _ICON_CONNECTOR_2,
    _ICON_CONNECTOR_A = 73,
    _ICON_CONNECTOR_B,
    _ICON_CONNECTOR_C,
    _ICON_CONNECTOR_D,
    _ICON_CONNECTOR_E,
    _ICON_CONNECTOR_F,
    /*
    _ICON_ProgressBar_10 = 60,
    _ICON_ProgressBar_10_cantrary,
    _ICON_ProgressBar_20,
    _ICON_ProgressBar_20_cantrary,
    _ICON_ProgressBar_30,
    _ICON_ProgressBar_30_cantrary,
    _ICON_ProgressBar_40,
    _ICON_ProgressBar_40_cantrary,
    _ICON_ProgressBar_50,
    _ICON_ProgressBar_50_cantrary,
    _ICON_ProgressBar_60,
    _ICON_ProgressBar_60_cantrary,
    _ICON_ProgressBar_70,
    _ICON_ProgressBar_70_cantrary,
    _ICON_ProgressBar_80,
    _ICON_ProgressBar_80_cantrary,
    _ICON_ProgressBar_90,
    _ICON_ProgressBar_90_cantrary,
    _ICON_ProgressBar_100,
    */
    _ICON_CUR_POWER = 79,
    _ICON_STRING_KW,
    _ICON_SPIN_0,
    _ICON_SPIN_1,
    _ICON_SPIN_2,
    _ICON_SPIN_3,
    _ICON_SPIN_4,
    _ICON_SPIN_5,
    _ICON_SPIN_6,
    _ICON_SPIN_7,
    _ICON_BTY_10 = 110,
    _ICON_BTY_12 = 112,
    _ICON_BTY_14 = 114,
    _ICON_BTY_16 = 116,
    _ICON_BTY_18 = 118,
    _ICON_BTY_20 = 120,
    _ICON_BTY_22 = 122,
    _ICON_BTY_24 = 124,
    _ICON_BTY_26 = 126,
    _ICON_BTY_28 = 128,
    _ICON_BTY_30 = 130,
    _ICON_BTY_32 = 132,
    _ICON_BTY_34 = 134,
    _ICON_BTY_36 = 136,
    _ICON_BTY_38 = 138,
    _ICON_BTY_40 = 140,
    _ICON_BTY_42 = 142,
    _ICON_BTY_44 = 144,
    _ICON_BTY_46 = 146,
    _ICON_BTY_48 = 148,
    _ICON_BTY_50 = 150,
    _ICON_BTY_52 = 152,
    _ICON_BTY_54 = 154,
    _ICON_BTY_56 = 156,
    _ICON_BTY_58 = 158,
    _ICON_BTY_60 = 160,
    _ICON_BTY_62 = 162,
    _ICON_BTY_64 = 164,
    _ICON_BTY_66 = 166,
    _ICON_BTY_68 = 168,
    _ICON_BTY_70 = 170,
    _ICON_BTY_72 = 172,
    _ICON_BTY_74 = 174,
    _ICON_BTY_76 = 176,
    _ICON_BTY_78 = 178,
    _ICON_BTY_80 = 180,
    _ICON_BTY_82 = 182,
    _ICON_BTY_84 = 184,
    _ICON_BTY_86 = 186,
    _ICON_BTY_88 = 188,
    _ICON_BTY_90 = 190,
    _ICON_BTY_92 = 192,
    _ICON_BTY_94 = 194,
    _ICON_BTY_96 = 196,
    _ICON_BTY_98 = 198,
    _ICON_BTY_100 = 200,
};


/* 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_