to detect if overtemperatures go in fail

Dependencies:   BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers OverTemp.cpp Source File

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 }