Nikolai Trushnikov / Mbed 2 deprecated Chromatograph_Mobile

Dependencies:   ad5422_arduino mbed LT1446 ADS1248-1 LM35-1 Flash FT813 PGA280_ADS1259

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers display.h Source File

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