Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: ad5422_arduino mbed LT1446 ADS1248-1 LM35-1 Flash FT813 PGA280_ADS1259
display.h
00001 #include "mbed.h" 00002 #include "FT_Platform.h" 00003 #include <string> 00004 00005 #ifndef DISPLAY_H_ 00006 #define DISPLAY_H_ 00007 00008 #ifndef _PID_T 00009 #define _PID_T //запасное определение типа данных для обеспечения работы ПИДа с дисплем (второй раз в main.h) 00010 typedef struct{ 00011 float kP,kI,kD,sampleTime; 00012 uint32_t chkd; 00013 uint8_t 00014 enabled:1, 00015 :7; 00016 }PID_t; 00017 #endif 00018 00019 /************************************************************************************************************************** 00020 ************************** Defines using for drawing ********************************************************************** 00021 **************************************************************************************************************************/ 00022 00023 // all tracking touch screen areas 00024 typedef enum { 00025 NONE_PRESS, 00026 CURR_TEMP_PRESS, 00027 CURR_HUM_PRESS, 00028 MENU_PRESS, 00029 CHROM_TEMP_PRESS, //проверка кнопки 00030 CHROM_SET_TEMP_PRESS, //устаносить температуру 00031 CHROM_SET_RASHOD_PRESS, //установить расход 00032 CHROM_SET_SENSGAIN_PRESS, //установить коэффициент усиления PGA 00033 CHROM_ANALIZ_PRESS, //анализ 00034 CHROM_PROBA_PRESS, //пробоотбор 00035 PID_MENU_PRESS, //переход в меню ПИД регуляторов 00036 BACK_PRESS, 00037 CANCEL_PRESS, 00038 APPLY_PRESS, 00039 SAVE_PRESS, 00040 PID1SW_PRESS, 00041 PID2SW_PRESS, 00042 SEL_P1, 00043 SEL_I1, 00044 SEL_D1, 00045 SEL_P2, 00046 SEL_I2, 00047 SEL_D2, 00048 } pressValues; 00049 00050 //выбранная ячейка для редактирования 00051 typedef enum{ 00052 EDIT_P1=SEL_P1, 00053 EDIT_I1=SEL_I1, 00054 EDIT_D1=SEL_D1, 00055 00056 EDIT_P2=SEL_P2, 00057 EDIT_I2=SEL_I2, 00058 EDIT_D2=SEL_D2, 00059 EDIT_NONE, 00060 }selectedEditor_t; 00061 00062 // all existing screens 00063 typedef enum { 00064 MENU_SCREEN, 00065 CURR_HUM_SCREEN, 00066 CURR_TEMP_SCREEN, 00067 TEST_CHROM_SCREEN, //тестовый экран 00068 PID_SCREEN, 00069 } screenValues; 00070 00071 00072 /************************************************************************************************************************** 00073 ************************** User class for drawing at FT800 **************************************************************** 00074 **************************************************************************************************************************/ 00075 00076 class Display 00077 { 00078 public: 00079 // in Display class we use FT800 TFT (definition is available in main.cpp) 00080 Display(FT813 *TFT) { 00081 _TFT = TFT; 00082 } 00083 00084 // functions describing all available screens (screens-functions) 00085 void ChromTest(float temp,float ras,int temp_u,float ras_u); //тестовый экран 00086 void PidScreen(/*костыль костылей*/float (*btf)(unsigned char*),float temp, float ras,uint16_t power1,uint16_t power2,PID_t* PID1,PID_t* PID2); 00087 void MainMenu(float humidity, float temperature); // [display.Draw_MainMenu.cpp] 00088 void CurrentHumidity(float humidity); // [display.Draw_CurrentValuesGraphs.cpp] 00089 void CurrentTemperature(float temperature); // [display.Draw_CurrentValuesGraphs.cpp] 00090 00091 // functions using to prepare FT800 re = recalibration 00092 void Calibration(char * calibration,char re); // [display.Calibration.cpp] 00093 00094 // functions for touch screen tracking 00095 char GetTouch(void); // [display.GetTouch.cpp] 00096 00097 // variables using for navigation between screens 00098 char pressedButton; 00099 char activeScreen; 00100 int16_t TouchX,TouchY; 00101 00102 selectedEditor_t selectedEditor; 00103 unsigned char str_edit[12]; 00104 uint8_t cursor; 00105 //доп. функции 00106 void myWdget_Edit(uint16_t x,uint16_t y,uint16_t w,uint16_t h,uint8_t selected,const char * text); 00107 void Display::myWdget_NumPad(uint16_t x,uint16_t y); 00108 void Display::myWdget_Edit_change(char * text); 00109 00110 private: 00111 FT813 *_TFT; 00112 00113 void StartDL(void); // [display.DisplayListFunctions.cpp] 00114 void FinishDL(void); // [display.DisplayListFunctions.cpp] 00115 void MainMenuReference(void); // [display.Draw_MainMenuReference.cpp] 00116 void HorisontalGrid_CurrentTemp(void); // [display.Draw_Grids.cpp] 00117 void HorisontalGrid_CurrentHumidity(void); // [display.Draw_Grids.cpp] 00118 00119 00120 void CreateStringTempHum(char *str, float number, bool isTemp); // [display.StringsTransforming.cpp] 00121 00122 char humidityStr[8], temperatureStr[8]; 00123 char currentHumidity_X, currentTemperature_X; 00124 char currentHumidity_Y[68], currentTemperature_Y[68]; 00125 }; 00126 00127 #endif /* SCREENS_H_ */
Generated on Thu Jul 14 2022 17:32:52 by
1.7.2