TLMoto / Mbed 2 deprecated Display

Dependencies:   mbed Nextion Utilities

Committer:
franciscodias
Date:
Wed Apr 15 23:31:44 2020 +0000
Revision:
0:a0dff6b0bde0
Erro na ultima linha

Who changed what in which revision?

UserRevisionLine numberNew contents of line
franciscodias 0:a0dff6b0bde0 1 #include "mbed.h"
franciscodias 0:a0dff6b0bde0 2 #include "Nextion.h"
franciscodias 0:a0dff6b0bde0 3
franciscodias 0:a0dff6b0bde0 4 Serial Display(PA_0, PA_1, 115200); //tx, rx, baud
franciscodias 0:a0dff6b0bde0 5
franciscodias 0:a0dff6b0bde0 6 int test = 0;
franciscodias 0:a0dff6b0bde0 7 int CurrentPage = 0;
franciscodias 0:a0dff6b0bde0 8 int temperature = 50;
franciscodias 0:a0dff6b0bde0 9 int voltage = 116;
franciscodias 0:a0dff6b0bde0 10
franciscodias 0:a0dff6b0bde0 11 //Page 0
franciscodias 0:a0dff6b0bde0 12 NexButton b0 = NexButton(0, 1, "b0"); //Race
franciscodias 0:a0dff6b0bde0 13 NexButton b1 = NexButton(0, 2, "b1"); //Test
franciscodias 0:a0dff6b0bde0 14
franciscodias 0:a0dff6b0bde0 15 //Page 1
franciscodias 0:a0dff6b0bde0 16 NexButton b2 = NexButton(1, 5, "b0"); //Back
franciscodias 0:a0dff6b0bde0 17 NexText t0 = NexText(1, 3, "t2"); //Temperature
franciscodias 0:a0dff6b0bde0 18 NexText t1 = NexText(1, 4, "t3"); //Voltage
franciscodias 0:a0dff6b0bde0 19
franciscodias 0:a0dff6b0bde0 20 //Page 2
franciscodias 0:a0dff6b0bde0 21 NexButton b3 = NexButton(2, 1, "b0"); //Back
franciscodias 0:a0dff6b0bde0 22 NexText t2 = NexText(2, 2, "t0"); //test
franciscodias 0:a0dff6b0bde0 23
franciscodias 0:a0dff6b0bde0 24 //Declare Pages
franciscodias 0:a0dff6b0bde0 25 NexPage page0 = NexPage(0, 0, "page0"); // Page added as a touch event
franciscodias 0:a0dff6b0bde0 26 NexPage page1 = NexPage(1, 0, "page1"); // Page added as a touch event
franciscodias 0:a0dff6b0bde0 27 NexPage page2 = NexPage(2, 0, "page2"); // Page added as a touch event
franciscodias 0:a0dff6b0bde0 28
franciscodias 0:a0dff6b0bde0 29 //End of declaring objects
franciscodias 0:a0dff6b0bde0 30
franciscodias 0:a0dff6b0bde0 31
franciscodias 0:a0dff6b0bde0 32 // Declare touch event objects to the touch event list:
franciscodias 0:a0dff6b0bde0 33 // You just need to add the names of the objects that send a touch event.
franciscodias 0:a0dff6b0bde0 34 // Format: &<object name>,
franciscodias 0:a0dff6b0bde0 35
franciscodias 0:a0dff6b0bde0 36 NexTouch *nex_listen_list[] =
franciscodias 0:a0dff6b0bde0 37 {
franciscodias 0:a0dff6b0bde0 38 &b0, // Button added
franciscodias 0:a0dff6b0bde0 39 &b1, // Button added
franciscodias 0:a0dff6b0bde0 40 &b2, // Button added
franciscodias 0:a0dff6b0bde0 41 &b3, // Button added
franciscodias 0:a0dff6b0bde0 42 &page0, // Page added as a touch event
franciscodias 0:a0dff6b0bde0 43 &page1, // Page added as a touch event
franciscodias 0:a0dff6b0bde0 44 &page2, // Page added as a touch event
franciscodias 0:a0dff6b0bde0 45 NULL // String terminated
franciscodias 0:a0dff6b0bde0 46 }; // End of touch event list
franciscodias 0:a0dff6b0bde0 47
franciscodias 0:a0dff6b0bde0 48
franciscodias 0:a0dff6b0bde0 49 ////////////////////////// Touch events:
franciscodias 0:a0dff6b0bde0 50 // Each of the following sections are going to run everytime the touch event happens:
franciscodias 0:a0dff6b0bde0 51 // Is going to run the code inside each section only ones for each touch event.
franciscodias 0:a0dff6b0bde0 52
franciscodias 0:a0dff6b0bde0 53 void b0PushCallback(void *ptr) // Press event for "Race" button on page 0
franciscodias 0:a0dff6b0bde0 54 {
franciscodias 0:a0dff6b0bde0 55 Display.printf("page 1"); // Sending this it's going to tell the nextion display to go to page 1.
franciscodias 0:a0dff6b0bde0 56 Display.putc(0xff); // We always have to send this three lines after each command sent to the nextion display.
franciscodias 0:a0dff6b0bde0 57 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 58 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 59 } // End of press event
franciscodias 0:a0dff6b0bde0 60
franciscodias 0:a0dff6b0bde0 61
franciscodias 0:a0dff6b0bde0 62 void b1PushCallback(void *ptr) // Press event for "Test" button on page 0
franciscodias 0:a0dff6b0bde0 63 {
franciscodias 0:a0dff6b0bde0 64 Display.printf("page 2"); // Sending this it's going to tell the nextion display to go to page 2.
franciscodias 0:a0dff6b0bde0 65 Display.putc(0xff); // We always have to send this three lines after each command sent to the nextion display.
franciscodias 0:a0dff6b0bde0 66 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 67 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 68 } // End of press event
franciscodias 0:a0dff6b0bde0 69
franciscodias 0:a0dff6b0bde0 70 void b2PushCallback(void *ptr) // Press event for "Back" button on page 1
franciscodias 0:a0dff6b0bde0 71 {
franciscodias 0:a0dff6b0bde0 72 Display.printf("page 0"); // Sending this it's going to tell the nextion display to go to page 0.
franciscodias 0:a0dff6b0bde0 73 Display.putc(0xff); // We always have to send this three lines after each command sent to the nextion display.
franciscodias 0:a0dff6b0bde0 74 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 75 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 76 } // End of press event
franciscodias 0:a0dff6b0bde0 77
franciscodias 0:a0dff6b0bde0 78 void b3PushCallback(void *ptr) // Press event for "Back" button on page 2
franciscodias 0:a0dff6b0bde0 79 {
franciscodias 0:a0dff6b0bde0 80 Display.printf("page 0"); // Sending this it's going to tell the nextion display to go to page 0.
franciscodias 0:a0dff6b0bde0 81 Display.putc(0xff); // We always have to send this three lines after each command sent to the nextion display.
franciscodias 0:a0dff6b0bde0 82 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 83 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 84 } // End of press event
franciscodias 0:a0dff6b0bde0 85
franciscodias 0:a0dff6b0bde0 86
franciscodias 0:a0dff6b0bde0 87 // Page change event:
franciscodias 0:a0dff6b0bde0 88 void page0PushCallback(void *ptr) // If page 0 is loaded on the display, the following is going to execute:
franciscodias 0:a0dff6b0bde0 89 {
franciscodias 0:a0dff6b0bde0 90 CurrentPage = 0; // Set variable as 0 so from now on stm knows page 0 is loaded on the display
franciscodias 0:a0dff6b0bde0 91 } // End of press event
franciscodias 0:a0dff6b0bde0 92
franciscodias 0:a0dff6b0bde0 93
franciscodias 0:a0dff6b0bde0 94 // Page change event:
franciscodias 0:a0dff6b0bde0 95 void page1PushCallback(void *ptr) // If page 1 is loaded on the display, the following is going to execute:
franciscodias 0:a0dff6b0bde0 96 {
franciscodias 0:a0dff6b0bde0 97 CurrentPage = 1; // Set variable as 1 so from now on stm knows page 1 is loaded on the display
franciscodias 0:a0dff6b0bde0 98 } // End of press event
franciscodias 0:a0dff6b0bde0 99
franciscodias 0:a0dff6b0bde0 100
franciscodias 0:a0dff6b0bde0 101 // Page change event:
franciscodias 0:a0dff6b0bde0 102 void page2PushCallback(void *ptr) // If page 2 is loaded on the display, the following is going to execute:
franciscodias 0:a0dff6b0bde0 103 {
franciscodias 0:a0dff6b0bde0 104 CurrentPage = 2; // Set variable as 2 so from now on stm knows page 2 is loaded on the display
franciscodias 0:a0dff6b0bde0 105 } // End of press event
franciscodias 0:a0dff6b0bde0 106
franciscodias 0:a0dff6b0bde0 107 ////////////////////////// End of touch events
franciscodias 0:a0dff6b0bde0 108
franciscodias 0:a0dff6b0bde0 109
franciscodias 0:a0dff6b0bde0 110
franciscodias 0:a0dff6b0bde0 111
franciscodias 0:a0dff6b0bde0 112
franciscodias 0:a0dff6b0bde0 113
franciscodias 0:a0dff6b0bde0 114
franciscodias 0:a0dff6b0bde0 115 int main() {
franciscodias 0:a0dff6b0bde0 116 // Register the event callback functions of each touch event:
franciscodias 0:a0dff6b0bde0 117 // You need to register press events and release events seperatly.
franciscodias 0:a0dff6b0bde0 118 // Format for press events: <object name>.attachPush(<object name>PushCallback);
franciscodias 0:a0dff6b0bde0 119 // Format for release events: <object name>.attachPop(<object name>PopCallback);
franciscodias 0:a0dff6b0bde0 120 b0.attachPush(b0PushCallback); // Button press
franciscodias 0:a0dff6b0bde0 121 b1.attachPush(b1PushCallback); // Button press
franciscodias 0:a0dff6b0bde0 122 b2.attachPush(b2PushCallback); // Button press
franciscodias 0:a0dff6b0bde0 123 b3.attachPush(b3PushCallback); // Button press
franciscodias 0:a0dff6b0bde0 124 page0.attachPush(page0PushCallback); // Page press event
franciscodias 0:a0dff6b0bde0 125 page1.attachPush(page1PushCallback); // Page press event
franciscodias 0:a0dff6b0bde0 126 page2.attachPush(page2PushCallback); // Page press event
franciscodias 0:a0dff6b0bde0 127
franciscodias 0:a0dff6b0bde0 128 // End of registering the event callback functions
franciscodias 0:a0dff6b0bde0 129
franciscodias 0:a0dff6b0bde0 130
franciscodias 0:a0dff6b0bde0 131
franciscodias 0:a0dff6b0bde0 132 while(1){
franciscodias 0:a0dff6b0bde0 133 // Send page number to the object called np:
franciscodias 0:a0dff6b0bde0 134 // This object (np) exist on every page so at this point we don't need to check which page is loaded on the display.
franciscodias 0:a0dff6b0bde0 135 Display.printf("np.val="); // This is sent to the nextion display to set what object name (before the dot) and what atribute (after the dot) are you going to change.
franciscodias 0:a0dff6b0bde0 136 Display.printf("%d", CurrentPage); // This is the value you want to send to that object and atribute mentioned before.
franciscodias 0:a0dff6b0bde0 137 Display.putc(0xff); // We always have to send this three lines after each command sent to the nextion display.
franciscodias 0:a0dff6b0bde0 138 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 139 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 140
franciscodias 0:a0dff6b0bde0 141 if(CurrentPage == 1){
franciscodias 0:a0dff6b0bde0 142 temperature++;
franciscodias 0:a0dff6b0bde0 143 voltage--;
franciscodias 0:a0dff6b0bde0 144 wait(4);
franciscodias 0:a0dff6b0bde0 145 if(temperature == 70 || voltage == 0 ){
franciscodias 0:a0dff6b0bde0 146 temperature = 50;
franciscodias 0:a0dff6b0bde0 147 voltage = 116;
franciscodias 0:a0dff6b0bde0 148 }
franciscodias 0:a0dff6b0bde0 149 //temperature
franciscodias 0:a0dff6b0bde0 150 Display.printf("t2.txt");
franciscodias 0:a0dff6b0bde0 151 Display.printf("%d", temperature);
franciscodias 0:a0dff6b0bde0 152 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 153 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 154 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 155
franciscodias 0:a0dff6b0bde0 156 //voltage
franciscodias 0:a0dff6b0bde0 157 Display.printf("t3.txt");
franciscodias 0:a0dff6b0bde0 158 Display.printf("%d", voltage);
franciscodias 0:a0dff6b0bde0 159 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 160 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 161 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 162 }
franciscodias 0:a0dff6b0bde0 163
franciscodias 0:a0dff6b0bde0 164 if(CurrentPage == 2){
franciscodias 0:a0dff6b0bde0 165 test++;
franciscodias 0:a0dff6b0bde0 166 if(test == 100)
franciscodias 0:a0dff6b0bde0 167 test = 0;
franciscodias 0:a0dff6b0bde0 168 wait(2.0);
franciscodias 0:a0dff6b0bde0 169
franciscodias 0:a0dff6b0bde0 170 //test
franciscodias 0:a0dff6b0bde0 171 Display.printf("t0.txt");
franciscodias 0:a0dff6b0bde0 172 Display.printf("%d", test);
franciscodias 0:a0dff6b0bde0 173 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 174 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 175 Display.putc(0xff);
franciscodias 0:a0dff6b0bde0 176 }
franciscodias 0:a0dff6b0bde0 177
franciscodias 0:a0dff6b0bde0 178 // We are going to check the list of touch events we enter previously to
franciscodias 0:a0dff6b0bde0 179 // know if any touch event just happened, and excecute the corresponding instructions:
franciscodias 0:a0dff6b0bde0 180
franciscodias 0:a0dff6b0bde0 181 nexLoop(nex_listen_list); // Check for any touch event
franciscodias 0:a0dff6b0bde0 182
franciscodias 0:a0dff6b0bde0 183 }
franciscodias 0:a0dff6b0bde0 184 }