Commit 1ad0a9ce authored by 时海鑫's avatar 时海鑫

feat:提交代码 amt

parent 1aa19581
#include "AMT630H.h"
#include <stdint.h>
#include "UartProtocol.h"
#include "Components.h"
#include "PicBin.h"
#include "GpioUser.h"
//#include "AMT630H_Datas.h"
#define AMT630H_ERR_TIME 50000U
#define AMT630H_RELEASE_MODE 1U
void mwAmt630hUartRecvData(void);
#define UART2_BUF 0x1000U
unsigned int AMT630H_InitTime = 0;
uint8_t g_sysFlag_Lcdcheck = 0;
/* Initialization */
LCD_TFT_PARA_ST LcdSoundParamterData;
SOFTWARE_VERSION_ST amt630Version;
LCD_TFT_MIPI_PARA_ST g_LCD_TFT_MIPI_PARA_ST;
const uint8_t verify[48U] = {196u,203,149,157,48,48,49,86,
49,46,51,57,255,255,255,255,
50,46,48,48,255,255,255,255,
50,48,50,53,48,49,48,54,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0};
RN6752_PARA_ST Rn6752InputType;
uint16_t AMT630_CLK_TIME;
uint8_t Amt630hInitFinishFlag = 0;
uint32_t Amt630hInitTimerCnts = 0;
uint32_t Amt630hSequentialTimerCnts = 0;
uint32_t Amt630hFlashCheckTimerCnts = 0;
uint32_t Amt630hServiceTimerCnts = 0;
/* SOC Error */
uint16_t AMT630H_REQ_Time[ALIVE_COUNTER_TOTAL] = { 0 };
uint8_t AMT630H_Err = 0U;
uint8_t AMT630H_AliveCounter[ALIVE_COUNTER_TOTAL] = { 0 };
uint16_t AMT630H_CrcErrTime = 0;
uint32_t AMT630H_CrcErrCounter = 0;
uint8_t AMT630H_CrcErrMaxCounter = 0;
/* Flash Check */
#define FLASH_CHECK_TIME_NUM 20000
s_AMT630H_FlashCheck_t AMT630H_FlashCheck;
/* Delay Time */
unsigned long Delay_Time = 0;
unsigned long Delay_Time_Set = 0;
/* Refresh Time */
unsigned long AMT630H_RefreshTime = 0;
static uint8_t AMT630H_Animation_Start = 0;
static uint8_t AMT630H_Animation_Finish = 0;
static uint16_t AMT630H_Animation_DispPic = 0;
static uint16_t AMT630H_Animation_RefreshTime = 0;
static uint16_t AMT630H_Animation_RefreshTime_default = 0;
// static const uint16_t BootAnimationList[AMT630H_ANIMATION_PIC_NUM] = {
// 0,
// };
void AMT630_CLK(void)
{
// AMT630_CLK_TIME += 100;
// if (AMT630_CLK_TIME <= 3000)
// {
// PackedTransfer_SetTftIoMode(1);
// }
// else
// {
// PackedTransfer_SetTftIoMode(0);
// if (AMT630_CLK_TIME == 6000)
// AMT630_CLK_TIME = 0u;
// }
}
void AMT630H_Animation_PlayProc(uint16_t PicIndex)
{
unsigned char *pBuf;
uint32_t tmpLen = 0;
SetPageGuid(GRAPHICS_PAGE_0, 1, 0, 0);
SetPageBackground(GRAPHICS_PAGE_0, PicIndex);
PackedTransfer_Page();
// PackedTransfer_GetSwVer();
}
/* Timer */
void AMT630H_Timer(unsigned char Tms)
{
unsigned char i = 0U;
for(i = 0; i < ALIVE_COUNTER_TOTAL; i++)
{
if(AMT630H_REQ_Time[i] < AMT630H_ERR_TIME)
{
AMT630H_REQ_Time[i] += Tms;
}
}
if(AMT630H_RefreshTime < AMT630H_REFRESH_TIME)
{
AMT630H_RefreshTime += Tms;
}
if(Delay_Time < Delay_Time_Set)
{
Delay_Time += Tms;
}
if(AMT630H_InitTime < 5000)
{
AMT630H_InitTime += Tms;
}
if(AMT630H_Animation_Finish == 0)
{
if(AMT630H_Animation_RefreshTime < AMT630H_ANIMATION_TIME)
{
AMT630H_Animation_RefreshTime += Tms;
}
}
else
{
AMT630H_Animation_RefreshTime = 0;
}
}
void Delay_Time_Ctrl(unsigned long Tms)
{
Delay_Time = 0;
Delay_Time_Set = Tms;
while(Delay_Time < Delay_Time_Set)
{
RTE_WDT_Clear();
}
Delay_Time = 0;
Delay_Time_Set = 0;
}
void Delay_Time_Ctrl1(unsigned long Tms)
{
Delay_Time = 0;
Delay_Time_Set = Tms;
while(Delay_Time < Delay_Time_Set)
{
RTE_WDT_Clear();
}
Delay_Time = 0;
Delay_Time_Set = 0;
}
uint8_t UartRevBuff[0x1000] = { 0 };
uint8_t UartRevBuff1[UART2_BUF] = {0};
uint32_t UartLastCnt = 0;
uint32_t UartRevCnts = 0;
void Amt630hUartRecvData(uint16_t u16UARTData)
{
UartRevBuff[UartRevCnts++] = (u16UARTData & 0xff);
if (UartRevCnts >= 0x1000)
{
UartRevCnts = 0;
}
}
void AMT630H(void)
{
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN03, GpioOut_High);
Gen_TimeDelay(50 , 1000);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN03, GpioOut_Low);
Gen_TimeDelay(120, 1000);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN03, GpioOut_High);
}
void AMT630H_RstCtrl(void)
{
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN04, GpioOut_High);
RTE_GPIO_Set_Level(VCC_33_EN_MCU, 0);//630
RTE_GPIO_Set_Level(VCC1V2_AMT_EN, 0);//630
Delay_Time_Ctrl(10);
RTE_GPIO_Set_Level(VCC1V2_AMT_EN, 1);
RTE_GPIO_Set_Level(ABS_Faulty_lights, 1);//630
Delay_Time_Ctrl(15);
RTE_GPIO_Set_Level(VCC_33_EN_MCU, 1);
RTE_GPIO_Config(RTE_GPIO_PORT13_PIN00, GpioOut_High);//燃油水温切电使能
Delay_Time_Ctrl(20);
}
void Amt630hInit(void)
{
uint8_t i = 0;
AMT630H_RstCtrl();
AMT630H();
Delay_Time_Ctrl(100);
// RTE_GPIO_Set_Level(STBYB_LCD_MCU, 0);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN04, RTE_GPIO_DIR_IN);
Delay_Time_Ctrl(20);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN03, GpioOut_Low);
Delay_Time_Ctrl(20);
RTE_GPIO_Set_Level(ABS_Faulty_lights, 0);//1.8vEN
// RTE_GPIO_Set_Level(MCU_RSTB_LCD, 0);
Delay_Time_Ctrl(100);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN04, GpioOut_High);
Delay_Time_Ctrl(10);
RTE_GPIO_Set_Level(VCC1V2_AMT_EN, 1);
RTE_GPIO_Set_Level(ABS_Faulty_lights, 1);//630
Delay_Time_Ctrl(15);
RTE_GPIO_Set_Level(VCC_33_EN_MCU, 1);
Delay_Time_Ctrl(20);
AMT630H();
AMT630_CLK_TIME = 0u;
AMT630H_RefreshTime = AMT630H_REFRESH_TIME;
// Error State Init
AMT630H_Err = 0U;
for(i = 0; i < ALIVE_COUNTER_TOTAL; i++)
{
AMT630H_REQ_Time[i] = 0U;
AMT630H_AliveCounter[i] = 0;
}
AMT630H_CrcErrTime = 0;
AMT630H_CrcErrCounter = 0;
// Param Config
LcdSoundParamterData.LcdWidth = 320;
LcdSoundParamterData.LcdHeight = 1280;
LcdSoundParamterData.LcdBpp = 32;
LcdSoundParamterData.LcdInterfaceType = LCD_INTERFACE_MIPI;
LcdSoundParamterData.LcdWiringMode = LCD_WIRING_MODE_RGB;
LcdSoundParamterData.LcdWiringBitOrder = LCD_WIRING_BIT_ORDER_MSB;
g_LCD_TFT_MIPI_PARA_ST.MipiLane = 3;
g_LCD_TFT_MIPI_PARA_ST.MipiDisplaymMode = 0;
LcdSoundParamterData.LcdTimingVBP = 12;
LcdSoundParamterData.LcdTimingVFP = 16;
LcdSoundParamterData.LcdTimingVSW = 2;
LcdSoundParamterData.LcdTimingHBP = 50;
LcdSoundParamterData.LcdTimingHFP = 50;
LcdSoundParamterData.LcdTimingHSW = 24;
LcdSoundParamterData.LcdClkFreq = 26200000;
g_LCD_TFT_MIPI_PARA_ST.MipiNpPolarityInverse = 0;
g_LCD_TFT_MIPI_PARA_ST.MipiClkFreq = 280000000;
// LcdSoundParamterData.LcdWidth = 1024;
// LcdSoundParamterData.LcdHeight = 600;
// LcdSoundParamterData.LcdBpp = 32;
// LcdSoundParamterData.LcdVideoInputValid = 0;
// LcdSoundParamterData.Ark7116ResetPin = 0;
// LcdSoundParamterData.LcdInterfaceType = LCD_INTERFACE_LVDS;
// LcdSoundParamterData.LcdWiringMode = LCD_WIRING_MODE_BGR;
// LcdSoundParamterData.LcdWiringBitOrder = LCD_WIRING_BIT_ORDER_MSB;
// LcdSoundParamterData.LcdDotClkReverse = 0; /* NuoMa 50pin TFT */
// LcdSoundParamterData.LvdsPanelFormat = LVDS_PANEL_FORMAT_TI;
// LcdSoundParamterData.LvdsPanelData = LVDS_PANEL_DATA_8BIT;
// LcdSoundParamterData.LcdTimingVBP = 12;
// LcdSoundParamterData.LcdTimingVFP = 20;
// LcdSoundParamterData.LcdTimingVSW = 4;
// LcdSoundParamterData.LcdTimingHBP = 160;
// LcdSoundParamterData.LcdTimingHFP = 160;
// LcdSoundParamterData.LcdTimingHSW = 24;
// LcdSoundParamterData.LcdClkFreq = 51200000;
// LcdSoundParamterData.SoundChannelNum = 0;
// LcdSoundParamterData.SoundFreq = AUDIO_FREQ_48K;
SetLcdParameter(&LcdSoundParamterData,&g_LCD_TFT_MIPI_PARA_ST,AMT630_UART3,&Rn6752InputType);
SetSwVerBuf((uint8_t*)&amt630Version);
User_PicIndexDataInit();
ResetInitedState();
AnalysisUartData();
AMT630H_InitTime = 0;
AMT630H_Animation_Start = 0;
AMT630H_Animation_Finish = 0;
AMT630H_Animation_DispPic = 0;
AMT630H_Animation_RefreshTime = 0;
AMT630H_Animation_RefreshTime_default = AMT630H_ANIMATION_REFRESHTIME_DEF(0);
Amt630hInitFinishFlag = 0;
AMT630H_FlashCheck.Flag = 0;
AMT630H_FlashCheck.InquireTime = 0;
AMT630H_FlashCheck.CheckStateTime = 0;
AMT630H_FlashCheck.Result = 0;
}
void AMT630H_Sleep12(void)
{
if (Get_Abnormal_voltage_condition() != 1u)
{
if (Common_GetIgnOffTime() > 2000)
{
PackedTransfer_SetTftIoMode(0);
}
else
{
if (Common_GetIgnOnTimeL() > 1000)
{
PackedTransfer_SetTftIoMode(1);
}
// else
// {
// PackedTransfer_SetTftIoMode(0);
// }
}
}
}
void AMT630H_Sleep(void)
{
// RTE_GPIO_Set_Level(STBYB_LCD_MCU, 0);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN04, RTE_GPIO_DIR_IN);
Delay_Time_Ctrl(20);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN03, GpioOut_Low);
Delay_Time_Ctrl(20);
RTE_GPIO_Set_Level(VCC_33_EN_MCU, 0);
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN03, RTE_GPIO_DIR_IN);//VCC1V2_AMT_EN(630H电源)
RTE_GPIO_Config(RTE_GPIO_PORT13_PIN00, RTE_GPIO_DIR_IN);//燃油水温切电使能
RTE_GPIO_Set_Level(ABS_Faulty_lights, 0);//1.8vEN
// RTE_GPIO_Set_Level(MCU_RSTB_LCD, 0);
}
static void AMT630H_AliveCounterMonitor(void)
{
uint8_t i = 0;
if(AMT630H_CrcErrCounter != GetCrcErrCnts())
{
AMT630H_CrcErrCounter = GetCrcErrCnts();
AMT630H_CrcErrTime++;
if(AMT630H_CrcErrTime >= 120)
{
// AMT630H_Err = 1;
}
for(i = 0; i < ALIVE_COUNTER_TOTAL; i++)
{
AMT630H_REQ_Time[i] = 0;
}
}
for(i = 0; i < ALIVE_COUNTER_TOTAL; i++)
{
if(AMT630H_AliveCounter[i] != GetAliveCounter(i))
{
AMT630H_AliveCounter[i] = GetAliveCounter(i);
AMT630H_REQ_Time[i] = 0;
if(AMT630H_CrcErrMaxCounter < AMT630H_CrcErrTime)
{
AMT630H_CrcErrMaxCounter = (unsigned char)AMT630H_CrcErrTime;
}
AMT630H_CrcErrTime = 0;
}
if(AMT630H_REQ_Time[i] >= AMT630H_ERR_TIME)
{
AMT630H_Err = 1;
}
}
}
void AMT630H_Main(void)
{
unsigned char i;
AnalysisUartData();
mwAmt630hUartRecvData();
// SetSwVerBuf(amt630Version);
if(GetLcdInitSt() != 1)
{
for(i = 0; i < ALIVE_COUNTER_TOTAL; i++)
{
AMT630H_REQ_Time[i] = 0U;
}
return;
}
// Get_RESET();
AMT630H_AliveCounterMonitor();
if(AMT630H_Err == 1U)
{
AMT630H_Err = 0;
Amt630hInit();
AMT630H_Animation_Finish = 1;
return;
}
if(g_sysFlag_Lcdcheck == 1)
{
if(AMT630H_FlashCheck.Flag == 0)
{
AMT630H_FlashCheck.Flag = 1;
AMT630H_FlashCheck.InquireTime = 0;
AMT630H_FlashCheck.CheckStateTime = 0;
PackedTransfer_CheckFlash();
AMT630H_FlashCheck.Result = 0xFF;
}
if(AMT630H_FlashCheck.Flag == 1)
{
// if(AMT630H_FlashCheck.InquireTime >= 100)
{
AMT630H_FlashCheck.InquireTime = 0;
AMT630H_FlashCheck.Result = PackedTransfer_CheckFlashGetResult();
if(AMT630H_FlashCheck.Result != 0xFF)
{
if(AMT630H_FlashCheck.Result == 1)
{
// PackedTransfer_CheckFlashForceDisplay(DISPLAY_CHECK_PASS, 3000);
AMT630H_FlashCheck.Flag = 3;
}
else if (AMT630H_FlashCheck.CheckStateTime >= FLASH_CHECK_TIME_NUM)
{
// PackedTransfer_CheckFlashForceDisplay(DISPLAY_CHECK_FAIL, 60000);
AMT630H_FlashCheck.Flag = 2;
}
}
}
// else
// {
// PackedTransfer_CheckFlashForceDisplay(DISPLAY_CHECKING, 60000);
// }
}
}
if (SYS_OPR_STAT_IGN_ON)
{
if(1)
{
AMT630H_Animation_RefreshTime = 0;
if(AMT630H_RefreshTime >= AMT630H_REFRESH_TIME)
{
AMT630H_RefreshTime = 0;
AMT630H_GUI_DisplayProc();
//SetPageGuid(GRAPHICS_PAGE_0, 1, 0, 0);
//SetPageBackground( GRAPHICS_PAGE_0, Pic_0001_0_0 );
//SetPagePic(GRAPHICS_PAGE_0, Pic_0002_751_440);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0003_681_441);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0005_521_444);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0010_90_443);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0012_0_95);
//PackedTransfer_Page();
}
}
else
{
// AMT630H_RefreshTime = 0;
// if(AMT630H_Animation_Start == 0)
// {
// AMT630H_Animation_Start = 1;
// AMT630H_Animation_RefreshTime_default = AMT630H_ANIMATION_REFRESHTIME_DEF(0);
// }
// if(AMT630H_Animation_RefreshTime >= AMT630H_Animation_RefreshTime_default)
// {
// AMT630H_Animation_RefreshTime = 0;
// AMT630H_Animation_PlayProc(BootAnimationList[AMT630H_Animation_DispPic]);
// AMT630H_Animation_DispPic++;
// if(AMT630H_Animation_DispPic >= AMT630H_ANIMATION_PIC_NUM)
// {
// AMT630H_Animation_Finish = 1;
// }
// }
}
}
else
{
AMT630H_Animation_RefreshTime = 0;
if(AMT630H_RefreshTime >= AMT630H_REFRESH_TIME)
{
AMT630H_RefreshTime = 0;
AnalysisUartData();
SetPageGuid(GRAPHICS_PAGE_0, 5, 2, 0);
SetPageBackground(GRAPHICS_PAGE_0, Pic_0002_0_0);
PackedTransfer_Page();
// AMT630H_GUI_DisplayProc();
}
}
}
unsigned char AMT630H_isInitFinish(void)
{
if((AMT630H_InitTime >= 600) || (GetLcdInitSt() == 1))
{
return 1;
}
else
{
return 0;
}
}
uint8_t rx_flag = 0;
void mwAmt630hUartRecvData(void)
{
uint32_t rxCnt = 0;
uint32_t tmpCnt = 0;
uint8_t overFlowFlag = 0;
rxCnt = DMAVEC->CTRL[4].DMRLD - DMAVEC->CTRL[4].DMACT;// accumulate receive Counts
if (rxCnt != UartLastCnt)
{
rx_flag = 1;
if (rxCnt > UartLastCnt)
{
tmpCnt = rxCnt - UartLastCnt;
}
else
{
tmpCnt = UART2_BUF - UartLastCnt;
overFlowFlag = 1;
}
UartLastCnt = rxCnt;
}
if (rx_flag == 1)
{
if (overFlowFlag == 0)
{
memcpy(&UartRevBuff[UartRevCnts],&UartRevBuff1[UartRevCnts],tmpCnt);
UartRevCnts += tmpCnt;
if (UartRevCnts >= UART2_BUF)
{
UartRevCnts = 0;
}
}
else
{
memcpy(&UartRevBuff[UartRevCnts],&UartRevBuff1[UartRevCnts],tmpCnt);
UartRevCnts = 0;
memcpy(&UartRevBuff[UartRevCnts],&UartRevBuff1[UartRevCnts],rxCnt);
overFlowFlag = 0;
UartRevCnts += rxCnt;
}
rx_flag = 0;
}
}
#ifndef AMT_630H_H
#define AMT_630H_H
#include <stdint.h>
typedef enum
{
EM_FLASH_CHECK_RESULT_NO_ACT = 0,
EM_FLASH_CHECK_RESULT_CHECKING,
EM_FLASH_CHECK_RESULT_SUCCESS,
EM_FLASH_CHECK_RESULT_FAIL,
}EM_FLASH_CHECK_RESULT_T;
typedef struct
{
uint8_t Flag;
uint32_t InquireTime;
uint32_t CheckStateTime;
uint8_t Result;
}s_AMT630H_FlashCheck_t;
#define AMT630H_REFRESH_TIME 25U
#define AMT630H_ANIMATION_TIME 3000U //ms
#define AMT630H_ANIMATION_PIC_NUM 146U
#define AMT630H_ANIMATION_REFRESHTIME_DEF(x) ((AMT630H_ANIMATION_TIME > x) ? \
(((AMT630H_ANIMATION_TIME - x) / AMT630H_ANIMATION_PIC_NUM) - 5) : \
(((AMT630H_ANIMATION_TIME) / AMT630H_ANIMATION_PIC_NUM) - 5))
void AMT630H_Timer(unsigned char Tms);
void Delay_Time_Ctrl(unsigned long Tms);
void Amt630hUartRecvData(uint16_t u16UARTData);
void AMT630H_Animation_PlayProc(uint16_t PicIndex);
void AMT630H_RstCtrl(void);
void Amt630hInit(void);
void AMT630H_Sleep(void);
void AMT630H_Sleep12(void);
static void AMT630H_AliveCounterMonitor(void);
void AMT630H_Main(void);
unsigned char AMT630H_isInitFinish(void);
extern uint32_t Amt630hInitTimerCnts ;
void AMT630H(void);
void AMT630_CLK(void);
#endif
#include "Components.h"
#include "UartProtocol.h"
#include "PicBin.h"
#include "Telltales_user.h"
#include "Display.h"
#include "PowerManagement\PowerManag_user.h"
#define NO_PIC 0XFFFFU
uint32_t Uptime = 0u; /*开机时间*/
uint8_t Uptime_Staus = 0u; /*开机时间结束标志位*/
extern uint16_t Disp_Valid;
extern uint8_t Old_Staus;
uint16_t Stime = 0u;
uint16_t Vtime = 0u;
uint32_t DispVechileSpeed = 0u;
extern uint8_t g_sysFlag_Lcdcheck;
extern s_AMT630H_FlashCheck_t AMT630H_FlashCheck;
uint32_t Color_Timer = 0U;
uint8_t Color_State = 0U;
static const uint32_t StartUp_Animation_Array[40u] = {Pic_0413_0_0,Pic_0412_0_0,Pic_0410_0_0,Pic_0410_0_0,Pic_0409_0_0,Pic_0408_0_0,Pic_0407_0_0,Pic_0406_0_0,Pic_0405_0_0,Pic_0404_0_0,Pic_0403_0_0,Pic_0402_0_0,Pic_0401_0_0,Pic_0400_0_0,Pic_0399_0_0,Pic_0398_0_0,
Pic_0397_0_0,Pic_0396_0_0,Pic_0395_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,
Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0,Pic_0394_0_0};
/*转速表盘序列帧图片*/
static const uint32_t Rotate_Speed[201u] = {Pic_0254_1_448, Pic_0253_1_448, Pic_0252_1_448, Pic_0251_1_448, Pic_0250_1_448, Pic_0249_1_448, Pic_0248_1_448, Pic_0247_1_448, Pic_0246_1_448, Pic_0245_1_448, Pic_0244_1_448, Pic_0243_1_448, Pic_0242_1_448, Pic_0241_1_448, Pic_0240_1_448,
Pic_0239_1_448, Pic_0238_1_448, Pic_0237_1_448, Pic_0236_1_448, Pic_0235_1_448, Pic_0234_1_448, Pic_0233_1_448, Pic_0232_1_448, Pic_0231_1_448, Pic_0230_1_448, Pic_0229_1_448, Pic_0228_1_448, Pic_0227_1_448, Pic_0226_1_448, Pic_0225_1_448,
Pic_0224_1_448, Pic_0223_1_448, Pic_0222_1_448, Pic_0221_1_448, Pic_0220_1_448, Pic_0219_1_448, Pic_0218_1_448, Pic_0217_1_448, Pic_0216_1_448, Pic_0215_1_448, Pic_0214_1_448, Pic_0213_1_448, Pic_0212_1_448, Pic_0211_1_448, Pic_0210_1_448,
Pic_0209_1_448, Pic_0208_1_448, Pic_0207_1_448, Pic_0206_1_448, Pic_0205_1_448, Pic_0204_1_448, Pic_0203_1_448, Pic_0202_1_448, Pic_0201_1_448, Pic_0200_1_448, Pic_0199_1_448, Pic_0198_1_448, Pic_0197_1_448, Pic_0196_1_448, Pic_0195_1_448,
Pic_0194_1_448, Pic_0193_1_448, Pic_0192_1_448, Pic_0191_1_448, Pic_0190_1_448, Pic_0189_1_448, Pic_0188_1_448, Pic_0187_1_448, Pic_0186_1_448, Pic_0185_1_448, Pic_0184_1_448, Pic_0183_1_448, Pic_0182_1_448, Pic_0181_1_448, Pic_0180_1_448,
Pic_0179_1_448, Pic_0178_1_448, Pic_0177_1_448, Pic_0176_1_448, Pic_0175_1_448, Pic_0174_1_448, Pic_0173_1_448, Pic_0172_1_448, Pic_0171_1_448, Pic_0170_1_448, Pic_0169_1_448, Pic_0168_1_448, Pic_0167_1_448, Pic_0166_1_448, Pic_0165_1_448,
Pic_0164_1_448, Pic_0163_1_448, Pic_0162_1_448, Pic_0161_1_448, Pic_0160_1_448, Pic_0159_1_448, Pic_0158_1_448, Pic_0157_1_448, Pic_0156_1_448, Pic_0155_1_448, Pic_0154_1_448, Pic_0153_1_448, Pic_0152_1_448, Pic_0151_1_448, Pic_0150_1_448,
Pic_0149_1_448, Pic_0148_1_448, Pic_0147_1_448, Pic_0146_1_448, Pic_0145_1_448, Pic_0144_1_448, Pic_0143_1_448, Pic_0142_1_448, Pic_0141_1_448, Pic_0140_1_448, Pic_0139_1_448, Pic_0138_1_448, Pic_0137_1_448, Pic_0136_1_448, Pic_0135_1_448,
Pic_0134_1_448, Pic_0133_1_448, Pic_0132_1_448, Pic_0131_1_448, Pic_0130_1_448, Pic_0129_1_448, Pic_0128_1_448, Pic_0127_1_448, Pic_0126_1_448, Pic_0125_1_448, Pic_0124_1_448, Pic_0123_1_448, Pic_0122_1_448, Pic_0121_1_448, Pic_0120_1_448,
Pic_0119_1_448, Pic_0118_1_448, Pic_0117_1_448, Pic_0116_1_448, Pic_0115_1_448, Pic_0114_1_448, Pic_0113_1_448, Pic_0112_1_448, Pic_0111_1_448, Pic_0110_1_448, Pic_0109_1_448, Pic_0108_1_448, Pic_0107_1_448, Pic_0106_1_448, Pic_0105_1_448,
Pic_0104_1_448, Pic_0103_1_448, Pic_0102_1_448, Pic_0101_1_448, Pic_0100_1_448, Pic_0099_1_448, Pic_0098_1_448, Pic_0097_1_448, Pic_0096_1_448, Pic_0095_1_448, Pic_0094_1_448, Pic_0093_1_448, Pic_0092_1_448, Pic_0091_1_448, Pic_0090_1_448,
Pic_0089_1_448, Pic_0088_1_448, Pic_0087_1_448, Pic_0086_1_448, Pic_0085_1_448, Pic_0084_1_448, Pic_0083_1_448, Pic_0082_1_448, Pic_0081_1_448, Pic_0080_1_448, Pic_0079_1_448, Pic_0078_1_448, Pic_0077_1_448, Pic_0076_1_448, Pic_0075_1_448,
Pic_0074_1_448, Pic_0073_1_448, Pic_0072_1_448, Pic_0071_1_448, Pic_0070_1_448, Pic_0069_1_448, Pic_0068_1_448, Pic_0067_1_448, Pic_0066_1_448, Pic_0065_1_448, Pic_0064_1_448, Pic_0063_1_448, Pic_0062_1_448, Pic_0061_1_448, Pic_0060_1_448,
Pic_0059_1_448, Pic_0058_1_448, Pic_0057_1_448, Pic_0056_1_448, Pic_0055_1_448, Pic_0054_1_448};
/*车速数字*/
static const uint16_t DS_Figure[10u] = {Pic_0255_85_619, Pic_0256_86_621, Pic_0257_86_619, Pic_0258_85_619, Pic_0259_86_617, Pic_0260_85_619, Pic_0261_85_619, Pic_0262_86_619, Pic_0263_85_619, Pic_0264_86_619};
/*水温表格*/
static const uint16_t Water_Temperature[10u] = {Pic_0039_0_795, Pic_0038_0_880, Pic_0037_0_888, Pic_0036_0_896, Pic_0035_0_904, Pic_0034_0_911, Pic_0033_0_919, Pic_0032_0_928, Pic_0030_0_936,NO_PIC};
/*水温数字*/
static const uint16_t WT_Figure[10u] = {Pic_0042_2_845, Pic_0043_2_845, Pic_0044_2_845, Pic_0045_2_845, Pic_0046_2_844, Pic_0047_2_845, Pic_0048_2_845, Pic_0049_2_845, Pic_0050_2_845, Pic_0051_2_845};
/*燃油表格*/
static const uint16_t Fuel_Oil[10u] = {Pic_0013_0_409, Pic_0012_0_382, Pic_0011_0_374, Pic_0010_0_364, Pic_0009_0_358, Pic_0008_0_350, Pic_0007_0_341, Pic_0006_0_334, Pic_0005_0_324, Pic_0004_0_312};
/*燃油表格开路*/
static const uint16_t F_Fuel_Oil[9u] = {Pic_0012_0_382, Pic_0011_0_374, Pic_0010_0_364, Pic_0009_0_358, Pic_0008_0_350, Pic_0007_0_341, Pic_0006_0_334, Pic_0005_0_324, Pic_0004_0_312};
/*燃油数字*/
static const uint16_t F_Figure[10u] = {Pic_0017_2_430, Pic_0018_2_431, Pic_0019_2_430, Pic_0020_2_430, Pic_0021_2_430, Pic_0022_2_430, Pic_0023_2_430, Pic_0024_2_430, Pic_0025_2_430, Pic_0026_2_430};
/*电压数字*/
static const uint16_t V_Figure[10u] = {Pic_0277_296_1163, Pic_0279_296_1164, Pic_0280_296_1163, Pic_0281_296_1164, Pic_0282_296_1163, Pic_0283_296_1164, Pic_0284_296_1163, Pic_0285_296_1163, Pic_0286_296_1163, Pic_0287_296_1163};
/*时间数字*/
static const uint16_t T_Figure[10u] = {Pic_0277_6_1195, Pic_0279_6_1196, Pic_0280_6_1195, Pic_0281_6_1196, Pic_0282_6_1195, Pic_0283_6_1196, Pic_0284_6_1195, Pic_0285_6_1195, Pic_0286_6_1195, Pic_0287_6_1195};
/*里程数字*/
static const uint16_t OT_Figure[10u] = {Pic_0277_6_96, Pic_0279_6_97, Pic_0280_6_96, Pic_0281_6_97, Pic_0282_6_96, Pic_0283_6_97, Pic_0284_6_96, Pic_0285_6_96, Pic_0286_6_96, Pic_0287_6_96};
/*上行驶模式*/
static const uint16_t A_Driving_Mode[3u] = {Pic_0295_214_870, Pic_0294_214_870, Pic_0293_214_870};
/*中行驶模式*/
static const uint16_t M_Driving_Mode[3u] = {Pic_0299_125_824, Pic_0300_125_819, Pic_0301_125_801};
/*下行驶模式*/
static const uint16_t U_Driving_Mode[3u] = {Pic_0298_77_866, Pic_0296_77_867, Pic_0297_77_867};
/*轮胎选择模式*/
static const uint16_t T_Dis_Sizes[4u] = {Pic_0359_147_972, Pic_0359_113_972, Pic_0359_79_972, Pic_0359_45_972};
/*左侧档位*/
static const uint16_t L_Tap_Position[5u] = {Pic_0273_120_114, Pic_0275_120_116, Pic_0271_120_117, Pic_0272_120_115,Pic_0274_120_115 };
/*中间档位*/
static const uint16_t M_Tap_Position[5u] = {Pic_0268_19_157, Pic_0267_6_152, Pic_0270_21_166, Pic_0269_19_157, Pic_0266_19_157};
/*右侧档位*/
static const uint16_t R_Tap_Position[5u] = {Pic_0273_120_330,Pic_0275_120_332, Pic_0271_120_333, Pic_0272_120_331,Pic_0274_120_331 };
/*自扫*/
static const uint16_t Self_Scanning[5u] = {Pic_0002_0_0,Pic_0414_0_0, Pic_0415_0_0, Pic_0416_0_0, Pic_0417_0_0};
void AMT630H_GUI_ReadPosittion_Display(void);
void AMT630H_GUI_BACKGRAND(void);
void AMT630H_GUI_DisplayProc(void)
{
AnalysisUartData();
SetPageGuid(GRAPHICS_PAGE_0, 5, 2, 0);
if(Get_Dis_Old_Staus() == 3)
{
Uptime = 40u;
}
if(Get_Dis_Old_Staus() == 4)
{
Uptime = 0u;
Old_Staus = 5u;
}
if (Get_Voltage_Anomaly() == 2)
{
Uptime = 40u;
}
if (Uptime < 40u)
{
// AnalysisUartData();
// SetPageGuid(GRAPHICS_PAGE_0, 5, 2, 0);
SetPageBackground(GRAPHICS_PAGE_0, (uint16_t)StartUp_Animation_Array[Uptime]);
Uptime++;
Uptime_Staus = 0u;
}
if (Uptime >= 40)
{
Uptime_Staus = 1u;
if(Common_GetIgnOnTime() > 2000)
{
Disp_Valid = 0u;
}
else
{
Disp_Valid = 1u;
}
AMT630H_GUI_Background();
}
PackedTransfer_Page();
}
void AMT630H_GUI_Background()
{
if (SYS_OPR_STAT_IGN_ON)
{
// if (Uptime <= 400u)
// {
// Uptime++;
// SetPageBackground(GRAPHICS_PAGE_0, StartUp_Animation_Array[Uptime / 10u]);
// }else
// {
AMT630H_GUI_ReadPosittion_Display();
// }
}
else
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0002_0_0);
}
}
/*背景显示函数*/
void AMT630H_GUI_BACKGRAND()
{
SetPageBackground(GRAPHICS_PAGE_0, Pic_0001_0_0);
SetPagePic(GRAPHICS_PAGE_0, Pic_0292_0_849);
SetPagePic(GRAPHICS_PAGE_0, Pic_0304_116_1075);
SetPagePic(GRAPHICS_PAGE_0, Pic_0305_76_1161);
SetPagePic(GRAPHICS_PAGE_0, Pic_0306_60_921);
SetPagePic(GRAPHICS_PAGE_0, Pic_0307_13_1001);
// SetPagePic(GRAPHICS_PAGE_0, Pic_0002_0_406);
}
/*指示灯显示*/
static void AMT630H_GUI_Light()
{
if (LED_Turn_Left_Judgement() == 1) // 左转灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0368_44_431);
}
if (LED_Turn_Right_Judgement() == 1) // 右转灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0369_45_816);
}
if (Get_TelltalesLedSts(em_LED_High_Beam)) // 远光灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0370_265_244);
}
if (Get_TelltalesLedSts(em_LED_Dipped_Head_Light)) // 近光灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0371_264_286);
}
if (Get_TelltalesLedSts(em_LED_Efi_Faul)) // 电喷故障灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0373_265_377);
}
if (Get_TelltalesLedSts(em_LED_ABS)) // ABS
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0374_262_429);
}
if (Get_TelltalesLedSts(em_LED_Oil_Pressure_Alert)) // 机油报警灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0375_267_476);
}
if (Get_TelltalesLedSts(em_LED_Hand_Brake) == 1) // 手刹车指示灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0378_262_824);
}
else if (Get_TelltalesLedSts(em_LED_Hand_Brake) == 2)
{
if (FLASH_SYNC_1Hz)
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0378_262_824);
}
}
if (Get_TelltalesLedSts(em_LED_Battery_Voltage)) // 电池电压指示灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0376_265_780);
}
if (Get_TelltalesLedSts(em_LED_Fuel_Level_Low) == 1) // 燃油液位指示灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0387_233_462);
}
else if (Get_TelltalesLedSts(em_LED_Fuel_Level_Low) == 2)
{
if (FLASH_SYNC_1Hz)
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0387_233_462);
}
}
if (Get_TelltalesLedSts(em_LED_Coolant_Temperature) == 1) // 水温报警灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0388_234_789);
}
else if (Get_TelltalesLedSts(em_LED_Coolant_Temperature) == 2)
{
if (FLASH_SYNC_1Hz)
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0388_234_789);
}
}
if (Get_TelltalesLedSts(em_LED_Safety_Belt) == 1) // 安全带未系
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0381_260_965);
}
else if (Get_TelltalesLedSts(em_LED_Safety_Belt) == 2)
{
if (FLASH_SYNC_1Hz)
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0381_260_965);
}
}
if (Get_TelltalesLedSts(em_LED_Width_Lamp)) // 示宽灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0372_265_329);
}
if (Get_TelltalesLedSts(em_LED_OPC)) // OPC指示灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0379_265_868);
}
if (Get_TelltalesLedSts(em_LED_EPS)) // EPS故障灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0380_263_914);
}
if (Get_TelltalesLedSts(em_LED_Booster_Switch)) // 加力开关
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0382_261_1005);
}
if (Get_TelltalesLedSts(em_LED_Brake_Level)) // 制动液位
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0383_228_419);
}
if (Get_TelltalesLedSts(em_LED_Turtle_Lamp)) // 乌龟灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0385_202_805);
}
if (Get_TelltalesLedSts(em_LED_Maintain)) // 维修灯
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0384_203_443);
}
if (Get_TelltalesLedSts(em_LED_Speed_Limit_Icon)) // 限速图标
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0386_227_829);
}
if (Get_TelltalesLedSts(em_LED_Display_Drive) == 3) // 二驱
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0310_60_921);
SetPagePic(GRAPHICS_PAGE_0, Pic_0311_13_1001);
}
else if (Get_TelltalesLedSts(em_LED_Display_Drive) == 2) // 二驱后锁死
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0310_60_921);
SetPagePic(GRAPHICS_PAGE_0, Pic_0311_13_1001);
SetPagePic(GRAPHICS_PAGE_0, Pic_0316_83_989);
SetPagePic(GRAPHICS_PAGE_0, Pic_0318_133_978);
}
else if (Get_TelltalesLedSts(em_LED_Display_Drive) == 1) // 四驱
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0310_60_921);
SetPagePic(GRAPHICS_PAGE_0, Pic_0311_13_1001);
SetPagePic(GRAPHICS_PAGE_0, Pic_0308_116_1075);
SetPagePic(GRAPHICS_PAGE_0, Pic_0309_76_1161);
}
else if (Get_TelltalesLedSts(em_LED_Display_Drive) == 4) // 四驱后锁死
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0310_60_921);
SetPagePic(GRAPHICS_PAGE_0, Pic_0311_13_1001);
SetPagePic(GRAPHICS_PAGE_0, Pic_0308_116_1075);
SetPagePic(GRAPHICS_PAGE_0, Pic_0309_76_1161);
SetPagePic(GRAPHICS_PAGE_0, Pic_0316_83_989);
SetPagePic(GRAPHICS_PAGE_0, Pic_0318_133_978);
}
else if (Get_TelltalesLedSts(em_LED_Display_Drive) == 5) // 四驱前锁死
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0310_60_921);
SetPagePic(GRAPHICS_PAGE_0, Pic_0311_13_1001);
SetPagePic(GRAPHICS_PAGE_0, Pic_0308_116_1075);
SetPagePic(GRAPHICS_PAGE_0, Pic_0309_76_1161);
SetPagePic(GRAPHICS_PAGE_0, Pic_0317_140_1136);
SetPagePic(GRAPHICS_PAGE_0, Pic_0319_187_1126);
}
else if (Get_TelltalesLedSts(em_LED_Display_Drive) == 6) // 四驱锁死
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0310_60_921);
SetPagePic(GRAPHICS_PAGE_0, Pic_0311_13_1001);
SetPagePic(GRAPHICS_PAGE_0, Pic_0308_116_1075);
SetPagePic(GRAPHICS_PAGE_0, Pic_0309_76_1161);
SetPagePic(GRAPHICS_PAGE_0, Pic_0317_140_1136);
SetPagePic(GRAPHICS_PAGE_0, Pic_0319_187_1126);
SetPagePic(GRAPHICS_PAGE_0, Pic_0316_83_989);
SetPagePic(GRAPHICS_PAGE_0, Pic_0318_133_978);
}
}
/*车速显示*/
void AMT630H_GUI_Car_Speed()
{
uint32_t DS_HundredsPlace = 0u;
uint32_t DS_TensPlace = 0u;
uint32_t DS_UnitsPlace = 0u;
if (Get_Self() == 1)
{
DispVechileSpeed = Get_DispVechileSpeed();
}
else
{
if (Vtime >= 4u)
{
DispVechileSpeed = Get_DispVechileSpeed();
Vtime = 0u;
}else
{
Vtime++;
}
}
// 计算百位、十位和个位
DS_HundredsPlace = (DispVechileSpeed / 1000u) % 10u;
DS_TensPlace = (DispVechileSpeed / 100u) % 10u;
DS_UnitsPlace = (DispVechileSpeed / 10u) % 10u;
if (DispVechileSpeed < 100u)
{
// 1位数车速
SetPagePicFree(GRAPHICS_PAGE_0, DS_Figure[DS_UnitsPlace], 85u, 619u);
}
else if (DispVechileSpeed < 1000u)
{
// 2位数车速
SetPagePicFree(GRAPHICS_PAGE_0, DS_Figure[DS_TensPlace], 85u, 597u);
SetPagePicFree(GRAPHICS_PAGE_0, DS_Figure[DS_UnitsPlace], 85u, 641u);
}
else if (DispVechileSpeed <= 1990u)
{
// 3位数车速
SetPagePicFree(GRAPHICS_PAGE_0, DS_Figure[DS_HundredsPlace], 86u, 582u);
SetPagePicFree(GRAPHICS_PAGE_0, DS_Figure[DS_TensPlace],85u,616u);
SetPagePicFree(GRAPHICS_PAGE_0, DS_Figure[DS_UnitsPlace], 85u, 660u);
}
else
{
SetPagePicFree(GRAPHICS_PAGE_0, DS_Figure[1], 86u, 582u);
SetPagePic(GRAPHICS_PAGE_0, DS_Figure[9]);
SetPagePicFree(GRAPHICS_PAGE_0, DS_Figure[9], 85u, 660u);
}
}
/*转速显示函数*/
static void AMT630H_GUI_ESpeed()
{
uint32_t DispEngineSpeed = 0u;
DispEngineSpeed = (Get_DispEngineSpeed() / 50u);
if(DispEngineSpeed > 200)
{
DispEngineSpeed = 200u;
}
SetPagePic(GRAPHICS_PAGE_0, (uint16_t)Rotate_Speed[DispEngineSpeed]);
SetPagePic(GRAPHICS_PAGE_0, Pic_0418_9_522);
}
/*单位切换*/
void AMT630H_GUI_Dis_Unit()
{
if (Get_Self() == 1)
{
// if (Get_Dis_Unit())
// {
// SetPagePic(GRAPHICS_PAGE_0, Pic_0393_175_625);
SetPagePic(GRAPHICS_PAGE_0, Pic_0392_179_622);
// }
}else
{
if (Get_Dis_Unit())
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0391_6_107);
SetPagePic(GRAPHICS_PAGE_0, Pic_0393_175_625);
}
else
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0289_6_107);
SetPagePic(GRAPHICS_PAGE_0, Pic_0392_179_622);
}
}
}
/*档位显示函数*/
void AMT630H_GUI_Tap_Position()
{
uint16_t Tap_Position = 0u;
Tap_Position = Get_TelltalesLedSts(em_LED_Tap_Position);
SetPagePic(GRAPHICS_PAGE_0, Pic_0276_244_225);
if (Get_Self() == 1)
{
SetPagePic(GRAPHICS_PAGE_0, M_Tap_Position[0]);
SetPagePic(GRAPHICS_PAGE_0, L_Tap_Position[4]);
SetPagePic(GRAPHICS_PAGE_0, R_Tap_Position[1]);
}
else
{
if (Tap_Position == 1)
{
SetPagePic(GRAPHICS_PAGE_0, M_Tap_Position[Tap_Position - 1]);
SetPagePic(GRAPHICS_PAGE_0, L_Tap_Position[4]);
SetPagePic(GRAPHICS_PAGE_0, R_Tap_Position[Tap_Position]);
}
else if (Tap_Position == 5)
{
SetPagePic(GRAPHICS_PAGE_0, M_Tap_Position[Tap_Position - 1]);
SetPagePic(GRAPHICS_PAGE_0, L_Tap_Position[Tap_Position - 2]);
SetPagePic(GRAPHICS_PAGE_0, R_Tap_Position[0]);
}
else if ((Tap_Position >= 2) && (Tap_Position <= 4))
{
SetPagePic(GRAPHICS_PAGE_0, M_Tap_Position[Tap_Position - 1]);
SetPagePic(GRAPHICS_PAGE_0, L_Tap_Position[Tap_Position - 2]);
SetPagePic(GRAPHICS_PAGE_0, R_Tap_Position[Tap_Position]);
}
}
}
/*里程函数*/
void AMT630H_ODO_Trip_Value()
{
uint32_t ODO = Get_ODO_Value(); // 总计
uint32_t Trip = Get_Trip_Value(); // 小计
uint16_t O_H_ThousandsPlace = 0;
uint16_t O_T_ThousandsPlace = 0;
uint16_t O_ThousandsPlace = 0;
uint16_t O_HundredsPlace = 0;
uint16_t O_TensPlace = 0;
uint16_t O_UnitsPlace = 0;
uint16_t O_DecimalPlace = 0;
uint16_t T_HundredsPlace = 0;
uint16_t T_TensPlace = 0;
uint16_t T_UnitsPlace = 0;
uint16_t T_DecimalPlace = 0;
O_H_ThousandsPlace = (uint16_t)((ODO / 1000000u) % 10);
O_T_ThousandsPlace = (uint16_t)((ODO / 100000u) % 10u);
O_ThousandsPlace = (uint16_t)((ODO / 10000u) % 10u);
O_HundredsPlace = (uint16_t)((ODO / 1000u) % 10u);
O_TensPlace = (uint16_t)((ODO / 100u) % 10u);
O_UnitsPlace = (uint16_t)((ODO / 10u) % 10u);
O_DecimalPlace = (uint16_t)(ODO % 10u);
T_HundredsPlace = (uint16_t)((Trip / 1000u) % 10);
T_TensPlace = (uint16_t)((Trip / 100u) % 10u);
T_UnitsPlace = (uint16_t)((Trip / 10u) % 10u);
T_DecimalPlace = (uint16_t)(Trip % 10u);
if (Get_Dis_OdoAndTrip() == 1) // 小计显示
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0291_4_145);
if (Trip < 10u)
{
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[0], 6u, 82u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0278_6_91);
SetPagePic(GRAPHICS_PAGE_0, OT_Figure[T_DecimalPlace]);
}
else if (Trip < 100u)
{
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[T_UnitsPlace], 6u, 82u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0278_6_91);
SetPagePic(GRAPHICS_PAGE_0, OT_Figure[T_DecimalPlace]);
}
else if (Trip < 1000u)
{
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[T_TensPlace], 6u, 74u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[T_UnitsPlace], 6u, 82u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0278_6_91);
SetPagePic(GRAPHICS_PAGE_0, OT_Figure[T_DecimalPlace]);
}
else
{
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[T_HundredsPlace], 6u, 66u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[T_TensPlace], 6u, 74u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[T_UnitsPlace], 6u, 82u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0278_6_91);
SetPagePic(GRAPHICS_PAGE_0, OT_Figure[T_DecimalPlace]);
}
}
else if (Get_Dis_OdoAndTrip() == 0) // 总计显示
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0290_7_145);
if (ODO < 10u)
{
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[0], 6u, 82u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0278_6_91);
SetPagePic(GRAPHICS_PAGE_0, OT_Figure[O_DecimalPlace]);
}
else if (ODO < 100u)
{
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_UnitsPlace], 6u, 82u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0278_6_91);
SetPagePic(GRAPHICS_PAGE_0, OT_Figure[O_DecimalPlace]);
}
else if (ODO < 1000u)
{
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_TensPlace], 6u, 74u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_UnitsPlace], 6u, 82u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0278_6_91);
SetPagePic(GRAPHICS_PAGE_0, OT_Figure[O_DecimalPlace]);
}
else if (ODO < 10000u)
{
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_HundredsPlace], 6u, 66u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_TensPlace], 6u, 74u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_UnitsPlace], 6u, 82u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0278_6_91);
SetPagePic(GRAPHICS_PAGE_0, OT_Figure[O_DecimalPlace]);
}
else if (ODO < 100000u)
{
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_ThousandsPlace], 6u, 58u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_HundredsPlace], 6u, 66u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_TensPlace], 6u, 74u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_UnitsPlace], 6u, 82u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0278_6_91);
SetPagePic(GRAPHICS_PAGE_0, OT_Figure[O_DecimalPlace]);
}
else if (ODO < 1000000u)
{
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_T_ThousandsPlace], 6u, 50u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_ThousandsPlace], 6u, 58u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_HundredsPlace], 6u, 66u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_TensPlace], 6u, 74u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_UnitsPlace], 6u, 82u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0278_6_91);
SetPagePic(GRAPHICS_PAGE_0, OT_Figure[O_DecimalPlace]);
}
else if (ODO < 10000000u)
{
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_H_ThousandsPlace], 6u, 42u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_T_ThousandsPlace], 6u, 50u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_ThousandsPlace], 6u, 58u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_HundredsPlace], 6u, 66u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_TensPlace], 6u, 74u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[O_UnitsPlace], 6u, 82u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0278_6_91);
SetPagePic(GRAPHICS_PAGE_0, OT_Figure[O_DecimalPlace]);
}
}
}
/*行驶模式显示函数*/
void AMT630H_Driving_Mode()
{
uint16_t Driving_Mode = 0u;
Driving_Mode = Get_Driving_Mode();
if (Driving_Mode == 1)
{
SetPagePic(GRAPHICS_PAGE_0, M_Driving_Mode[0]);
SetPagePic(GRAPHICS_PAGE_0, A_Driving_Mode[2]);
SetPagePic(GRAPHICS_PAGE_0, U_Driving_Mode[1]);
}
else if (Driving_Mode == 2)
{
SetPagePic(GRAPHICS_PAGE_0, M_Driving_Mode[2]);
SetPagePic(GRAPHICS_PAGE_0, A_Driving_Mode[1]);
SetPagePic(GRAPHICS_PAGE_0, U_Driving_Mode[0]);
}
else if (Driving_Mode == 3)
{
SetPagePic(GRAPHICS_PAGE_0, M_Driving_Mode[1]);
SetPagePic(GRAPHICS_PAGE_0, A_Driving_Mode[0]);
SetPagePic(GRAPHICS_PAGE_0, U_Driving_Mode[2]);
}
else
{
}
SetPagePic(GRAPHICS_PAGE_0, Pic_0302_181_866);
SetPagePic(GRAPHICS_PAGE_0, Pic_0303_116_866);
}
/*轮胎显示函数*/
void AMT630H_GUI_Dis_Old_Staus()
{
uint8_t Dis_Sizes = 0;
SetPagePic(GRAPHICS_PAGE_0, Pic_0310_60_921);//四驱
SetPagePic(GRAPHICS_PAGE_0, Pic_0311_13_1001);
SetPagePic(GRAPHICS_PAGE_0, Pic_0308_116_1075);
SetPagePic(GRAPHICS_PAGE_0, Pic_0309_76_1161);
Dis_Sizes = Get_Dis_Sizes();
SetPagePic(GRAPHICS_PAGE_0, Pic_0358_206_1041);
SetPagePic(GRAPHICS_PAGE_0, Pic_0361_155_1094);
SetPagePic(GRAPHICS_PAGE_0, Pic_0362_121_1094);
SetPagePic(GRAPHICS_PAGE_0, Pic_0363_87_1094);
SetPagePic(GRAPHICS_PAGE_0, Pic_0364_53_1094);
SetPagePic(GRAPHICS_PAGE_0, Pic_0360_158_1070);
SetPagePic(GRAPHICS_PAGE_0, Pic_0360_124_1070);
SetPagePic(GRAPHICS_PAGE_0, Pic_0360_90_1070);
SetPagePic(GRAPHICS_PAGE_0, Pic_0360_56_1070);
SetPagePic(GRAPHICS_PAGE_0, Pic_0388_234_789);
SetPagePic(GRAPHICS_PAGE_0, Pic_0378_262_824);
switch (Dis_Sizes)
{
case 0:
SetPagePic(GRAPHICS_PAGE_0, T_Dis_Sizes[Dis_Sizes]);
break;
case 1:
SetPagePic(GRAPHICS_PAGE_0, T_Dis_Sizes[Dis_Sizes]);
break;
case 2:
SetPagePic(GRAPHICS_PAGE_0, T_Dis_Sizes[Dis_Sizes]);
break;
case 3:
SetPagePic(GRAPHICS_PAGE_0, T_Dis_Sizes[Dis_Sizes]);
break;
default:
break;
}
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[9], 6u, 66u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[9], 6u, 74u);
SetPagePicFree(GRAPHICS_PAGE_0, OT_Figure[9], 6u, 82u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0278_6_91);
SetPagePic(GRAPHICS_PAGE_0, OT_Figure[9]);
SetPagePic(GRAPHICS_PAGE_0, WT_Figure[9]);
SetPagePicFree(GRAPHICS_PAGE_0, WT_Figure[9], 2u, 837u);
SetPagePicFree(GRAPHICS_PAGE_0, WT_Figure[9], 2u, 829u);
// SetPagePic(GRAPHICS_PAGE_0, F_Figure[9]);
SetPagePicFree(GRAPHICS_PAGE_0, F_Figure[9], 2u, 430u);
SetPagePicFree(GRAPHICS_PAGE_0, F_Figure[9], 2u, 424u);
SetPagePicFree(GRAPHICS_PAGE_0, F_Figure[9], 2u, 418u);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[9], 6u, 1187u);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[9], 6u, 1165u);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[9], 6u, 1173u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0365_6_1182);
SetPagePic(GRAPHICS_PAGE_0, Pic_0366_6_1206);
SetPagePic(GRAPHICS_PAGE_0, (uint16_t)Rotate_Speed[200u]);
SetPagePicFree(GRAPHICS_PAGE_0, DS_Figure[9], 86u, 582u);
SetPagePicFree(GRAPHICS_PAGE_0, DS_Figure[9], 85u, 621u);
SetPagePicFree(GRAPHICS_PAGE_0, DS_Figure[9], 85u, 660u);
SetPagePic(GRAPHICS_PAGE_0, Pic_0381_260_965);//安全带
SetPagePic(GRAPHICS_PAGE_0, Pic_0387_233_462);//燃油
}
/*时间数显函数*/
void AMT630H_GUI_Time()
{
uint16_t Hour_Time = 0u;
uint16_t Minute_Time = 0u;
uint16_t H_UnitsPlace = 0u;
uint16_t H_TensPlace = 0u;
uint16_t M_UnitsPlace = 0u;
uint16_t M_TensPlace = 0u;
uint8_t Flicker = 0;
Flicker = Get_Flicker();
Hour_Time = Get_Dis_Hour_Time();
Minute_Time = Get_Dis_Minute_Time();
H_TensPlace = Hour_Time / 10u;
H_UnitsPlace = Hour_Time % 10u;
M_TensPlace = Minute_Time / 10u;
M_UnitsPlace = Minute_Time % 10u;
if (Get_Dis_Timer_Set() == 1)
{
if (Flicker == 0)
{
SetPagePic(GRAPHICS_PAGE_0, T_Figure[M_UnitsPlace]);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[M_TensPlace], 6u, 1187u);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[H_TensPlace], 6u, 1165u);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[H_UnitsPlace], 6u, 1173u);
}
else
{
/*时间闪烁位置*/
switch (Flicker)
{
case 1:
SetPagePic(GRAPHICS_PAGE_0, T_Figure[M_UnitsPlace]);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[M_TensPlace], 6u, 1187u);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[H_UnitsPlace], 6u, 1173u);
break;
case 2:
SetPagePic(GRAPHICS_PAGE_0, T_Figure[M_UnitsPlace]);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[M_TensPlace], 6u, 1187u);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[H_TensPlace], 6u, 1165u);
break;
case 3:
SetPagePic(GRAPHICS_PAGE_0, T_Figure[M_UnitsPlace]);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[H_TensPlace], 6u, 1165u);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[H_UnitsPlace], 6u, 1173u);
break;
case 4:
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[M_TensPlace], 6u, 1187u);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[H_TensPlace], 6u, 1165u);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[H_UnitsPlace], 6u, 1173u);
break;
default:
break;
}
}
}
else
{
if (H_TensPlace == 0)
{
SetPagePic(GRAPHICS_PAGE_0, T_Figure[M_UnitsPlace]);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[M_TensPlace], 6u, 1187u);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[H_UnitsPlace], 6u, 1173u);
}
else
{
SetPagePic(GRAPHICS_PAGE_0, T_Figure[M_UnitsPlace]);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[M_TensPlace], 6u, 1187u);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[H_TensPlace], 6u, 1165u);
SetPagePicFree(GRAPHICS_PAGE_0, T_Figure[H_UnitsPlace], 6u, 1173u);
}
}
if (Get_AMorPM() == 1)
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0366_6_1206);
}
else if (Get_AMorPM() == 2)
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0367_6_1207);
}
if (Get_Time_Cocln())
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0365_6_1182);
}
}
/*电压数显函数*/
void AMT630H_GUI_Battery_Voltage_Display()
{
uint16_t Battery_Voltage = 0u;
uint16_t V_TensPlace = 0u;
uint16_t V_UnitsPlace = 0u;
uint16_t V_DecimalPlace = 0u;
Battery_Voltage = Get_Battery_Voltage_Display();
SetPagePic(GRAPHICS_PAGE_0, Pic_0278_296_1157);
SetPagePic(GRAPHICS_PAGE_0, Pic_0390_295_1111);
SetPagePic(GRAPHICS_PAGE_0, Pic_0389_296_1171);
V_TensPlace = Battery_Voltage / 100u;
V_UnitsPlace = (Battery_Voltage / 10u) % 10u;
V_DecimalPlace = Battery_Voltage % 10u;
if (Battery_Voltage < 10u)
{
SetPagePic(GRAPHICS_PAGE_0, V_Figure[V_DecimalPlace]);
SetPagePicFree(GRAPHICS_PAGE_0, V_Figure[0], 296u, 1148u);
}
else if (Battery_Voltage < 100u)
{
SetPagePic(GRAPHICS_PAGE_0, V_Figure[V_DecimalPlace]);
SetPagePicFree(GRAPHICS_PAGE_0, V_Figure[V_UnitsPlace], 296u, 1148u);
}
else
{
SetPagePic(GRAPHICS_PAGE_0, V_Figure[V_DecimalPlace]);
SetPagePicFree(GRAPHICS_PAGE_0, V_Figure[V_UnitsPlace], 296u, 1148u);
SetPagePicFree(GRAPHICS_PAGE_0, V_Figure[V_TensPlace], 296u, 1140u);
}
}
/*水温表显示函数*/
void AMT630H_GUI_Water_Temperature()
{
uint16_t CurCoolantSetp = 0u; // 水温格数
uint16_t Coolant_Percentage = 0u; // 水温度数
uint16_t TW_HundredsPlace = 0u; // 水温百位
uint16_t TW_TensPlace = 0u; // 水温十位
uint16_t TW_UnitsPlace = 0u; // 水温个位
CurCoolantSetp = Get_CurCoolantSetp();
Coolant_Percentage = Get_Coolant_Percentage();
TW_HundredsPlace = Coolant_Percentage / 100u;
TW_TensPlace = (Coolant_Percentage / 10u) % 10u;
TW_UnitsPlace = Coolant_Percentage % 10u;
SetPagePic(GRAPHICS_PAGE_0, Pic_0040_0_750);
SetPagePic(GRAPHICS_PAGE_0, Pic_0028_0_774);
/*水温表格显示*/
if (Get_Coolant_Sensor_State() == CoolantSensorNormal)
{
for (size_t i = 0; i <= CurCoolantSetp; i++)
{
SetPagePic(GRAPHICS_PAGE_0, Water_Temperature[i]);
}
}
else if ((Get_Coolant_Sensor_State() == CoolantSensorShortCircuit) ||
(Get_Coolant_Sensor_State() == CoolantSensorOpenCircuit))
{
if (FLASH_SYNC_1Hz)
{
for (size_t i = 0; i <= 8; i++)
{
SetPagePic(GRAPHICS_PAGE_0, Water_Temperature[i]);
}
}
}
/*水温数字显示*/
if (Get_Self() == 1)
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0041_2_852);
SetPagePic(GRAPHICS_PAGE_0, Pic_0053_2_809);
}
else
{
if ((Get_Coolant_Sensor_State() == CoolantSensorShortCircuit) ||
(Get_Coolant_Sensor_State() == CoolantSensorOpenCircuit))
{
if (FLASH_SYNC_1Hz)
{
SetPagePic(GRAPHICS_PAGE_0, WT_Figure[0]);
SetPagePic(GRAPHICS_PAGE_0, Pic_0041_2_852);
SetPagePic(GRAPHICS_PAGE_0, Pic_0053_2_809);
}
}
else
{
if (Coolant_Percentage == 0u)
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0042_2_845);
}
else if ((Coolant_Percentage < 10u))
{
SetPagePic(GRAPHICS_PAGE_0, WT_Figure[TW_UnitsPlace]);
}
else if ((Coolant_Percentage < 100u))
{
SetPagePic(GRAPHICS_PAGE_0, WT_Figure[TW_UnitsPlace]);
SetPagePicFree(GRAPHICS_PAGE_0, WT_Figure[TW_TensPlace], 2u, 837u);
}
else if ((Coolant_Percentage < 1000u))
{
SetPagePic(GRAPHICS_PAGE_0, WT_Figure[TW_UnitsPlace]);
SetPagePicFree(GRAPHICS_PAGE_0, WT_Figure[TW_TensPlace], 2u, 837u);
SetPagePicFree(GRAPHICS_PAGE_0, WT_Figure[TW_HundredsPlace], 2u, 829u);
}
SetPagePic(GRAPHICS_PAGE_0, Pic_0041_2_852);
SetPagePic(GRAPHICS_PAGE_0, Pic_0053_2_809);
}
}
}
//校验函数
void Flash_Check(void)
{
uint8_t Flash_Check_Value = 0U;
SetPageGuid(GRAPHICS_PAGE_0, 2u, 0u, 0u);
switch ( Color_State )
{
case 0U:
SetPageBackground(GRAPHICS_PAGE_0, Pic_0002_0_0);//蓝
if ( Color_Timer < 60U )
{
Color_Timer++;
}
else
{
Color_Timer = 0U;
Color_State = 1U;
}
break;
case 1U:
SetPageBackground(GRAPHICS_PAGE_0, Pic_0414_0_0);//绿
if ( Color_Timer < 60U )
{
Color_Timer++;
}
else
{
Color_Timer = 0U;
Color_State = 2U;
}
break;
case 2U:
SetPageBackground(GRAPHICS_PAGE_0, Pic_0415_0_0);//红
if ( Color_Timer < 60U )
{
Color_Timer++;
}
else
{
Color_Timer = 0U;
Color_State = 3U;
}
break;
case 3U:
SetPageBackground(GRAPHICS_PAGE_0, Pic_0416_0_0);//黑
if ( Color_Timer < 60U )
{
Color_Timer++;
}
else
{
Color_Timer = 0U;
Color_State = 4U;
}
break;
case 4U:
SetPageBackground(GRAPHICS_PAGE_0, Pic_0416_0_0);//白
if ( Color_Timer < 60U )
{
Color_Timer++;
}
else
{
Color_Timer = 0U;
Color_State = 5U;
}
break;
case 5U:
g_sysFlag_Lcdcheck = 1u;
if ( Color_Timer < 60U )
{
Color_Timer++;
}
else
{
Color_Timer = 0U;
Color_State = 6U;
}
break;
case 7U:
SetPageBackground(GRAPHICS_PAGE_0, Pic_0417_0_0);//红
if ( Color_Timer < 10U )
{
Color_Timer++;
}
else
{
Color_Timer = 0U;
Color_State = 6U;
}
break;
default:
if ( AMT630H_FlashCheck.Flag == 3u)
{
PackedTransfer_CheckFlashForceDisplay(DISPLAY_CHECK_PASS, 3000U);
Gen_TimeDelay(20 * 1000, 1000);
// if ( Color_Timer < 60U )
// {
// Color_Timer++;
// }
// else
{
Color_Timer = 0U;
Color_State = 9U;
// FlashCheckFlag = 2U;
}
}
else if ( AMT630H_FlashCheck.Flag == 2u )
{
PackedTransfer_CheckFlashForceDisplay(DISPLAY_CHECK_FAIL, 3000U);
if(Common_Get_IG_Sts( ) == COMMON_POWER_ON )
{
Color_State = 7u;
}
else
{
// FlashCheckFlag = 2U;
}
}
else
{
PackedTransfer_CheckFlashForceDisplay(DISPLAY_CHECKING, 2800U);
}
break;
}
PackedTransfer_Page();
}
/*燃油表显示函数*/
void AMT630H_GUI_Fuel_Oil()
{
uint16_t CurFuelSetp = 0u;
uint16_t Fuel_Percentage = 0u; // 燃油度数
uint16_t F_HundredsPlace = 0u; // 燃油百位
uint16_t F_TensPlace = 0u; // 燃油十位
uint16_t F_UnitsPlace = 0u; // 燃油个位
CurFuelSetp = Get_CurFuelSetp();
Fuel_Percentage = Get_Fuel_Percentage();
F_HundredsPlace = Fuel_Percentage / 100u;
F_TensPlace = (Fuel_Percentage / 10u) % 10u;
F_UnitsPlace = Fuel_Percentage % 10u;
SetPagePic(GRAPHICS_PAGE_0, Pic_0014_0_261);
SetPagePic(GRAPHICS_PAGE_0, Pic_0003_0_285);
/*燃油表格显示*/
if (Get_Fuel_Sensor_State() == FuelSensorNormal)
{
if (CurFuelSetp == 0)
{
SetPagePic(GRAPHICS_PAGE_0, Fuel_Oil[0]);
}
else
{
for (size_t i = 1; i <= (CurFuelSetp+1u); i++)
{
SetPagePic(GRAPHICS_PAGE_0, Fuel_Oil[i]);
}
}
}
else if ((Get_Fuel_Sensor_State() == FuelSensorOpenCircuit) ||
(Get_Fuel_Sensor_State() == FuelSensorShortCircuit))
{
if (FLASH_SYNC_1Hz)
{
for (size_t i = 0; i <= 8; i++)
{
SetPagePic(GRAPHICS_PAGE_0, F_Fuel_Oil[i]);
}
}
}
/*燃油数字显示*/
if (Get_Self() == 1)
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0015_2_447);
SetPagePic(GRAPHICS_PAGE_0, Pic_0016_2_438);
}
else
{
if ((Get_Fuel_Sensor_State() == FuelSensorOpenCircuit) ||
(Get_Fuel_Sensor_State() == FuelSensorShortCircuit))
{
if (FLASH_SYNC_1Hz)
{
SetPagePic(GRAPHICS_PAGE_0, F_Figure[0]);
SetPagePic(GRAPHICS_PAGE_0, Pic_0015_2_447);
SetPagePic(GRAPHICS_PAGE_0, Pic_0016_2_438);
}
}
else
{
if ((Fuel_Percentage < 10u))
{
SetPagePic(GRAPHICS_PAGE_0, F_Figure[F_UnitsPlace]);
}
else if ((Fuel_Percentage < 100u))
{
SetPagePic(GRAPHICS_PAGE_0, F_Figure[F_UnitsPlace]);
SetPagePicFree(GRAPHICS_PAGE_0, F_Figure[F_TensPlace], 2u, 423u);
}
else if ((Fuel_Percentage < 1000u))
{
SetPagePic(GRAPHICS_PAGE_0, F_Figure[F_UnitsPlace]);
SetPagePicFree(GRAPHICS_PAGE_0, F_Figure[F_TensPlace], 2u, 423u);
SetPagePicFree(GRAPHICS_PAGE_0, F_Figure[F_HundredsPlace], 2u, 418u);
}
SetPagePic(GRAPHICS_PAGE_0, Pic_0015_2_447);
SetPagePic(GRAPHICS_PAGE_0, Pic_0016_2_438);
}
}
}
void Boot_Animation_KL15_Init(void)
{
Uptime = 0u;
Stime = 0u;
}
void AMT630H_GUI_ReadPosittion_Display(void)
{
uint8_t ti = 0;
/*轮胎显示函数*/
if (Get_Dis_Old_Staus() == 3)
{
// uint16_t CurFuelSetp = 0u;
// uint16_t CurCoolantSetp = 0u;
// CurCoolantSetp = Get_CurCoolantSetp();
// CurFuelSetp = Get_CurFuelSetp();
AMT630H_GUI_BACKGRAND();
AMT630H_GUI_Light();
for (size_t i = 0; i <= 8; i++)
{
SetPagePic(GRAPHICS_PAGE_0, F_Fuel_Oil[i]);
}
for (size_t i = 0; i <= 8; i++)
{
SetPagePic(GRAPHICS_PAGE_0, Water_Temperature[i]);
}
SetPagePic(GRAPHICS_PAGE_0, Pic_0015_2_447);
SetPagePic(GRAPHICS_PAGE_0, Pic_0016_2_438);
SetPagePic(GRAPHICS_PAGE_0, Pic_0041_2_852);
SetPagePic(GRAPHICS_PAGE_0, Pic_0053_2_809);
AMT630H_GUI_Tap_Position();
AMT630H_GUI_Dis_Old_Staus();
}
else
{
if (Get_Self() == 1)
{
AMT630H_GUI_BACKGRAND();
AMT630H_GUI_ESpeed();
AMT630H_GUI_Tap_Position();
AMT630H_GUI_Fuel_Oil();
AMT630H_GUI_Water_Temperature();
AMT630H_GUI_Car_Speed();
AMT630H_GUI_Light();
AMT630H_GUI_Dis_Unit();
// AMT630H_Driving_Mode();
SetPagePic(GRAPHICS_PAGE_0, M_Driving_Mode[0]);
SetPagePic(GRAPHICS_PAGE_0, A_Driving_Mode[2]);
SetPagePic(GRAPHICS_PAGE_0, U_Driving_Mode[1]);
SetPagePic(GRAPHICS_PAGE_0, Pic_0317_140_1136);
SetPagePic(GRAPHICS_PAGE_0, Pic_0319_187_1126);
SetPagePic(GRAPHICS_PAGE_0, Pic_0316_83_989);
SetPagePic(GRAPHICS_PAGE_0, Pic_0318_133_978);
}
else
{
if (Get_Mileage_Rear_Door() == 1)
{
// while (ti < 5)
// {
// if (Stime <= 200u)
// {
// SetPageBackground(GRAPHICS_PAGE_0, Self_Scanning[ti]);
// }
// else
// {
// ti++;
// Stime = 0u;
// }
// Stime++;
// }
// if (ti == 5)
// {
// // }
// Stime++;
// if (Stime <= 10u)
// {
// ti = 0u;
// }
// else if (Stime <= 20u)
// {
// ti = 1u;
// }
// else if (Stime <= 30u)
// {
// ti = 2u;
// }
// else if (Stime <= 40u)
// {
// ti = 3u;
// }
// else if (Stime <= 50u)
// {
// ti = 4u;
// }
// else
// {
// Stime = 0u;
// }
// SetPageBackground(GRAPHICS_PAGE_0, Self_Scanning[ti]);
Flash_Check();
}
else
{
Stime = 0;
AMT630H_GUI_BACKGRAND();
AMT630H_GUI_Light();
AMT630H_GUI_ESpeed();
AMT630H_GUI_Water_Temperature();
AMT630H_GUI_Fuel_Oil();
AMT630H_GUI_Car_Speed();
AMT630H_GUI_Tap_Position();
AMT630H_GUI_Battery_Voltage_Display();
AMT630H_GUI_Time();
AMT630H_Driving_Mode();
AMT630H_ODO_Trip_Value();
AMT630H_GUI_Dis_Unit();
}
}
}
}
uint8_t Get_Uptime_Staus(void)
{
return Uptime_Staus;
}
uint8_t Get_Up_time(void)
{
return Uptime;
}
#ifndef A69FAEFD_36D2_473A_A858_C02318EB402B
#define A69FAEFD_36D2_473A_A858_C02318EB402B
extern void AMT630H_GUI_DisplayProc(void);
extern void AMT630H_GUI_Background(void);
extern void Boot_Animation_KL15_Init(void);
extern uint8_t Get_Uptime_Staus(void);
extern uint8_t Get_Up_time(void);
#endif /* A69FAEFD_36D2_473A_A858_C02318EB402B */
\ No newline at end of file
#include "UartProtocol.h"
#include "PicBin.h"
#include "UART\RTE_UART.h"
#include "WDT\RTE_WDT.h"
#include <stdint.h>
#include "string.h"
#include "AMT630H.h"
#define NULL 0
#define UART_TX_MAX_DEPTH 4096UL // 4K
typedef struct
{
uint32_t read_pos;
uint32_t write_pos;
uint32_t BusyFlag;
uint8_t Tx_Buffer [ UART_TX_MAX_DEPTH ];
} UARTTxBuf_t;
extern uint8_t UartRevBuff[0x1000];
extern uint32_t UartRevCnts;
static UARTTxBuf_t UARTTxBuf;
void UARTTxBuf_Init(void)
{
UARTTxBuf.BusyFlag = 0u;
UARTTxBuf.read_pos = 0u;
UARTTxBuf.write_pos = 0u;
UARTTxBuf.Tx_Buffer[UART_TX_MAX_DEPTH] = 0u;
}
uint8_t *GetUartRecvData(uint32_t *UartRecvBufLen, uint32_t *UartRecvPos)
{
*UartRecvBufLen = 0x1000;
*UartRecvPos = UartRevCnts;
return UartRevBuff;
}
void UartSendData(uint8_t *data, uint32_t len)
{
uint32_t i = 0;
uint32_t RemainLen = 0u;
if ( UARTTxBuf.write_pos >= UARTTxBuf.read_pos )
{
RemainLen = UART_TX_MAX_DEPTH - (UARTTxBuf.write_pos - UARTTxBuf.read_pos);
}
else
{
RemainLen = UARTTxBuf.read_pos - UARTTxBuf.write_pos;
}
if ( len > RemainLen )
{
if ( UARTTxBuf.BusyFlag == 0)
{
UARTTxBuf.BusyFlag = 1;
Uart2_User_Send(UARTTxBuf.Tx_Buffer [ UARTTxBuf.read_pos ]);
UARTTxBuf.read_pos = (UARTTxBuf.read_pos + 1) % UART_TX_MAX_DEPTH;
}
return ; //队列已满,无法插入队列
}
for ( i = 0; i < len; i++ )
{
UARTTxBuf.Tx_Buffer [ UARTTxBuf.write_pos ] = data [ i ];
UARTTxBuf.write_pos = (UARTTxBuf.write_pos + 1) % UART_TX_MAX_DEPTH;
}
// mwAmt630hUartSendData(data, len);
if ( UARTTxBuf.BusyFlag == 0)
{
UARTTxBuf.BusyFlag = 1;
Uart2_User_Send(UARTTxBuf.Tx_Buffer [ UARTTxBuf.read_pos ]);
UARTTxBuf.read_pos = (UARTTxBuf.read_pos + 1) % UART_TX_MAX_DEPTH;
}
}
void UartSendDataISR(void)
{
if ( UARTTxBuf.write_pos == UARTTxBuf.read_pos )
{
UARTTxBuf.BusyFlag = 0;
}
else
{
// SCI1->SCI.TXD2 = UARTTxBuf.Tx_Buffer [ UARTTxBuf.read_pos ];
Uart2_User_Send(UARTTxBuf.Tx_Buffer [ UARTTxBuf.read_pos ]);
UARTTxBuf.read_pos = (UARTTxBuf.read_pos + 1) % UART_TX_MAX_DEPTH;
}
}
void DisplayNum(uint8_t page, DISPLAY_NUM_ST *pNumData, int32_t NumVal)
{
uint8_t j = 0;
uint8_t i = 0;
int32_t TmpNum;
uint16_t tmpIndex = 0;
uint8_t PointFrontRearBlank = 2;
uint16_t DotPosition = 0;
uint8_t DotInterval = 0;
uint16_t NumberList[20];
DotInterval = 3;
DotPosition = pNumData->DecimalNum;
DotPosition <<= 8;
TmpNum = NumVal;
if (TmpNum < 0) {
TmpNum = -TmpNum;
}
do {
NumberList[tmpIndex ++] = pNumData->NumList[(TmpNum % 10)];
i++;
TmpNum /= 10;
if (i == pNumData->DecimalNum) {
if (pNumData->NumList[NUM_POINT] != NULL) {
NumberList[tmpIndex ++] = pNumData->NumList[NUM_POINT];
}
}
} while (TmpNum != 0u);
if (pNumData->DecimalNum != 0u) {
while ((i - 1u) < pNumData->DecimalNum) {
NumberList[tmpIndex ++] = pNumData->NumList[0];
i++;
if (i == pNumData->DecimalNum) {
if (pNumData->NumList[NUM_POINT] != NULL) {
NumberList[tmpIndex ++] = pNumData->NumList[NUM_POINT];
}
}
}
}
if (pNumData->MinDigits != 0u) {
if ((i - 1) < pNumData->MinDigits) {
for (j = i; j < pNumData->MinDigits; j++) {
NumberList[tmpIndex ++] = pNumData->NumList[0];
i++;
}
}
}
if (NumVal < 0) {
if (pNumData->NumList[NUM_LINE] != NULL) {
SetPagePicGroupExtParaOriCoor(page, tmpIndex, pNumData->NumList[0]);
NumberList[tmpIndex++] = pNumData->NumList[NUM_LINE];
}
}
SetPagePicGroup(page, pNumData->NumInterval, pNumData->x, pNumData->y, NumberList, GROUP_ALIGN_CENTER | (tmpIndex & 0x3f), DotPosition | DotInterval, TFT_ROT_0);
}
/***************** Read 630 ************************/
#define READ_MCU_DATA_MAX 0x800
enum {
READ630_IDLE,
READ630_WAITING_RESP,
READ630_RECV_RESP_DATA,
READ630_RECV_OFFSET_LEN,
READ630_RECV_BACKUP_DATA_RESP,
READ630_RECV_BACKUP_DATA_CRC,
};
static uint8_t Read630State = READ630_IDLE;
static uint32_t ReqDataBufAddr = 0;
static uint32_t ReqDataLen = 0;
static uint32_t RespDataOffset = 0;
static uint32_t RespDataLen = 0;
static uint32_t RespDataCrc = 0;
static uint32_t WriteBackupDataCrc = 0;
uint32_t ProcMcuOrBackupData(READ_ARK630_CMD type, uint32_t offset, uint32_t len, uint8_t uotbuffer[])
{
uint32_t ret32 = 0;
if (type == REQ_DATA) {
if (len <= READ_MCU_DATA_MAX) {
ReqDataBufAddr = (uint32_t)uotbuffer;
ReqDataLen = len;
memset((uint8_t *)ReqDataBufAddr, 0, ReqDataLen);
PackedTransfer_GetMcuData(offset, (uint16_t)len);
Read630State = READ630_WAITING_RESP;
RespDataOffset = 0;
RespDataLen = 0;
} else {
ret32 = 1;
}
} else if (type == WRITE_BACKUP_DATA) {
if (len <= READ_MCU_DATA_MAX) {
PackedTransfer_WriteBackupData(offset, uotbuffer, (uint16_t)len);
Read630State = READ630_WAITING_RESP;
RespDataOffset = 0;
RespDataLen = 0;
} else {
ret32 = 1;
}
} else if (type == GET_BACKUP_DATA_CRC) {
PackedTransfer_GetBackupDataCrc(offset, len);
Read630State = READ630_WAITING_RESP;
RespDataOffset = 0;
RespDataLen = 0;
} else if (type == GET_STATUS) {
if (Read630State == READ630_WAITING_RESP) {
ret32 = 2;
} else if (Read630State == READ630_RECV_RESP_DATA) {
ret32 = RespDataOffset + RespDataLen;
} else if (Read630State == READ630_RECV_OFFSET_LEN) {
ret32 = RespDataOffset;
} else if (Read630State == READ630_RECV_BACKUP_DATA_CRC) {
ret32 = RespDataCrc;
} else if (Read630State == READ630_RECV_BACKUP_DATA_RESP) {
ret32 = RespDataOffset + RespDataLen;
} else {
Read630State = READ630_IDLE;
}
} else if ((type == GET_APP_DATA_OFFSET) || (type == GET_BACKUP_DATA_OFFSET)) {
PackedTransfer_GetDataOffsetLen(type);
Read630State = READ630_WAITING_RESP;
RespDataOffset = 0;
RespDataLen = 0;
} else {
;
}
return ret32;
}
void GetDataBuf(uint32_t *pAddr, uint32_t *pLen)
{
*pAddr = ReqDataBufAddr;
*pLen = ReqDataLen;
}
void SetRecvDataSt(RECV_MCU_DATA_TYPE type, uint32_t addr, uint32_t len, uint32_t crc)
{
RespDataOffset = addr;
RespDataLen = len;
RespDataCrc = crc;
if (type == RECV_TYPE_DATA) {
Read630State = READ630_RECV_RESP_DATA;
} else if (type == RECV_TYPE_OFFSET_LEN) {
Read630State = READ630_RECV_OFFSET_LEN;
} else if (type == RECV_TYPE_WRITE_BACKUP_RESP) {
Read630State = READ630_RECV_BACKUP_DATA_RESP;
WriteBackupDataCrc = crc;
} else if (type == RECV_TYPE_BACKUP_CRC) {
Read630State = READ630_RECV_BACKUP_DATA_CRC;
} else {
;
}
}
/***************** Read 630 end ************************/
/* Test */
static uint8_t TestReadBuf[READ_MCU_DATA_MAX];
static uint32_t TestDataLen = 0;
static uint32_t TestDataCrC = 0;
static uint32_t ReadOffset = 0;
static uint32_t CalcCrcVal = 0xffffffff;
static uint32_t TestCycleNum = 0;
static uint32_t CalcCrc32(uint8_t *buf, int Len, uint32_t InitVal)
{
int i;
int n = 0;
uint32_t crc = InitVal; // Initial value
for (n = 0; n < Len; n++) {
crc ^= (uint32_t)buf[n] << 24; // crc ^= *data; data++;
for (i = 0; i < 8; ++i) {
if (crc & 0x80000000) {
crc = (crc << 1) ^ 0x04C11DB7; // 0xEDB88320= reverse 0x04C11DB7
} else {
crc = (crc << 1);
}
}
}
return crc;
}
void TestRead630Update(void)
{
uint32_t tmpLen;
static uint8_t readSt = 0;
static uint16_t getStRetryCnts = 0;
if (TestDataLen == 0) {
if (readSt == 0) {
readSt = 1;
ProcMcuOrBackupData(GET_APP_DATA_OFFSET, 0, 0, 0);
getStRetryCnts = 500;
} else {
TestDataLen = ProcMcuOrBackupData(GET_STATUS, 0, 0, 0);
if ((TestDataLen != 0) || (--getStRetryCnts == 0)) {
if (TestDataLen != 0) {
TestDataLen = RespDataLen;
TestDataCrC = RespDataCrc;
ReadOffset = 0;
CalcCrcVal = 0xffffffff;
}
readSt = 0;
}
}
} else {
if (readSt == 0) {
readSt = 1;
ProcMcuOrBackupData(REQ_DATA, ReadOffset, READ_MCU_DATA_MAX, TestReadBuf);
getStRetryCnts = 500;
ReadOffset += READ_MCU_DATA_MAX;
} else {
tmpLen = ProcMcuOrBackupData(GET_STATUS, 0, 0, 0);
if (ReadOffset == tmpLen) {
if (ReadOffset < TestDataLen) {
CalcCrcVal = CalcCrc32(TestReadBuf, READ_MCU_DATA_MAX, CalcCrcVal);
readSt = 0;
} else {
CalcCrcVal = CalcCrc32(TestReadBuf, TestDataLen - (ReadOffset - READ_MCU_DATA_MAX), CalcCrcVal);
if (CalcCrcVal != TestDataCrC) {
while (1) {
RTE_WDT_Clear();
}
} else {
TestCycleNum++;
}
getStRetryCnts = 500;
TestDataLen = 0;
TestDataCrC = 0;
readSt = 0;
}
}
if (--getStRetryCnts == 0) {
ReadOffset -= READ_MCU_DATA_MAX;
readSt = 0;
}
}
}
}
/* Test end */
/* Test */
static uint32_t TestBackupDataLen = 0;
static uint32_t TestBackupDataOffset = 0;
static uint32_t TestBackupDataOffsetEnd = 0;
static uint32_t TestBackupDataCrc = 0;
static uint8_t *pData = (uint8_t*)0x40400;
void TestWrite630Backup(void)
{
uint32_t tmpRet;
static uint8_t readSt = 0;
static uint16_t getStRetryCnts = 0;
TestBackupDataLen = 0x100000;
if (TestBackupDataOffset == 0) {
if (readSt == 0) {
readSt = 1;
ProcMcuOrBackupData(GET_BACKUP_DATA_OFFSET, 0, 0, NULL);
getStRetryCnts = 500;
} else {
tmpRet = ProcMcuOrBackupData(GET_STATUS, 0, 0, NULL);
if ((tmpRet != 2) || (--getStRetryCnts == 0)) {
if (tmpRet != 2) {
TestBackupDataOffset = tmpRet;
TestBackupDataOffsetEnd = TestBackupDataOffset + TestBackupDataLen;
}
readSt = 0;
}
}
} else if (TestBackupDataCrc == 0) {
if (readSt == 0) {
readSt = 1;
ProcMcuOrBackupData(GET_BACKUP_DATA_CRC, TestBackupDataOffset, TestBackupDataLen, NULL);
getStRetryCnts = 500;
} else {
tmpRet = ProcMcuOrBackupData(GET_STATUS, 0, 0, NULL);
if ((tmpRet != 2) || (--getStRetryCnts == 0)) {
if (tmpRet != 2) {
TestBackupDataCrc = tmpRet;
}
readSt = 0;
}
}
} else {
#if 1
if (readSt == 0) {
readSt = 1;
ProcMcuOrBackupData(REQ_DATA, TestBackupDataOffset, READ_MCU_DATA_MAX, TestReadBuf);
getStRetryCnts = 500;
TestBackupDataOffset += READ_MCU_DATA_MAX;
} else {
tmpRet = ProcMcuOrBackupData(GET_STATUS, 0, 0, 0);
if (TestBackupDataOffset == tmpRet) {
if (TestBackupDataOffset < TestBackupDataOffsetEnd) {
readSt = 0;
} else {
readSt = 0;
}
}
if (--getStRetryCnts == 0) {
TestBackupDataOffset -= READ_MCU_DATA_MAX;
readSt = 0;
}
}
#else
if (readSt == 0) {
readSt = 1;
ProcMcuOrBackupData(WRITE_BACKUP_DATA, TestBackupDataOffset, READ_MCU_DATA_MAX, pData);
getStRetryCnts = 1500;
TestBackupDataOffset += READ_MCU_DATA_MAX;
pData += READ_MCU_DATA_MAX;
} else {
tmpRet = ProcMcuOrBackupData(GET_STATUS, 0, 0, 0);
if (TestBackupDataOffset == tmpRet) {
if (TestBackupDataOffset < TestBackupDataOffsetEnd) {
readSt = 0;
} else {
readSt = 0;
}
}
if (--getStRetryCnts == 0) {
TestBackupDataOffset -= READ_MCU_DATA_MAX;
pData -= READ_MCU_DATA_MAX;
readSt = 0;
}
}
#endif
}
}
/* Test end */
#include "UartProtocol.h"
#include "PicBin.h"
#define PicIndexData_LEN 14888
//uint32_t PicIndexDataLEN = 0;
void User_PicIndexDataInit(void)
{
//PicIndexDataLEN = sizeof(PicIndexData);
SetPicIndexData((uint8_t *)PicIndexData, sizeof(PicIndexData), PIC_INDEX_DATA_CRC);
}
\ No newline at end of file
#ifndef PICBIN_H
#define PICBIN_H
/* Flash Bin Version:20250507 2025-05-07 15:51:43 Compression ratio:70.00% */
#define Pic_0001 1
#define Pic_0002 2
#define Pic_0003 3
#define Pic_0004 4
#define Pic_0005 5
#define Pic_0006 6
#define Pic_0007 7
#define Pic_0008 8
#define Pic_0009 9
#define Pic_0010 10
#define Pic_0011 11
#define Pic_0012 12
#define Pic_0013 13
#define Pic_0014 14
#define Pic_0015 15
#define Pic_0016 16
#define Pic_0017 17
#define Pic_0018 18
#define Pic_0019 19
#define Pic_0020 20
#define Pic_0021 21
#define Pic_0022 22
#define Pic_0023 23
#define Pic_0024 24
#define Pic_0025 25
#define Pic_0026 26
#define Pic_0027 27
#define Pic_0028 28
#define Pic_0029 29
#define Pic_0030 30
#define Pic_0031 31
#define Pic_0032 32
#define Pic_0033 33
#define Pic_0034 34
#define Pic_0035 35
#define Pic_0036 36
#define Pic_0037 37
#define Pic_0038 38
#define Pic_0039 39
#define Pic_0040 40
#define Pic_0041 41
#define Pic_0042 42
#define Pic_0043 43
#define Pic_0044 44
#define Pic_0045 45
#define Pic_0046 46
#define Pic_0047 47
#define Pic_0048 48
#define Pic_0049 49
#define Pic_0050 50
#define Pic_0051 51
#define Pic_0052 52
#define Pic_0053 53
#define Pic_0054 54
#define Pic_0055 55
#define Pic_0056 56
#define Pic_0057 57
#define Pic_0058 58
#define Pic_0059 59
#define Pic_0060 60
#define Pic_0061 61
#define Pic_0062 62
#define Pic_0063 63
#define Pic_0064 64
#define Pic_0065 65
#define Pic_0066 66
#define Pic_0067 67
#define Pic_0068 68
#define Pic_0069 69
#define Pic_0070 70
#define Pic_0071 71
#define Pic_0072 72
#define Pic_0073 73
#define Pic_0074 74
#define Pic_0075 75
#define Pic_0076 76
#define Pic_0077 77
#define Pic_0078 78
#define Pic_0079 79
#define Pic_0080 80
#define Pic_0081 81
#define Pic_0082 82
#define Pic_0083 83
#define Pic_0084 84
#define Pic_0085 85
#define Pic_0086 86
#define Pic_0087 87
#define Pic_0088 88
#define Pic_0089 89
#define Pic_0090 90
#define Pic_0091 91
#define Pic_0092 92
#define Pic_0093 93
#define Pic_0094 94
#define Pic_0095 95
#define Pic_0096 96
#define Pic_0097 97
#define Pic_0098 98
#define Pic_0099 99
#define Pic_0100 100
#define Pic_0101 101
#define Pic_0102 102
#define Pic_0103 103
#define Pic_0104 104
#define Pic_0105 105
#define Pic_0106 106
#define Pic_0107 107
#define Pic_0108 108
#define Pic_0109 109
#define Pic_0110 110
#define Pic_0111 111
#define Pic_0112 112
#define Pic_0113 113
#define Pic_0114 114
#define Pic_0115 115
#define Pic_0116 116
#define Pic_0117 117
#define Pic_0118 118
#define Pic_0119 119
#define Pic_0120 120
#define Pic_0121 121
#define Pic_0122 122
#define Pic_0123 123
#define Pic_0124 124
#define Pic_0125 125
#define Pic_0126 126
#define Pic_0127 127
#define Pic_0128 128
#define Pic_0129 129
#define Pic_0130 130
#define Pic_0131 131
#define Pic_0132 132
#define Pic_0133 133
#define Pic_0134 134
#define Pic_0135 135
#define Pic_0136 136
#define Pic_0137 137
#define Pic_0138 138
#define Pic_0139 139
#define Pic_0140 140
#define Pic_0141 141
#define Pic_0142 142
#define Pic_0143 143
#define Pic_0144 144
#define Pic_0145 145
#define Pic_0146 146
#define Pic_0147 147
#define Pic_0148 148
#define Pic_0149 149
#define Pic_0150 150
#define Pic_0151 151
#define Pic_0152 152
#define Pic_0153 153
#define Pic_0154 154
#define Pic_0155 155
#define Pic_0156 156
#define Pic_0157 157
#define Pic_0158 158
#define Pic_0159 159
#define Pic_0160 160
#define Pic_0161 161
#define Pic_0162 162
#define Pic_0163 163
#define Pic_0164 164
#define Pic_0165 165
#define Pic_0166 166
#define Pic_0167 167
#define Pic_0168 168
#define Pic_0169 169
#define Pic_0170 170
#define Pic_0171 171
#define Pic_0172 172
#define Pic_0173 173
#define Pic_0174 174
#define Pic_0175 175
#define Pic_0176 176
#define Pic_0177 177
#define Pic_0178 178
#define Pic_0179 179
#define Pic_0180 180
#define Pic_0181 181
#define Pic_0182 182
#define Pic_0183 183
#define Pic_0184 184
#define Pic_0185 185
#define Pic_0186 186
#define Pic_0187 187
#define Pic_0188 188
#define Pic_0189 189
#define Pic_0190 190
#define Pic_0191 191
#define Pic_0192 192
#define Pic_0193 193
#define Pic_0194 194
#define Pic_0195 195
#define Pic_0196 196
#define Pic_0197 197
#define Pic_0198 198
#define Pic_0199 199
#define Pic_0200 200
#define Pic_0201 201
#define Pic_0202 202
#define Pic_0203 203
#define Pic_0204 204
#define Pic_0205 205
#define Pic_0206 206
#define Pic_0207 207
#define Pic_0208 208
#define Pic_0209 209
#define Pic_0210 210
#define Pic_0211 211
#define Pic_0212 212
#define Pic_0213 213
#define Pic_0214 214
#define Pic_0215 215
#define Pic_0216 216
#define Pic_0217 217
#define Pic_0218 218
#define Pic_0219 219
#define Pic_0220 220
#define Pic_0221 221
#define Pic_0222 222
#define Pic_0223 223
#define Pic_0224 224
#define Pic_0225 225
#define Pic_0226 226
#define Pic_0227 227
#define Pic_0228 228
#define Pic_0229 229
#define Pic_0230 230
#define Pic_0231 231
#define Pic_0232 232
#define Pic_0233 233
#define Pic_0234 234
#define Pic_0235 235
#define Pic_0236 236
#define Pic_0237 237
#define Pic_0238 238
#define Pic_0239 239
#define Pic_0240 240
#define Pic_0241 241
#define Pic_0242 242
#define Pic_0243 243
#define Pic_0244 244
#define Pic_0245 245
#define Pic_0246 246
#define Pic_0247 247
#define Pic_0248 248
#define Pic_0249 249
#define Pic_0250 250
#define Pic_0251 251
#define Pic_0252 252
#define Pic_0253 253
#define Pic_0254 254
#define Pic_0255 255
#define Pic_0256 256
#define Pic_0257 257
#define Pic_0258 258
#define Pic_0259 259
#define Pic_0260 260
#define Pic_0261 261
#define Pic_0262 262
#define Pic_0263 263
#define Pic_0264 264
#define Pic_0265 265
#define Pic_0266 266
#define Pic_0267 267
#define Pic_0268 268
#define Pic_0269 269
#define Pic_0270 270
#define Pic_0271 271
#define Pic_0272 272
#define Pic_0273 273
#define Pic_0274 274
#define Pic_0275 275
#define Pic_0276 276
#define Pic_0277 277
#define Pic_0278 278
#define Pic_0279 279
#define Pic_0280 280
#define Pic_0281 281
#define Pic_0282 282
#define Pic_0283 283
#define Pic_0284 284
#define Pic_0285 285
#define Pic_0286 286
#define Pic_0287 287
#define Pic_0288 288
#define Pic_0289 289
#define Pic_0290 290
#define Pic_0291 291
#define Pic_0292 292
#define Pic_0293 293
#define Pic_0294 294
#define Pic_0295 295
#define Pic_0296 296
#define Pic_0297 297
#define Pic_0298 298
#define Pic_0299 299
#define Pic_0300 300
#define Pic_0301 301
#define Pic_0302 302
#define Pic_0303 303
#define Pic_0304 304
#define Pic_0305 305
#define Pic_0306 306
#define Pic_0307 307
#define Pic_0308 308
#define Pic_0309 309
#define Pic_0310 310
#define Pic_0311 311
#define Pic_0312 312
#define Pic_0313 313
#define Pic_0314 314
#define Pic_0315 315
#define Pic_0316 316
#define Pic_0317 317
#define Pic_0318 318
#define Pic_0319 319
#define Pic_0320 320
#define Pic_0321 321
#define Pic_0322 322
#define Pic_0323 323
#define Pic_0324 324
#define Pic_0325 325
#define Pic_0326 326
#define Pic_0327 327
#define Pic_0328 328
#define Pic_0329 329
#define Pic_0330 330
#define Pic_0331 331
#define Pic_0332 332
#define Pic_0333 333
#define Pic_0334 334
#define Pic_0335 335
#define Pic_0336 336
#define Pic_0337 337
#define Pic_0338 338
#define Pic_0339 339
#define Pic_0340 340
#define Pic_0341 341
#define Pic_0342 342
#define Pic_0343 343
#define Pic_0344 344
#define Pic_0345 345
#define Pic_0346 346
#define Pic_0347 347
#define Pic_0348 348
#define Pic_0349 349
#define Pic_0350 350
#define Pic_0351 351
#define Pic_0352 352
#define Pic_0353 353
#define Pic_0354 354
#define Pic_0355 355
#define Pic_0356 356
#define Pic_0357 357
#define Pic_0358 358
#define Pic_0359 359
#define Pic_0360 360
#define Pic_0361 361
#define Pic_0362 362
#define Pic_0363 363
#define Pic_0364 364
#define Pic_0365 365
#define Pic_0366 366
#define Pic_0367 367
#define Pic_0368 368
#define Pic_0369 369
#define Pic_0370 370
#define Pic_0371 371
#define Pic_0372 372
#define Pic_0373 373
#define Pic_0374 374
#define Pic_0375 375
#define Pic_0376 376
#define Pic_0377 377
#define Pic_0378 378
#define Pic_0379 379
#define Pic_0380 380
#define Pic_0381 381
#define Pic_0382 382
#define Pic_0383 383
#define Pic_0384 384
#define Pic_0385 385
#define Pic_0386 386
#define Pic_0387 387
#define Pic_0388 388
#define Pic_0389 389
#define Pic_0390 390
#define Pic_0391 391
#define Pic_0392 392
#define Pic_0393 393
#define Pic_0394 394
#define Pic_0395 395
#define Pic_0396 396
#define Pic_0397 397
#define Pic_0398 398
#define Pic_0399 399
#define Pic_0400 400
#define Pic_0401 401
#define Pic_0402 402
#define Pic_0403 403
#define Pic_0404 404
#define Pic_0405 405
#define Pic_0406 406
#define Pic_0407 407
#define Pic_0408 408
#define Pic_0409 409
#define Pic_0410 410
#define Pic_0411 411
#define Pic_0412 412
#define Pic_0413 413
#define Pic_0414 414
#define Pic_0415 415
#define Pic_0416 416
#define Pic_0417 417
#define Pic_0418 418
enum {
Pic_0001_0_0 = 0,
Pic_0002_0_0,
Pic_0003_0_285,
Pic_0004_0_312,
Pic_0005_0_324,
Pic_0006_0_334,
Pic_0007_0_341,
Pic_0008_0_350,
Pic_0009_0_358,
Pic_0010_0_364,
Pic_0011_0_374,
Pic_0012_0_382,
Pic_0013_0_409,
Pic_0014_0_261,
Pic_0015_2_447,
Pic_0016_2_438,
Pic_0017_2_430,
Pic_0017_2_423,
Pic_0018_2_418,
Pic_0018_2_431,
Pic_0019_2_430,
Pic_0020_2_430,
Pic_0021_2_430,
Pic_0022_2_430,
Pic_0023_2_430,
Pic_0024_2_430,
Pic_0025_2_430,
Pic_0026_2_430,
Pic_0027_6_431,
Pic_0028_0_774,
Pic_0029_0_936,
Pic_0030_0_936,
Pic_0031_0_928,
Pic_0032_0_928,
Pic_0033_0_919,
Pic_0034_0_911,
Pic_0035_0_904,
Pic_0036_0_896,
Pic_0037_0_888,
Pic_0038_0_880,
Pic_0039_0_795,
Pic_0040_0_750,
Pic_0041_2_852,
Pic_0042_2_845,
Pic_0042_2_837,
Pic_0042_2_829,
Pic_0043_2_845,
Pic_0044_2_845,
Pic_0045_2_845,
Pic_0046_2_844,
Pic_0047_2_845,
Pic_0048_2_845,
Pic_0049_2_845,
Pic_0050_2_845,
Pic_0051_2_845,
Pic_0052_6_845,
Pic_0053_2_809,
Pic_0054_1_448,
Pic_0055_1_448,
Pic_0056_1_448,
Pic_0057_1_448,
Pic_0058_1_448,
Pic_0059_1_448,
Pic_0060_1_448,
Pic_0061_1_448,
Pic_0062_1_448,
Pic_0063_1_448,
Pic_0064_1_448,
Pic_0065_1_448,
Pic_0066_1_448,
Pic_0067_1_448,
Pic_0068_1_448,
Pic_0069_1_448,
Pic_0070_1_448,
Pic_0071_1_448,
Pic_0072_1_448,
Pic_0073_1_448,
Pic_0074_1_448,
Pic_0075_1_448,
Pic_0076_1_448,
Pic_0077_1_448,
Pic_0078_1_448,
Pic_0079_1_448,
Pic_0080_1_448,
Pic_0081_1_448,
Pic_0082_1_448,
Pic_0083_1_448,
Pic_0084_1_448,
Pic_0085_1_448,
Pic_0086_1_448,
Pic_0087_1_448,
Pic_0088_1_448,
Pic_0089_1_448,
Pic_0090_1_448,
Pic_0091_1_448,
Pic_0092_1_448,
Pic_0093_1_448,
Pic_0094_1_448,
Pic_0095_1_448,
Pic_0096_1_448,
Pic_0097_1_448,
Pic_0098_1_448,
Pic_0099_1_448,
Pic_0100_1_448,
Pic_0101_1_448,
Pic_0102_1_448,
Pic_0103_1_448,
Pic_0104_1_448,
Pic_0105_1_448,
Pic_0106_1_448,
Pic_0107_1_448,
Pic_0108_1_448,
Pic_0109_1_448,
Pic_0110_1_448,
Pic_0111_1_448,
Pic_0112_1_448,
Pic_0113_1_448,
Pic_0114_1_448,
Pic_0115_1_448,
Pic_0116_1_448,
Pic_0117_1_448,
Pic_0118_1_448,
Pic_0119_1_448,
Pic_0120_1_448,
Pic_0121_1_448,
Pic_0122_1_448,
Pic_0123_1_448,
Pic_0124_1_448,
Pic_0125_1_448,
Pic_0126_1_448,
Pic_0127_1_448,
Pic_0128_1_448,
Pic_0129_1_448,
Pic_0130_1_448,
Pic_0131_1_448,
Pic_0132_1_448,
Pic_0133_1_448,
Pic_0134_1_448,
Pic_0135_1_448,
Pic_0136_1_448,
Pic_0137_1_448,
Pic_0138_1_448,
Pic_0139_1_448,
Pic_0140_1_448,
Pic_0141_1_448,
Pic_0142_1_448,
Pic_0143_1_448,
Pic_0144_1_448,
Pic_0145_1_448,
Pic_0146_1_448,
Pic_0147_1_448,
Pic_0148_1_448,
Pic_0149_1_448,
Pic_0150_1_448,
Pic_0151_1_448,
Pic_0152_1_448,
Pic_0153_1_448,
Pic_0154_1_448,
Pic_0155_1_448,
Pic_0156_1_448,
Pic_0157_1_448,
Pic_0158_1_448,
Pic_0159_1_448,
Pic_0160_1_448,
Pic_0161_1_448,
Pic_0162_1_448,
Pic_0163_1_448,
Pic_0164_1_448,
Pic_0165_1_448,
Pic_0166_1_448,
Pic_0167_1_448,
Pic_0168_1_448,
Pic_0169_1_448,
Pic_0170_1_448,
Pic_0171_1_448,
Pic_0172_1_448,
Pic_0173_1_448,
Pic_0174_1_448,
Pic_0175_1_448,
Pic_0176_1_448,
Pic_0177_1_448,
Pic_0178_1_448,
Pic_0179_1_448,
Pic_0180_1_448,
Pic_0181_1_448,
Pic_0182_1_448,
Pic_0183_1_448,
Pic_0184_1_448,
Pic_0185_1_448,
Pic_0186_1_448,
Pic_0187_1_448,
Pic_0188_1_448,
Pic_0189_1_448,
Pic_0190_1_448,
Pic_0191_1_448,
Pic_0192_1_448,
Pic_0193_1_448,
Pic_0194_1_448,
Pic_0195_1_448,
Pic_0196_1_448,
};
enum {
Pic_0197_1_448 = 200,
Pic_0198_1_448,
Pic_0199_1_448,
Pic_0200_1_448,
Pic_0201_1_448,
Pic_0202_1_448,
Pic_0203_1_448,
Pic_0204_1_448,
Pic_0205_1_448,
Pic_0206_1_448,
Pic_0207_1_448,
Pic_0208_1_448,
Pic_0209_1_448,
Pic_0210_1_448,
Pic_0211_1_448,
Pic_0212_1_448,
Pic_0213_1_448,
Pic_0214_1_448,
Pic_0215_1_448,
Pic_0216_1_448,
Pic_0217_1_448,
Pic_0218_1_448,
Pic_0219_1_448,
Pic_0220_1_448,
Pic_0221_1_448,
Pic_0222_1_448,
Pic_0223_1_448,
Pic_0224_1_448,
Pic_0225_1_448,
Pic_0226_1_448,
Pic_0227_1_448,
Pic_0228_1_448,
Pic_0229_1_448,
Pic_0230_1_448,
Pic_0231_1_448,
Pic_0232_1_448,
Pic_0233_1_448,
Pic_0234_1_448,
Pic_0235_1_448,
Pic_0236_1_448,
Pic_0237_1_448,
Pic_0238_1_448,
Pic_0239_1_448,
Pic_0240_1_448,
Pic_0241_1_448,
Pic_0242_1_448,
Pic_0243_1_448,
Pic_0244_1_448,
Pic_0245_1_448,
Pic_0246_1_448,
Pic_0247_1_448,
Pic_0248_1_448,
Pic_0249_1_448,
Pic_0250_1_448,
Pic_0251_1_448,
Pic_0252_1_448,
Pic_0253_1_448,
Pic_0254_1_448,
Pic_0255_85_619,
Pic_0255_85_641,
Pic_0255_85_597,
Pic_0255_85_660,
Pic_0255_85_616,
Pic_0256_86_582,
Pic_0256_86_621,
Pic_0257_86_619,
Pic_0258_85_619,
Pic_0259_86_617,
Pic_0260_85_619,
Pic_0261_85_619,
Pic_0262_86_619,
Pic_0263_85_619,
Pic_0264_86_619,
Pic_0265_111_619,
Pic_0266_19_157,
Pic_0267_6_152,
Pic_0268_19_157,
Pic_0269_19_157,
Pic_0270_21_166,
Pic_0271_120_117,
Pic_0272_120_115,
Pic_0273_120_114,
Pic_0274_120_115,
Pic_0275_120_116,
Pic_0271_120_333,
Pic_0272_120_331,
Pic_0273_120_330,
Pic_0274_120_331,
Pic_0275_120_332,
Pic_0276_244_225,
Pic_0277_6_96,
Pic_0278_6_91,
Pic_0277_6_82,
Pic_0277_6_74,
Pic_0277_6_66,
Pic_0277_6_58,
Pic_0277_6_50,
Pic_0277_6_42,
Pic_0277_6_34,
Pic_0279_6_97,
Pic_0280_6_96,
Pic_0281_6_97,
Pic_0282_6_96,
Pic_0283_6_97,
Pic_0284_6_96,
Pic_0285_6_96,
Pic_0286_6_96,
Pic_0287_6_96,
Pic_0288_9_97,
Pic_0289_6_107,
Pic_0290_7_145,
Pic_0291_4_145,
Pic_0292_0_849,
Pic_0293_214_870,
Pic_0294_214_870,
Pic_0295_214_870,
Pic_0296_77_867,
Pic_0297_77_867,
Pic_0298_77_866,
Pic_0299_125_824,
Pic_0300_125_819,
Pic_0301_125_801,
Pic_0302_181_866,
Pic_0303_116_866,
Pic_0304_116_1075,
Pic_0305_76_1161,
Pic_0306_60_921,
Pic_0307_13_1001,
Pic_0308_116_1075,
Pic_0309_76_1161,
Pic_0310_60_921,
Pic_0311_13_1001,
Pic_0312_116_1075,
Pic_0313_76_1161,
Pic_0314_60_921,
Pic_0315_13_1001,
Pic_0316_83_989,
Pic_0317_140_1136,
Pic_0318_133_978,
Pic_0319_187_1126,
Pic_0320_10_1100,
Pic_0321_11_1092,
Pic_0322_11_1088,
Pic_0321_11_1080,
Pic_0321_11_1071,
Pic_0320_47_984,
Pic_0321_56_990,
Pic_0322_56_986,
Pic_0321_56_978,
Pic_0321_56_969,
Pic_0320_69_1235,
Pic_0321_69_1227,
Pic_0322_69_1223,
Pic_0321_69_1215,
Pic_0321_69_1206,
Pic_0320_105_1134,
Pic_0321_106_1127,
Pic_0322_106_1123,
Pic_0321_106_1115,
Pic_0321_106_1106,
Pic_0323_11_1092,
Pic_0324_11_1092,
Pic_0325_11_1092,
Pic_0326_11_1092,
Pic_0327_11_1091,
Pic_0328_11_1092,
Pic_0329_11_1092,
Pic_0330_11_1092,
Pic_0331_11_1092,
Pic_0332_11_1092,
Pic_0333_15_1092,
Pic_0334_11_1092,
Pic_0335_11_1092,
Pic_0336_11_1092,
Pic_0337_11_1091,
Pic_0338_11_1092,
Pic_0339_11_1092,
Pic_0340_11_1092,
Pic_0341_11_1092,
Pic_0342_11_1092,
Pic_0343_15_1092,
Pic_0344_7_1052,
Pic_0345_18_640,
Pic_0346_18_636,
Pic_0346_18_632,
Pic_0346_18_628,
Pic_0347_18_636,
Pic_0348_18_636,
Pic_0349_18_636,
Pic_0350_18_636,
Pic_0351_18_636,
Pic_0352_18_636,
Pic_0353_18_636,
Pic_0354_18_636,
Pic_0355_18_636,
Pic_0356_20_636,
Pic_0357_29_629,
Pic_0358_206_1041,
Pic_0359_147_972,
Pic_0359_113_972,
};
enum {
Pic_0359_79_972 = 400,
Pic_0359_45_972,
Pic_0360_158_1070,
Pic_0360_124_1070,
Pic_0360_90_1070,
Pic_0360_56_1070,
Pic_0361_155_1094,
Pic_0362_121_1094,
Pic_0363_87_1094,
Pic_0364_53_1094,
Pic_0277_6_1195,
Pic_0277_6_1187,
Pic_0365_6_1182,
Pic_0277_6_1173,
Pic_0277_6_1165,
Pic_0366_6_1206,
Pic_0367_6_1207,
Pic_0279_6_1196,
Pic_0280_6_1195,
Pic_0281_6_1196,
Pic_0282_6_1195,
Pic_0283_6_1196,
Pic_0284_6_1195,
Pic_0285_6_1195,
Pic_0286_6_1195,
Pic_0287_6_1195,
Pic_0288_9_1196,
Pic_0368_44_431,
Pic_0369_45_816,
Pic_0370_265_244,
Pic_0371_264_286,
Pic_0372_265_329,
Pic_0373_265_377,
Pic_0374_262_429,
Pic_0375_267_476,
Pic_0376_265_780,
Pic_0377_265_780,
Pic_0378_262_824,
Pic_0379_265_868,
Pic_0380_263_914,
Pic_0381_260_965,
Pic_0382_261_1005,
Pic_0383_228_419,
Pic_0384_203_443,
Pic_0385_202_805,
Pic_0386_227_829,
Pic_0387_233_462,
Pic_0388_234_789,
Pic_0277_296_1163,
Pic_0278_296_1157,
Pic_0277_296_1148,
Pic_0277_296_1140,
Pic_0279_296_1164,
Pic_0280_296_1163,
Pic_0281_296_1164,
Pic_0282_296_1163,
Pic_0283_296_1164,
Pic_0284_296_1163,
Pic_0285_296_1163,
Pic_0286_296_1163,
Pic_0287_296_1163,
Pic_0288_299_1164,
Pic_0389_296_1171,
Pic_0390_295_1111,
Pic_0391_6_107,
Pic_0392_179_622,
Pic_0393_175_625,
Pic_0394_0_0,
Pic_0395_0_0,
Pic_0396_0_0,
Pic_0397_0_0,
Pic_0398_0_0,
Pic_0399_0_0,
Pic_0400_0_0,
Pic_0401_0_0,
Pic_0402_0_0,
Pic_0403_0_0,
Pic_0404_0_0,
Pic_0405_0_0,
Pic_0406_0_0,
Pic_0407_0_0,
Pic_0408_0_0,
Pic_0409_0_0,
Pic_0410_0_0,
Pic_0411_0_0,
Pic_0412_0_0,
Pic_0413_0_0,
Pic_0414_0_0,
Pic_0415_0_0,
Pic_0416_0_0,
Pic_0417_0_0,
Pic_0418_9_522,
};
static const uint16_t PicIndexData[] = {
Pic_0001, 360, 0, 0, Pic_0002, 320, 0, 0, Pic_0003, 23, 0, 285, Pic_0004, 20, 0, 312, Pic_0005, 20, 0, 324, Pic_0006, 20, 0, 334, Pic_0007, 20, 0, 341, Pic_0008, 20, 0, 350, Pic_0009, 20, 0, 358, Pic_0010, 20, 0, 364,
Pic_0011, 20, 0, 374, Pic_0012, 20, 0, 382, Pic_0013, 20, 0, 409, Pic_0014, 48, 0, 261, Pic_0015, 16, 2, 447, Pic_0016, 14, 2, 438, Pic_0017, 14, 2, 430, Pic_0017, 14, 2, 423, Pic_0018, 14, 2, 418, Pic_0018, 14, 2, 431,
Pic_0019, 14, 2, 430, Pic_0020, 14, 2, 430, Pic_0021, 14, 2, 430, Pic_0022, 14, 2, 430, Pic_0023, 14, 2, 430, Pic_0024, 14, 2, 430, Pic_0025, 14, 2, 430, Pic_0026, 14, 2, 430, Pic_0027, 2, 6, 431, Pic_0028, 23, 0, 774,
Pic_0029, 20, 0, 936, Pic_0030, 20, 0, 936, Pic_0031, 20, 0, 928, Pic_0032, 20, 0, 928, Pic_0033, 20, 0, 919, Pic_0034, 20, 0, 911, Pic_0035, 20, 0, 904, Pic_0036, 20, 0, 896, Pic_0037, 20, 0, 888, Pic_0038, 20, 0, 880,
Pic_0039, 20, 0, 795, Pic_0040, 48, 0, 750, Pic_0041, 15, 2, 852, Pic_0042, 14, 2, 845, Pic_0042, 14, 2, 837, Pic_0042, 14, 2, 829, Pic_0043, 14, 2, 845, Pic_0044, 14, 2, 845, Pic_0045, 14, 2, 845, Pic_0046, 14, 2, 844,
Pic_0047, 14, 2, 845, Pic_0048, 14, 2, 845, Pic_0049, 14, 2, 845, Pic_0050, 14, 2, 845, Pic_0051, 14, 2, 845, Pic_0052, 2, 6, 845, Pic_0053, 16, 2, 809, Pic_0054, 316, 1, 448, Pic_0055, 316, 1, 448, Pic_0056, 316, 1, 448,
Pic_0057, 316, 1, 448, Pic_0058, 316, 1, 448, Pic_0059, 316, 1, 448, Pic_0060, 316, 1, 448, Pic_0061, 316, 1, 448, Pic_0062, 316, 1, 448, Pic_0063, 316, 1, 448, Pic_0064, 316, 1, 448, Pic_0065, 316, 1, 448, Pic_0066, 316, 1, 448,
Pic_0067, 316, 1, 448, Pic_0068, 316, 1, 448, Pic_0069, 316, 1, 448, Pic_0070, 316, 1, 448, Pic_0071, 316, 1, 448, Pic_0072, 316, 1, 448, Pic_0073, 316, 1, 448, Pic_0074, 316, 1, 448, Pic_0075, 316, 1, 448, Pic_0076, 316, 1, 448,
Pic_0077, 316, 1, 448, Pic_0078, 316, 1, 448, Pic_0079, 316, 1, 448, Pic_0080, 316, 1, 448, Pic_0081, 316, 1, 448, Pic_0082, 316, 1, 448, Pic_0083, 316, 1, 448, Pic_0084, 316, 1, 448, Pic_0085, 316, 1, 448, Pic_0086, 316, 1, 448,
Pic_0087, 316, 1, 448, Pic_0088, 316, 1, 448, Pic_0089, 316, 1, 448, Pic_0090, 316, 1, 448, Pic_0091, 316, 1, 448, Pic_0092, 316, 1, 448, Pic_0093, 316, 1, 448, Pic_0094, 316, 1, 448, Pic_0095, 316, 1, 448, Pic_0096, 316, 1, 448,
Pic_0097, 316, 1, 448, Pic_0098, 316, 1, 448, Pic_0099, 316, 1, 448, Pic_0100, 316, 1, 448, Pic_0101, 316, 1, 448, Pic_0102, 316, 1, 448, Pic_0103, 316, 1, 448, Pic_0104, 316, 1, 448, Pic_0105, 316, 1, 448, Pic_0106, 316, 1, 448,
Pic_0107, 316, 1, 448, Pic_0108, 316, 1, 448, Pic_0109, 316, 1, 448, Pic_0110, 316, 1, 448, Pic_0111, 316, 1, 448, Pic_0112, 316, 1, 448, Pic_0113, 316, 1, 448, Pic_0114, 316, 1, 448, Pic_0115, 316, 1, 448, Pic_0116, 316, 1, 448,
Pic_0117, 316, 1, 448, Pic_0118, 316, 1, 448, Pic_0119, 316, 1, 448, Pic_0120, 316, 1, 448, Pic_0121, 316, 1, 448, Pic_0122, 316, 1, 448, Pic_0123, 316, 1, 448, Pic_0124, 316, 1, 448, Pic_0125, 316, 1, 448, Pic_0126, 316, 1, 448,
Pic_0127, 316, 1, 448, Pic_0128, 316, 1, 448, Pic_0129, 316, 1, 448, Pic_0130, 316, 1, 448, Pic_0131, 316, 1, 448, Pic_0132, 316, 1, 448, Pic_0133, 316, 1, 448, Pic_0134, 316, 1, 448, Pic_0135, 316, 1, 448, Pic_0136, 316, 1, 448,
Pic_0137, 316, 1, 448, Pic_0138, 316, 1, 448, Pic_0139, 316, 1, 448, Pic_0140, 316, 1, 448, Pic_0141, 316, 1, 448, Pic_0142, 316, 1, 448, Pic_0143, 316, 1, 448, Pic_0144, 316, 1, 448, Pic_0145, 316, 1, 448, Pic_0146, 316, 1, 448,
Pic_0147, 316, 1, 448, Pic_0148, 316, 1, 448, Pic_0149, 316, 1, 448, Pic_0150, 316, 1, 448, Pic_0151, 316, 1, 448, Pic_0152, 316, 1, 448, Pic_0153, 316, 1, 448, Pic_0154, 316, 1, 448, Pic_0155, 316, 1, 448, Pic_0156, 316, 1, 448,
Pic_0157, 316, 1, 448, Pic_0158, 316, 1, 448, Pic_0159, 316, 1, 448, Pic_0160, 316, 1, 448, Pic_0161, 316, 1, 448, Pic_0162, 316, 1, 448, Pic_0163, 316, 1, 448, Pic_0164, 316, 1, 448, Pic_0165, 316, 1, 448, Pic_0166, 316, 1, 448,
Pic_0167, 316, 1, 448, Pic_0168, 316, 1, 448, Pic_0169, 316, 1, 448, Pic_0170, 316, 1, 448, Pic_0171, 316, 1, 448, Pic_0172, 316, 1, 448, Pic_0173, 316, 1, 448, Pic_0174, 316, 1, 448, Pic_0175, 316, 1, 448, Pic_0176, 316, 1, 448,
Pic_0177, 316, 1, 448, Pic_0178, 316, 1, 448, Pic_0179, 316, 1, 448, Pic_0180, 316, 1, 448, Pic_0181, 316, 1, 448, Pic_0182, 316, 1, 448, Pic_0183, 316, 1, 448, Pic_0184, 316, 1, 448, Pic_0185, 316, 1, 448, Pic_0186, 316, 1, 448,
Pic_0187, 316, 1, 448, Pic_0188, 316, 1, 448, Pic_0189, 316, 1, 448, Pic_0190, 316, 1, 448, Pic_0191, 316, 1, 448, Pic_0192, 316, 1, 448, Pic_0193, 316, 1, 448, Pic_0194, 316, 1, 448, Pic_0195, 316, 1, 448, Pic_0196, 316, 1, 448,
Pic_0197, 316, 1, 448, Pic_0198, 316, 1, 448, Pic_0199, 316, 1, 448, Pic_0200, 316, 1, 448, Pic_0201, 316, 1, 448, Pic_0202, 316, 1, 448, Pic_0203, 316, 1, 448, Pic_0204, 316, 1, 448, Pic_0205, 316, 1, 448, Pic_0206, 316, 1, 448,
Pic_0207, 316, 1, 448, Pic_0208, 316, 1, 448, Pic_0209, 316, 1, 448, Pic_0210, 316, 1, 448, Pic_0211, 316, 1, 448, Pic_0212, 316, 1, 448, Pic_0213, 316, 1, 448, Pic_0214, 316, 1, 448, Pic_0215, 316, 1, 448, Pic_0216, 316, 1, 448,
Pic_0217, 316, 1, 448, Pic_0218, 316, 1, 448, Pic_0219, 316, 1, 448, Pic_0220, 316, 1, 448, Pic_0221, 316, 1, 448, Pic_0222, 316, 1, 448, Pic_0223, 316, 1, 448, Pic_0224, 316, 1, 448, Pic_0225, 316, 1, 448, Pic_0226, 316, 1, 448,
Pic_0227, 316, 1, 448, Pic_0228, 316, 1, 448, Pic_0229, 316, 1, 448, Pic_0230, 316, 1, 448, Pic_0231, 316, 1, 448, Pic_0232, 316, 1, 448, Pic_0233, 316, 1, 448, Pic_0234, 316, 1, 448, Pic_0235, 316, 1, 448, Pic_0236, 316, 1, 448,
Pic_0237, 316, 1, 448, Pic_0238, 316, 1, 448, Pic_0239, 316, 1, 448, Pic_0240, 316, 1, 448, Pic_0241, 316, 1, 448, Pic_0242, 316, 1, 448, Pic_0243, 316, 1, 448, Pic_0244, 316, 1, 448, Pic_0245, 316, 1, 448, Pic_0246, 316, 1, 448,
Pic_0247, 316, 1, 448, Pic_0248, 316, 1, 448, Pic_0249, 316, 1, 448, Pic_0250, 316, 1, 448, Pic_0251, 316, 1, 448, Pic_0252, 316, 1, 448, Pic_0253, 316, 1, 448, Pic_0254, 316, 1, 448, Pic_0255, 85, 85, 619, Pic_0255, 85, 85, 641,
Pic_0255, 85, 85, 597, Pic_0255, 85, 85, 660, Pic_0255, 85, 85, 616, Pic_0256, 83, 86, 582, Pic_0256, 83, 86, 621, Pic_0257, 84, 86, 619, Pic_0258, 85, 85, 619, Pic_0259, 83, 86, 617, Pic_0260, 84, 85, 619, Pic_0261, 84, 85, 619,
Pic_0262, 83, 86, 619, Pic_0263, 85, 85, 619, Pic_0264, 84, 86, 619, Pic_0265, 15, 111, 619, Pic_0266, 252, 19, 157, Pic_0267, 279, 6, 152, Pic_0268, 252, 19, 157, Pic_0269, 252, 19, 157, Pic_0270, 245, 21, 166, Pic_0271, 58, 120, 117,
Pic_0272, 58, 120, 115, Pic_0273, 58, 120, 114, Pic_0274, 58, 120, 115, Pic_0275, 58, 120, 116, Pic_0271, 58, 120, 333, Pic_0272, 58, 120, 331, Pic_0273, 58, 120, 330, Pic_0274, 58, 120, 331, Pic_0275, 58, 120, 332, Pic_0276, 10, 244, 225,
Pic_0277, 11, 6, 96, Pic_0278, 2, 6, 91, Pic_0277, 11, 6, 82, Pic_0277, 11, 6, 74, Pic_0277, 11, 6, 66, Pic_0277, 11, 6, 58, Pic_0277, 11, 6, 50, Pic_0277, 11, 6, 42, Pic_0277, 11, 6, 34, Pic_0279, 11, 6, 97,
Pic_0280, 11, 6, 96, Pic_0281, 11, 6, 97, Pic_0282, 11, 6, 96, Pic_0283, 11, 6, 97, Pic_0284, 11, 6, 96, Pic_0285, 11, 6, 96, Pic_0286, 11, 6, 96, Pic_0287, 11, 6, 96, Pic_0288, 2, 9, 97, Pic_0289, 11, 6, 107,
Pic_0290, 10, 7, 145, Pic_0291, 13, 4, 145, Pic_0292, 287, 0, 849, Pic_0293, 16, 214, 870, Pic_0294, 16, 214, 870, Pic_0295, 16, 214, 870, Pic_0296, 17, 77, 867, Pic_0297, 17, 77, 867, Pic_0298, 17, 77, 866, Pic_0299, 56, 125, 824,
Pic_0300, 56, 125, 819, Pic_0301, 56, 125, 801, Pic_0302, 8, 181, 866, Pic_0303, 7, 116, 866, Pic_0304, 69, 116, 1075, Pic_0305, 74, 76, 1161, Pic_0306, 76, 60, 921, Pic_0307, 80, 13, 1001, Pic_0308, 69, 116, 1075, Pic_0309, 74, 76, 1161,
Pic_0310, 76, 60, 921, Pic_0311, 80, 13, 1001, Pic_0312, 69, 116, 1075, Pic_0313, 74, 76, 1161, Pic_0314, 76, 60, 921, Pic_0315, 80, 13, 1001, Pic_0316, 42, 83, 989, Pic_0317, 43, 140, 1136, Pic_0318, 33, 133, 978, Pic_0319, 32, 187, 1126,
Pic_0320, 7, 10, 1100, Pic_0321, 14, 11, 1092, Pic_0322, 2, 11, 1088, Pic_0321, 14, 11, 1080, Pic_0321, 14, 11, 1071, Pic_0320, 7, 47, 984, Pic_0321, 14, 56, 990, Pic_0322, 2, 56, 986, Pic_0321, 14, 56, 978, Pic_0321, 14, 56, 969,
Pic_0320, 7, 69, 1235, Pic_0321, 14, 69, 1227, Pic_0322, 2, 69, 1223, Pic_0321, 14, 69, 1215, Pic_0321, 14, 69, 1206, Pic_0320, 7, 105, 1134, Pic_0321, 14, 106, 1127, Pic_0322, 2, 106, 1123, Pic_0321, 14, 106, 1115, Pic_0321, 14, 106, 1106,
Pic_0323, 14, 11, 1092, Pic_0324, 14, 11, 1092, Pic_0325, 14, 11, 1092, Pic_0326, 14, 11, 1092, Pic_0327, 14, 11, 1091, Pic_0328, 14, 11, 1092, Pic_0329, 14, 11, 1092, Pic_0330, 14, 11, 1092, Pic_0331, 14, 11, 1092, Pic_0332, 14, 11, 1092,
Pic_0333, 2, 15, 1092, Pic_0334, 14, 11, 1092, Pic_0335, 14, 11, 1092, Pic_0336, 14, 11, 1092, Pic_0337, 14, 11, 1091, Pic_0338, 14, 11, 1092, Pic_0339, 14, 11, 1092, Pic_0340, 14, 11, 1092, Pic_0341, 14, 11, 1092, Pic_0342, 14, 11, 1092,
Pic_0343, 2, 15, 1092, Pic_0344, 70, 7, 1052, Pic_0345, 8, 18, 640, Pic_0346, 7, 18, 636, Pic_0346, 7, 18, 632, Pic_0346, 7, 18, 628, Pic_0347, 7, 18, 636, Pic_0348, 7, 18, 636, Pic_0349, 7, 18, 636, Pic_0350, 7, 18, 636,
Pic_0351, 7, 18, 636, Pic_0352, 7, 18, 636, Pic_0353, 7, 18, 636, Pic_0354, 7, 18, 636, Pic_0355, 7, 18, 636, Pic_0356, 1, 20, 636, Pic_0357, 8, 29, 629, Pic_0358, 19, 206, 1041, Pic_0359, 32, 147, 972, Pic_0359, 32, 113, 972,
Pic_0359, 32, 79, 972, Pic_0359, 32, 45, 972, Pic_0360, 8, 158, 1070, Pic_0360, 8, 124, 1070, Pic_0360, 8, 90, 1070, Pic_0360, 8, 56, 1070, Pic_0361, 14, 155, 1094, Pic_0362, 14, 121, 1094, Pic_0363, 14, 87, 1094, Pic_0364, 14, 53, 1094,
Pic_0277, 11, 6, 1195, Pic_0277, 11, 6, 1187, Pic_0365, 5, 6, 1182, Pic_0277, 11, 6, 1173, Pic_0277, 11, 6, 1165, Pic_0366, 11, 6, 1206, Pic_0367, 11, 6, 1207, Pic_0279, 11, 6, 1196, Pic_0280, 11, 6, 1195, Pic_0281, 11, 6, 1196,
Pic_0282, 11, 6, 1195, Pic_0283, 11, 6, 1196, Pic_0284, 11, 6, 1195, Pic_0285, 11, 6, 1195, Pic_0286, 11, 6, 1195, Pic_0287, 11, 6, 1195, Pic_0288, 2, 9, 1196, Pic_0368, 27, 44, 431, Pic_0369, 26, 45, 816, Pic_0370, 21, 265, 244,
Pic_0371, 22, 264, 286, Pic_0372, 20, 265, 329, Pic_0373, 23, 265, 377, Pic_0374, 26, 262, 429, Pic_0375, 16, 267, 476, Pic_0376, 20, 265, 780, Pic_0377, 20, 265, 780, Pic_0378, 24, 262, 824, Pic_0379, 21, 265, 868, Pic_0380, 24, 263, 914,
Pic_0381, 29, 260, 965, Pic_0382, 28, 261, 1005, Pic_0383, 24, 228, 419, Pic_0384, 24, 203, 443, Pic_0385, 26, 202, 805, Pic_0386, 30, 227, 829, Pic_0387, 26, 233, 462, Pic_0388, 23, 234, 789, Pic_0277, 11, 296, 1163, Pic_0278, 2, 296, 1157,
Pic_0277, 11, 296, 1148, Pic_0277, 11, 296, 1140, Pic_0279, 11, 296, 1164, Pic_0280, 11, 296, 1163, Pic_0281, 11, 296, 1164, Pic_0282, 11, 296, 1163, Pic_0283, 11, 296, 1164, Pic_0284, 11, 296, 1163, Pic_0285, 11, 296, 1163, Pic_0286, 11, 296, 1163,
Pic_0287, 11, 296, 1163, Pic_0288, 2, 299, 1164, Pic_0389, 11, 296, 1171, Pic_0390, 14, 295, 1111, Pic_0391, 11, 6, 107, Pic_0392, 15, 179, 622, Pic_0393, 19, 175, 625, Pic_0394, 320, 0, 0, Pic_0395, 320, 0, 0, Pic_0396, 320, 0, 0,
Pic_0397, 320, 0, 0, Pic_0398, 320, 0, 0, Pic_0399, 320, 0, 0, Pic_0400, 320, 0, 0, Pic_0401, 320, 0, 0, Pic_0402, 320, 0, 0, Pic_0403, 320, 0, 0, Pic_0404, 320, 0, 0, Pic_0405, 320, 0, 0, Pic_0406, 320, 0, 0,
Pic_0407, 320, 0, 0, Pic_0408, 320, 0, 0, Pic_0409, 320, 0, 0, Pic_0410, 320, 0, 0, Pic_0411, 320, 0, 0, Pic_0412, 320, 0, 0, Pic_0413, 320, 0, 0, Pic_0414, 320, 0, 0, Pic_0415, 320, 0, 0, Pic_0416, 320, 0, 0,
Pic_0417, 320, 0, 0, Pic_0418, 234, 9, 522,
};
#define PIC_INDEX_DATA_CRC 0xA79CD9CA
void User_PicIndexDataInit(void);
#endif
#ifndef UART_PROTOCOL_H
#define UART_PROTOCOL_H
typedef unsigned int uint32_t;
typedef int int32_t;
typedef unsigned short uint16_t;
typedef short int16_t;
typedef unsigned char uint8_t;
#define UART_UPDATE_ACK_NONE 0
#define UART_UPDATE_ACK_OK 1
#define UART_UPDATE_ACK_WAIT 2
#define UART_UPDATE_ACK_FAIL 3
#define UART_UPDATE_ACK_TIMEOUT 4
#define GROUP_PIC_DIR_LEFT 0x80
#define GROUP_PIC_DIR_RIGHT 0x00
#define GROUP_PIC_USE_PSD_Y_POS -1
typedef enum {
ALIVE_COUNTER_COMM,
ALIVE_COUNTER_LCD0,
ALIVE_COUNTER_LCD1,
ALIVE_COUNTER_TOTAL,
}ALIVE_COUNTER_TYPE;
/* Generate Function */
extern void ResetInitedState(void); /* Called every time the AMT630 is powered on or the MCU wake up */
extern uint8_t GetAliveCounter(ALIVE_COUNTER_TYPE n); /* 0:ALIVE_COUNTER_COMM, 1:ALIVE_COUNTER_LCD0, 2:ALIVE_COUNTER_LCD1 */
extern uint32_t GetCrcErrCnts(void);
extern uint32_t GetRecvLenErrCnts(void);
extern uint8_t GetLcdInitSt(void);
extern uint8_t GetCameraSignalSt(void);
extern uint8_t GetVideoCaptureSt(void);
extern uint8_t GetAmt630InBoot(void);
extern uint8_t *GetUartRecvData(uint32_t *UartRecvBufLen, uint32_t *UartRecvPos);
extern void UartSendData(uint8_t *data, uint32_t len);
extern void AnalysisUartData(void);
extern void UARTTxBuf_Init(void);
/* Generate Function end */
/* Lcd Parameter */
typedef enum {
AMT630_UART1 = 1,
AMT630_UART2,
AMT630_UART3,
} AMT630_UART_CH_TYPE;
#define LCD_WIRING_MODE_RGB 0
#define LCD_WIRING_MODE_RBG 1
#define LCD_WIRING_MODE_GRB 2
#define LCD_WIRING_MODE_GBR 3
#define LCD_WIRING_MODE_BRG 4
#define LCD_WIRING_MODE_BGR 5
#define LCD_INTERFACE_TTL 0
#define LCD_INTERFACE_LVDS 1
#define LCD_INTERFACE_MIPI 2
#define LCD_WIRING_BIT_ORDER_MSB 0
#define LCD_WIRING_BIT_ORDER_LSB 1
#define LVDS_PANEL_FORMAT_TI 0
#define LVDS_PANEL_FORMAT_NS 1
#define LVDS_PANEL_DATA_8BIT 0
#define LVDS_PANEL_DATA_6BIT 1
#define VIDEO_IN_NONE 0
#define VIDEO_IN_NTSC 1
#define VIDEO_IN_PAL 2
#pragma pack(1)
typedef struct {
uint16_t LcdWidth;
uint16_t LcdHeight;
uint8_t LcdVideoInputValid : 2;
uint8_t LcdBpp : 6;
uint8_t Ark7116ResetPin;
uint8_t LcdInterfaceType : 4;
uint8_t LcdWiringMode : 4;
uint8_t LcdWiringBitOrder : 2;
uint8_t LcdDotClkReverse : 2;
uint8_t LvdsPanelFormat : 2;
uint8_t LvdsPanelData : 2;
uint16_t LcdTimingVBP;
uint16_t LcdTimingVFP;
uint16_t LcdTimingVSW;
uint16_t LcdTimingHBP;
uint16_t LcdTimingHFP;
uint16_t LcdTimingHSW;
uint32_t LcdClkFreq;
uint8_t SoundFreq;
uint8_t SoundChannelNum;
}LCD_TFT_PARA_ST;
typedef struct {
uint32_t MipiClkFreq;
uint8_t MipiNpPolarityInverse;
uint8_t MipiLane;
uint8_t MipiDisplaymMode;
}LCD_TFT_MIPI_PARA_ST;
#define RN6752_INPUT_TYPE_NONE 0
#define RN6752_INPUT_TYPE_CVBS_NTSC 1
#define RN6752_INPUT_TYPE_CVBS_PAL 2
#define RN6752_INPUT_TYPE_AHD_720P_25 3
#define RN6752_INPUT_TYPE_AHD_720P_30 4
typedef struct {
uint8_t Rn6752InputType;
uint8_t Rn6752ResetPin;
uint8_t Rn6752Address;
}RN6752_PARA_ST;
#pragma pack()
extern void SetLcdParameter(LCD_TFT_PARA_ST *pData, LCD_TFT_MIPI_PARA_ST *pDataMipi, AMT630_UART_CH_TYPE Amt630UartCh, RN6752_PARA_ST *pDataRn6752);
/* Lcd Parameter end */
/* Amt Software */
typedef struct {
uint8_t AmtLdrVer[8];
uint8_t StepLdrVer[8];
uint8_t AmtAppVer[8];
uint8_t UiVer[8];
uint8_t SoundVer[8];
uint8_t FontVer[8];
} SOFTWARE_VERSION_ST;
extern SOFTWARE_VERSION_ST amt630Version;
extern void SetSwVerBuf(uint8_t *buf);
extern void PackedTransfer_GetSwVer(void);
/* Amt Software end */
/* Pic Index */
extern void SetPicIndexData(uint8_t *data, uint32_t len, uint32_t crc);
/* Pic Index end */
/* Sequence Frame */
#define SE_FRAME_PIC_MAX 100
enum {
SE_TYPE_NONE,
SE_TYPE_ONE_SHOT,
SE_TYPE_CONTINUOUS,
};
typedef struct {
uint16_t Pic;
} SEQUENCE_FRAME_PIC_ST;
typedef struct {
uint8_t SeFrameType;
uint8_t SeFrameNumTotal;
uint16_t SeFrameTotalTime;
uint16_t SeFrameValidTime;
SEQUENCE_FRAME_PIC_ST SeFramePicList[SE_FRAME_PIC_MAX];
} SEQUENCE_FRAME_ST;
extern SEQUENCE_FRAME_ST SeFrameData;
extern void PackedTransfer_SequenceFrame(uint8_t *SeData, uint16_t SeLen);
extern void PackedTransfer_SequenceFrameOff(void);
/* Sequence Frame end */
/* Pointer Move Type */
typedef enum {
POINTER_TYPE_SPEED,
POINTER_TYPE_ENGINE,
POINTER_TYPE_COOLANT_FUEL,
POINTER_TYPE_CUSTOMIZE,
POINTER_TYPE_MAX,
} POINTER_MOVE_TYPE_ENUM;
typedef enum {
POINTER_RENDER_TYPE_POINTER,
POINTER_RENDER_TYPE_SEQUENCE_PIC,
} POINTER_RENDER_TYPE_ENUM;
typedef struct {
uint32_t PointerAngleP; /* 10:0.1, 15:0.15, 100:1 .... POINTER_TYPE_SPEED default:30 */
uint32_t PointerAngleD; /* 10:0.1, 15:0.15, 100:1 .... POINTER_TYPE_SPEED default:18 */
uint32_t PointerAngleSlowP; /* 10:0.1, 15:0.15, 100:1 .... POINTER_TYPE_SPEED default:10 */
uint32_t PointerAngleSlowD; /* 10:0.1, 15:0.15, 100:1 .... POINTER_TYPE_SPEED default:18 */
uint32_t MaxInterval; /* 10:0.1, 15:0.15, 100:1 .... POINTER_TYPE_SPEED default:340 */
} POINTER_MOVE_PARA;
extern void PackedTransfer_SetPointerMoveType(POINTER_MOVE_PARA *Data, POINTER_MOVE_TYPE_ENUM MoveType);
/* Pointer Move Type end */
/* Pointer */
typedef enum {
POINTER_0,
POINTER_1,
POINTER_2,
POINTER_3,
POINTER_MAX,
} POINTER_ENUM;
extern void PackedTransfer_InitPointer(POINTER_ENUM PointerN, uint8_t *data, uint16_t len, POINTER_MOVE_TYPE_ENUM MoveType, POINTER_RENDER_TYPE_ENUM RenderType);
extern uint8_t GetPointerInitSt(POINTER_ENUM PointerN);
extern void PackedTransfer_SetPointerDestVal(POINTER_ENUM PointerN, uint16_t DestVal, uint8_t NoDamping); /* DestVal:0~1000, NoDamping: 0-have damping, 1:no damping */
extern uint16_t GetPointerCurVal(POINTER_ENUM PointerN); /* CurVal:0~1000 */
#define POINTER_NUM_LIST_MAX 20
extern void SetPointerNumPic(POINTER_ENUM PointerN, uint8_t n, uint16_t PicIndex, uint16_t PointerVal);
extern void SetPointerNumZoomPara(POINTER_ENUM PointerN, uint16_t ZoomRange, float ZoomMax);
extern void PackedTransfer_PointerNumData(POINTER_ENUM PointerN);
/* Pointer end */
/* Page Data */
typedef enum {
GRAPHICS_PAGE_0,
GRAPHICS_PAGE_1,
GRAPHICS_PAGE_2,
GRAPHICS_PAGE_MAX,
} GRAPHICS_PAGE_ENUM;
typedef enum {
SWITCH_EFFECT_NONE,
SWITCH_EFFECT_ONLY_ALPHA,
SWITCH_EFFECT_ONLY_OFFSET,
SWITCH_EFFECT_ALPHA_OFFSET,
} EFFECT_VALID_ENUM;
typedef enum {
SWITCH_EFFECT_OFFSET_FADE_IN_RIGHT_TO_LEFT,
SWITCH_EFFECT_OFFSET_FADE_IN_LEFT_TO_RIGHT,
SWITCH_EFFECT_OFFSET_FADE_IN_UP_TO_DOWN,
SWITCH_EFFECT_OFFSET_FADE_IN_DOWN_TO_UP,
} OFFSET_EFFECT_ENUM;
typedef enum {
ALIGN_LEFT,
ALIGN_CENTER,
ALIGN_RIGHT,
} TEXT_ALIGN_TYPE;
typedef enum {
TFT_ROT_0,
TFT_ROT_90,
TFT_ROT_180,
TFT_ROT_270,
} TFT_ROT_TYPE;
#define TEXT_ROT_SCALE (r, s) ((((r) & 0xffff) << 16) | ((s) & 0xffff))
#define TEXT_COLOR(r, g, b, a) ((((r) & 0xff) << 24) | (((g) & 0xff) << 16) | (((b) & 0xff) << 8) | ((a) & 0xff))
#define TEXT_LINE_OFFSET(x, y) ((((x) & 0xffff) << 16) | ((y) & 0xffff))
#define GROUP_ALIGN_LEFT 0x0
#define GROUP_ALIGN_CENTER 0x40
extern void SetPageGuid(GRAPHICS_PAGE_ENUM page, uint8_t h, uint8_t m, uint8_t l);
extern void SetPageBackground(GRAPHICS_PAGE_ENUM page, uint16_t PicIndex);
extern void SetPagePic(GRAPHICS_PAGE_ENUM page, uint16_t PicIndex);
extern void SetPagePicPointerNum(GRAPHICS_PAGE_ENUM page, POINTER_ENUM PointN, uint16_t PicIndex);
extern void SetPagePicFree(GRAPHICS_PAGE_ENUM page, uint16_t PicIndex, int16_t PosX, int16_t PosY);
extern void SetPagePicFreeAppend(GRAPHICS_PAGE_ENUM page, uint16_t pic, int16_t PosX, int16_t PosY);
extern void SetPagePicGroupExtParaOriCoor(GRAPHICS_PAGE_ENUM page, uint8_t PicNum, uint16_t NumZeroPic);
extern void SetPagePicGroup(GRAPHICS_PAGE_ENUM page, int16_t Interval, int16_t PosX, int16_t PosY, uint16_t *PicList, uint32_t Align_Num, uint16_t Dot_Itv, TFT_ROT_TYPE TftRot);
extern void SetPageText(GRAPHICS_PAGE_ENUM page, uint16_t LabelNum, int16_t PosX, int16_t PosY, int16_t MaxX, TEXT_ALIGN_TYPE AlginType, uint32_t RotScale, uint32_t Color, uint32_t LineOffset); /* TEXT_ROT_SCALE:use TEXT_ROT_SCALE macro, (r:0~3600); (s:-1000 ~ 1000, 0:no scale, 1 ~ 1000:zoom in, -1 ~ -1000:zoom out); Color:use TEXT_COLOR macro; LineOffset:use TEXT_LINE_OFFSET macro */
extern void SetPagePointerPic(GRAPHICS_PAGE_ENUM page, POINTER_ENUM PointN, uint16_t PicIndex);
extern void SetPagePointerSePic(GRAPHICS_PAGE_ENUM page, POINTER_ENUM PointN);
extern void SetPagePointerTrackPic(GRAPHICS_PAGE_ENUM page, POINTER_ENUM PointN, uint16_t PicIndex);
extern void SetPagePointerTrackActiceArea(GRAPHICS_PAGE_ENUM page, POINTER_ENUM PointN, int16_t ActivePosX, int16_t ActivePosY, uint16_t ActiveW, uint16_t ActiveH);
extern void SetPageSliderNumPic(GRAPHICS_PAGE_ENUM page, uint8_t SliderNum);
extern void SetPageSliderImagePic(GRAPHICS_PAGE_ENUM page, uint8_t SliderImageNum);
extern void PackedTransfer_PicDirectDraw(uint32_t PicIndex, uint8_t Valid);
extern void PackedTransfer_BgJpg(uint32_t PicIndex);
extern void PackedTransfer_Page(void);
extern void PackedTransfer_PageEffect(GRAPHICS_PAGE_ENUM page, EFFECT_VALID_ENUM EffectValid, OFFSET_EFFECT_ENUM OffsetEffect);
extern void PackedTransfer_ClearPageData(GRAPHICS_PAGE_ENUM page);
/* Page Data end */
/* Compose Pic */
extern void PackedTransfer_ComposeData(uint8_t *data, uint8_t len);
/* Compose Pic end */
/* Label List */
extern uint8_t GetLanguageInitSt(void);
extern void PackedTransfer_InitLanguageFont(uint8_t Language, uint8_t Font);
extern void PackedTransfer_LabelsList(uint16_t LabelNum, uint8_t *LabelBuf, uint32_t LabelLen);
/* Label List end */
/* Flash Check */
typedef enum {
DISPLAY_CHECKING,
DISPLAY_CHECK_PASS,
DISPLAY_CHECK_FAIL,
}FLASH_CHECK_FORCE_DISPLAY_TYPE;
extern void PackedTransfer_CheckFlash(void);
extern uint8_t PackedTransfer_CheckFlashGetResult(void); /*return value 0xff:checking, 0:fail, 1:success */
extern void PackedTransfer_CheckFlashForceDisplay(FLASH_CHECK_FORCE_DISPLAY_TYPE type, uint16_t timerMs);
/* Flash Check end */
/* Video Input */
extern void PackedTransfer_VedioInputOn(uint32_t PosX, uint32_t PosY, uint32_t Wdith, uint32_t Height, uint32_t CutX, uint32_t CutY);
extern void PackedTransfer_VedioInputOff(void);
extern void PackedTransfer_VedioInputArk7116OutputOff(void);
extern void PackedTransfer_VedioInputArk7116OutputOn(void);
/* Video Input end */
/* Get Mcu or Backup Data */
typedef enum {
REQ_DATA,
GET_STATUS,
GET_APP_DATA_OFFSET,
GET_BACKUP_DATA_OFFSET,
GET_BACKUP_DATA_CRC,
WRITE_BACKUP_DATA,
} READ_ARK630_CMD;
typedef enum {
RECV_TYPE_DATA,
RECV_TYPE_OFFSET_LEN,
RECV_TYPE_WRITE_BACKUP_RESP,
RECV_TYPE_BACKUP_CRC,
}RECV_MCU_DATA_TYPE;
extern void GetDataBuf(uint32_t *pAddr, uint32_t *pLen);
extern void SetRecvDataSt(RECV_MCU_DATA_TYPE type, uint32_t addr, uint32_t len, uint32_t crc);
extern void PackedTransfer_GetMcuData(uint32_t addr, uint16_t len);
extern void PackedTransfer_GetDataOffsetLen(uint8_t type);
extern void PackedTransfer_GetBackupDataCrc(uint32_t addr, uint32_t len);
extern void PackedTransfer_WriteBackupData(uint32_t addr, uint8_t *data, uint16_t len);
/* Get Mcu or Backup Data end */
/* Set tft io mode */
extern void PackedTransfer_SetTftIoMode(uint8_t st); /*st 0:normal gpio, 1:TFT io*/
/* Set tft io mode end */
/* Slider Num */
#pragma pack(1)
#define SLIDER_NUM_MAX 300 /* The maximum value is 300 */
typedef struct {
uint8_t SliderNum;
uint8_t SliderValid;
uint8_t ZoomOutMax;
uint8_t AlphaMin;
float DestVal;
float CurVal;
int16_t PosX;
int16_t PosY;
int16_t Interval;
uint16_t PicNum;
uint16_t DampingVal;
uint16_t PicIndex[SLIDER_NUM_MAX];
} SLIDER_NUMBER_PARA_ST;
#pragma pack()
extern void PackedTransfer_SliderNumData(uint8_t n, uint8_t *data, uint32_t len); /* PackedTransfer_SliderNumData(0, &SliderNumParaData, sizeof (SLIDER_NUMBER_PARA_ST)); */
extern void PackedTransfer_SliderNumDestVal(uint8_t n, uint16_t val, uint8_t ForceUpdate, uint8_t DisplayValid);
/* Slider Num end */
/* Slider Image */
#pragma pack(1)
#define SLIDER_IMAGE_PIC_MAX 5 /* The maximum value is 5 */
enum {
SLIDER_IMAGE_TYPE_HORIZONTAL_LEFT_TO_RIGHT,
SLIDER_IMAGE_TYPE_HORIZONTAL_RIGHT_TO_LEFT,
SLIDER_IMAGE_TYPE_VERTICAL_UP_TO_DOWN,
SLIDER_IMAGE_TYPE_VERTICAL_DOWN_TO_UP,
};
typedef struct {
uint8_t SliderType;
uint8_t SliderValid;
uint8_t Reserve1;
uint8_t Reserve2;
float DestVal;
float CurVal;
int16_t PosX;
int16_t PosY;
int16_t Interval;
uint16_t DampingVal;
uint16_t PicIndex[SLIDER_IMAGE_PIC_MAX];
} SLIDER_IMAGE_PARA_ST;
#pragma pack()
extern void PackedTransfer_SliderImageData(uint8_t n, uint8_t *data, uint32_t len); /* The setting range of parameter n is 0~9, PackedTransfer_SliderImageData(0, &SliderImageParaData, sizeof (SLIDER_IMAGE_PARA_ST)); */
extern void PackedTransfer_SliderImageDestVal(uint8_t n, uint16_t val, uint8_t ForceUpdate, uint8_t DisplayValid);
/* Slider Num end */
enum {NUM_0, NUM_1, NUM_2, NUM_3, NUM_4, NUM_5, NUM_6, NUM_7, NUM_8, NUM_9, NUM_POINT, NUM_LINE};
typedef struct {
const uint16_t *NumList;
int16_t NumInterval;
int16_t x;
int16_t y;
uint8_t DecimalNum;
uint8_t MinDigits;
} DISPLAY_NUM_ST;
extern void DisplayNum(uint8_t page, DISPLAY_NUM_ST *pNumData, int32_t NumVal);
/*
note:
Update630HBegin UDS 34 Seriver call and power on 630H and lcd by your self
Update630HWrite UDS 36 Seriver call
Update630HEnd UDS 37 Seriver call
return 0 is wait, return 1 is success, return 2 is fail.
*/
extern uint8_t Update630HBegin(uint32_t TimerCnts);
extern uint8_t Update630HWrite(uint32_t TimerCnts, uint8_t *data, uint32_t len);
extern uint8_t Update630HEnd(uint32_t TimerCnts);
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment