to detect if overtemperatures go in fail
Dependencies: BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG mbed
OverTemp.cpp
00001 #include "OverTemp.h" 00002 00003 LCD_DISCO_F746NG lcd; 00004 TS_DISCO_F746NG ts; 00005 TS_StateTypeDef TS_State; 00006 uint16_t x, y; 00007 uint8_t idx; 00008 uint8_t status; 00009 uint8_t cleared = 0; 00010 uint8_t prev_nb_touches = 0; 00011 uint8_t text[30]; 00012 00013 void OverTemp::DrawCircle(int X, int Y, int State) 00014 {//disegna un cerchio colorato in maniera differente per indicare lo stato dell'OT 00015 lcd.SetBackColor(lightskyblue); 00016 lcd.SetTextColor(black); 00017 lcd.DrawCircle(X, Y, Raggio); 00018 lcd.DrawCircle(X, Y, Raggio-1); 00019 switch (State) 00020 { 00021 case (0): //verde 00022 { 00023 lcd.SetTextColor(green); 00024 lcd.FillCircle(X, Y, Raggio-2); 00025 break; 00026 } 00027 case (1): //rosso 00028 { 00029 lcd.SetTextColor(red); 00030 lcd.FillCircle(X, Y, Raggio-2); 00031 break; 00032 } 00033 case (2): //verde con pallino rosso 00034 { 00035 lcd.SetTextColor(green); 00036 lcd.FillCircle(X, Y, Raggio-2); 00037 lcd.SetTextColor(red); 00038 lcd.FillCircle(X, Y, Raggio-15); 00039 break; 00040 } 00041 default: 00042 { 00043 lcd.SetTextColor(blue); 00044 lcd.FillCircle(X, Y, Raggio-2); 00045 break; 00046 } 00047 } 00048 } 00049 00050 void OverTemp::Write(int digit) 00051 { 00052 lcd.SetFont(&Font20); 00053 lcd.SetTextColor(black); 00054 switch(digit) 00055 { 00056 case (0):{lcd.DisplayStringAt(0, LINE(6+digit), (uint8_t *)"Lower chamber ZONE 1", LEFT_MODE); break;} 00057 case (1):{lcd.DisplayStringAt(0, LINE(6+digit), (uint8_t *)"Lower chamber ZONE 2", LEFT_MODE); break;} 00058 case (2):{lcd.DisplayStringAt(0, LINE(6+digit), (uint8_t *)"Upper chamber", LEFT_MODE); break;} 00059 case (3):{lcd.DisplayStringAt(0, LINE(6+digit), (uint8_t *)"End Point Window", LEFT_MODE); break;} 00060 case (4):{lcd.DisplayStringAt(0, LINE(6+digit), (uint8_t *)"Slit Valve", LEFT_MODE); break;} 00061 case (5):{lcd.DisplayStringAt(0, LINE(6+digit), (uint8_t *)"Shorted", LEFT_MODE); break;} 00062 case (6):{lcd.DisplayStringAt(0, LINE(6+digit), (uint8_t *)"Lower transition manifold", LEFT_MODE); break;} 00063 case (7):{lcd.DisplayStringAt(0, LINE(6+digit), (uint8_t *)" prova canale 7 ", LEFT_MODE); break;} 00064 } 00065 00066 } 00067 00068 bool OverTemp::isTouched(int X, int Y) 00069 {//se è premuto ritorna 1, altrimento 0 00070 bool Touch; 00071 int Xpressed, Ypressed; 00072 ts.ResetTouchData(&TS_State); 00073 ts.GetState(&TS_State); 00074 Xpressed = TS_State.touchX[0]; //acquisisco la X 00075 Ypressed = TS_State.touchY[0]; //acquisisco la Y 00076 if ( !((Xpressed>X-Raggio && Xpressed<X+Raggio) && (Ypressed>Y-Raggio && Ypressed<Y+Raggio)) ) Touch=0; 00077 else Touch=1; 00078 ts.ResetTouchData(&TS_State); 00079 return Touch; 00080 } 00081 00082 void OverTemp::DrawOTPosition(int digit){ 00083 lcd.SetTextColor(red); 00084 switch (digit) 00085 { 00086 case (0): //Lower chamber ZONE 1 00087 { 00088 lcd.DrawRect(5, 50, 190, 25); 00089 lcd.DrawEllipse(345, 170, 60, 20); 00090 lcd.DrawEllipse(345, 170, 61, 21); 00091 break; 00092 } 00093 case (1): //Lower chamber ZONE 2 00094 { 00095 lcd.DrawRect(5, 85, 190, 25); 00096 lcd.DrawEllipse(385, 190, 60, 20); 00097 lcd.DrawEllipse(385, 190, 61, 21); 00098 break; 00099 } 00100 case (2): //Upper chamber 00101 { 00102 lcd.DrawRect(5, 113, 190, 25); 00103 lcd.DrawEllipse(365, 70, 60, 20); 00104 lcd.DrawEllipse(365, 70, 61, 21); 00105 break; 00106 } 00107 case (3): //End Point Window 00108 { 00109 lcd.DrawRect(5, 145, 190, 25); 00110 lcd.DrawEllipse(400, 162, 40, 20); 00111 lcd.DrawEllipse(400, 162, 41, 21); 00112 break; 00113 } 00114 case (4): //Slit Valve 00115 { 00116 lcd.DrawRect(5, 174, 190, 25); 00117 lcd.DrawEllipse(265, 230, 40, 20); 00118 lcd.DrawEllipse(265, 230, 41, 21); 00119 break; 00120 } 00121 case (5): //Shorted 00122 { 00123 lcd.DrawRect(5, 204, 190, 25); 00124 break; 00125 } 00126 case (6): //Lower transition manifold 00127 { 00128 lcd.DrawRect(5, 232, 190, 25); 00129 lcd.DrawEllipse(280, 120, 40, 20); 00130 lcd.DrawEllipse(280, 120, 41, 21); 00131 break; 00132 } 00133 case (7): //prova canale 7 00134 { 00135 lcd.DrawRect(5, 5, 190, 5); 00136 break; 00137 } 00138 } 00139 }
Generated on Thu Jul 14 2022 11:11:00 by 1.7.2