Código para o menu no LCD

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Committer:
claraluques
Date:
Tue May 15 17:58:04 2018 +0000
Revision:
23:19c67758032d
Parent:
22:22ddb0b21d48
Child:
24:46c3be0e8273
tentando atualizar coords tela

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lucasfontenla 17:0b8e489fac36 1 #define tx PC_10
lucasfontenla 17:0b8e489fac36 2 #define rx PC_11
lucasfontenla 17:0b8e489fac36 3
lucasfontenla 17:0b8e489fac36 4 Serial Mach(tx, rx);
claraluques 19:2c890ae2d187 5 //SDFileSystem sd(PB_5, PB_4, PB_3, PB_10, "sd"); //MOSI - D4, MISO - D5, SCLK - D3, CS - D6
lucasfontenla 17:0b8e489fac36 6
lucasfontenla 17:0b8e489fac36 7 class Machine {
lucasfontenla 17:0b8e489fac36 8 int n;
lucasfontenla 17:0b8e489fac36 9 string buffer;
lucasfontenla 17:0b8e489fac36 10 char buffer_char[2];
lucasfontenla 17:0b8e489fac36 11
lucasfontenla 17:0b8e489fac36 12 public:
lucasfontenla 17:0b8e489fac36 13 int debug;
lucasfontenla 17:0b8e489fac36 14
lucasfontenla 17:0b8e489fac36 15 // PUBLIC FUNCTIONS ----------------------------------------------------------------------------------------------------------------------------------------
lucasfontenla 17:0b8e489fac36 16 void move_to(float x, float y, float z, string type, int speed){
lucasfontenla 17:0b8e489fac36 17
lucasfontenla 17:0b8e489fac36 18 }
lucasfontenla 17:0b8e489fac36 19
lucasfontenla 17:0b8e489fac36 20 void move(int x_axis, int y_axis, int z_axis, float pct_speed){
lucasfontenla 17:0b8e489fac36 21 buffer = "";
lucasfontenla 17:0b8e489fac36 22
lucasfontenla 17:0b8e489fac36 23 buffer.append("f");
lucasfontenla 17:0b8e489fac36 24
lucasfontenla 17:0b8e489fac36 25 //buffer.append("X");
lucasfontenla 17:0b8e489fac36 26 n = sprintf(buffer_char, "%d", x_axis);
lucasfontenla 17:0b8e489fac36 27 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 28
lucasfontenla 17:0b8e489fac36 29 //buffer.append("Y");
lucasfontenla 17:0b8e489fac36 30 n = sprintf(buffer_char, "%d", y_axis);
lucasfontenla 17:0b8e489fac36 31 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 32
lucasfontenla 17:0b8e489fac36 33 //buffer.append("Z");
lucasfontenla 17:0b8e489fac36 34 n = sprintf(buffer_char, "%d", z_axis);
lucasfontenla 17:0b8e489fac36 35 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 36
lucasfontenla 17:0b8e489fac36 37 buffer.append("F");
lucasfontenla 17:0b8e489fac36 38 n = sprintf(buffer_char, "%.2f", pct_speed);
lucasfontenla 17:0b8e489fac36 39 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 40
lucasfontenla 17:0b8e489fac36 41 send(buffer);
lucasfontenla 17:0b8e489fac36 42 }
lucasfontenla 17:0b8e489fac36 43
lucasfontenla 17:0b8e489fac36 44 void save_point(int mode, float pct_speed){
lucasfontenla 17:0b8e489fac36 45 buffer = "";
lucasfontenla 17:0b8e489fac36 46
lucasfontenla 17:0b8e489fac36 47 buffer.append("s");
lucasfontenla 17:0b8e489fac36 48
lucasfontenla 17:0b8e489fac36 49 n = sprintf(buffer_char, "M%d", mode);
lucasfontenla 17:0b8e489fac36 50 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 51
lucasfontenla 17:0b8e489fac36 52 n = sprintf(buffer_char, "F%.2f", pct_speed);
lucasfontenla 17:0b8e489fac36 53 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 54
lucasfontenla 17:0b8e489fac36 55 send(buffer);
lucasfontenla 17:0b8e489fac36 56 }
lucasfontenla 17:0b8e489fac36 57
lucasfontenla 17:0b8e489fac36 58 void start_program(void){
claraluques 20:ccbd80b668ce 59 send("b");
claraluques 20:ccbd80b668ce 60 printf("b\n\r");
lucasfontenla 17:0b8e489fac36 61 }
lucasfontenla 17:0b8e489fac36 62
lucasfontenla 17:0b8e489fac36 63 void cancel_program(void){
lucasfontenla 17:0b8e489fac36 64 send("c");
lucasfontenla 17:0b8e489fac36 65 }
lucasfontenla 17:0b8e489fac36 66
lucasfontenla 17:0b8e489fac36 67 void get_status(void){
lucasfontenla 17:0b8e489fac36 68 send("s");
lucasfontenla 17:0b8e489fac36 69 }
lucasfontenla 17:0b8e489fac36 70
lucasfontenla 17:0b8e489fac36 71 void machine_zero(void){
lucasfontenla 17:0b8e489fac36 72 send("mz");
lucasfontenla 17:0b8e489fac36 73 }
lucasfontenla 17:0b8e489fac36 74
lucasfontenla 17:0b8e489fac36 75 void set_zero(string axis){
lucasfontenla 17:0b8e489fac36 76 buffer = "";
lucasfontenla 17:0b8e489fac36 77
lucasfontenla 17:0b8e489fac36 78 buffer.append("z");
lucasfontenla 17:0b8e489fac36 79 buffer+=axis;
lucasfontenla 17:0b8e489fac36 80
lucasfontenla 17:0b8e489fac36 81 send(buffer);
lucasfontenla 17:0b8e489fac36 82 }
lucasfontenla 17:0b8e489fac36 83
claraluques 19:2c890ae2d187 84 void jog(void){
claraluques 19:2c890ae2d187 85 send("j");
claraluques 20:ccbd80b668ce 86 printf("j\n\r");
claraluques 19:2c890ae2d187 87 }
claraluques 19:2c890ae2d187 88
claraluques 20:ccbd80b668ce 89 void kill_jog(void){
claraluques 20:ccbd80b668ce 90 send("jk");
claraluques 20:ccbd80b668ce 91 printf("jk\n\r");
claraluques 20:ccbd80b668ce 92 }
claraluques 20:ccbd80b668ce 93
claraluques 20:ccbd80b668ce 94
lucasfontenla 17:0b8e489fac36 95 private:
lucasfontenla 17:0b8e489fac36 96
lucasfontenla 17:0b8e489fac36 97 // PRIVATE FUNCTIONS ----------------------------------------------------------------------------------------------------------------------------------------
lucasfontenla 17:0b8e489fac36 98 void send(string msg){
lucasfontenla 17:0b8e489fac36 99 msg.append("x");
lucasfontenla 17:0b8e489fac36 100
lucasfontenla 17:0b8e489fac36 101 for(int i = 0; i < msg.length(); i++){
lucasfontenla 17:0b8e489fac36 102 Mach.putc(msg[i]);
claraluques 20:ccbd80b668ce 103 wait_ms(20);
lucasfontenla 17:0b8e489fac36 104 }
lucasfontenla 17:0b8e489fac36 105 }
claraluques 18:5338b83b4de9 106 };
claraluques 18:5338b83b4de9 107
claraluques 18:5338b83b4de9 108
claraluques 18:5338b83b4de9 109 //criar classe "menu" (funções para as telas)
claraluques 18:5338b83b4de9 110 class Menu{
claraluques 19:2c890ae2d187 111
claraluques 19:2c890ae2d187 112 Machine machine;
claraluques 18:5338b83b4de9 113 public:
claraluques 18:5338b83b4de9 114 int linha;
claraluques 18:5338b83b4de9 115 int func;
claraluques 23:19c67758032d 116
claraluques 18:5338b83b4de9 117
claraluques 18:5338b83b4de9 118 void movercursor(int min, int max, int col){ //função para mover cursor de seleção
claraluques 18:5338b83b4de9 119 linha = min;
claraluques 18:5338b83b4de9 120 lcd.locate(col,min);
claraluques 18:5338b83b4de9 121 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 122 while (bot_enter==penter){
claraluques 18:5338b83b4de9 123 if (bot_cima==1){
claraluques 18:5338b83b4de9 124 if (linha==min){
claraluques 18:5338b83b4de9 125 lcd.locate(col,min);
claraluques 18:5338b83b4de9 126 lcd.printf(" ");
claraluques 18:5338b83b4de9 127 linha=max;
claraluques 18:5338b83b4de9 128 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 129 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 130 }
claraluques 18:5338b83b4de9 131 else {
claraluques 18:5338b83b4de9 132 lcd.locate(col,linha);
claraluques 18:5338b83b4de9 133 lcd.printf(" ");
claraluques 18:5338b83b4de9 134 linha--;
claraluques 18:5338b83b4de9 135 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 136 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 137 }
claraluques 18:5338b83b4de9 138 bot_cima = 0;
claraluques 18:5338b83b4de9 139 }
claraluques 18:5338b83b4de9 140 else if (bot_baixo==1){
claraluques 18:5338b83b4de9 141 if (linha==max){
claraluques 18:5338b83b4de9 142 lcd.locate(col,max);
claraluques 18:5338b83b4de9 143 lcd.printf(" ");
claraluques 18:5338b83b4de9 144 linha=min;
claraluques 18:5338b83b4de9 145 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 146 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 147 }
claraluques 18:5338b83b4de9 148 else {
claraluques 18:5338b83b4de9 149 lcd.locate(col,linha);
claraluques 18:5338b83b4de9 150 lcd.printf(" ");
claraluques 18:5338b83b4de9 151 linha++;
claraluques 18:5338b83b4de9 152 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 153 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 154 }
claraluques 18:5338b83b4de9 155 bot_baixo = 0;
claraluques 18:5338b83b4de9 156 }
claraluques 19:2c890ae2d187 157 else if (func==2 || func==8){
claraluques 18:5338b83b4de9 158 lcd.locate(2,1);
claraluques 18:5338b83b4de9 159 lcd.printf("%.3f", cx);
claraluques 18:5338b83b4de9 160 lcd.locate(2,2);
claraluques 18:5338b83b4de9 161 lcd.printf("%.3f", cy);
claraluques 18:5338b83b4de9 162 lcd.locate(2,3);
claraluques 18:5338b83b4de9 163 lcd.printf("%.3f", cz);
claraluques 18:5338b83b4de9 164 }
lucasfontenla 22:22ddb0b21d48 165 if (Mach.readable()){
claraluques 21:7603fe283ba4 166 readSerial();
claraluques 21:7603fe283ba4 167 }
claraluques 18:5338b83b4de9 168 }
claraluques 18:5338b83b4de9 169 }
claraluques 18:5338b83b4de9 170
claraluques 18:5338b83b4de9 171 //func 0
claraluques 18:5338b83b4de9 172 void inicializar(){ //função tela incial de boas-vindas
claraluques 18:5338b83b4de9 173 lcd.cls();
claraluques 18:5338b83b4de9 174 lcd.locate(4,0);
claraluques 18:5338b83b4de9 175 lcd.printf("Bem-vindo(a)");
claraluques 18:5338b83b4de9 176 lcd.locate(0,1);
claraluques 18:5338b83b4de9 177 lcd.printf("Utilize seu EPI para operar a maquina.");
claraluques 18:5338b83b4de9 178 wait(1);
claraluques 18:5338b83b4de9 179 func = 1;
claraluques 18:5338b83b4de9 180 }
claraluques 18:5338b83b4de9 181
claraluques 18:5338b83b4de9 182 //func 1
claraluques 18:5338b83b4de9 183 void menuprincipal(){ //função menu principal
claraluques 18:5338b83b4de9 184 bot_enter = 0;
claraluques 18:5338b83b4de9 185 lcd.cls();
claraluques 18:5338b83b4de9 186 lcd.locate(1,0);
claraluques 18:5338b83b4de9 187 lcd.printf("Modo JOG");
claraluques 18:5338b83b4de9 188 lcd.locate(1,1);
claraluques 18:5338b83b4de9 189 lcd.printf("Modo Automatico");
claraluques 18:5338b83b4de9 190 lcd.locate(1,2);
claraluques 18:5338b83b4de9 191 lcd.printf("Config");
claraluques 18:5338b83b4de9 192 lcd.locate(1,3);
claraluques 18:5338b83b4de9 193 lcd.printf("Zerar");
claraluques 18:5338b83b4de9 194 movercursor(0,3,0);
claraluques 18:5338b83b4de9 195 if (bot_enter!=penter){
claraluques 18:5338b83b4de9 196 if (linha==0){
claraluques 18:5338b83b4de9 197 func = 2;
claraluques 18:5338b83b4de9 198 }
claraluques 18:5338b83b4de9 199 else if (linha==1) {
claraluques 18:5338b83b4de9 200 func = 3;
claraluques 18:5338b83b4de9 201 }
claraluques 18:5338b83b4de9 202 else if (linha==2) {
claraluques 18:5338b83b4de9 203 func = 4;
claraluques 18:5338b83b4de9 204 }
claraluques 18:5338b83b4de9 205 else if (linha==3) {
claraluques 18:5338b83b4de9 206 func = 8;
claraluques 18:5338b83b4de9 207 }
claraluques 18:5338b83b4de9 208 }
claraluques 18:5338b83b4de9 209 }
claraluques 18:5338b83b4de9 210
claraluques 18:5338b83b4de9 211 //func 2
claraluques 18:5338b83b4de9 212 void jog(){ //função tela jog
claraluques 18:5338b83b4de9 213 bot_enter = 0;
claraluques 20:ccbd80b668ce 214 machine.kill_jog();
claraluques 20:ccbd80b668ce 215 wait(0.1);
claraluques 19:2c890ae2d187 216 machine.jog();
claraluques 18:5338b83b4de9 217 lcd.cls();
claraluques 18:5338b83b4de9 218 lcd.locate(4,0);
claraluques 18:5338b83b4de9 219 lcd.printf("Coordenadas:");
claraluques 18:5338b83b4de9 220 lcd.locate(0,1);
claraluques 18:5338b83b4de9 221 lcd.printf("X:");
claraluques 18:5338b83b4de9 222 lcd.locate(0,2);
claraluques 18:5338b83b4de9 223 lcd.printf("Y:");
claraluques 18:5338b83b4de9 224 lcd.locate(0,3);
claraluques 18:5338b83b4de9 225 lcd.printf("Z:");
claraluques 18:5338b83b4de9 226 lcd.locate(11,1);
claraluques 18:5338b83b4de9 227 lcd.printf("Salvar");
claraluques 18:5338b83b4de9 228 lcd.locate(11,2);
claraluques 18:5338b83b4de9 229 lcd.printf("Concluir");
claraluques 18:5338b83b4de9 230 lcd.locate(11,3);
claraluques 18:5338b83b4de9 231 lcd.printf("Cancelar");
claraluques 19:2c890ae2d187 232 movercursor(1,3,10);
claraluques 18:5338b83b4de9 233 if (bot_enter!=penter){
claraluques 20:ccbd80b668ce 234 if (linha==1){
claraluques 18:5338b83b4de9 235 if (pontos>0){
claraluques 18:5338b83b4de9 236 pontos--;
claraluques 18:5338b83b4de9 237 cx_salva = cx;
claraluques 18:5338b83b4de9 238 cy_salva = cy;
claraluques 18:5338b83b4de9 239 cz_salva = cz;
claraluques 18:5338b83b4de9 240 func = 5;
claraluques 18:5338b83b4de9 241 }
claraluques 18:5338b83b4de9 242 else if (pontos==0){
claraluques 18:5338b83b4de9 243 func = 16;
claraluques 18:5338b83b4de9 244 }
claraluques 18:5338b83b4de9 245 }
claraluques 18:5338b83b4de9 246 else if (linha==2) {
claraluques 18:5338b83b4de9 247 func = 7;
claraluques 18:5338b83b4de9 248 }
claraluques 18:5338b83b4de9 249 else if (linha==3) {
claraluques 20:ccbd80b668ce 250 machine.kill_jog();
claraluques 18:5338b83b4de9 251 func = 1;
claraluques 18:5338b83b4de9 252 pontos = 10;
claraluques 18:5338b83b4de9 253 }
claraluques 18:5338b83b4de9 254 }
claraluques 18:5338b83b4de9 255 }
claraluques 18:5338b83b4de9 256
claraluques 18:5338b83b4de9 257 //func 3
claraluques 18:5338b83b4de9 258 void automatico(){ //tela modo automatico
claraluques 18:5338b83b4de9 259 lcd.cls();
claraluques 18:5338b83b4de9 260 bot_enter = 0;
claraluques 18:5338b83b4de9 261 lcd.printf("Modo automatico");
claraluques 18:5338b83b4de9 262 lcd.locate(7,2);
claraluques 18:5338b83b4de9 263 lcd.printf("OK");
claraluques 18:5338b83b4de9 264 lcd.locate(7,3);
claraluques 18:5338b83b4de9 265 lcd.printf("Voltar");
claraluques 18:5338b83b4de9 266 movercursor(2,3,6);
claraluques 18:5338b83b4de9 267 if (bot_enter!=penter) {
claraluques 18:5338b83b4de9 268 if (linha==2){
claraluques 18:5338b83b4de9 269 func = 12;
claraluques 18:5338b83b4de9 270 }
claraluques 18:5338b83b4de9 271 else if (linha==3){
claraluques 18:5338b83b4de9 272 func = 1;
claraluques 18:5338b83b4de9 273 }
claraluques 18:5338b83b4de9 274 }
claraluques 18:5338b83b4de9 275 }
claraluques 18:5338b83b4de9 276
claraluques 18:5338b83b4de9 277 //func 4
claraluques 18:5338b83b4de9 278 void config() {
claraluques 18:5338b83b4de9 279 lcd.cls();
claraluques 18:5338b83b4de9 280 bot_enter = 0;
claraluques 18:5338b83b4de9 281 lcd.locate(1,0);
claraluques 18:5338b83b4de9 282 lcd.printf("Definir velocidade");
claraluques 18:5338b83b4de9 283 lcd.locate(1,1);
claraluques 18:5338b83b4de9 284 lcd.printf("Limpar seringa cola");
claraluques 18:5338b83b4de9 285 lcd.locate(1,2);
claraluques 18:5338b83b4de9 286 lcd.printf("Desligar a maquina");
claraluques 18:5338b83b4de9 287 lcd.locate(1,3);
claraluques 18:5338b83b4de9 288 lcd.printf("Voltar");
claraluques 18:5338b83b4de9 289 movercursor(0,3,0);
claraluques 18:5338b83b4de9 290 if (bot_enter!=penter){
claraluques 18:5338b83b4de9 291 if (linha==0) {
claraluques 18:5338b83b4de9 292 func = 13;
claraluques 18:5338b83b4de9 293 }
claraluques 18:5338b83b4de9 294 else if (linha==1) {
claraluques 18:5338b83b4de9 295 func = 14;
claraluques 18:5338b83b4de9 296 }
claraluques 18:5338b83b4de9 297 else if (linha==2) {
claraluques 18:5338b83b4de9 298 func = 15;
claraluques 18:5338b83b4de9 299 }
claraluques 18:5338b83b4de9 300 else if (linha==3) {
claraluques 18:5338b83b4de9 301 func = 1;
claraluques 18:5338b83b4de9 302 }
claraluques 18:5338b83b4de9 303 }
claraluques 18:5338b83b4de9 304 }
claraluques 18:5338b83b4de9 305
claraluques 18:5338b83b4de9 306 //func 5
claraluques 18:5338b83b4de9 307 void telasalvamento(){ //função para quando salvar um ponto
claraluques 18:5338b83b4de9 308 lcd.cls();
claraluques 18:5338b83b4de9 309 lcd.locate(0,0);
claraluques 18:5338b83b4de9 310 lcd.printf("Voce salvou");
claraluques 18:5338b83b4de9 311 lcd.locate(1,1);
claraluques 18:5338b83b4de9 312 lcd.printf("X:%.3f", cx_salva);
claraluques 18:5338b83b4de9 313 lcd.locate(1,2);
claraluques 18:5338b83b4de9 314 lcd.printf("Y:%.3f", cy_salva);
claraluques 18:5338b83b4de9 315 lcd.locate(1,3);
claraluques 18:5338b83b4de9 316 lcd.printf("Z:%.3f", cz_salva);
claraluques 18:5338b83b4de9 317 lcd.locate(13,1);
claraluques 18:5338b83b4de9 318 lcd.printf("Pontos");
claraluques 18:5338b83b4de9 319 lcd.locate(13,2);
claraluques 18:5338b83b4de9 320 lcd.printf("livres");
claraluques 18:5338b83b4de9 321 lcd.locate(16,3);
claraluques 18:5338b83b4de9 322 lcd.printf("%d", pontos);
claraluques 18:5338b83b4de9 323 wait(1);
claraluques 18:5338b83b4de9 324 if (pontos>0){
claraluques 18:5338b83b4de9 325 func = 6;
claraluques 18:5338b83b4de9 326 }
claraluques 18:5338b83b4de9 327 else if (pontos==0){
claraluques 18:5338b83b4de9 328 func = 2;
claraluques 18:5338b83b4de9 329 }
claraluques 18:5338b83b4de9 330 }
claraluques 18:5338b83b4de9 331
claraluques 18:5338b83b4de9 332 //func 6
claraluques 18:5338b83b4de9 333 void telacola(){ //tela para escolher o tipo de sequencia da cola
claraluques 18:5338b83b4de9 334 lcd.cls();
claraluques 18:5338b83b4de9 335 bot_enter = 0;
claraluques 18:5338b83b4de9 336 lcd.printf("P/ o proximo ponto:");
claraluques 18:5338b83b4de9 337 lcd.locate(3,1);
claraluques 18:5338b83b4de9 338 lcd.printf("Sem cola");
claraluques 18:5338b83b4de9 339 lcd.locate(3,2);
claraluques 18:5338b83b4de9 340 lcd.printf("Cola no ponto");
claraluques 18:5338b83b4de9 341 lcd.locate(3,3);
claraluques 18:5338b83b4de9 342 lcd.printf("Cola continua");
claraluques 18:5338b83b4de9 343 movercursor(1,3,2);
claraluques 18:5338b83b4de9 344 if (bot_enter!=penter){
claraluques 18:5338b83b4de9 345 if (linha==1){
claraluques 18:5338b83b4de9 346 cola = 0;
claraluques 18:5338b83b4de9 347 func = 2;
claraluques 18:5338b83b4de9 348 }
claraluques 18:5338b83b4de9 349 else if (linha==2) {
claraluques 18:5338b83b4de9 350 cola = 1;
claraluques 18:5338b83b4de9 351 func = 2;
claraluques 18:5338b83b4de9 352 }
claraluques 18:5338b83b4de9 353 else if (linha==3) {
claraluques 18:5338b83b4de9 354 cola = 2;
claraluques 18:5338b83b4de9 355 func = 2;
claraluques 18:5338b83b4de9 356 }
claraluques 20:ccbd80b668ce 357 machine.save_point(cola,2);
claraluques 18:5338b83b4de9 358 }
claraluques 18:5338b83b4de9 359 }
claraluques 18:5338b83b4de9 360
claraluques 18:5338b83b4de9 361 //func 7
claraluques 18:5338b83b4de9 362 void executarprograma() { //tela para selecionar se deseja executar o programa
claraluques 18:5338b83b4de9 363 lcd.cls();
claraluques 18:5338b83b4de9 364 bot_enter = 0;
claraluques 18:5338b83b4de9 365 lcd.locate(2,0);
claraluques 18:5338b83b4de9 366 lcd.printf("VOCE CONCLUIU SEU");
claraluques 18:5338b83b4de9 367 lcd.locate(5,1);
claraluques 18:5338b83b4de9 368 lcd.printf("PROGRAMA.");
claraluques 18:5338b83b4de9 369 lcd.locate(0,2);
claraluques 18:5338b83b4de9 370 lcd.printf("Deseja");
claraluques 18:5338b83b4de9 371 lcd.locate(0,3);
claraluques 18:5338b83b4de9 372 lcd.printf("executa-lo?");
claraluques 18:5338b83b4de9 373 lcd.locate(14,2);
claraluques 18:5338b83b4de9 374 lcd.printf("Sim");
claraluques 18:5338b83b4de9 375 lcd.locate(14,3);
claraluques 18:5338b83b4de9 376 lcd.printf("Voltar");
claraluques 18:5338b83b4de9 377 movercursor(2,3,13);
claraluques 18:5338b83b4de9 378 if (bot_enter!=penter) {
claraluques 18:5338b83b4de9 379 if (linha==2){
claraluques 21:7603fe283ba4 380 machine.kill_jog();
claraluques 21:7603fe283ba4 381 wait(0.1);
claraluques 19:2c890ae2d187 382 machine.start_program();
claraluques 18:5338b83b4de9 383 exec = 1;
claraluques 18:5338b83b4de9 384 func = 9;
claraluques 18:5338b83b4de9 385 }
claraluques 18:5338b83b4de9 386 else if (linha==3){
claraluques 18:5338b83b4de9 387 exec = 0;
claraluques 18:5338b83b4de9 388 func = 2;
claraluques 18:5338b83b4de9 389 }
claraluques 18:5338b83b4de9 390 }
claraluques 18:5338b83b4de9 391 }
claraluques 18:5338b83b4de9 392
claraluques 18:5338b83b4de9 393 //func 8
claraluques 18:5338b83b4de9 394 void telazerar(){ //tela para zerar a máquina
claraluques 18:5338b83b4de9 395 lcd.cls();
claraluques 18:5338b83b4de9 396 bot_enter = 0;
claraluques 18:5338b83b4de9 397 lcd.locate(2,0);
claraluques 19:2c890ae2d187 398 lcd.printf("Zerar:");
claraluques 19:2c890ae2d187 399 lcd.locate(0,1);
claraluques 19:2c890ae2d187 400 lcd.printf("X:");
claraluques 19:2c890ae2d187 401 lcd.locate(0,2);
claraluques 19:2c890ae2d187 402 lcd.printf("Y:");
claraluques 19:2c890ae2d187 403 lcd.locate(0,3);
claraluques 19:2c890ae2d187 404 lcd.printf("Z:");
claraluques 19:2c890ae2d187 405 lcd.locate(13,0);
claraluques 19:2c890ae2d187 406 lcd.printf("X");
claraluques 19:2c890ae2d187 407 lcd.locate(13,1);
claraluques 19:2c890ae2d187 408 lcd.printf("Y");
claraluques 19:2c890ae2d187 409 lcd.locate(13,2);
claraluques 19:2c890ae2d187 410 lcd.printf("Z");
claraluques 19:2c890ae2d187 411 lcd.locate(13,3);
claraluques 19:2c890ae2d187 412 lcd.printf("Voltar");
claraluques 19:2c890ae2d187 413 movercursor(0,3,12);
claraluques 18:5338b83b4de9 414 if (bot_enter!=penter) {
claraluques 19:2c890ae2d187 415 if (linha==0){
claraluques 18:5338b83b4de9 416 cx = 0;
claraluques 19:2c890ae2d187 417 func = 10;
claraluques 19:2c890ae2d187 418 machine.set_zero("X");
claraluques 19:2c890ae2d187 419 }
claraluques 19:2c890ae2d187 420 else if (linha==1){
claraluques 18:5338b83b4de9 421 cy = 0;
claraluques 19:2c890ae2d187 422 func = 10;
claraluques 19:2c890ae2d187 423 machine.set_zero("Y");
claraluques 19:2c890ae2d187 424 }
claraluques 19:2c890ae2d187 425 else if (linha==2){
claraluques 18:5338b83b4de9 426 cz = 0;
claraluques 18:5338b83b4de9 427 func = 10;
claraluques 19:2c890ae2d187 428 machine.set_zero("Z");
claraluques 18:5338b83b4de9 429 }
claraluques 18:5338b83b4de9 430 else if (linha==3){
claraluques 18:5338b83b4de9 431 func = 1;
claraluques 18:5338b83b4de9 432 }
claraluques 18:5338b83b4de9 433 }
claraluques 18:5338b83b4de9 434 }
claraluques 18:5338b83b4de9 435
claraluques 18:5338b83b4de9 436 //func 9
claraluques 18:5338b83b4de9 437 void executando(){ //tela de executando
claraluques 18:5338b83b4de9 438 lcd.cls();
claraluques 18:5338b83b4de9 439 lcd.locate(4,1);
claraluques 18:5338b83b4de9 440 lcd.printf("Executando");
claraluques 18:5338b83b4de9 441 int contador = 0;
claraluques 18:5338b83b4de9 442 while (exec==1){
claraluques 18:5338b83b4de9 443 lcd.locate(14,1);
claraluques 18:5338b83b4de9 444 lcd.printf(". ");
claraluques 18:5338b83b4de9 445 wait(0.5);
claraluques 18:5338b83b4de9 446 lcd.locate(14,1);
claraluques 18:5338b83b4de9 447 lcd.printf(".. ");
claraluques 18:5338b83b4de9 448 wait(0.5);
claraluques 18:5338b83b4de9 449 lcd.locate(14,1);
claraluques 18:5338b83b4de9 450 lcd.printf("...");
claraluques 18:5338b83b4de9 451 wait(0.5);
claraluques 18:5338b83b4de9 452 lcd.locate(14,1);
claraluques 18:5338b83b4de9 453 lcd.printf(" ");
claraluques 18:5338b83b4de9 454 wait(0.5);
claraluques 18:5338b83b4de9 455 contador++;
claraluques 18:5338b83b4de9 456 if (contador>=2){
claraluques 18:5338b83b4de9 457 exec = 0;
claraluques 18:5338b83b4de9 458 func = 11;
claraluques 18:5338b83b4de9 459 }
claraluques 18:5338b83b4de9 460 }
claraluques 18:5338b83b4de9 461 }
claraluques 18:5338b83b4de9 462
claraluques 18:5338b83b4de9 463 //func 10
claraluques 18:5338b83b4de9 464 void zerado() { //tela avisando que a máquina foi zerada
claraluques 18:5338b83b4de9 465 lcd.cls();
claraluques 18:5338b83b4de9 466 lcd.locate(5,1);
claraluques 18:5338b83b4de9 467 lcd.printf("Voce zerou");
claraluques 19:2c890ae2d187 468 lcd.locate(6,2);
claraluques 19:2c890ae2d187 469 lcd.printf("o eixo!");
claraluques 18:5338b83b4de9 470 wait(1);
claraluques 18:5338b83b4de9 471 func = 8;
claraluques 18:5338b83b4de9 472 }
claraluques 18:5338b83b4de9 473
claraluques 18:5338b83b4de9 474 //func 11
claraluques 18:5338b83b4de9 475 void finalizado() { //tela aviso programa finalizado
claraluques 18:5338b83b4de9 476 lcd.cls();
claraluques 18:5338b83b4de9 477 lcd.locate(6,1);
claraluques 18:5338b83b4de9 478 lcd.printf("PROGRAMA");
claraluques 18:5338b83b4de9 479 lcd.locate(5,2);
claraluques 18:5338b83b4de9 480 lcd.printf("FINALIZADO");
claraluques 18:5338b83b4de9 481 wait(1);
claraluques 18:5338b83b4de9 482 func = 1;
claraluques 18:5338b83b4de9 483 }
claraluques 18:5338b83b4de9 484
claraluques 18:5338b83b4de9 485 //func 12
claraluques 18:5338b83b4de9 486
claraluques 18:5338b83b4de9 487 //func 13
claraluques 18:5338b83b4de9 488
claraluques 18:5338b83b4de9 489 //func 14
claraluques 18:5338b83b4de9 490
claraluques 18:5338b83b4de9 491 //func 15
claraluques 18:5338b83b4de9 492
claraluques 18:5338b83b4de9 493 //func 16
claraluques 18:5338b83b4de9 494 void limitepontos(){ //tela para quando acabam os pontos
claraluques 18:5338b83b4de9 495 lcd.cls();
claraluques 18:5338b83b4de9 496 lcd.printf(" Voce atingiu o n%c maximo de pontos.", 0xDF);
claraluques 18:5338b83b4de9 497 lcd.locate(0,3);
claraluques 18:5338b83b4de9 498 lcd.printf("Conclua seu programa");
claraluques 18:5338b83b4de9 499 wait(1);
claraluques 18:5338b83b4de9 500 func = 2;
claraluques 21:7603fe283ba4 501 }
lucasfontenla 22:22ddb0b21d48 502
claraluques 21:7603fe283ba4 503 void readSerial(){
claraluques 21:7603fe283ba4 504 char recv;
claraluques 23:19c67758032d 505 int points;
claraluques 23:19c67758032d 506 int pointx;
claraluques 23:19c67758032d 507 int pointy;
claraluques 23:19c67758032d 508 int pointz;
claraluques 23:19c67758032d 509 string coordx;
claraluques 23:19c67758032d 510 string coordy;
claraluques 23:19c67758032d 511 string coordz;
claraluques 21:7603fe283ba4 512
claraluques 21:7603fe283ba4 513 while(1){
claraluques 21:7603fe283ba4 514 recv = Mach.getc();
claraluques 23:19c67758032d 515 //printf("%c\n\r", recv);
claraluques 21:7603fe283ba4 516 if (recv=='p'){
claraluques 21:7603fe283ba4 517 points = 1;
claraluques 23:19c67758032d 518 }
claraluques 23:19c67758032d 519 if (points){
claraluques 21:7603fe283ba4 520 if (recv=='X'){
claraluques 21:7603fe283ba4 521 pointx = 1;
claraluques 21:7603fe283ba4 522 }
claraluques 21:7603fe283ba4 523 else if (recv=='Y'){
claraluques 21:7603fe283ba4 524 pointy = 1;
claraluques 21:7603fe283ba4 525 }
claraluques 21:7603fe283ba4 526 else if (recv=='Z'){
claraluques 21:7603fe283ba4 527 pointz = 1;
claraluques 23:19c67758032d 528 }
claraluques 21:7603fe283ba4 529 else if (recv=='x'){
claraluques 23:19c67758032d 530 cx = atof(coordx.c_str());
claraluques 23:19c67758032d 531 cy = atof(coordy.c_str());
claraluques 23:19c67758032d 532 cz = atof(coordz.c_str());
claraluques 23:19c67758032d 533 printf("%s,%s,%s\n\r", coordx, coordy, coordz);
claraluques 21:7603fe283ba4 534 break;
claraluques 21:7603fe283ba4 535 }
claraluques 23:19c67758032d 536 }
claraluques 23:19c67758032d 537 if (pointx){
claraluques 23:19c67758032d 538 if (recv!='X' || !pointy || !pointz){
claraluques 23:19c67758032d 539 coordx.push_back(recv);
claraluques 23:19c67758032d 540 }
claraluques 23:19c67758032d 541 }
claraluques 23:19c67758032d 542 if (pointy){
claraluques 23:19c67758032d 543 if (recv!='Y' || !pointx || !pointz){
claraluques 23:19c67758032d 544 coordy.push_back(recv);
claraluques 23:19c67758032d 545 }
claraluques 23:19c67758032d 546 }
claraluques 23:19c67758032d 547 if (pointz){
claraluques 23:19c67758032d 548 if (recv!='Z' || !pointy || !pointx){
claraluques 23:19c67758032d 549 coordz.push_back(recv);
claraluques 23:19c67758032d 550 }
claraluques 23:19c67758032d 551 }
claraluques 23:19c67758032d 552
claraluques 23:19c67758032d 553 }
claraluques 21:7603fe283ba4 554 }
claraluques 23:19c67758032d 555
lucasfontenla 22:22ddb0b21d48 556
claraluques 21:7603fe283ba4 557 Menu(); //não apagar
lucasfontenla 17:0b8e489fac36 558 };