Русифицированная версия программы для измерения температуры и отн. влажности и вывода информации на сенсорный TFT
Dependencies: FT800_2 HYT mbed
display.Draw_MainMenu.cpp
00001 #include "display.h" 00002 00003 /************************************************************************************************************************** 00004 ************************** Display Main Menu ****************************************************************************** 00005 **************************************************************************************************************************/ 00006 00007 void Display::MainMenu(float humidity, float temperature) 00008 { 00009 // start FT800 display list 00010 StartDL(); 00011 00012 // write main title 00013 (*_TFT).DL(COLOR_RGB(0, 0, 0)); 00014 00015 CreateStringRussian("Датчик HYT-271 от IST"); 00016 (*_TFT).Text(15, 15, 3, 0, russianStr); 00017 00018 // create blue rectangle with current humididty including 00019 // rectangle is tagged as CURR_HUM_PRESS 00020 (*_TFT).DL(TAG_MASK(1)); 00021 (*_TFT).DL(TAG(CURR_HUM_PRESS)); 00022 (*_TFT).DL(COLOR_RGB(9, 0, 63)); 00023 // if rectangle is already pressed, draw it with lighter color 00024 if (pressedButton == CURR_HUM_PRESS) { 00025 (*_TFT).DL(COLOR_RGB(75, 70, 108)); 00026 } 00027 (*_TFT).DL(BEGIN(RECTS)); 00028 (*_TFT).DL(VERTEX2II(12, 62, 0, 0)); 00029 (*_TFT).DL(VERTEX2II(12 + 300, 62 + 93, 0, 0)); 00030 (*_TFT).DL(COLOR_RGB(255, 255, 255)); 00031 CreateStringRussian("Отн. влажность"); 00032 (*_TFT).Text(12 + 10, 62 + 5, 3, 0, russianStr); 00033 CreateStringTempHum(humidityStr, humidity, 0); 00034 (*_TFT).Text(12 + 10, 62 + 45, 31, 0, humidityStr); 00035 (*_TFT).DL(BEGIN(BITMAPS)); 00036 (*_TFT).DL(VERTEX2II(12 + 255, 62 + 10, 0, 0)); 00037 (*_TFT).DL(END()); 00038 (*_TFT).DL(TAG_MASK(0)); 00039 00040 // create blue rectangle with current temperature including 00041 // rectangle is tagged as CURR_TEMP_PRESS 00042 (*_TFT).DL(TAG_MASK(1)); 00043 (*_TFT).DL(TAG(CURR_TEMP_PRESS)); 00044 (*_TFT).DL(COLOR_RGB(9, 0, 63)); 00045 // if rectangle is already pressed, draw it with lighter color 00046 if (pressedButton == CURR_TEMP_PRESS) { 00047 (*_TFT).DL(COLOR_RGB(75, 70, 108)); 00048 } 00049 (*_TFT).DL(BEGIN(RECTS)); 00050 (*_TFT).DL(VERTEX2II(12, 62 + 93 + 12, 0, 0)); 00051 (*_TFT).DL(VERTEX2II(12 + 300, 62 + 93 + 12 + 93, 0, 0)); 00052 (*_TFT).DL(COLOR_RGB(255, 255, 255)); 00053 CreateStringRussian("Температура"); 00054 (*_TFT).Text(12 + 10, 62 + 93 + 12 + 5, 3, 0, russianStr); 00055 char degreeOffset = CreateStringTempHum(temperatureStr, temperature, 1); 00056 (*_TFT).Text(12 + 10, 62 + 93 + 12 + 45, 31, 0, temperatureStr); 00057 (*_TFT).Text(12 + 10 + (degreeOffset * 16 + 3), 62 + 93 + 12 + 45 - 2, 28, 0, "o"); 00058 (*_TFT).DL(BEGIN(BITMAPS)); 00059 (*_TFT).DL(VERTEX2II(12 + 260, 62 + 93 + 12 + 10, 1, 0)); 00060 (*_TFT).DL(END()); 00061 (*_TFT).DL(TAG_MASK(0)); 00062 00063 00064 // create black rectangle tagged as STAT_HUM_PRESS 00065 (*_TFT).DL(TAG_MASK(1)); 00066 (*_TFT).DL(TAG(STAT_HUM_PRESS)); 00067 (*_TFT).DL(COLOR_RGB(36, 36, 36)); 00068 // if rectangle is already pressed, draw it lighter 00069 if (pressedButton == STAT_HUM_PRESS) { 00070 (*_TFT).DL(COLOR_RGB(56, 56, 56)); 00071 } 00072 (*_TFT).DL(BEGIN(RECTS)); 00073 (*_TFT).DL(VERTEX2II(12 + 300 + 12, 62, 0, 0)); 00074 (*_TFT).DL(VERTEX2II(12 + 300 + 12 + 144, 62 + 58, 0, 0)); 00075 (*_TFT).DL(COLOR_RGB(255, 255, 255)); 00076 CreateStringRussian("Отн. влажность"); 00077 (*_TFT).Text(12 + 300 + 12 + 10, 62 + 5, 4, 0, russianStr); 00078 CreateStringRussian("за сутки"); 00079 (*_TFT).Text(12 + 300 + 12 + 10, 62 + 27, 4, 0, russianStr); 00080 (*_TFT).DL(TAG_MASK(0)); 00081 00082 // create black rectangle tagged as STAT_TEMP_PRESS 00083 (*_TFT).DL(TAG_MASK(1)); 00084 (*_TFT).DL(TAG(STAT_TEMP_PRESS)); 00085 (*_TFT).DL(COLOR_RGB(36, 36, 36)); 00086 // if rectangle is already pressed, draw it lighter 00087 if (pressedButton == STAT_TEMP_PRESS) { 00088 (*_TFT).DL(COLOR_RGB(56, 56, 56)); 00089 } 00090 (*_TFT).DL(BEGIN(RECTS)); 00091 (*_TFT).DL(VERTEX2II(12 + 300 + 12, 62 + 58 + 12, 0, 0)); 00092 (*_TFT).DL(VERTEX2II(12 + 300 + 12 + 144, 62 + 58 + 12 + 58, 0, 0)); 00093 (*_TFT).DL(COLOR_RGB(255, 255, 255)); 00094 CreateStringRussian("Температура"); 00095 (*_TFT).Text(12 + 300 + 12 + 10, 62 + 58 + 12 + 5, 4, 0, russianStr); 00096 CreateStringRussian("за сутки"); 00097 (*_TFT).Text(12 + 300 + 12 + 10, 62 + 58 + 12 + 27, 4, 0, russianStr); 00098 (*_TFT).DL(TAG_MASK(0)); 00099 00100 // create black rectangle tagged as ABOUT_PRESS 00101 (*_TFT).DL(TAG_MASK(1)); 00102 (*_TFT).DL(TAG(ABOUT_PRESS)); 00103 (*_TFT).DL(COLOR_RGB(36, 36, 36)); 00104 // if rectangle is already pressed, draw it lighter 00105 if (pressedButton == ABOUT_PRESS) { 00106 (*_TFT).DL(COLOR_RGB(56, 56, 56)); 00107 } 00108 (*_TFT).DL(BEGIN(RECTS)); 00109 (*_TFT).DL(VERTEX2II(12 + 300 + 12, 62 + 58 + 12 + 58 + 12, 0, 0)); 00110 (*_TFT).DL(VERTEX2II(12 + 300 + 12 + 144, 62 + 58 + 12 + 58 + 12 + 58, 0, 0)); 00111 (*_TFT).DL(COLOR_RGB(255, 255, 255)); 00112 CreateStringRussian("О датчике"); 00113 (*_TFT).Text(12 + 144 + 12 + 144 + 12 + 10, 62 + 58 + 12 + 58 + 12 + 5, 4, 0, russianStr); 00114 (*_TFT).DL(TAG_MASK(0)); 00115 00116 // finish FT800 display list 00117 FinishDL(); 00118 }
Generated on Wed Jul 13 2022 04:41:34 by 1.7.2