Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: TS_DISCO_F746NG LCD_DISCO_F746NG BSP_DISCO_F746NG BUTTON_GROUP Arduino
Functions.h@6:ba00a5cd9466, 2020-12-21 (annotated)
- Committer:
 - MaxScorda
 - Date:
 - Mon Dec 21 20:31:09 2020 +0000
 - Revision:
 - 6:ba00a5cd9466
 - Parent:
 - 5:19f1743cecb1
 - Child:
 - 7:f654d2b1f08b
 
more touch;
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| MaxScorda | 2:65480fe798bf | 1 | #ifndef FUNCTIONS_H | 
| MaxScorda | 2:65480fe798bf | 2 | #define FUNCTIONS_H | 
| MaxScorda | 3:e7e663758e6d | 3 | using namespace ButGrp; | 
| MaxScorda | 2:65480fe798bf | 4 | |
| MaxScorda | 6:ba00a5cd9466 | 5 | void SetLayer(int numlayer, int tipo=0) | 
| MaxScorda | 6:ba00a5cd9466 | 6 | { | 
| MaxScorda | 6:ba00a5cd9466 | 7 | return; | 
| MaxScorda | 6:ba00a5cd9466 | 8 | // vedere come passare BSPLCD_ | 
| MaxScorda | 6:ba00a5cd9466 | 9 | for (int idx = 0; idx < NUMLAYER; idx++) { | 
| MaxScorda | 6:ba00a5cd9466 | 10 | // sprintf(str, "Touches: %d",idx); | 
| MaxScorda | 6:ba00a5cd9466 | 11 | BSP_LCD_DisplayStringAt(0, LINE(12+idx), (uint8_t *)&str, LEFT_MODE); | 
| MaxScorda | 6:ba00a5cd9466 | 12 | if (idx==numlayer) { | 
| MaxScorda | 6:ba00a5cd9466 | 13 | BSP_LCD_SetLayerVisible(idx, ENABLE); | 
| MaxScorda | 6:ba00a5cd9466 | 14 | BSP_LCD_SelectLayer(idx); | 
| MaxScorda | 6:ba00a5cd9466 | 15 | // BSP_LCD_DisplayStringAt(50, LINE(12+idx), (uint8_t *)"ON", RIGHT_MODE); | 
| MaxScorda | 6:ba00a5cd9466 | 16 | } else { | 
| MaxScorda | 6:ba00a5cd9466 | 17 | if (tipo==0) { | 
| MaxScorda | 6:ba00a5cd9466 | 18 | BSP_LCD_SetLayerVisible(idx, DISABLE); | 
| MaxScorda | 6:ba00a5cd9466 | 19 | // BSP_LCD_DisplayStringAt(50, LINE(12+idx), (uint8_t *)"OFF", RIGHT_MODE); | 
| MaxScorda | 6:ba00a5cd9466 | 20 | } | 
| MaxScorda | 6:ba00a5cd9466 | 21 | } | 
| MaxScorda | 6:ba00a5cd9466 | 22 | } | 
| MaxScorda | 6:ba00a5cd9466 | 23 | } | 
| MaxScorda | 6:ba00a5cd9466 | 24 | |
| MaxScorda | 1:3fca41f3ed30 | 25 | void PressButton() | 
| MaxScorda | 1:3fca41f3ed30 | 26 | { | 
| MaxScorda | 1:3fca41f3ed30 | 27 | static int ccont=0; | 
| MaxScorda | 1:3fca41f3ed30 | 28 | led1= !led1; | 
| MaxScorda | 1:3fca41f3ed30 | 29 | ccont++; | 
| MaxScorda | 6:ba00a5cd9466 | 30 | if (nummenu==0) { | 
| MaxScorda | 6:ba00a5cd9466 | 31 | BSP_LCD_.SetFont(&Font16); | 
| MaxScorda | 6:ba00a5cd9466 | 32 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); | 
| MaxScorda | 6:ba00a5cd9466 | 33 | sprintf(str, "Tasto premuto %d volte", ccont); | 
| MaxScorda | 6:ba00a5cd9466 | 34 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *) str, CENTER_MODE); | 
| MaxScorda | 6:ba00a5cd9466 | 35 | } | 
| MaxScorda | 2:65480fe798bf | 36 | } | 
| MaxScorda | 2:65480fe798bf | 37 | |
| MaxScorda | 3:e7e663758e6d | 38 | void GestioneButton() | 
| MaxScorda | 3:e7e663758e6d | 39 | { | 
| MaxScorda | 6:ba00a5cd9466 | 40 | // vedi buttoGroup_Demo per esempio group | 
| MaxScorda | 6:ba00a5cd9466 | 41 | static bool toccato=false; | 
| MaxScorda | 6:ba00a5cd9466 | 42 | bool modifica=false; | 
| MaxScorda | 6:ba00a5cd9466 | 43 | BSP_TS_GetState(&TS_State); | 
| MaxScorda | 3:e7e663758e6d | 44 | |
| MaxScorda | 3:e7e663758e6d | 45 | |
| MaxScorda | 6:ba00a5cd9466 | 46 | if ((avanti.Touched())&& (toccato==false)) { | 
| MaxScorda | 6:ba00a5cd9466 | 47 | nummenu=(++nummenu)%MAXMENU; | 
| MaxScorda | 6:ba00a5cd9466 | 48 | // reset.Draw(INACTIVE, LCD_COLOR_GRAY); | 
| MaxScorda | 6:ba00a5cd9466 | 49 | modifica=true; | 
| MaxScorda | 3:e7e663758e6d | 50 | } | 
| MaxScorda | 6:ba00a5cd9466 | 51 | if ((indietro.Touched()) && (toccato==false)) { | 
| MaxScorda | 6:ba00a5cd9466 | 52 | nummenu=((--nummenu)+MAXMENU)%MAXMENU; | 
| MaxScorda | 6:ba00a5cd9466 | 53 | // reset.Draw(INACTIVE, LCD_COLOR_GRAY); | 
| MaxScorda | 6:ba00a5cd9466 | 54 | modifica=true; | 
| MaxScorda | 3:e7e663758e6d | 55 | } | 
| MaxScorda | 3:e7e663758e6d | 56 | wait(0.01f); | 
| MaxScorda | 3:e7e663758e6d | 57 | |
| MaxScorda | 6:ba00a5cd9466 | 58 | if((TS_State.touchDetected) && (toccato==false)) { | 
| MaxScorda | 6:ba00a5cd9466 | 59 | toccato=true; | 
| MaxScorda | 6:ba00a5cd9466 | 60 | } else if((!TS_State.touchDetected) && (toccato==true)) { | 
| MaxScorda | 6:ba00a5cd9466 | 61 | toccato=false; | 
| MaxScorda | 6:ba00a5cd9466 | 62 | } | 
| MaxScorda | 6:ba00a5cd9466 | 63 | |
| MaxScorda | 6:ba00a5cd9466 | 64 | if (modifica==true) { | 
| MaxScorda | 6:ba00a5cd9466 | 65 | if (nummenu==0) { | 
| MaxScorda | 6:ba00a5cd9466 | 66 | BSP_LCD_.SetFont(&Font12); | 
| MaxScorda | 6:ba00a5cd9466 | 67 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); | 
| MaxScorda | 6:ba00a5cd9466 | 68 | sprintf(str, "menu: %d", nummenu); | 
| MaxScorda | 6:ba00a5cd9466 | 69 | } | 
| MaxScorda | 6:ba00a5cd9466 | 70 | BSP_LCD_DisplayStringAt(50, LINE(7), (uint8_t *)str, LEFT_MODE); | 
| MaxScorda | 6:ba00a5cd9466 | 71 | BSP_LCD_SetTextColor(LCD_COLOR_BLACK); | 
| MaxScorda | 6:ba00a5cd9466 | 72 | BSP_LCD_FillRect(40+1, 45+1, DimX-80-1, DimY-45-45-1); | 
| MaxScorda | 6:ba00a5cd9466 | 73 | BSP_LCD_FillRect(DimX/3+6, 1, ((DimX*2)/3)-7, 38); | 
| MaxScorda | 6:ba00a5cd9466 | 74 | BSP_LCD_.SetFont(&Font24); | 
| MaxScorda | 6:ba00a5cd9466 | 75 | BSP_LCD_SetTextColor(LCD_COLOR_YELLOW); | 
| MaxScorda | 6:ba00a5cd9466 | 76 | switch (nummenu) { | 
| MaxScorda | 6:ba00a5cd9466 | 77 | case 0: | 
| MaxScorda | 6:ba00a5cd9466 | 78 | BSP_LCD_DisplayStringAt(DimX/3+10, 10, (uint8_t *) "Dati Generali", LEFT_MODE); | 
| MaxScorda | 6:ba00a5cd9466 | 79 | break; | 
| MaxScorda | 6:ba00a5cd9466 | 80 | case 1: | 
| MaxScorda | 6:ba00a5cd9466 | 81 | BSP_LCD_DisplayStringAt(DimX/3+10, 10, (uint8_t *) "Da assegnare", LEFT_MODE); | 
| MaxScorda | 6:ba00a5cd9466 | 82 | break; | 
| MaxScorda | 6:ba00a5cd9466 | 83 | case 2: | 
| MaxScorda | 6:ba00a5cd9466 | 84 | BSP_LCD_DisplayStringAt(DimX/3+10, 10, (uint8_t *) "Dati TCP", LEFT_MODE); | 
| MaxScorda | 6:ba00a5cd9466 | 85 | break; | 
| MaxScorda | 6:ba00a5cd9466 | 86 | } | 
| MaxScorda | 6:ba00a5cd9466 | 87 | |
| MaxScorda | 6:ba00a5cd9466 | 88 | } | 
| MaxScorda | 3:e7e663758e6d | 89 | } | 
| MaxScorda | 3:e7e663758e6d | 90 | |
| MaxScorda | 3:e7e663758e6d | 91 | void GestioneTouch() | 
| MaxScorda | 3:e7e663758e6d | 92 | { | 
| MaxScorda | 3:e7e663758e6d | 93 | static uint16_t x=0, y=0; | 
| MaxScorda | 3:e7e663758e6d | 94 | uint8_t cleared = 0; | 
| MaxScorda | 3:e7e663758e6d | 95 | uint8_t prev_nb_touches = 0; | 
| MaxScorda | 3:e7e663758e6d | 96 | BSP_TS_GetState(&TS_State); | 
| MaxScorda | 6:ba00a5cd9466 | 97 | BSP_LCD_SetBackColor(LCD_COLOR_BLACK); | 
| MaxScorda | 5:19f1743cecb1 | 98 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); | 
| MaxScorda | 5:19f1743cecb1 | 99 | BSP_LCD_.SetFont(&Font16); | 
| MaxScorda | 3:e7e663758e6d | 100 | if (TS_State.touchDetected) { | 
| MaxScorda | 3:e7e663758e6d | 101 | // Clear lines corresponding to old touches coordinates | 
| MaxScorda | 3:e7e663758e6d | 102 | if (TS_State.touchDetected < prev_nb_touches) { | 
| MaxScorda | 5:19f1743cecb1 | 103 | for (int idx = (TS_State.touchDetected + 1); idx <= 5; idx++) { | 
| MaxScorda | 3:e7e663758e6d | 104 | BSP_LCD_ClearStringLine(idx); | 
| MaxScorda | 3:e7e663758e6d | 105 | } | 
| MaxScorda | 3:e7e663758e6d | 106 | } | 
| MaxScorda | 3:e7e663758e6d | 107 | prev_nb_touches = TS_State.touchDetected; | 
| MaxScorda | 3:e7e663758e6d | 108 | cleared = 0; | 
| MaxScorda | 4:0ce191d3f0ce | 109 | sprintf(str, "Touches: %d", TS_State.touchDetected); | 
| MaxScorda | 5:19f1743cecb1 | 110 | BSP_LCD_DisplayStringAt(50, LINE(3), (uint8_t *)str, LEFT_MODE); | 
| MaxScorda | 6:ba00a5cd9466 | 111 | SetLayer( 1); | 
| MaxScorda | 3:e7e663758e6d | 112 | BSP_LCD_DrawPixel(x, y, LCD_COLOR_BLACK); | 
| MaxScorda | 6:ba00a5cd9466 | 113 | SetLayer( 0); | 
| MaxScorda | 5:19f1743cecb1 | 114 | for (int idx = 0; idx < TS_State.touchDetected; idx++) { | 
| MaxScorda | 3:e7e663758e6d | 115 | x = TS_State.touchX[idx]; | 
| MaxScorda | 3:e7e663758e6d | 116 | y = TS_State.touchY[idx]; | 
| MaxScorda | 4:0ce191d3f0ce | 117 | sprintf(str, "Touch %d: x=%d y=%d ", idx+1, x, y); | 
| MaxScorda | 5:19f1743cecb1 | 118 | BSP_LCD_DisplayStringAt(50, LINE(idx+4), (uint8_t *)str, LEFT_MODE); | 
| MaxScorda | 3:e7e663758e6d | 119 | } | 
| MaxScorda | 6:ba00a5cd9466 | 120 | SetLayer( 1); | 
| MaxScorda | 3:e7e663758e6d | 121 | BSP_LCD_DrawPixel(TS_State.touchX[0], TS_State.touchY[0], LCD_COLOR_WHITE); | 
| MaxScorda | 6:ba00a5cd9466 | 122 | SetLayer( 0); | 
| MaxScorda | 3:e7e663758e6d | 123 | } else { | 
| MaxScorda | 3:e7e663758e6d | 124 | if (!cleared) { | 
| MaxScorda | 4:0ce191d3f0ce | 125 | sprintf(str, "Touches: 0"); | 
| MaxScorda | 5:19f1743cecb1 | 126 | BSP_LCD_DisplayStringAt(50, LINE(3), (uint8_t *)&str, LEFT_MODE); | 
| MaxScorda | 3:e7e663758e6d | 127 | cleared = 1; | 
| MaxScorda | 3:e7e663758e6d | 128 | } | 
| MaxScorda | 3:e7e663758e6d | 129 | } | 
| MaxScorda | 3:e7e663758e6d | 130 | } | 
| MaxScorda | 3:e7e663758e6d | 131 | |
| MaxScorda | 6:ba00a5cd9466 | 132 | void DatiTCP() | 
| MaxScorda | 3:e7e663758e6d | 133 | { | 
| MaxScorda | 6:ba00a5cd9466 | 134 | static bool giavisualizzato=false; | 
| MaxScorda | 6:ba00a5cd9466 | 135 | if ((nummenu==2)&&(giavisualizzato==false)) { | 
| MaxScorda | 6:ba00a5cd9466 | 136 | BSP_LCD_SetBackColor(LCD_COLOR_BLACK); | 
| MaxScorda | 6:ba00a5cd9466 | 137 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); | 
| MaxScorda | 6:ba00a5cd9466 | 138 | BSP_LCD_.SetFont(&Font16); | 
| MaxScorda | 6:ba00a5cd9466 | 139 | BSP_LCD_DisplayStringAt(0, LINE(3), (uint8_t *)"Ethernet socket example", CENTER_MODE); | 
| MaxScorda | 6:ba00a5cd9466 | 140 | // Show the network address | 
| MaxScorda | 6:ba00a5cd9466 | 141 | const char *ip = net.get_ip_address(); | 
| MaxScorda | 6:ba00a5cd9466 | 142 | const char *netmask = net.get_netmask(); | 
| MaxScorda | 6:ba00a5cd9466 | 143 | const char *gateway = net.get_gateway(); | 
| MaxScorda | 6:ba00a5cd9466 | 144 | sprintf(str,"IP address: %s", ip ? ip : "None"); | 
| MaxScorda | 6:ba00a5cd9466 | 145 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)str, CENTER_MODE); | 
| MaxScorda | 6:ba00a5cd9466 | 146 | sprintf(str,"Netmask: %s", netmask ? netmask : "None"); | 
| MaxScorda | 6:ba00a5cd9466 | 147 | BSP_LCD_DisplayStringAt(0, LINE(6), (uint8_t *)str, CENTER_MODE); | 
| MaxScorda | 6:ba00a5cd9466 | 148 | sprintf(str,"Gateway: %s", gateway ? gateway : "None"); | 
| MaxScorda | 6:ba00a5cd9466 | 149 | BSP_LCD_DisplayStringAt(0, LINE(7), (uint8_t *)str, CENTER_MODE); | 
| MaxScorda | 6:ba00a5cd9466 | 150 | |
| MaxScorda | 6:ba00a5cd9466 | 151 | giavisualizzato=true; | 
| MaxScorda | 3:e7e663758e6d | 152 | } | 
| MaxScorda | 6:ba00a5cd9466 | 153 | |
| MaxScorda | 6:ba00a5cd9466 | 154 | if (nummenu!=2) | 
| MaxScorda | 6:ba00a5cd9466 | 155 | giavisualizzato=false; | 
| MaxScorda | 3:e7e663758e6d | 156 | } | 
| MaxScorda | 3:e7e663758e6d | 157 | |
| MaxScorda | 6:ba00a5cd9466 | 158 | |
| MaxScorda | 6:ba00a5cd9466 | 159 | |
| MaxScorda | 2:65480fe798bf | 160 | #endif |