//************************************************************************************
//**  
//**  Source name:   C:\Flowcode11\Projekter\NewSun\NewSunE.fcfx
//**  Title:         
//**  Description:   
//**  Device:        ESP.ESP32.ESP32_DEVKITV1
//**  
//**  Generated by:  Flowcode v11.0.0.8
//**  Date:          Tuesday, January 27, 2026 19:43:12
//**  Users:         1
//**  Registered to: jgu1 (43418841)
//**  Licence key: WP9QTX
//**  
//**  
//**  https://www.flowcode.co.uk
//**  
//************************************************************************************


#define MX_ESP

#define MX_CAL_ESP

#define MX_CLK_SPEED 240000000

#define FCP_NULL Unconnected_Port


#define MX_CAL_ESP32
#define MX_ESP32_TYPE ESP32
#include <stdio.h>
#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/event_groups.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_wifi.h"
#include "esp_log.h"
#include "esp_event_loop.h"
#include "nvs_flash.h"
#include "lwip/err.h"
#include "lwip/sys.h"
#include "sdkconfig.h"

/*========================================================================*\
   Use :Include the type definitions
\*========================================================================*/
#include "C:\ProgramData\MatrixTSL\FlowcodeV11\CAL\internals.c"



MX_UINT32 FCLV_LOOP1;
MX_UINT32 FCLV_LOOP2;
MX_UINT32 FCLV_LOOP3;
MX_UINT32 FCLV_LOOP4;
MX_UINT32 FCLV_LOOP5;
MX_UINT32 FCLV_LOOP6;
MX_UINT32 FCLV_LOOP7;
MX_UINT8 FCLV_LOOP8;
MX_UINT8 FCLV_LOOP9;
MX_UINT8 FCLV_LOOP10;

void FCM_LadeStatus();
void FCM_TouchTest();
void FCM_CalibrateKnap();
void FCM_test();
void FCM_SetMaxVolt();
void FCM_Info();
void FCM_PlusMinus();
void FCM_Sleep();
void FCM_NEXT();
void FCM_Setting();
void FCM_VoltAmp();
void FCM_Lysstatus();
void FCM_Test_Out();
void FCM_Analigth();
void FCM_Touch();
void FCM_Menu();
void FCM_VoltSaveScaler();
void FCM_Nat();
void FCM_FrontValg();
void FCM_Time();

/*========================================================================*\
   Use :cal_adc
       :Macro function declarations
\*========================================================================*/
#define MX_ADC_REF1 
#define MX_ADC_TYPE_1 
#define MX_ADC_BITS_12 
#define MX_ADC_CHANNEL_6 


/*=----------------------------------------------------------------------=*\
   Use :cal_adc
       :Supplementary defines
\*=----------------------------------------------------------------------=*/
#define FC_ADC_Enable_3 FC_CAL_ADC_Enable_1
#define FC_ADC_Disable_3 FC_CAL_ADC_Disable_1
#define FC_ADC_Sample_3 FC_CAL_ADC_Sample_1

void FC_ADC_Disable_3();
void FC_ADC_Enable_3(MX_UINT8 FCL_CHANNEL, MX_UINT8 FCL_CONV_SPEED, MX_UINT8 FCL_VREF, MX_UINT8 FCL_T_CHARGE);
MX_UINT16 FC_ADC_Sample_3(MX_UINT8 FCL_SAMPLE_MODE);
MX_UINT16 FCD_0cc51_adc_base1__RawSampleInt();
MX_UINT8 FCD_0cc51_adc_base1__RawAverageByte(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
void FCD_0cc51_adc_base1__GetString(MX_CHAR *FCR_RETVAL, MX_UINT16 FCRsz_RETVAL);
MX_UINT8 FCD_0cc51_adc_base1__GetAverageByte(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
MX_SINT16 FCD_0cc51_adc_base1__RawAverageInt(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
MX_UINT16 FCD_0cc51_adc_base1__GetAverageInt(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
MX_FLOAT FCD_0cc51_adc_base1__GetVoltage();
void FCD_0cc51_adc_base1__RawEnable();
MX_UINT8 FCD_0cc51_adc_base1__RawSampleByte();
MX_UINT16 FCD_0cc51_adc_base1__GetInt();
void FCD_0cc51_adc_base1__RawDisable();
MX_UINT8 FCD_0cc51_adc_base1__GetByte();
MX_UINT32 FCD_0c431_MapFunction1__MapUlong(MX_UINT32 FCL_VALUE, MX_UINT32 FCL_INMIN, MX_UINT32 FCL_INMAX, MX_UINT32 FCL_OUTMIN, MX_UINT32 FCL_OUTMAX, MX_BOOL FCL_CLAMPMINMAX);
MX_SINT16 FCD_0c431_MapFunction1__MapInt(MX_SINT16 FCL_VALUE, MX_SINT16 FCL_INMIN, MX_SINT16 FCL_INMAX, MX_SINT16 FCL_OUTMIN, MX_SINT16 FCL_OUTMAX, MX_BOOL FCL_CLAMPMINMAX);
MX_FLOAT FCD_0c431_MapFunction1__MapFloat(MX_FLOAT FCL_VALUE, MX_FLOAT FCL_INMIN, MX_FLOAT FCL_INMAX, MX_FLOAT FCL_OUTMIN, MX_FLOAT FCL_OUTMAX, MX_BOOL FCL_CLAMPMINMAX);
MX_SINT32 FCD_0c431_MapFunction1__MapLong(MX_SINT32 FCL_VALUE, MX_SINT32 FCL_INMIN, MX_SINT32 FCL_INMAX, MX_SINT32 FCL_OUTMIN, MX_SINT32 FCL_OUTMAX, MX_BOOL FCL_CLAMPMINMAX);
MX_UINT16 FCD_0c431_MapFunction1__MapUInt(MX_UINT16 FCL_VALUE, MX_UINT16 FCL_INMIN, MX_UINT16 FCL_INMAX, MX_UINT16 FCL_OUTMIN, MX_UINT16 FCL_OUTMAX, MX_BOOL FCL_CLAMPMINMAX);
MX_UINT8 FCD_0c431_MapFunction1__MapByte(MX_UINT8 FCL_VALUE, MX_UINT8 FCL_INMIN, MX_UINT8 FCL_INMAX, MX_UINT8 FCL_OUTMIN, MX_UINT8 FCL_OUTMAX, MX_BOOL FCL_CLAMPMINMAX);
MX_BOOL FCD_0b4c2_IsSim1__Check();

/*========================================================================*\
   Use :Pot_Slider1
       :Macro function declarations
\*========================================================================*/
#define FCV_07041_Pot_Slider1__COMPONENTLABEL (1)

void FCD_07041_Pot_Slider1__GetString(MX_CHAR *FCR_RETVAL, MX_UINT16 FCRsz_RETVAL);
MX_UINT8 FCD_07041_Pot_Slider1__GetAverageByte(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
MX_UINT16 FCD_07041_Pot_Slider1__GetAverageInt(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
MX_FLOAT FCD_07041_Pot_Slider1__GetVoltage();
MX_UINT16 FCD_07041_Pot_Slider1__GetInt();
MX_UINT8 FCD_07041_Pot_Slider1__GetByte();

/*========================================================================*\
   Use :TypeConversionsFree1
       :Macro function declarations
\*========================================================================*/

/*=----------------------------------------------------------------------=*\
   Use :TypeConversionsFree1
       :Supplementary defines
\*=----------------------------------------------------------------------=*/

#ifndef MX_UNIONTYPE
 #define MX_UNIONTYPE
 typedef union
{
  MX_FLOAT AsFloat;
  MX_UINT32 AsLong;
  MX_UINT16 AsInt[2];
  MX_UINT8  AsByte[4];
} MX_Union_Type;
 MX_Union_Type MX_Conv_Var;
#endif


void FCD_02571_TypeConversionsFree1__SetInt(MX_UINT8 FCL_INDEX, MX_UINT16 FCL_VALUE);
void FCD_02571_TypeConversionsFree1__SetLong(MX_UINT32 FCL_VALUE);
MX_FLOAT FCD_02571_TypeConversionsFree1__GetFloat();
MX_UINT32 FCD_02571_TypeConversionsFree1__GetLong();
MX_UINT16 FCD_02571_TypeConversionsFree1__GetInt(MX_UINT8 FCL_INDEX);
void FCD_02571_TypeConversionsFree1__SetByte(MX_UINT8 FCL_INDEX, MX_UINT8 FCL_VALUE);
MX_UINT8 FCD_02571_TypeConversionsFree1__GetByte(MX_UINT8 FCL_INDEX);
void FCD_02571_TypeConversionsFree1__SetFloat(MX_FLOAT FCL_VALUE);

/*========================================================================*\
   Use :cal_eeprom
       :Macro function declarations
\*========================================================================*/
#define MX_EEPROM_REF 
#define MX_EE_SIZE 128
#define MX_EE_Flash_Address 0
#define MX_EE_TYPE1 


/*=----------------------------------------------------------------------=*\
   Use :cal_eeprom
       :Supplementary defines
\*=----------------------------------------------------------------------=*/
#define MX_EE
MX_UINT16 FC_CAL_EE_Read(MX_UINT16 FCL_ADDRESS);
void FC_CAL_EE_Write(MX_UINT16 FCL_ADDRESS, MX_UINT16 FCL_DATA);
void FCD_06651_eeprom1__WriteFloat(MX_UINT16 FCL_STARTADDRESS, MX_FLOAT FCL_VALUE, MX_BOOL FCL_MSBFIRST);
MX_UINT16 FCD_06651_eeprom1__ReadInt(MX_UINT16 FCL_STARTADDRESS, MX_BOOL FCL_MSBFIRST);
MX_FLOAT FCD_06651_eeprom1__ReadFloat(MX_UINT16 FCL_STARTADDRESS, MX_BOOL FCL_MSBFIRST);
void FCD_06651_eeprom1__WriteByte(MX_UINT16 FCL_BYTEADDRESS, MX_UINT8 FCL_VALUE);
void FCD_06651_eeprom1__WriteInt(MX_UINT16 FCL_STARTADDRESS, MX_UINT16 FCL_VALUE, MX_BOOL FCL_MSBFIRST);
void FCD_06651_eeprom1__ReadString(MX_CHAR *FCR_RETVAL, MX_UINT16 FCRsz_RETVAL, MX_UINT16 FCL_STARTADDRESS, MX_UINT8 FCL_MAXCHARS);
MX_UINT16 FCD_06651_eeprom1__Read(MX_UINT16 FCL_ADDRESS);
MX_UINT32 FCD_06651_eeprom1__ReadLong(MX_UINT16 FCL_STARTADDRESS, MX_BOOL FCL_MSBFIRST);
void FCD_06651_eeprom1__WriteString(MX_UINT16 FCL_STARTADDRESS, MX_UINT8 FCL_MAXCHARS, MX_CHAR *FCL_DATASTRING, MX_UINT16 FCLsz_DATASTRING);
void FCD_06651_eeprom1__Sim_Write(MX_UINT16 FCL_ADDRESS, MX_UINT16 FCL_VALUE);
void FCD_06651_eeprom1__Write(MX_UINT16 FCL_ADDRESS, MX_UINT16 FCL_VALUE);
MX_UINT8 FCD_06651_eeprom1__ReadByte(MX_UINT16 FCL_BYTEADDRESS, MX_BOOL FCL_MSBFIRST);
MX_UINT16 FCD_06651_eeprom1__Sim_Read(MX_UINT16 FCL_ADDRESS);
void FCD_06651_eeprom1__WriteLong(MX_UINT16 FCL_STARTADDRESS, MX_UINT32 FCL_VALUE, MX_BOOL FCL_MSBFIRST);

/*========================================================================*\
   Use :cal_adc
       :Macro function declarations
\*========================================================================*/
#define MX_ADC_REF1 
#define MX_ADC_TYPE_1 
#define MX_ADC_BITS_12 
#define MX_ADC_CHANNEL_35 


/*=----------------------------------------------------------------------=*\
   Use :cal_adc
       :Supplementary defines
\*=----------------------------------------------------------------------=*/
#define FC_ADC_Enable_2 FC_CAL_ADC_Enable_1
#define FC_ADC_Disable_2 FC_CAL_ADC_Disable_1
#define FC_ADC_Sample_2 FC_CAL_ADC_Sample_1

void FC_ADC_Disable_2();
void FC_ADC_Enable_2(MX_UINT8 FCL_CHANNEL, MX_UINT8 FCL_CONV_SPEED, MX_UINT8 FCL_VREF, MX_UINT8 FCL_T_CHARGE);
MX_UINT16 FC_ADC_Sample_2(MX_UINT8 FCL_SAMPLE_MODE);
MX_UINT8 FCD_08f42_adc_base__RawAverageByte(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
void FCD_08f42_adc_base__GetString(MX_CHAR *FCR_RETVAL, MX_UINT16 FCRsz_RETVAL);
MX_UINT8 FCD_08f42_adc_base__GetAverageByte(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
MX_SINT16 FCD_08f42_adc_base__RawAverageInt(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
MX_UINT16 FCD_08f42_adc_base__GetAverageInt(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
MX_FLOAT FCD_08f42_adc_base__GetVoltage();
MX_UINT16 FCD_08f42_adc_base__GetInt();
MX_UINT8 FCD_08f42_adc_base__GetByte();
#define FCD_0d101_slider_plastic1__GetString FCD_08f42_adc_base__GetString
#define FCD_0d101_slider_plastic1__GetAverageByte FCD_08f42_adc_base__GetAverageByte
#define FCD_0d101_slider_plastic1__GetAverageInt FCD_08f42_adc_base__GetAverageInt
#define FCD_0d101_slider_plastic1__GetVoltage FCD_08f42_adc_base__GetVoltage
#define FCD_0d101_slider_plastic1__GetInt FCD_08f42_adc_base__GetInt
#define FCD_0d101_slider_plastic1__GetByte FCD_08f42_adc_base__GetByte
MX_BOOL FCD_0b4c1_IsSim1__Check();

/*========================================================================*\
   Use :cal_adc
       :Macro function declarations
\*========================================================================*/
#define MX_ADC_REF1 
#define MX_ADC_TYPE_1 
#define MX_ADC_BITS_12 
#define MX_ADC_CHANNEL_37 


/*=----------------------------------------------------------------------=*\
   Use :cal_adc
       :Supplementary defines
\*=----------------------------------------------------------------------=*/
#define FC_ADC_Enable_1 FC_CAL_ADC_Enable_1
#define FC_ADC_Disable_1 FC_CAL_ADC_Disable_1
#define FC_ADC_Sample_1 FC_CAL_ADC_Sample_1

void FC_ADC_Disable_1();
void FC_ADC_Enable_1(MX_UINT8 FCL_CHANNEL, MX_UINT8 FCL_CONV_SPEED, MX_UINT8 FCL_VREF, MX_UINT8 FCL_T_CHARGE);
MX_UINT16 FC_ADC_Sample_1(MX_UINT8 FCL_SAMPLE_MODE);
MX_UINT8 FCD_08f41_adc_base1__RawAverageByte(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
void FCD_08f41_adc_base1__GetString(MX_CHAR *FCR_RETVAL, MX_UINT16 FCRsz_RETVAL);
MX_UINT8 FCD_08f41_adc_base1__GetAverageByte(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
MX_SINT16 FCD_08f41_adc_base1__RawAverageInt(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
MX_UINT16 FCD_08f41_adc_base1__GetAverageInt(MX_UINT8 FCL_NUMSAMPLES, MX_UINT8 FCL_DELAYUS);
MX_FLOAT FCD_08f41_adc_base1__GetVoltage();
MX_UINT16 FCD_08f41_adc_base1__GetInt();
MX_UINT8 FCD_08f41_adc_base1__GetByte();
MX_FLOAT FCD_0f961_ACS7xx_Current_Sensor1__CalculateAverageVoltage();
MX_FLOAT FCD_0f961_ACS7xx_Current_Sensor1__Current();
MX_FLOAT FCD_0f961_ACS7xx_Current_Sensor1__VoltgeADC();

/*========================================================================*\
   Use :cal_spi
       :Macro function declarations
\*========================================================================*/
#define MX_SPI_SS_TRIS_2 trisa
#define MX_SPI_MISO_PORT_2 porta
#define MX_SPI_SCK_TRIS_2 trisa
#define MX_SPI_SCK_PIN_2 (17)
#define MX_SPI_MOSI_TRIS_2 trisa
#define MX_SPI_BMODE_2 (0)
#define MX_SPI_MISO_TRIS_2 trisa
#define MX_SPI_MOSI_PIN_2 (21)
#define MX_SPI_MISO_PIN_2 (5)
#define MX_SPI_SS_PIN_2 (4)
#define MX_SPI_PR_SCALE_2 1600000
#define MX_SPI_SS_PORT_2 porta
#define MX_SPI_USESS_2 0
#define MX_SPI_SCK_PORT_2 porta
#define MX_SPI_MOSI_PORT_2 porta
#define MX_SPI_CHANNEL_2 (0)


/*=----------------------------------------------------------------------=*\
   Use :cal_spi
       :Supplementary defines
\*=----------------------------------------------------------------------=*/
#define MX_SPI_REF2

void FCD_01532_cal_spi__Master_Enable_CS();
void FC_CAL_SPI_Slave_Uninit_2();
void FCD_01532_cal_spi__Prv_TextConsole(MX_CHAR *FCL_STR, MX_UINT16 FCLsz_STR, MX_UINT8 FCL_COLOUR, MX_UINT8 FCL_APPENDTIMESTAMP);
MX_UINT8 FC_CAL_SPI_Transaction_2(MX_UINT8 *FCL_BUFFER, MX_UINT16 FCLsz_BUFFER, MX_UINT16 FCL_LENGTH);
void FCD_01532_cal_spi__Prv_SimShowWaveform(MX_UINT8 FCL_RXDATA, MX_UINT16 FCL_TXDATA);
void FC_CAL_SPI_Slave_Init_2();
void FCD_01532_cal_spi__Master_Disable_CS();
void FC_CAL_SPI_Master_Uninit_2();
MX_UINT8 FC_CAL_SPI_Master_Byte_2(MX_UINT8 FCL_DATAOUT);
void FC_CAL_SPI_Slave_TxByte_2(MX_UINT8 FCL_DATA);
MX_UINT8 FC_CAL_SPI_Slave_RxByte_2();
MX_UINT8 FC_CAL_SPI_Master_Init_2();
void FCD_06ae1_XPT2046__SetOrientation(MX_UINT8 FCL_ORIENTATION);
MX_UINT16 FCD_06ae1_XPT2046__SampleTouch(MX_UINT8 FCL_CONTROL);
MX_UINT8 FCD_06ae1_XPT2046__SampleSensor();
MX_UINT16 FCD_06ae1_XPT2046__ReadCoord(MX_UINT8 FCL_COORDINATE);
void FCD_06ae1_XPT2046__Initialise();

/*========================================================================*\
   Use :TypeConversions1
       :Macro function declarations
\*========================================================================*/

/*=----------------------------------------------------------------------=*\
   Use :TypeConversions1
       :Supplementary defines
\*=----------------------------------------------------------------------=*/

#ifndef MX_UNIONTYPE
 #define MX_UNIONTYPE
 typedef union
{
  MX_FLOAT AsFloat;
  MX_UINT32 AsLong;
  MX_UINT16 AsInt[2];
  MX_UINT8  AsByte[4];
} MX_Union_Type;
 MX_Union_Type MX_Conv_Var;
#endif


void FCD_08941_TypeConversions1__SetInt(MX_UINT8 FCL_INDEX, MX_UINT16 FCL_VALUE);
void FCD_08941_TypeConversions1__SetLong(MX_UINT32 FCL_VALUE);
MX_FLOAT FCD_08941_TypeConversions1__GetFloat();
MX_UINT32 FCD_08941_TypeConversions1__GetLong();
void FCD_08941_TypeConversions1__SetBytes(MX_UINT8 FCL_BYTE0, MX_UINT8 FCL_BYTE1, MX_UINT8 FCL_BYTE2, MX_UINT8 FCL_BYTE3);
MX_UINT16 FCD_08941_TypeConversions1__GetInt(MX_UINT8 FCL_INDEX);
void FCD_08941_TypeConversions1__SetByte(MX_UINT8 FCL_INDEX, MX_UINT8 FCL_VALUE);
MX_UINT8 FCD_08941_TypeConversions1__GetByte(MX_UINT8 FCL_INDEX);
void FCD_08941_TypeConversions1__SetFloat(MX_FLOAT FCL_VALUE);

/*========================================================================*\
   Use :cal_spi1
       :Macro function declarations
\*========================================================================*/
#define MX_SPI_SS_TRIS_1 trisc
#define MX_SPI_MISO_PORT_1 porta
#define MX_SPI_SCK_TRIS_1 trisa
#define MX_SPI_SCK_PIN_1 (1)
#define MX_SPI_MOSI_TRIS_1 tris
#define MX_SPI_BMODE_1 (2)
#define MX_SPI_MISO_TRIS_1 trisa
#define MX_SPI_MOSI_PIN_1 (0)
#define MX_SPI_MISO_PIN_1 (22)
#define MX_SPI_SS_PIN_1 (2)
#define MX_SPI_PR_SCALE_1 32000000
#define MX_SPI_SS_PORT_1 portc
#define MX_SPI_USESS_1 0
#define MX_SPI_SCK_PORT_1 porta
#define MX_SPI_MOSI_PORT_1 port
#define MX_SPI_CHANNEL_1 (1)


/*=----------------------------------------------------------------------=*\
   Use :cal_spi1
       :Supplementary defines
\*=----------------------------------------------------------------------=*/
#define MX_SPI_REF1
#define MX_SPI_REMAPPABLE_1 1
#define MX_SPI_MOSI_RPOR_1 RPG0R
#define MX_SPI_MOSI_SDO_1 1
#define MX_SPI_MISO_RPINR_1 SPI1
#define MX_SPI_MISO_RP_1 22
#define MX_SPI_CLK_RPOR_1 1
#define MX_SPI_CLK_SCK_1 1

void FCD_01531_cal_spi1__Master_Enable_CS();
void FC_CAL_SPI_Slave_Uninit_1();
void FCD_01531_cal_spi1__Prv_TextConsole(MX_CHAR *FCL_STR, MX_UINT16 FCLsz_STR, MX_UINT8 FCL_COLOUR, MX_UINT8 FCL_APPENDTIMESTAMP);
MX_UINT8 FC_CAL_SPI_Transaction_1(MX_UINT8 *FCL_BUFFER, MX_UINT16 FCLsz_BUFFER, MX_UINT16 FCL_LENGTH);
void FCD_01531_cal_spi1__Prv_SimShowWaveform(MX_UINT8 FCL_RXDATA, MX_UINT16 FCL_TXDATA);
void FC_CAL_SPI_Slave_Init_1();
void FCD_01531_cal_spi1__Master_Disable_CS();
void FC_CAL_SPI_Master_Uninit_1();
MX_UINT8 FC_CAL_SPI_Master_Byte_1(MX_UINT8 FCL_DATAOUT);
void FC_CAL_SPI_Slave_TxByte_1(MX_UINT8 FCL_DATA);
MX_UINT8 FC_CAL_SPI_Slave_RxByte_1();
MX_UINT8 FC_CAL_SPI_Master_Init_1();
MX_UINT16 FCD_00fb6_WidthData__GetLUTCount();
MX_UINT16 FCD_00fb5_ASCIIData__GetLUTCount();
MX_UINT32 FCD_09e53_gLCD_Font3__SumWidths(MX_UINT8 FCL_CHARACTER);
MX_UINT8 FCD_09e53_gLCD_Font3__ReadWidth(MX_UINT8 FCL_CHARACTER);
MX_UINT8 FCD_09e53_gLCD_Font3__ReadFontStat(MX_UINT8 FCL_INDEX);
MX_UINT8 FCD_09e53_gLCD_Font3__ReadASCIILUT(MX_UINT8 FCL_CHARACTER, MX_UINT16 FCL_BYTEINDEX);
MX_UINT16 FCD_00fb4_WidthData__GetLUTCount();
MX_UINT16 FCD_00fb3_ASCIIData__GetLUTCount();
MX_UINT32 FCD_09e52_gLCD_Font2__SumWidths(MX_UINT8 FCL_CHARACTER);
MX_UINT8 FCD_09e52_gLCD_Font2__ReadWidth(MX_UINT8 FCL_CHARACTER);
MX_UINT8 FCD_09e52_gLCD_Font2__ReadFontStat(MX_UINT8 FCL_INDEX);
MX_UINT8 FCD_09e52_gLCD_Font2__ReadASCIILUT(MX_UINT8 FCL_CHARACTER, MX_UINT16 FCL_BYTEINDEX);
MX_UINT16 FCD_00fb2_WidthData__GetLUTCount();
MX_UINT16 FCD_00fb1_ASCIIData__GetLUTCount();
MX_UINT32 FCD_09e51_gLCD_Font1__SumWidths(MX_UINT8 FCL_CHARACTER);
MX_UINT8 FCD_09e51_gLCD_Font1__ReadWidth(MX_UINT8 FCL_CHARACTER);
MX_UINT8 FCD_09e51_gLCD_Font1__ReadFontStat(MX_UINT8 FCL_INDEX);
MX_UINT8 FCD_09e51_gLCD_Font1__ReadASCIILUT(MX_UINT8 FCL_CHARACTER, MX_UINT16 FCL_BYTEINDEX);

/*========================================================================*\
   Use :Base_GLCD
       :Macro function declarations
\*========================================================================*/

/*=----------------------------------------------------------------------=*\
   Use :Base_GLCD
       :Supplementary defines
\*=----------------------------------------------------------------------=*/
#define ReadFontWidth(FONT, CHAR) FCD_0ba71_Base_GLCD__ReadFontWidth(FONT, CHAR)
#define ReadFontStat(FONT, IDX) FCD_0ba71_Base_GLCD__ReadFontStat(FONT, IDX)


MX_UINT32 FCD_0ba71_Base_GLCD__Prv_SumWidths(MX_UINT8 FCL_CHARACTER);
MX_UINT8 FCD_0ba71_Base_GLCD__ReadFontWidth(MX_UINT8 FCL_FONT, MX_UINT8 FCL_CHARACTER);
void FCD_0ba71_Base_GLCD__Prv_ReadFontFileHeader(MX_UINT8 FCL_FONT);
MX_UINT8 FCD_0ba71_Base_GLCD__ReadFontStat(MX_UINT8 FCL_FONT, MX_UINT8 FCL_INDEX);
void FCD_0ba71_Base_GLCD__SetExternalFont(MX_UINT8 FCL_FONT, MX_CHAR *PFCL_FILENAME, MX_UINT8 FCL_CHARACTERSPACING, MX_UINT8 FCL_SPACEWIDTH);
MX_UINT8 FCD_0ba71_Base_GLCD__ReadFontByte(MX_UINT8 FCL_FONT, MX_UINT8 FCL_CHARACTER, MX_UINT16 FCL_BYTEINDEX);
void FCD_01de1_gLCD_ILI9488_SPI1__BacklightOn();
void FCD_01de1_gLCD_ILI9488_SPI1__FastBPlot();
void FCD_01de1_gLCD_ILI9488_SPI1__SetFontScaler(MX_UINT8 FCL_SCALEX, MX_UINT8 FCL_SCALEY);
void FCD_01de1_gLCD_ILI9488_SPI1__LCD_Write_Reg(MX_UINT8 FCL_DATA);
void FCD_01de1_gLCD_ILI9488_SPI1__PrintNumber(MX_SINT16 FCL_NUMBER, MX_UINT16 FCL_X, MX_UINT16 FCL_Y, MX_UINT8 FCL_FONT, MX_UINT8 FCL_TRANSPARENT);
void FCD_01de1_gLCD_ILI9488_SPI1__DrawLine(MX_UINT16 FCL_X1, MX_UINT16 FCL_Y1, MX_UINT16 FCL_X2, MX_UINT16 FCL_Y2);
void FCD_01de1_gLCD_ILI9488_SPI1__LCD_Write_Data8(MX_UINT8 FCL_DATA);
MX_UINT8 FCD_01de1_gLCD_ILI9488_SPI1__LCD_Read_Data8();
void FCD_01de1_gLCD_ILI9488_SPI1__DrawEllipse(MX_UINT16 FCL_X, MX_UINT16 FCL_Y, MX_UINT16 FCL_XRADIUS, MX_UINT16 FCL_YRADIUS, MX_UINT8 FCL_TRANSPARENT, MX_UINT8 FCL_SOLID);
void FCD_01de1_gLCD_ILI9488_SPI1__Plot(MX_UINT16 FCL_X1, MX_UINT16 FCL_Y1);
void FCD_01de1_gLCD_ILI9488_SPI1__FastPlot();
void FCD_01de1_gLCD_ILI9488_SPI1__DrawArc(MX_UINT16 FCL_X, MX_UINT16 FCL_Y, MX_UINT16 FCL_RADIUS, MX_FLOAT FCL_STARTANGLE, MX_FLOAT FCL_ENDANGLE, MX_UINT16 FCL_RESOLUTION, MX_UINT8 FCL_TRANSPARENT, MX_UINT8 FCL_SOLID);
void FCD_01de1_gLCD_ILI9488_SPI1__SetDisplayOrientation(MX_UINT8 FCL_ORIENTATION);
void FCD_01de1_gLCD_ILI9488_SPI1__BacklightOff();
void FCD_01de1_gLCD_ILI9488_SPI1__BPlot(MX_UINT16 FCL_X1, MX_UINT16 FCL_Y1);
void FCD_01de1_gLCD_ILI9488_SPI1__Window(MX_UINT16 FCL_X1, MX_UINT16 FCL_Y1, MX_UINT16 FCL_X2, MX_UINT16 FCL_Y2);
void FCD_01de1_gLCD_ILI9488_SPI1__Print(MX_CHAR *FCL_STR, MX_UINT16 FCLsz_STR, MX_UINT16 FCL_X1, MX_UINT16 FCL_Y1, MX_UINT8 FCL_FONT, MX_UINT8 FCL_TRANSPARENT);
void FCD_01de1_gLCD_ILI9488_SPI1__ClearDisplay();
void FCD_01de1_gLCD_ILI9488_SPI1__SetBackgroundColour(MX_UINT8 FCL_RED, MX_UINT8 FCL_GREEN, MX_UINT8 FCL_BLUE);
void FCD_01de1_gLCD_ILI9488_SPI1__DrawCircle(MX_UINT16 FCL_X, MX_UINT16 FCL_Y, MX_UINT16 FCL_RADIUS, MX_UINT8 FCL_TRANSPARENT, MX_UINT8 FCL_SOLID);
void FCD_01de1_gLCD_ILI9488_SPI1__DrawRoundedRectangle(MX_UINT16 FCL_X1, MX_UINT16 FCL_Y1, MX_UINT16 FCL_X2, MX_UINT16 FCL_Y2, MX_UINT16 FCL_RADIUS, MX_UINT8 FCL_TRANSPARENT, MX_UINT8 FCL_SOLID);
void FCD_01de1_gLCD_ILI9488_SPI1__SetForegroundColour(MX_UINT8 FCL_RED, MX_UINT8 FCL_GREEN, MX_UINT8 FCL_BLUE);
void FCD_01de1_gLCD_ILI9488_SPI1__DrawRectangle(MX_UINT16 FCL_X1, MX_UINT16 FCL_Y1, MX_UINT16 FCL_X2, MX_UINT16 FCL_Y2, MX_UINT8 FCL_TRANSPARENT, MX_UINT8 FCL_SOLID);
void FCD_01de1_gLCD_ILI9488_SPI1__Initialise();

/*========================================================================*\
   Use :Include the chip adaption layer
\*========================================================================*/
#include "C:\ProgramData\MatrixTSL\FlowcodeV11\CAL\includes.c"

