![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
new version of AL96_OT
Dependencies: mbed LCD_DISCO_F469NI TS_DISCO_F469NI BSP_DISCO_F469NI
Diff: display.h
- Revision:
- 2:ee10ee4002d5
- Parent:
- 0:c980456a5562
--- a/display.h Fri Jun 01 10:56:20 2018 +0000 +++ b/display.h Mon May 18 19:00:39 2020 +0000 @@ -1,153 +1,208 @@ #ifndef DISPLAY_H #define DISPLAY_H -#include "colors.c" -#include "mbed.h" -#include "LCD_DISCO_F469NI.h" +//////////////////////////////////////////////////////////////////////////////// +void display_Error(bool error) +{ + //visualizzazione della faccina felice/triste + int X = 10; + int Y = 10; + int riga, colonna, contatore=0; + for (colonna=0; colonna<220; colonna++) { + for ( riga=0; riga<400; riga++) { + if (error == 0) lcd.DrawPixel (X+riga, Y+colonna, _acError000[contatore]); + else lcd.DrawPixel (X+riga, Y+colonna, _acError111[contatore]); + contatore++; + } + riga=0; + } +} +//////////////////////////////////////////////////////////////////////////////// +void display_sfondo_macchina() +{ + int X = 150; + int Y = 50; + int riga, colonna, contatore=0; + for (colonna=0; colonna<300; colonna++) { + for ( riga=0; riga<450; riga++) { + lcd.DrawPixel (X+riga, Y+colonna, _acsfondo[contatore]); + contatore++; + } + riga=0; + } +} +//////////////////////////////////////////////////////////////////////////////// +void display_mini_state(int sensor_state, int X, int Y) +{ + //visualizzazione dello stato dei vari elementi, usato in pagina 0 + int riga, colonna, contatore=0; + for (colonna=0; colonna<40; colonna++) { + for ( riga=0; riga<40; riga++) { + switch (sensor_state) { + //---------------------------------------------------------- + case 0: + lcd.DrawPixel (X+riga, Y+colonna, _acqgreen[contatore]); + break; + case 1: + lcd.DrawPixel (X+riga, Y+colonna, _acqredgreen[contatore]); + break; + case 2: + lcd.DrawPixel (X+riga, Y+colonna, _acqred[contatore]); + break; + } + contatore++; + } + riga=0; + } + contatore=0; +} +//////////////////////////////////////////////////////////////////////////////// +void display_OT_state(int sensor_state, int X, int Y, int MAXSensor) +{ + //visualizzazione degli stati degli OT, usato in pagina 1 + int riga, colonna, contatore=0; + for (colonna=0; colonna<150; colonna++) { + for ( riga=0; riga<75; riga++) { + switch (sensor_state) { + //---------------------------------------------------------- + case 0: + lcd.DrawPixel (X+riga, Y+colonna, _ac_on1[contatore]); + break; + case 1: + lcd.DrawPixel (X+riga, Y+colonna, _ac_onoff1[contatore]); + break; + case 2: + lcd.DrawPixel (X+riga, Y+colonna, _ac_off1[contatore]); + break; + } + contatore++; + } + riga=0; + } + contatore=0; -#include "AClean_0.c" -#include "AClean_1.c" -#include "AClean_2.c" -#include "ARoast_0.c" -#include "ARoast_1.c" -#include "ARoast_2.c" -#include "ARoast_3.c" -#include "APower.c" -#include "APulsanti.c" -#include "Porta_aperto.c" -#include "Porta_chiuso.c" -#include "Giracaffe_acceso.c" -#include "Giracaffe_spento.c" -#include "Lampadina_acceso.c" -#include "Lampadina_spento.c" -#include "VTangenziale_acceso.c" -#include "VTangenziale_spento.c" -#include "VRadiale_acceso.c" -#include "VRadiale_spento.c" -#include "Resistenza1_acceso.c" -#include "Resistenza1_spento.c" -#include "Resistenza2_acceso.c" -#include "Resistenza2_spento.c" -#include "Ventola_acceso.c" -#include "Ventola_spento.c" +} +//////////////////////////////////////////////////////////////////////////////// +void display_setup() +{ + //realizzazione del rettangolo di sfondo piu' la barra grigia nel riquadro inferiore del display + lcd.Clear(BackColor); + lcd.SetFont(&Font24); + lcd.SetTextColor(gray); + lcd.SetBackColor(BackColor); + lcd.FillRect(0, 440, 800, 39); + lcd.SetTextColor(black); + lcd.SetBackColor(gray); + lcd.DrawHLine(0, 410, 800); + lcd.DrawHLine(0,440, 800); + lcd.DrawVLine(160, 441, 39); + lcd.DrawVLine(640, 441, 39); + lcd.DisplayStringAt(0, 450, (uint8_t *)"Metal Controller - Ver 2.3", CENTER_MODE); + lcd.DisplayStringAt(5, LINE(19)-5, (uint8_t *)"<< PREV", LEFT_MODE); + lcd.DisplayStringAt(645, LINE(19)-5, (uint8_t *)"NEXT >>", LEFT_MODE); + lcd.SetBackColor(BackColor); +} +//////////////////////////////////////////////////////////////////////////////// +void display_draw_sheet (int actual_sheet) +{ + //disegno delle singole pagine////////////////////////////////////////////// + switch (actual_sheet) { + //---------------------------------------------------------------------- + case 0: { //Disegno Pagina 0 + lcd.SetTextColor(BackColor); + lcd.FillRect(0, 0, 800, 409); + lcd.SetTextColor(black); + if (is_OT_displayed) lcd.DisplayStringAt(430, 40, (uint8_t *)"Over Temperatures", LEFT_MODE); + if (is_Heater_displayed) lcd.DisplayStringAt(430, 120, (uint8_t *)"Heaters", LEFT_MODE); + if (is_Analog_displayed) lcd.DisplayStringAt(430, 200, (uint8_t *)"Analog Signals", LEFT_MODE); + if (is_Digital_displayed) lcd.DisplayStringAt(430, 280, (uint8_t *)"Digital Signals", LEFT_MODE); + } + break; + //---------------------------------------------------------------------- + case 1: { //Disegno Pagina 1 + lcd.SetTextColor(BackColor); + lcd.FillRect(0, 0, 800, 409); + lcd.SetTextColor(black); + lcd.DisplayStringAt(35, 35, (uint8_t *)"Over Temperatures:", LEFT_MODE); + } + break; + //---------------------------------------------------------------------- + case 2: { //Disegno Pagina 2 + lcd.SetTextColor(BackColor); + lcd.FillRect(0, 0, 800, 409); + lcd.SetTextColor(black); + for (int riga=0; riga<MAX_HEATER; riga++) { + lcd.DisplayStringAt(10, LINE(1+2*riga), (uint8_t *)"Heater :", LEFT_MODE); + //lcd.DisplayStringAt(10, LINE(7+2*riga), (uint8_t *)"Calibration :", LEFT_MODE); + sprintf((char*)text, "%d", riga+1); + lcd.DisplayStringAt(120,LINE(1+2*riga), (uint8_t *)&text, LEFT_MODE); + sprintf((char*)text, "%2.3f", Heater[riga].limit); + lcd.DisplayStringAt(660,LINE(1+2*riga), (uint8_t *)&text, LEFT_MODE); + //lcd.DisplayStringAt(210,LINE(7+2*riga), (uint8_t *)&text, LEFT_MODE); + //sprintf((char*)text, "%2.3f", Heater[riga].offset); + //lcd.DisplayStringAt(250,LINE(7+2*riga), (uint8_t *)&text, LEFT_MODE); + } + } + break; + //------------------------------------------------------------------ + case 3: { //Disegno Pagina 3 + lcd.SetTextColor(BackColor); + lcd.FillRect(0, 0, 800, 409); + lcd.SetTextColor(black); + lcd.DisplayStringAt(10, LINE(1), (uint8_t *)"Analog Signals", CENTER_MODE); + lcd.DisplayStringAt(10, LINE(2), (uint8_t *)"BCl3 :", LEFT_MODE); + lcd.DisplayStringAt(10, LINE(3), (uint8_t *)"gas2 :", LEFT_MODE); + lcd.DisplayStringAt(10, LINE(4), (uint8_t *)"gas3 :", LEFT_MODE); + lcd.DisplayStringAt(10, LINE(5), (uint8_t *)"gas4 :", LEFT_MODE); + lcd.DisplayStringAt(10, LINE(6), (uint8_t *)"gas5 :", LEFT_MODE); + lcd.DisplayStringAt(10, LINE(7), (uint8_t *)"gas6 :", LEFT_MODE); + lcd.DisplayStringAt(10, LINE(8), (uint8_t *)"gas7 :", LEFT_MODE); + lcd.DisplayStringAt(10, LINE(9), (uint8_t *)"gas8 :", LEFT_MODE); + lcd.DisplayStringAt(10, LINE(10), (uint8_t *)"Digital Signals", CENTER_MODE); + lcd.DisplayStringAt(10, LINE(11), (uint8_t *)"dig1 :", LEFT_MODE); + lcd.DisplayStringAt(10, LINE(12), (uint8_t *)"dig2 :", LEFT_MODE); + lcd.DisplayStringAt(10, LINE(13), (uint8_t *)"dig3 :", LEFT_MODE); + + } + break; + //---------------------------------------------------------------------- + case 4: { //Disegno Pagina 4 + lcd.SetTextColor(BackColor); + lcd.FillRect(0, 0, 800, 409); + lcd.SetTextColor(black); + lcd.DisplayStringAt(5, LINE(3), (uint8_t *)"OT display", LEFT_MODE); + lcd.DisplayStringAt(5, LINE(4), (uint8_t *)"OT control", LEFT_MODE); + lcd.DisplayStringAt(5, LINE(5), (uint8_t *)"Heater display", LEFT_MODE); + lcd.DisplayStringAt(5, LINE(6), (uint8_t *)"Heater control", LEFT_MODE); + lcd.DisplayStringAt(5, LINE(7), (uint8_t *)"Analog display", LEFT_MODE); + lcd.DisplayStringAt(5, LINE(8), (uint8_t *)"Analog control", LEFT_MODE); + lcd.DisplayStringAt(5, LINE(9), (uint8_t *)"Digital display", LEFT_MODE); + lcd.DisplayStringAt(5, LINE(10), (uint8_t *)"Digital control", LEFT_MODE); + (is_OT_displayed) ? lcd.DisplayStringAt(350, LINE(3), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(3), (uint8_t *)"NOT ACTIVE", LEFT_MODE); + (is_OT_controlled) ? lcd.DisplayStringAt(350, LINE(4), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(4), (uint8_t *)"NOT ACTIVE", LEFT_MODE); + (is_Heater_displayed) ? lcd.DisplayStringAt(350, LINE(5), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(5), (uint8_t *)"NOT ACTIVE", LEFT_MODE); + (is_Heater_controlled) ? lcd.DisplayStringAt(350, LINE(6), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(6), (uint8_t *)"NOT ACTIVE", LEFT_MODE); + (is_Analog_displayed) ? lcd.DisplayStringAt(350, LINE(7), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(7), (uint8_t *)"NOT ACTIVE", LEFT_MODE); + (is_Analog_controlled) ? lcd.DisplayStringAt(350, LINE(8), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(8), (uint8_t *)"NOT ACTIVE", LEFT_MODE); + (is_Digital_displayed) ? lcd.DisplayStringAt(350, LINE(9), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(9), (uint8_t *)"NOT ACTIVE", LEFT_MODE); + (is_Digital_controlled) ? lcd.DisplayStringAt(350, LINE(10), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(10), (uint8_t *)"NOT ACTIVE", LEFT_MODE); + + } + break; + //---------------------------------------------------------------------- + } +} +//////////////////////////////////////////////////////////////////////////////// +void display_sheet_number() +{ + //visualizza il numero della pagina attuale sul display in basso a sinistra + sprintf((char*)text, "%d", actual_sheet); + lcd.DisplayStringAt(10,415, (uint8_t *)&text, LEFT_MODE); +} +//////////////////////////////////////////////////////////////////////////////// + +#endif -LCD_DISCO_F469NI lcd; -/* -TS_DISCO_F469NI ts; -TS_StateTypeDef TS_State; -//uint16_t X, Y; -uint8_t status; -uint8_t cleared = 0; -uint8_t prev_nb_touches = 0; -uint8_t text[30]; -*/ -enum {STOP, CLEAN, ROAST, PULSANTI, CLEAN_ATTIVO, ROAST_PRE, ROAST_ACTIVE, CLEAN_FINITO, ROAST_FINITO}; -//sono le icone dei pulsanti power, clean, roast nei loro vari stati -void disegna_pulsanti(int pulsante) -{ - int riga, colonna, contatore=0; - switch (pulsante) { - case 0: //STOP - contatore=0; - for (riga=0; riga<120; riga++) { - for ( colonna=0; colonna<120; colonna++) { - lcd.DrawPixel (20+colonna, 20+ riga, _acAPower[contatore]); - contatore++; - } - colonna=0; - } - //lcd.DrawRect (20, 20, 120, 120); - break; - case 1: //CLEAN - contatore=0; - for (riga=0; riga<120; riga++) { - for ( colonna=0; colonna<120; colonna++) { - lcd.DrawPixel (20+colonna, 165+ riga, _acAClean_0[contatore]); - contatore++; - } - colonna=0; - } - //lcd.DrawRect (20, 165, 120, 120); - break; - case 2: //ROAST - contatore=0; - for (riga=0; riga<120; riga++) { - for ( colonna=0; colonna<120; colonna++) { - lcd.DrawPixel (20+colonna, 290+ riga, _acARoast_0[contatore]); - contatore++; - } - colonna=0; - } - //lcd.DrawRect (20, 290, 120, 120); - break; - case 3: //pulsanti regolazione tempo e temperatura - for (riga=0; riga<140; riga++) { - for ( colonna=0; colonna<200; colonna++) { - lcd.DrawPixel (180+colonna, 270+ riga, _acAPulsanti[contatore]); - contatore++; - } - colonna=0; - } - break; - case 4: //CLEAN ATTIVO - contatore=0; - for (riga=0; riga<120; riga++) { - for ( colonna=0; colonna<120; colonna++) { - lcd.DrawPixel (20+colonna, 165+ riga, _acAClean_1[contatore]); - contatore++; - } - colonna=0; - } - //lcd.DrawRect (20, 165, 120, 120); - break; - case 5: //ROAST PRE - contatore=0; - for (riga=0; riga<120; riga++) { - for ( colonna=0; colonna<120; colonna++) { - lcd.DrawPixel (20+colonna, 290+ riga, _acARoast_1[contatore]); - contatore++; - } - colonna=0; - } - //lcd.DrawRect (20, 290, 120, 120); - break; - case 6: //ROAST ACTIVE - contatore=0; - for (riga=0; riga<120; riga++) { - for ( colonna=0; colonna<120; colonna++) { - lcd.DrawPixel (20+colonna, 290+ riga, _acARoast_2[contatore]); - contatore++; - } - colonna=0; - } - //lcd.DrawRect (20, 290, 120, 120); - break; - case 7: //CLEAN FINITO - contatore=0; - for (riga=0; riga<120; riga++) { - for ( colonna=0; colonna<120; colonna++) { - lcd.DrawPixel (20+colonna, 165+ riga, _acAClean_2[contatore]); - contatore++; - } - colonna=0; - } - //lcd.DrawRect (20, 165, 120, 120); - break; - case 8: //ROAST FINITO - contatore=0; - for (riga=0; riga<120; riga++) { - for ( colonna=0; colonna<120; colonna++) { - lcd.DrawPixel (20+colonna, 290+ riga, _acARoast_3[contatore]); - contatore++; - } - colonna=0; - } - //lcd.DrawRect (20, 165, 120, 120); - break; - } -} -//------------------------------------------------------------------------------ -#endif \ No newline at end of file