Русифицированная версия программы для измерения температуры и отн. влажности и вывода информации на сенсорный TFT
Dependencies: FT800_2 HYT mbed
display.Draw_Grids.cpp
00001 #include "display.h" 00002 00003 /* For drawing current values */ 00004 00005 /************************************************************************************************************************** 00006 ************************** Draw horisontal grid for current temperature (-50 .. +125) ************************************* 00007 **************************************************************************************************************************/ 00008 void Display::HorisontalGrid_Current_Temperature() 00009 { 00010 (*_TFT).DL(COLOR_RGB(20, 20, 20)); 00011 char gridNumb = 125 + 50; 00012 for (int i = 70 * 16; i <= 225 * 16; i += 352) { 00013 (*_TFT).DL(BEGIN(LINES)); 00014 (*_TFT).DL(LINE_WIDTH(8)); 00015 (*_TFT).DL(VERTEX2F(15 * 16, i)); 00016 (*_TFT).DL(VERTEX2F(423 * 16, i)); 00017 if (gridNumb >= 50) { 00018 (*_TFT).Number(435, i/16 - 9, 26, 0, gridNumb - 50); 00019 } else if (gridNumb == 25) { 00020 (*_TFT).Text(435, i/16 - 9, 26, 0, "-25"); 00021 } else if (gridNumb == 0) { 00022 (*_TFT).Text(435, i/16 - 9, 26, 0, "-50"); 00023 } 00024 gridNumb = gridNumb - 25; 00025 } 00026 } 00027 00028 /************************************************************************************************************************** 00029 ************************** Draw horisontal grid for current humidity (0 .. 100) ******************************************* 00030 **************************************************************************************************************************/ 00031 void Display::HorisontalGrid_Current_Humidity() 00032 { 00033 (*_TFT).DL(COLOR_RGB(20, 20, 20)); 00034 char gridNumb = 100; 00035 for (int i = 70 * 16; i <= 220 * 16; i += 600) { 00036 (*_TFT).DL(BEGIN(LINES)); 00037 (*_TFT).DL(LINE_WIDTH(8)); 00038 (*_TFT).DL(VERTEX2F(15 * 16, i)); 00039 (*_TFT).DL(VERTEX2F(423 * 16, i)); 00040 (*_TFT).Number(435, i/16 - 9, 26, 0, gridNumb); 00041 gridNumb = gridNumb - 25; 00042 } 00043 } 00044 00045 00046 00047 /* For drawing statistics values */ 00048 00049 /************************************************************************************************************************** 00050 ************************** Draw horisontal grid for temperature (-50 .. +125) ********************************************* 00051 **************************************************************************************************************************/ 00052 void Display::HorisontalGrid_Statistics_Temperature() 00053 { 00054 (*_TFT).DL(COLOR_RGB(80, 80, 80)); 00055 char gridNumb = 125 + 50; 00056 for (int i = 100 * 16; i <= 200 * 16; i += 228) { 00057 (*_TFT).DL(BEGIN(LINES)); 00058 (*_TFT).DL(LINE_WIDTH(8)); 00059 if (gridNumb == 0 + 50) { 00060 (*_TFT).DL(LINE_WIDTH(12)); 00061 } 00062 (*_TFT).DL(VERTEX2F(25 * 16, i)); 00063 (*_TFT).DL(VERTEX2F(438 * 16, i)); 00064 if (gridNumb >= 50) { 00065 (*_TFT).Number(445, i/16 - 9, 26, 0, gridNumb - 50); 00066 } else if (gridNumb == 25) { 00067 (*_TFT).Text(445, i/16 - 9, 26, 0, "-25"); 00068 } else if (gridNumb == 0) { 00069 (*_TFT).Text(445, i/16 - 9, 26, 0, "-50"); 00070 } 00071 gridNumb = gridNumb - 25; 00072 } 00073 } 00074 00075 /************************************************************************************************************************** 00076 ************************** Draw horisontal grid for humidity (0 .. 100) *************************************************** 00077 **************************************************************************************************************************/ 00078 void Display::HorisontalGrid_Statistics_Humidity() 00079 { 00080 (*_TFT).DL(COLOR_RGB(80, 80, 80)); 00081 char gridNumb = 100; 00082 for (int i = 100 * 16; i <= 200 * 16; i += (25*16)) { 00083 (*_TFT).DL(BEGIN(LINES)); 00084 (*_TFT).DL(LINE_WIDTH(8)); 00085 (*_TFT).DL(VERTEX2F(25 * 16, i)); 00086 (*_TFT).DL(VERTEX2F(438 * 16, i)); 00087 (*_TFT).Number(445, i/16 - 9, 26, 0, gridNumb); 00088 gridNumb = gridNumb - 25; 00089 } 00090 } 00091 00092 /************************************************************************************************************************** 00093 ************************** Draw vertical grid for 24-hour interval ******************************************&************* 00094 **************************************************************************************************************************/ 00095 void Display::VerticalGrid24hrs(uint64_t gridSecondsOffset) 00096 { 00097 uint64_t gridSeconds = gridSecondsOffset; 00098 for (int i = 25 * 16; i <= 433 * 16; i += 17 * 16) { 00099 (*_TFT).DL(COLOR_RGB(80, 80, 80)); 00100 (*_TFT).DL(BEGIN(LINES)); 00101 (*_TFT).DL(LINE_WIDTH(8)); 00102 (*_TFT).DL(VERTEX2F(i, 100 * 16)); 00103 (*_TFT).DL(VERTEX2F(i, 200 * 16)); 00104 CreateStringTime(gridTimeStr, gridSeconds); 00105 if ((i - 25 * 16) % (3 * 17 * 16) == 0) { 00106 (*_TFT).Text(i/16 - 20, 210, 20, 0, gridTimeStr); 00107 (*_TFT).DL(COLOR_RGB(20, 20, 20)); 00108 (*_TFT).DL(BEGIN(LINES)); 00109 (*_TFT).DL(VERTEX2F(i, 100 * 16)); 00110 (*_TFT).DL(VERTEX2F(i, 205 * 16)); 00111 } 00112 gridSeconds = gridSeconds + 3600; 00113 } 00114 } 00115 00116 /************************************************************************************************************************** 00117 ************************** Draw vertical grid for three-hour interval ***************************************************** 00118 **************************************************************************************************************************/ 00119 void Display::VerticalGrid3hrs(uint64_t gridSecondsOffset) 00120 { 00121 (*_TFT).DL(COLOR_RGB(0, 0, 0)); 00122 uint64_t gridSeconds = 300 * timePoint3hrs + gridSecondsOffset; 00123 for (int i = 25 * 16; i <= 433 * 16; i += 34 * 16) { 00124 (*_TFT).DL(BEGIN(LINES)); 00125 (*_TFT).DL(LINE_WIDTH(8)); 00126 (*_TFT).DL(VERTEX2F(i, 100 * 16)); 00127 (*_TFT).DL(VERTEX2F(i, 200 * 16)); 00128 CreateStringTime(gridTimeStr, gridSeconds); 00129 if ((i - 25*16) % (2 * 34 * 16) == 0) { 00130 (*_TFT).DL(COLOR_RGB(80, 80, 80)); 00131 (*_TFT).Text(i/16 - 20, 210, 20, 0, gridTimeStr); 00132 (*_TFT).DL(COLOR_RGB(0, 0, 0)); 00133 (*_TFT).DL(BEGIN(LINES)); 00134 (*_TFT).DL(VERTEX2F(i, 100 * 16)); 00135 (*_TFT).DL(VERTEX2F(i, 205 * 16)); 00136 } 00137 gridSeconds = gridSeconds + 900; 00138 } 00139 } 00140 00141 /************************************************************************************************************************** 00142 ************************** Draw vertical grid for 30-minutes interval ***************************************************** 00143 **************************************************************************************************************************/ 00144 void Display::VerticalGrid30min(uint64_t gridSecondsOffset) 00145 { 00146 (*_TFT).DL(COLOR_RGB(0, 0, 0)); 00147 uint64_t gridSeconds = 300 * (timePoint3hrs + timePoint30min) + gridSecondsOffset; 00148 for (int i = 25 * 16; i <= 433 * 16; i += 68 * 16) { 00149 (*_TFT).DL(BEGIN(LINES)); 00150 (*_TFT).DL(LINE_WIDTH(8)); 00151 (*_TFT).DL(VERTEX2F(i, 100 * 16)); 00152 (*_TFT).DL(VERTEX2F(i, 205 * 16)); 00153 CreateStringTime(gridTimeStr, gridSeconds); 00154 (*_TFT).DL(COLOR_RGB(80, 80, 80)); 00155 (*_TFT).Text(i/16 - 20, 210, 20, 0, gridTimeStr); 00156 (*_TFT).DL(COLOR_RGB(0, 0, 0)); 00157 gridSeconds = gridSeconds + 300; 00158 } 00159 }
Generated on Wed Jul 13 2022 04:41:34 by 1.7.2