Código para o menu no LCD

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Committer:
lucasfontenla
Date:
Sun Jun 10 06:18:14 2018 +0000
Revision:
41:a1ab19cc1387
Parent:
40:e70f811c69dc
Child:
42:48096cfdea78
Recebendo e enviando comandos do WiFi

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 40:e70f811c69dc 4 Serial WiFi(D8, D2); // tx, rx
lucasfontenla 17:0b8e489fac36 5 Serial Mach(tx, rx);
lucasfontenla 28:b3c51076ebe8 6 Timer t;
lucasfontenla 17:0b8e489fac36 7
lucasfontenla 29:558eccdfc079 8 string file_name;
lucasfontenla 29:558eccdfc079 9 vector <string> filenames;
lucasfontenla 29:558eccdfc079 10
lucasfontenla 17:0b8e489fac36 11 class Machine {
lucasfontenla 17:0b8e489fac36 12 int n;
lucasfontenla 17:0b8e489fac36 13 string buffer;
lucasfontenla 17:0b8e489fac36 14 char buffer_char[2];
lucasfontenla 17:0b8e489fac36 15
lucasfontenla 17:0b8e489fac36 16 public:
lucasfontenla 17:0b8e489fac36 17 int debug;
lucasfontenla 17:0b8e489fac36 18
lucasfontenla 41:a1ab19cc1387 19 // PUBLIC FUNCTIONS ----------------------------------------------------------------------------------------------------------------------------------------
lucasfontenla 41:a1ab19cc1387 20 void move(string move_code){
lucasfontenla 41:a1ab19cc1387 21 printf("Moving: %s\n\r", move_code);
lucasfontenla 41:a1ab19cc1387 22 send(move_code);
lucasfontenla 17:0b8e489fac36 23 }
lucasfontenla 17:0b8e489fac36 24
lucasfontenla 17:0b8e489fac36 25 void save_point(int mode, float pct_speed){
lucasfontenla 17:0b8e489fac36 26 buffer = "";
lucasfontenla 17:0b8e489fac36 27
lucasfontenla 17:0b8e489fac36 28 buffer.append("s");
lucasfontenla 17:0b8e489fac36 29
lucasfontenla 17:0b8e489fac36 30 n = sprintf(buffer_char, "M%d", mode);
lucasfontenla 17:0b8e489fac36 31 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 32
lucasfontenla 17:0b8e489fac36 33 n = sprintf(buffer_char, "F%.2f", pct_speed);
lucasfontenla 17:0b8e489fac36 34 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 35
lucasfontenla 17:0b8e489fac36 36 send(buffer);
lucasfontenla 17:0b8e489fac36 37 }
lucasfontenla 17:0b8e489fac36 38
lucasfontenla 17:0b8e489fac36 39 void start_program(void){
claraluques 20:ccbd80b668ce 40 send("b");
lucasfontenla 41:a1ab19cc1387 41 printf("Starting Program\n\r");
lucasfontenla 17:0b8e489fac36 42 }
lucasfontenla 17:0b8e489fac36 43
lucasfontenla 17:0b8e489fac36 44 void cancel_program(void){
lucasfontenla 17:0b8e489fac36 45 send("c");
lucasfontenla 17:0b8e489fac36 46 }
lucasfontenla 17:0b8e489fac36 47
lucasfontenla 17:0b8e489fac36 48 void get_status(void){
lucasfontenla 17:0b8e489fac36 49 send("s");
lucasfontenla 17:0b8e489fac36 50 }
lucasfontenla 17:0b8e489fac36 51
lucasfontenla 17:0b8e489fac36 52 void machine_zero(void){
claraluques 26:59081efdce79 53 send("zm");
lucasfontenla 41:a1ab19cc1387 54 printf("Zero Machine\n\r");
lucasfontenla 17:0b8e489fac36 55 }
lucasfontenla 17:0b8e489fac36 56
lucasfontenla 17:0b8e489fac36 57 void set_zero(string axis){
claraluques 27:83d2a710cc2f 58 buffer = "";
lucasfontenla 17:0b8e489fac36 59 buffer.append("z");
lucasfontenla 17:0b8e489fac36 60 buffer+=axis;
lucasfontenla 17:0b8e489fac36 61 send(buffer);
lucasfontenla 17:0b8e489fac36 62 }
lucasfontenla 17:0b8e489fac36 63
claraluques 19:2c890ae2d187 64 void jog(void){
claraluques 19:2c890ae2d187 65 send("j");
lucasfontenla 41:a1ab19cc1387 66 printf("Starting Jog\n\r");
claraluques 19:2c890ae2d187 67 }
claraluques 19:2c890ae2d187 68
claraluques 20:ccbd80b668ce 69 void kill_jog(void){
claraluques 20:ccbd80b668ce 70 send("jk");
lucasfontenla 41:a1ab19cc1387 71 printf("Killing Jog\n\r");
claraluques 20:ccbd80b668ce 72 }
claraluques 20:ccbd80b668ce 73
lucasfontenla 41:a1ab19cc1387 74 void reset(void){
claraluques 26:59081efdce79 75 send("r");
claraluques 26:59081efdce79 76 }
claraluques 26:59081efdce79 77
lucasfontenla 28:b3c51076ebe8 78 void upload_gcode(string gcode){
lucasfontenla 28:b3c51076ebe8 79 buffer = "";
lucasfontenla 28:b3c51076ebe8 80 buffer.append("u");
lucasfontenla 28:b3c51076ebe8 81 buffer.append(gcode);
lucasfontenla 28:b3c51076ebe8 82
lucasfontenla 41:a1ab19cc1387 83 printf("Uploading GCODE: %s\n\r", gcode);
lucasfontenla 41:a1ab19cc1387 84
lucasfontenla 28:b3c51076ebe8 85 send(buffer);
lucasfontenla 28:b3c51076ebe8 86 }
claraluques 20:ccbd80b668ce 87
lucasfontenla 29:558eccdfc079 88 void get_saved_points(void){
lucasfontenla 29:558eccdfc079 89 send("l");
lucasfontenla 29:558eccdfc079 90 }
lucasfontenla 29:558eccdfc079 91
claraluques 34:7c7fac39a250 92 void delete_last_saved(void){
claraluques 34:7c7fac39a250 93 send("d");
claraluques 34:7c7fac39a250 94 }
claraluques 34:7c7fac39a250 95
claraluques 34:7c7fac39a250 96 void clean_glue(void){
claraluques 36:12d202855231 97 send("g");
lucasfontenla 41:a1ab19cc1387 98 printf("Cleaning Glue\n\r");
claraluques 34:7c7fac39a250 99 }
claraluques 34:7c7fac39a250 100
lucasfontenla 17:0b8e489fac36 101 private:
lucasfontenla 17:0b8e489fac36 102
lucasfontenla 17:0b8e489fac36 103 // PRIVATE FUNCTIONS ----------------------------------------------------------------------------------------------------------------------------------------
lucasfontenla 17:0b8e489fac36 104 void send(string msg){
lucasfontenla 17:0b8e489fac36 105 msg.append("x");
lucasfontenla 17:0b8e489fac36 106
lucasfontenla 17:0b8e489fac36 107 for(int i = 0; i < msg.length(); i++){
lucasfontenla 17:0b8e489fac36 108 Mach.putc(msg[i]);
claraluques 20:ccbd80b668ce 109 wait_ms(20);
lucasfontenla 17:0b8e489fac36 110 }
lucasfontenla 17:0b8e489fac36 111 }
claraluques 18:5338b83b4de9 112 };
claraluques 18:5338b83b4de9 113
claraluques 18:5338b83b4de9 114
lucasfontenla 28:b3c51076ebe8 115 Machine machine;
lucasfontenla 28:b3c51076ebe8 116
lucasfontenla 28:b3c51076ebe8 117 SDFileSystem sd(PB_15, PB_14, PB_13, PB_1, "sd"); //MOSI - D4, MISO - D5, SCLK - D3, CS - D7
lucasfontenla 28:b3c51076ebe8 118 DIR *dp;
lucasfontenla 28:b3c51076ebe8 119
lucasfontenla 29:558eccdfc079 120 string folderString = "Programas";
lucasfontenla 28:b3c51076ebe8 121
lucasfontenla 28:b3c51076ebe8 122 class SDCard{
lucasfontenla 28:b3c51076ebe8 123 public:
lucasfontenla 28:b3c51076ebe8 124 int save_GCODE(string name, string gcode){
claraluques 34:7c7fac39a250 125 printf("Saving: %s\n\r", name);
claraluques 35:11e3f3c8cb4e 126 //printf("Code: %s\n\r", gcode);
claraluques 34:7c7fac39a250 127
lucasfontenla 29:558eccdfc079 128 string file_path = "/sd/" + folderString + "/" + name;
lucasfontenla 28:b3c51076ebe8 129 char * path = str_to_char(file_path);
lucasfontenla 28:b3c51076ebe8 130
lucasfontenla 28:b3c51076ebe8 131 printf(path);
lucasfontenla 28:b3c51076ebe8 132
claraluques 34:7c7fac39a250 133 //printf("going...\n\r");
lucasfontenla 28:b3c51076ebe8 134
lucasfontenla 28:b3c51076ebe8 135 FILE *fp = fopen(path, "w");
lucasfontenla 28:b3c51076ebe8 136
lucasfontenla 28:b3c51076ebe8 137 if(fp == NULL) {
lucasfontenla 28:b3c51076ebe8 138 error("Could not open file for write\n\r");
lucasfontenla 28:b3c51076ebe8 139 return 0;
lucasfontenla 28:b3c51076ebe8 140 }
lucasfontenla 28:b3c51076ebe8 141
lucasfontenla 28:b3c51076ebe8 142 char * write_file = str_to_char(gcode);
lucasfontenla 28:b3c51076ebe8 143
lucasfontenla 28:b3c51076ebe8 144 fprintf(fp, write_file);
lucasfontenla 28:b3c51076ebe8 145 fclose(fp);
lucasfontenla 28:b3c51076ebe8 146
claraluques 34:7c7fac39a250 147 printf("Saving done!\n\r");
lucasfontenla 28:b3c51076ebe8 148
lucasfontenla 28:b3c51076ebe8 149 return 1;
lucasfontenla 28:b3c51076ebe8 150 }
lucasfontenla 28:b3c51076ebe8 151
lucasfontenla 28:b3c51076ebe8 152 int send_gcode(string name){
claraluques 34:7c7fac39a250 153 printf("Sending gcode...\n\r");
lucasfontenla 29:558eccdfc079 154 string file_path = "/sd/" + folderString + "/" + name;
lucasfontenla 28:b3c51076ebe8 155 char * path = str_to_char(file_path);
lucasfontenla 28:b3c51076ebe8 156 unsigned char c;
lucasfontenla 28:b3c51076ebe8 157 string buffer;
lucasfontenla 28:b3c51076ebe8 158
lucasfontenla 28:b3c51076ebe8 159 FILE *fp = fopen(path, "r");
lucasfontenla 28:b3c51076ebe8 160
lucasfontenla 28:b3c51076ebe8 161 if(fp == NULL) {
lucasfontenla 28:b3c51076ebe8 162 error("Could not open file for write\n\r");
lucasfontenla 28:b3c51076ebe8 163 return 0;
lucasfontenla 28:b3c51076ebe8 164 }
claraluques 38:6c94230e5ecd 165 t.reset();
lucasfontenla 28:b3c51076ebe8 166 t.start();
lucasfontenla 28:b3c51076ebe8 167
lucasfontenla 28:b3c51076ebe8 168 while(1){
lucasfontenla 29:558eccdfc079 169 if(t.read() > 4.0){
lucasfontenla 28:b3c51076ebe8 170 fclose(fp);
lucasfontenla 28:b3c51076ebe8 171 return 0;
lucasfontenla 28:b3c51076ebe8 172 }
lucasfontenla 28:b3c51076ebe8 173 c = fgetc(fp);
lucasfontenla 28:b3c51076ebe8 174 buffer.push_back(c);
claraluques 35:11e3f3c8cb4e 175 printf("%c\n\r", c);
lucasfontenla 28:b3c51076ebe8 176 if(c == ';'){
lucasfontenla 28:b3c51076ebe8 177 fclose(fp);
lucasfontenla 28:b3c51076ebe8 178 break;
lucasfontenla 28:b3c51076ebe8 179 }
lucasfontenla 28:b3c51076ebe8 180 }
lucasfontenla 28:b3c51076ebe8 181 fclose(fp);
lucasfontenla 28:b3c51076ebe8 182
lucasfontenla 28:b3c51076ebe8 183 machine.upload_gcode(buffer);
lucasfontenla 28:b3c51076ebe8 184 return 1;
lucasfontenla 28:b3c51076ebe8 185 }
lucasfontenla 28:b3c51076ebe8 186
lucasfontenla 28:b3c51076ebe8 187 int check_name_available(string name){
claraluques 34:7c7fac39a250 188 printf("Checking name...\r\n");
lucasfontenla 29:558eccdfc079 189 string file_path = "/sd/" + folderString;
lucasfontenla 28:b3c51076ebe8 190 char * dir = str_to_char(file_path);
lucasfontenla 28:b3c51076ebe8 191 struct dirent *dirp;
lucasfontenla 28:b3c51076ebe8 192 string filename;
lucasfontenla 28:b3c51076ebe8 193
claraluques 35:11e3f3c8cb4e 194 //printf(dir);
lucasfontenla 28:b3c51076ebe8 195
lucasfontenla 28:b3c51076ebe8 196 dp = opendir(dir);
claraluques 34:7c7fac39a250 197
claraluques 34:7c7fac39a250 198 t.reset();
lucasfontenla 29:558eccdfc079 199 t.start();
lucasfontenla 29:558eccdfc079 200
lucasfontenla 28:b3c51076ebe8 201 while((dirp = readdir(dp)) != NULL) {
lucasfontenla 29:558eccdfc079 202 if(t.read() > 2.0){
lucasfontenla 29:558eccdfc079 203 t.stop();
lucasfontenla 29:558eccdfc079 204 closedir(dp);
claraluques 34:7c7fac39a250 205 printf("Timeout\r\n");
lucasfontenla 29:558eccdfc079 206 return 0;
lucasfontenla 29:558eccdfc079 207 }
lucasfontenla 28:b3c51076ebe8 208 filename = (dirp->d_name);
claraluques 35:11e3f3c8cb4e 209 //printf("%s\n\r", filename);
lucasfontenla 28:b3c51076ebe8 210 if(filename == name){
lucasfontenla 28:b3c51076ebe8 211 closedir(dp);
lucasfontenla 28:b3c51076ebe8 212 return 0;
lucasfontenla 28:b3c51076ebe8 213 }
lucasfontenla 28:b3c51076ebe8 214 }
lucasfontenla 28:b3c51076ebe8 215 closedir(dp);
claraluques 34:7c7fac39a250 216 printf("Checked!\n\r");
lucasfontenla 28:b3c51076ebe8 217 return 1;
lucasfontenla 28:b3c51076ebe8 218 }
lucasfontenla 28:b3c51076ebe8 219
lucasfontenla 29:558eccdfc079 220 int get_file_names(void){
lucasfontenla 29:558eccdfc079 221 string file_path = "/sd/" + folderString;
lucasfontenla 29:558eccdfc079 222 char * dir = str_to_char(file_path);
lucasfontenla 29:558eccdfc079 223 struct dirent *dirp;
lucasfontenla 29:558eccdfc079 224 string filename;
lucasfontenla 29:558eccdfc079 225
lucasfontenla 29:558eccdfc079 226 filenames.empty();
lucasfontenla 29:558eccdfc079 227
claraluques 35:11e3f3c8cb4e 228 //printf(dir);
lucasfontenla 29:558eccdfc079 229
lucasfontenla 29:558eccdfc079 230 dp = opendir(dir);
lucasfontenla 29:558eccdfc079 231
lucasfontenla 29:558eccdfc079 232 while((dirp = readdir(dp)) != NULL) {
lucasfontenla 29:558eccdfc079 233 filename = (dirp->d_name);
claraluques 35:11e3f3c8cb4e 234 //printf("%s\n\r", filename);
lucasfontenla 29:558eccdfc079 235 filenames.push_back(filename);
lucasfontenla 29:558eccdfc079 236 }
claraluques 35:11e3f3c8cb4e 237 //printf("%d\n\r", filenames.size());
lucasfontenla 29:558eccdfc079 238 return 1;
lucasfontenla 29:558eccdfc079 239 }
lucasfontenla 29:558eccdfc079 240
lucasfontenla 28:b3c51076ebe8 241 int create_folders(void){
lucasfontenla 29:558eccdfc079 242 int gotFolder = 0;
lucasfontenla 28:b3c51076ebe8 243 string filename;
lucasfontenla 28:b3c51076ebe8 244 struct dirent *dirp;
lucasfontenla 28:b3c51076ebe8 245
lucasfontenla 28:b3c51076ebe8 246 dp = opendir("/sd");
lucasfontenla 28:b3c51076ebe8 247
lucasfontenla 28:b3c51076ebe8 248 t.start();
lucasfontenla 28:b3c51076ebe8 249
lucasfontenla 28:b3c51076ebe8 250 while((dirp = readdir(dp)) != NULL) {
lucasfontenla 28:b3c51076ebe8 251 if(t.read() > 2){
lucasfontenla 28:b3c51076ebe8 252 t.stop();
lucasfontenla 28:b3c51076ebe8 253 return 0;
lucasfontenla 28:b3c51076ebe8 254 }
lucasfontenla 28:b3c51076ebe8 255 filename = (dirp->d_name);
claraluques 35:11e3f3c8cb4e 256 //printf("%s\n\r", filename);
lucasfontenla 29:558eccdfc079 257 if(filename == folderString){
lucasfontenla 29:558eccdfc079 258 gotFolder = 1;
lucasfontenla 29:558eccdfc079 259 }
lucasfontenla 28:b3c51076ebe8 260 }
lucasfontenla 28:b3c51076ebe8 261
lucasfontenla 29:558eccdfc079 262 if(!gotFolder){
lucasfontenla 29:558eccdfc079 263 char * path = str_to_char(("/sd/" + folderString));
lucasfontenla 28:b3c51076ebe8 264 mkdir(path, 0777);
lucasfontenla 28:b3c51076ebe8 265 }
lucasfontenla 28:b3c51076ebe8 266
lucasfontenla 28:b3c51076ebe8 267 closedir(dp);
lucasfontenla 28:b3c51076ebe8 268 return 1;
lucasfontenla 28:b3c51076ebe8 269 }
lucasfontenla 28:b3c51076ebe8 270
lucasfontenla 28:b3c51076ebe8 271 private:
lucasfontenla 28:b3c51076ebe8 272 char * str_to_char(string str){
lucasfontenla 28:b3c51076ebe8 273 char * path = new char[str.length() + 1];
lucasfontenla 28:b3c51076ebe8 274 std::strcpy(path, str.c_str());
lucasfontenla 28:b3c51076ebe8 275 return path;
lucasfontenla 28:b3c51076ebe8 276 }
lucasfontenla 28:b3c51076ebe8 277 };
lucasfontenla 28:b3c51076ebe8 278
lucasfontenla 28:b3c51076ebe8 279 SDCard sdcard;
lucasfontenla 28:b3c51076ebe8 280
claraluques 18:5338b83b4de9 281 //criar classe "menu" (funções para as telas)
claraluques 18:5338b83b4de9 282 class Menu{
claraluques 19:2c890ae2d187 283
claraluques 18:5338b83b4de9 284 public:
claraluques 18:5338b83b4de9 285 int linha;
claraluques 18:5338b83b4de9 286 int func;
claraluques 32:c293f89170b0 287 string nome;
claraluques 36:12d202855231 288 string arquivo;
claraluques 23:19c67758032d 289
claraluques 18:5338b83b4de9 290
claraluques 18:5338b83b4de9 291 void movercursor(int min, int max, int col){ //função para mover cursor de seleção
claraluques 18:5338b83b4de9 292 linha = min;
claraluques 18:5338b83b4de9 293 lcd.locate(col,min);
claraluques 18:5338b83b4de9 294 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 295 while (bot_enter==penter){
lucasfontenla 41:a1ab19cc1387 296 if(emerg){
lucasfontenla 41:a1ab19cc1387 297 func = 31;
lucasfontenla 41:a1ab19cc1387 298 break;
lucasfontenla 41:a1ab19cc1387 299 }
claraluques 31:77eb51d4ee18 300 if (bot_cima==0){
claraluques 18:5338b83b4de9 301 if (linha==min){
claraluques 18:5338b83b4de9 302 lcd.locate(col,min);
claraluques 18:5338b83b4de9 303 lcd.printf(" ");
claraluques 18:5338b83b4de9 304 linha=max;
claraluques 18:5338b83b4de9 305 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 306 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 307 }
claraluques 18:5338b83b4de9 308 else {
claraluques 18:5338b83b4de9 309 lcd.locate(col,linha);
claraluques 18:5338b83b4de9 310 lcd.printf(" ");
claraluques 18:5338b83b4de9 311 linha--;
claraluques 18:5338b83b4de9 312 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 313 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 314 }
claraluques 31:77eb51d4ee18 315 bot_cima = 1;
claraluques 18:5338b83b4de9 316 }
claraluques 31:77eb51d4ee18 317 else if (bot_baixo==0){
claraluques 18:5338b83b4de9 318 if (linha==max){
claraluques 18:5338b83b4de9 319 lcd.locate(col,max);
claraluques 18:5338b83b4de9 320 lcd.printf(" ");
claraluques 18:5338b83b4de9 321 linha=min;
claraluques 18:5338b83b4de9 322 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 323 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 324 }
claraluques 18:5338b83b4de9 325 else {
claraluques 18:5338b83b4de9 326 lcd.locate(col,linha);
claraluques 18:5338b83b4de9 327 lcd.printf(" ");
claraluques 18:5338b83b4de9 328 linha++;
claraluques 18:5338b83b4de9 329 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 330 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 331 }
claraluques 31:77eb51d4ee18 332 bot_baixo = 1;
claraluques 18:5338b83b4de9 333 }
lucasfontenla 40:e70f811c69dc 334 }
claraluques 18:5338b83b4de9 335 }
claraluques 32:c293f89170b0 336
claraluques 18:5338b83b4de9 337
claraluques 18:5338b83b4de9 338 //func 0
claraluques 18:5338b83b4de9 339 void inicializar(){ //função tela incial de boas-vindas
claraluques 33:0149960e95c1 340 int status;
claraluques 33:0149960e95c1 341 printf("Starting...\n\r");
claraluques 26:59081efdce79 342 machine.reset();
claraluques 18:5338b83b4de9 343 lcd.cls();
claraluques 18:5338b83b4de9 344 lcd.locate(4,0);
claraluques 18:5338b83b4de9 345 lcd.printf("Bem-vindo(a)");
claraluques 18:5338b83b4de9 346 lcd.locate(0,1);
claraluques 18:5338b83b4de9 347 lcd.printf("Utilize seu EPI para operar a maquina.");
claraluques 33:0149960e95c1 348 wait(1);
claraluques 30:614dcbd74cdc 349 /*status = sdcard.get_file_names();
lucasfontenla 29:558eccdfc079 350 if(status){
lucasfontenla 29:558eccdfc079 351 printf("Filenames: \n\r");
lucasfontenla 29:558eccdfc079 352 for(int i = 0; i < filenames.size(); i++){
lucasfontenla 29:558eccdfc079 353 printf("%s\n\r", filenames[i]);
lucasfontenla 29:558eccdfc079 354 }
claraluques 30:614dcbd74cdc 355 }*/
claraluques 18:5338b83b4de9 356 func = 1;
claraluques 18:5338b83b4de9 357 }
claraluques 18:5338b83b4de9 358
claraluques 18:5338b83b4de9 359 //func 1
claraluques 18:5338b83b4de9 360 void menuprincipal(){ //função menu principal
lucasfontenla 40:e70f811c69dc 361 WiFi.attach(wifiRx, Serial::RxIrq);
claraluques 31:77eb51d4ee18 362 bot_enter = penter;
claraluques 36:12d202855231 363 sair = 0;
claraluques 18:5338b83b4de9 364 lcd.cls();
claraluques 18:5338b83b4de9 365 lcd.locate(1,0);
claraluques 18:5338b83b4de9 366 lcd.printf("Modo JOG");
claraluques 18:5338b83b4de9 367 lcd.locate(1,1);
claraluques 18:5338b83b4de9 368 lcd.printf("Modo Automatico");
claraluques 18:5338b83b4de9 369 lcd.locate(1,2);
claraluques 26:59081efdce79 370 lcd.printf("Zerar");
claraluques 18:5338b83b4de9 371 lcd.locate(1,3);
claraluques 26:59081efdce79 372 lcd.printf("Config");
claraluques 18:5338b83b4de9 373 movercursor(0,3,0);
claraluques 18:5338b83b4de9 374 if (bot_enter!=penter){
claraluques 18:5338b83b4de9 375 if (linha==0){
claraluques 18:5338b83b4de9 376 func = 2;
claraluques 18:5338b83b4de9 377 }
claraluques 18:5338b83b4de9 378 else if (linha==1) {
claraluques 18:5338b83b4de9 379 func = 3;
claraluques 18:5338b83b4de9 380 }
claraluques 18:5338b83b4de9 381 else if (linha==2) {
claraluques 26:59081efdce79 382 func = 8;
claraluques 18:5338b83b4de9 383 }
claraluques 18:5338b83b4de9 384 else if (linha==3) {
claraluques 26:59081efdce79 385 func = 4;
claraluques 18:5338b83b4de9 386 }
claraluques 18:5338b83b4de9 387 }
claraluques 18:5338b83b4de9 388 }
claraluques 18:5338b83b4de9 389
claraluques 18:5338b83b4de9 390 //func 2
claraluques 18:5338b83b4de9 391 void jog(){ //função tela jog
lucasfontenla 40:e70f811c69dc 392 WiFi.attach(NULL, Serial::RxIrq);
claraluques 31:77eb51d4ee18 393 lcd.cls();
claraluques 31:77eb51d4ee18 394 bot_enter = penter;
claraluques 20:ccbd80b668ce 395 machine.kill_jog();
claraluques 20:ccbd80b668ce 396 wait(0.1);
claraluques 19:2c890ae2d187 397 machine.jog();
claraluques 35:11e3f3c8cb4e 398 lcd.locate(2,1);
claraluques 35:11e3f3c8cb4e 399 lcd.printf("MODO");
claraluques 35:11e3f3c8cb4e 400 lcd.locate(2,2);
claraluques 35:11e3f3c8cb4e 401 lcd.printf("JOG");
claraluques 35:11e3f3c8cb4e 402 lcd.locate(11,0);
claraluques 18:5338b83b4de9 403 lcd.printf("Salvar");
claraluques 35:11e3f3c8cb4e 404 lcd.locate(11,1);
claraluques 35:11e3f3c8cb4e 405 lcd.printf("Remover");
claraluques 35:11e3f3c8cb4e 406 lcd.locate(11,2);
claraluques 18:5338b83b4de9 407 lcd.printf("Concluir");
claraluques 35:11e3f3c8cb4e 408 lcd.locate(11,3);
claraluques 18:5338b83b4de9 409 lcd.printf("Cancelar");
claraluques 35:11e3f3c8cb4e 410 movercursor(0,3,10);
claraluques 18:5338b83b4de9 411 if (bot_enter!=penter){
claraluques 35:11e3f3c8cb4e 412 if (linha==0){
claraluques 38:6c94230e5ecd 413 func = 6;
claraluques 18:5338b83b4de9 414 }
claraluques 35:11e3f3c8cb4e 415 else if (linha==1){
claraluques 35:11e3f3c8cb4e 416 if (pontos>=1){
claraluques 35:11e3f3c8cb4e 417 machine.delete_last_saved();
claraluques 35:11e3f3c8cb4e 418 pontos--;
claraluques 35:11e3f3c8cb4e 419 maxpontos++;
claraluques 35:11e3f3c8cb4e 420 func = 23;
claraluques 35:11e3f3c8cb4e 421 }
claraluques 35:11e3f3c8cb4e 422 if (pontos==0){
claraluques 35:11e3f3c8cb4e 423 func = 24;
claraluques 35:11e3f3c8cb4e 424 }
claraluques 35:11e3f3c8cb4e 425 }
claraluques 18:5338b83b4de9 426 else if (linha==2) {
claraluques 27:83d2a710cc2f 427 machine.kill_jog();
claraluques 36:12d202855231 428 pontos = 0;
claraluques 36:12d202855231 429 maxpontos = 100;
claraluques 26:59081efdce79 430 func = 17;
claraluques 18:5338b83b4de9 431 }
claraluques 18:5338b83b4de9 432 else if (linha==3) {
claraluques 20:ccbd80b668ce 433 machine.kill_jog();
claraluques 26:59081efdce79 434 wait(0.1);
claraluques 26:59081efdce79 435 machine.cancel_program();
claraluques 36:12d202855231 436 pontos = 0;
claraluques 36:12d202855231 437 maxpontos = 100;
claraluques 18:5338b83b4de9 438 func = 1;
claraluques 18:5338b83b4de9 439 pontos = 10;
claraluques 18:5338b83b4de9 440 }
claraluques 18:5338b83b4de9 441 }
claraluques 18:5338b83b4de9 442 }
claraluques 18:5338b83b4de9 443
claraluques 18:5338b83b4de9 444 //func 3
claraluques 18:5338b83b4de9 445 void automatico(){ //tela modo automatico
lucasfontenla 40:e70f811c69dc 446 WiFi.attach(NULL, Serial::RxIrq);
claraluques 18:5338b83b4de9 447 lcd.cls();
claraluques 38:6c94230e5ecd 448 f = 0;
claraluques 38:6c94230e5ecd 449 sair = 0;
claraluques 31:77eb51d4ee18 450 bot_enter = penter;
claraluques 36:12d202855231 451 printf("Automatico\n\r");
claraluques 35:11e3f3c8cb4e 452 lcd.printf("Selecione o programa");
claraluques 35:11e3f3c8cb4e 453 arquivos();
claraluques 35:11e3f3c8cb4e 454 if (sair==1) {
claraluques 35:11e3f3c8cb4e 455 func = 1;
claraluques 18:5338b83b4de9 456 }
claraluques 18:5338b83b4de9 457 }
claraluques 18:5338b83b4de9 458
claraluques 18:5338b83b4de9 459 //func 4
claraluques 18:5338b83b4de9 460 void config() {
lucasfontenla 40:e70f811c69dc 461 WiFi.attach(NULL, Serial::RxIrq);
claraluques 18:5338b83b4de9 462 lcd.cls();
claraluques 31:77eb51d4ee18 463 bot_enter = penter;
claraluques 18:5338b83b4de9 464 lcd.locate(1,0);
claraluques 18:5338b83b4de9 465 lcd.printf("Definir velocidade");
claraluques 18:5338b83b4de9 466 lcd.locate(1,1);
claraluques 18:5338b83b4de9 467 lcd.printf("Limpar seringa cola");
claraluques 18:5338b83b4de9 468 lcd.locate(1,2);
claraluques 26:59081efdce79 469 lcd.printf("Origem maquina");
claraluques 18:5338b83b4de9 470 lcd.locate(1,3);
claraluques 18:5338b83b4de9 471 lcd.printf("Voltar");
claraluques 18:5338b83b4de9 472 movercursor(0,3,0);
claraluques 18:5338b83b4de9 473 if (bot_enter!=penter){
claraluques 18:5338b83b4de9 474 if (linha==0) {
claraluques 18:5338b83b4de9 475 func = 13;
claraluques 18:5338b83b4de9 476 }
claraluques 18:5338b83b4de9 477 else if (linha==1) {
claraluques 18:5338b83b4de9 478 func = 14;
claraluques 18:5338b83b4de9 479 }
claraluques 18:5338b83b4de9 480 else if (linha==2) {
claraluques 27:83d2a710cc2f 481 home = 1;
claraluques 27:83d2a710cc2f 482 func = 18;
claraluques 18:5338b83b4de9 483 }
claraluques 18:5338b83b4de9 484 else if (linha==3) {
claraluques 18:5338b83b4de9 485 func = 1;
claraluques 18:5338b83b4de9 486 }
claraluques 18:5338b83b4de9 487 }
claraluques 18:5338b83b4de9 488 }
claraluques 18:5338b83b4de9 489
claraluques 18:5338b83b4de9 490 //func 5
claraluques 18:5338b83b4de9 491 void telasalvamento(){ //função para quando salvar um ponto
lucasfontenla 40:e70f811c69dc 492 WiFi.attach(NULL, Serial::RxIrq);
claraluques 18:5338b83b4de9 493 lcd.cls();
claraluques 18:5338b83b4de9 494 lcd.locate(0,0);
claraluques 18:5338b83b4de9 495 lcd.printf("Voce salvou");
claraluques 18:5338b83b4de9 496 lcd.locate(1,1);
claraluques 25:af1f99666ca9 497 lcd.printf("X:%.2f ", cx_salva);
claraluques 18:5338b83b4de9 498 lcd.locate(1,2);
claraluques 25:af1f99666ca9 499 lcd.printf("Y:%.2f ", cy_salva);
claraluques 18:5338b83b4de9 500 lcd.locate(1,3);
claraluques 25:af1f99666ca9 501 lcd.printf("Z:%.2f ", cz_salva);
claraluques 18:5338b83b4de9 502 lcd.locate(13,1);
claraluques 18:5338b83b4de9 503 lcd.printf("Pontos");
claraluques 18:5338b83b4de9 504 lcd.locate(13,2);
claraluques 18:5338b83b4de9 505 lcd.printf("livres");
claraluques 18:5338b83b4de9 506 lcd.locate(16,3);
claraluques 26:59081efdce79 507 lcd.printf("%d", maxpontos);
claraluques 18:5338b83b4de9 508 wait(1);
claraluques 18:5338b83b4de9 509 if (pontos>0){
claraluques 38:6c94230e5ecd 510 func = 2;
claraluques 18:5338b83b4de9 511 }
claraluques 18:5338b83b4de9 512 else if (pontos==0){
claraluques 18:5338b83b4de9 513 func = 2;
claraluques 18:5338b83b4de9 514 }
claraluques 18:5338b83b4de9 515 }
claraluques 18:5338b83b4de9 516
claraluques 18:5338b83b4de9 517 //func 6
claraluques 18:5338b83b4de9 518 void telacola(){ //tela para escolher o tipo de sequencia da cola
lucasfontenla 40:e70f811c69dc 519 WiFi.attach(NULL, Serial::RxIrq);
claraluques 18:5338b83b4de9 520 lcd.cls();
claraluques 31:77eb51d4ee18 521 bot_enter = penter;
claraluques 18:5338b83b4de9 522 lcd.printf("P/ o proximo ponto:");
claraluques 18:5338b83b4de9 523 lcd.locate(3,1);
claraluques 18:5338b83b4de9 524 lcd.printf("Sem cola");
claraluques 18:5338b83b4de9 525 lcd.locate(3,2);
claraluques 18:5338b83b4de9 526 lcd.printf("Cola no ponto");
claraluques 18:5338b83b4de9 527 lcd.locate(3,3);
claraluques 18:5338b83b4de9 528 lcd.printf("Cola continua");
claraluques 18:5338b83b4de9 529 movercursor(1,3,2);
claraluques 18:5338b83b4de9 530 if (bot_enter!=penter){
claraluques 38:6c94230e5ecd 531 if (Mach.readable()){
claraluques 38:6c94230e5ecd 532 readSerial();
claraluques 38:6c94230e5ecd 533 }
claraluques 18:5338b83b4de9 534 if (linha==1){
claraluques 18:5338b83b4de9 535 cola = 0;
claraluques 38:6c94230e5ecd 536 if (pontos==0 && maxpontos>10){
claraluques 38:6c94230e5ecd 537 cx_salva = 0;
claraluques 38:6c94230e5ecd 538 cy_salva = 0;
claraluques 38:6c94230e5ecd 539 cz_salva = 0;
claraluques 38:6c94230e5ecd 540 pontos++;
claraluques 38:6c94230e5ecd 541 maxpontos--;
claraluques 38:6c94230e5ecd 542 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 543 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 544 func = 22;
claraluques 38:6c94230e5ecd 545 }
claraluques 38:6c94230e5ecd 546 else if (pontos>=1 && maxpontos>10){
claraluques 38:6c94230e5ecd 547 cx_salva = cx;
claraluques 38:6c94230e5ecd 548 cy_salva = cy;
claraluques 38:6c94230e5ecd 549 cz_salva = cz;
claraluques 38:6c94230e5ecd 550 pontos++;
claraluques 38:6c94230e5ecd 551 maxpontos--;
claraluques 38:6c94230e5ecd 552 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 553 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 554 func = 22;
claraluques 38:6c94230e5ecd 555 }
claraluques 38:6c94230e5ecd 556 else if (maxpontos<=10){
claraluques 38:6c94230e5ecd 557 cx_salva = cx;
claraluques 38:6c94230e5ecd 558 cy_salva = cy;
claraluques 38:6c94230e5ecd 559 cz_salva = cz;
claraluques 38:6c94230e5ecd 560 pontos++;
claraluques 38:6c94230e5ecd 561 maxpontos--;
claraluques 38:6c94230e5ecd 562 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 563 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 564 func = 5;
claraluques 38:6c94230e5ecd 565 }
claraluques 38:6c94230e5ecd 566 else if (maxpontos==0){
claraluques 38:6c94230e5ecd 567 func = 16;
claraluques 38:6c94230e5ecd 568 }
claraluques 18:5338b83b4de9 569 }
claraluques 18:5338b83b4de9 570 else if (linha==2) {
claraluques 18:5338b83b4de9 571 cola = 1;
claraluques 38:6c94230e5ecd 572 if (pontos==0 && maxpontos>10){
claraluques 38:6c94230e5ecd 573 cx_salva = 0;
claraluques 38:6c94230e5ecd 574 cy_salva = 0;
claraluques 38:6c94230e5ecd 575 cz_salva = 0;
claraluques 38:6c94230e5ecd 576 pontos++;
claraluques 38:6c94230e5ecd 577 maxpontos--;
claraluques 38:6c94230e5ecd 578 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 579 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 580 func = 22;
claraluques 38:6c94230e5ecd 581 }
claraluques 38:6c94230e5ecd 582 else if (pontos>=1 && maxpontos>10){
claraluques 38:6c94230e5ecd 583 cx_salva = cx;
claraluques 38:6c94230e5ecd 584 cy_salva = cy;
claraluques 38:6c94230e5ecd 585 cz_salva = cz;
claraluques 38:6c94230e5ecd 586 pontos++;
claraluques 38:6c94230e5ecd 587 maxpontos--;
claraluques 38:6c94230e5ecd 588 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 589 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 590 func = 22;
claraluques 38:6c94230e5ecd 591 }
claraluques 38:6c94230e5ecd 592 else if (maxpontos<=10){
claraluques 38:6c94230e5ecd 593 cx_salva = cx;
claraluques 38:6c94230e5ecd 594 cy_salva = cy;
claraluques 38:6c94230e5ecd 595 cz_salva = cz;
claraluques 38:6c94230e5ecd 596 pontos++;
claraluques 38:6c94230e5ecd 597 maxpontos--;
claraluques 38:6c94230e5ecd 598 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 599 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 600 func = 5;
claraluques 38:6c94230e5ecd 601 }
claraluques 38:6c94230e5ecd 602 else if (maxpontos==0){
claraluques 38:6c94230e5ecd 603 func = 16;
claraluques 38:6c94230e5ecd 604 }
claraluques 18:5338b83b4de9 605 }
claraluques 18:5338b83b4de9 606 else if (linha==3) {
claraluques 18:5338b83b4de9 607 cola = 2;
claraluques 38:6c94230e5ecd 608 if (pontos==0 && maxpontos>10){
claraluques 38:6c94230e5ecd 609 cx_salva = 0;
claraluques 38:6c94230e5ecd 610 cy_salva = 0;
claraluques 38:6c94230e5ecd 611 cz_salva = 0;
claraluques 38:6c94230e5ecd 612 pontos++;
claraluques 38:6c94230e5ecd 613 maxpontos--;
claraluques 38:6c94230e5ecd 614 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 615 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 616 func = 22;
claraluques 38:6c94230e5ecd 617 }
claraluques 38:6c94230e5ecd 618 else if (pontos>=1 && maxpontos>10){
claraluques 38:6c94230e5ecd 619 cx_salva = cx;
claraluques 38:6c94230e5ecd 620 cy_salva = cy;
claraluques 38:6c94230e5ecd 621 cz_salva = cz;
claraluques 38:6c94230e5ecd 622 pontos++;
claraluques 38:6c94230e5ecd 623 maxpontos--;
claraluques 38:6c94230e5ecd 624 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 625 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 626 func = 22;
claraluques 38:6c94230e5ecd 627 }
claraluques 38:6c94230e5ecd 628 else if (maxpontos<=10){
claraluques 38:6c94230e5ecd 629 cx_salva = cx;
claraluques 38:6c94230e5ecd 630 cy_salva = cy;
claraluques 38:6c94230e5ecd 631 cz_salva = cz;
claraluques 38:6c94230e5ecd 632 pontos++;
claraluques 38:6c94230e5ecd 633 maxpontos--;
claraluques 38:6c94230e5ecd 634 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 635 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 636 func = 5;
claraluques 38:6c94230e5ecd 637 }
claraluques 38:6c94230e5ecd 638 else if (maxpontos==0){
claraluques 38:6c94230e5ecd 639 func = 16;
claraluques 38:6c94230e5ecd 640 }
claraluques 38:6c94230e5ecd 641 }
claraluques 18:5338b83b4de9 642 }
claraluques 18:5338b83b4de9 643 }
claraluques 18:5338b83b4de9 644
claraluques 18:5338b83b4de9 645 //func 7
claraluques 18:5338b83b4de9 646 void executarprograma() { //tela para selecionar se deseja executar o programa
lucasfontenla 40:e70f811c69dc 647 WiFi.attach(NULL, Serial::RxIrq);
claraluques 18:5338b83b4de9 648 lcd.cls();
claraluques 31:77eb51d4ee18 649 bot_enter = penter;
claraluques 18:5338b83b4de9 650 lcd.locate(2,0);
claraluques 18:5338b83b4de9 651 lcd.printf("VOCE CONCLUIU SEU");
claraluques 18:5338b83b4de9 652 lcd.locate(5,1);
claraluques 18:5338b83b4de9 653 lcd.printf("PROGRAMA.");
claraluques 18:5338b83b4de9 654 lcd.locate(0,2);
claraluques 18:5338b83b4de9 655 lcd.printf("Deseja");
claraluques 18:5338b83b4de9 656 lcd.locate(0,3);
claraluques 35:11e3f3c8cb4e 657 lcd.printf("executar?");
claraluques 35:11e3f3c8cb4e 658 lcd.locate(12,2);
claraluques 18:5338b83b4de9 659 lcd.printf("Sim");
claraluques 35:11e3f3c8cb4e 660 lcd.locate(12,3);
claraluques 35:11e3f3c8cb4e 661 lcd.printf("Cancelar");
claraluques 35:11e3f3c8cb4e 662 movercursor(2,3,11);
claraluques 18:5338b83b4de9 663 if (bot_enter!=penter) {
claraluques 18:5338b83b4de9 664 if (linha==2){
claraluques 21:7603fe283ba4 665 machine.kill_jog();
claraluques 21:7603fe283ba4 666 wait(0.1);
claraluques 27:83d2a710cc2f 667 //machine.start_program();
claraluques 18:5338b83b4de9 668 exec = 1;
claraluques 18:5338b83b4de9 669 func = 9;
claraluques 18:5338b83b4de9 670 }
claraluques 18:5338b83b4de9 671 else if (linha==3){
claraluques 18:5338b83b4de9 672 exec = 0;
claraluques 35:11e3f3c8cb4e 673 func = 1;
claraluques 18:5338b83b4de9 674 }
claraluques 18:5338b83b4de9 675 }
claraluques 18:5338b83b4de9 676 }
claraluques 18:5338b83b4de9 677
claraluques 18:5338b83b4de9 678 //func 8
claraluques 18:5338b83b4de9 679 void telazerar(){ //tela para zerar a máquina
lucasfontenla 40:e70f811c69dc 680 WiFi.attach(NULL, Serial::RxIrq);
claraluques 18:5338b83b4de9 681 lcd.cls();
claraluques 31:77eb51d4ee18 682 bot_enter = penter;
claraluques 26:59081efdce79 683 machine.kill_jog();
claraluques 26:59081efdce79 684 machine.jog();
claraluques 35:11e3f3c8cb4e 685 lcd.locate(0,0);
claraluques 35:11e3f3c8cb4e 686 lcd.printf("Selecione");
claraluques 35:11e3f3c8cb4e 687 //lcd.locate(0,1);
claraluques 35:11e3f3c8cb4e 688 //lcd.printf("
claraluques 19:2c890ae2d187 689 lcd.locate(13,0);
claraluques 19:2c890ae2d187 690 lcd.printf("X");
claraluques 19:2c890ae2d187 691 lcd.locate(13,1);
claraluques 19:2c890ae2d187 692 lcd.printf("Y");
claraluques 19:2c890ae2d187 693 lcd.locate(13,2);
claraluques 19:2c890ae2d187 694 lcd.printf("Z");
claraluques 19:2c890ae2d187 695 lcd.locate(13,3);
claraluques 19:2c890ae2d187 696 lcd.printf("Voltar");
claraluques 19:2c890ae2d187 697 movercursor(0,3,12);
claraluques 18:5338b83b4de9 698 if (bot_enter!=penter) {
claraluques 19:2c890ae2d187 699 if (linha==0){
claraluques 18:5338b83b4de9 700 cx = 0;
claraluques 19:2c890ae2d187 701 func = 10;
claraluques 19:2c890ae2d187 702 machine.set_zero("X");
claraluques 19:2c890ae2d187 703 }
claraluques 19:2c890ae2d187 704 else if (linha==1){
claraluques 18:5338b83b4de9 705 cy = 0;
claraluques 19:2c890ae2d187 706 func = 10;
claraluques 19:2c890ae2d187 707 machine.set_zero("Y");
claraluques 19:2c890ae2d187 708 }
claraluques 19:2c890ae2d187 709 else if (linha==2){
claraluques 18:5338b83b4de9 710 cz = 0;
claraluques 18:5338b83b4de9 711 func = 10;
claraluques 19:2c890ae2d187 712 machine.set_zero("Z");
claraluques 18:5338b83b4de9 713 }
claraluques 18:5338b83b4de9 714 else if (linha==3){
claraluques 18:5338b83b4de9 715 func = 1;
claraluques 26:59081efdce79 716 machine.kill_jog();
claraluques 18:5338b83b4de9 717 }
claraluques 18:5338b83b4de9 718 }
claraluques 18:5338b83b4de9 719 }
claraluques 18:5338b83b4de9 720
claraluques 18:5338b83b4de9 721 //func 9
claraluques 18:5338b83b4de9 722 void executando(){ //tela de executando
claraluques 18:5338b83b4de9 723 lcd.cls();
claraluques 27:83d2a710cc2f 724 machine.start_program();
claraluques 38:6c94230e5ecd 725 printf("start program, %s\n\r", arquivo);
claraluques 18:5338b83b4de9 726 lcd.locate(4,1);
claraluques 18:5338b83b4de9 727 lcd.printf("Executando");
claraluques 38:6c94230e5ecd 728 //tpontinhos.start();
claraluques 27:83d2a710cc2f 729 while (exec == 1){
claraluques 27:83d2a710cc2f 730 if (Mach.readable()){
claraluques 27:83d2a710cc2f 731 readSerial();
claraluques 36:12d202855231 732 }
claraluques 18:5338b83b4de9 733 }
claraluques 35:11e3f3c8cb4e 734 //printf("saiu\n\r");
claraluques 27:83d2a710cc2f 735 func = 11;
claraluques 18:5338b83b4de9 736 }
claraluques 18:5338b83b4de9 737
claraluques 18:5338b83b4de9 738 //func 10
claraluques 18:5338b83b4de9 739 void zerado() { //tela avisando que a máquina foi zerada
claraluques 18:5338b83b4de9 740 lcd.cls();
claraluques 18:5338b83b4de9 741 lcd.locate(5,1);
claraluques 18:5338b83b4de9 742 lcd.printf("Voce zerou");
claraluques 19:2c890ae2d187 743 lcd.locate(6,2);
claraluques 19:2c890ae2d187 744 lcd.printf("o eixo!");
claraluques 18:5338b83b4de9 745 wait(1);
claraluques 18:5338b83b4de9 746 func = 8;
claraluques 18:5338b83b4de9 747 }
claraluques 18:5338b83b4de9 748
claraluques 18:5338b83b4de9 749 //func 11
claraluques 18:5338b83b4de9 750 void finalizado() { //tela aviso programa finalizado
claraluques 18:5338b83b4de9 751 lcd.cls();
claraluques 18:5338b83b4de9 752 lcd.locate(6,1);
claraluques 18:5338b83b4de9 753 lcd.printf("PROGRAMA");
claraluques 18:5338b83b4de9 754 lcd.locate(5,2);
claraluques 18:5338b83b4de9 755 lcd.printf("FINALIZADO");
claraluques 18:5338b83b4de9 756 wait(1);
claraluques 18:5338b83b4de9 757 func = 1;
claraluques 18:5338b83b4de9 758 }
claraluques 18:5338b83b4de9 759
claraluques 18:5338b83b4de9 760 //func 12
claraluques 36:12d202855231 761 void limpeza_livre(){
claraluques 36:12d202855231 762 lcd.cls();
claraluques 36:12d202855231 763 bot_enter = penter;
claraluques 36:12d202855231 764 lcd.printf("Certifique-se de que a maquina pode se");
claraluques 36:12d202855231 765 lcd.locate(5,2);
claraluques 36:12d202855231 766 lcd.printf("movimentar.");
claraluques 36:12d202855231 767 lcd.locate(9,3);
claraluques 36:12d202855231 768 lcd.printf("OK");
claraluques 36:12d202855231 769 movercursor(3,3,8);
claraluques 36:12d202855231 770 if (bot_enter!=penter){
claraluques 36:12d202855231 771 if (linha==3){
claraluques 36:12d202855231 772 printf("vai home\n\r");
claraluques 36:12d202855231 773 home = 1;
claraluques 36:12d202855231 774 func = 27;
claraluques 36:12d202855231 775 }
claraluques 36:12d202855231 776 }
claraluques 36:12d202855231 777 }
claraluques 18:5338b83b4de9 778
claraluques 18:5338b83b4de9 779 //func 13
claraluques 18:5338b83b4de9 780
claraluques 18:5338b83b4de9 781 //func 14
claraluques 36:12d202855231 782 void limparcola(){
claraluques 36:12d202855231 783 lcd.cls();
claraluques 36:12d202855231 784 bot_enter = penter;
claraluques 36:12d202855231 785 lcd.locate(2,0);
claraluques 36:12d202855231 786 lcd.printf("Deseja limpar a");
claraluques 36:12d202855231 787 lcd.locate(2,1);
claraluques 36:12d202855231 788 lcd.printf("seringa de cola?");
claraluques 36:12d202855231 789 lcd.locate(6,2);
claraluques 36:12d202855231 790 lcd.printf("Sim");
claraluques 36:12d202855231 791 lcd.locate(6,3);
claraluques 36:12d202855231 792 lcd.printf("Cancelar");
claraluques 36:12d202855231 793 movercursor(2,3,5);
claraluques 36:12d202855231 794 if (bot_enter!=penter) {
claraluques 36:12d202855231 795 if (linha==2){
claraluques 36:12d202855231 796 printf("sim home\n\r");
claraluques 36:12d202855231 797 func = 12;
claraluques 36:12d202855231 798 }
claraluques 36:12d202855231 799 else if (linha==3){
claraluques 36:12d202855231 800 func = 4;
claraluques 36:12d202855231 801 }
claraluques 36:12d202855231 802 }
claraluques 36:12d202855231 803 }
claraluques 18:5338b83b4de9 804
claraluques 18:5338b83b4de9 805 //func 15
claraluques 27:83d2a710cc2f 806 void gohome(){
claraluques 27:83d2a710cc2f 807 lcd.cls();
claraluques 36:12d202855231 808 //escrever a tela
claraluques 27:83d2a710cc2f 809 machine.machine_zero();
claraluques 27:83d2a710cc2f 810 while (home == 1){
claraluques 27:83d2a710cc2f 811 if (Mach.readable()){
claraluques 27:83d2a710cc2f 812 readSerial();
claraluques 27:83d2a710cc2f 813 }
claraluques 27:83d2a710cc2f 814 }
claraluques 27:83d2a710cc2f 815 func = 19;
claraluques 27:83d2a710cc2f 816 }
claraluques 18:5338b83b4de9 817
claraluques 18:5338b83b4de9 818 //func 16
claraluques 18:5338b83b4de9 819 void limitepontos(){ //tela para quando acabam os pontos
claraluques 18:5338b83b4de9 820 lcd.cls();
claraluques 26:59081efdce79 821 lcd.printf(" Voce atingiu o n%c maximo de pontos", 0xDF);
claraluques 26:59081efdce79 822 lcd.locate(9,2);
claraluques 26:59081efdce79 823 lcd.printf("(%d)", pontos);
claraluques 18:5338b83b4de9 824 lcd.locate(0,3);
claraluques 18:5338b83b4de9 825 lcd.printf("Conclua seu programa");
claraluques 18:5338b83b4de9 826 wait(1);
claraluques 18:5338b83b4de9 827 func = 2;
claraluques 21:7603fe283ba4 828 }
claraluques 26:59081efdce79 829
claraluques 26:59081efdce79 830 //func 17
claraluques 26:59081efdce79 831 void salvarprog(){
claraluques 26:59081efdce79 832 lcd.cls();
claraluques 31:77eb51d4ee18 833 bot_enter = penter;
claraluques 35:11e3f3c8cb4e 834 nome = "";
claraluques 30:614dcbd74cdc 835 lcd.printf("Voce deseja salvar este programa?");
claraluques 35:11e3f3c8cb4e 836 lcd.locate(8,2);
claraluques 26:59081efdce79 837 lcd.printf("Sim");
claraluques 35:11e3f3c8cb4e 838 lcd.locate(8,3);
claraluques 26:59081efdce79 839 lcd.printf("Nao");
claraluques 35:11e3f3c8cb4e 840 movercursor(2,3,7);
claraluques 26:59081efdce79 841 if (bot_enter!=penter){
claraluques 26:59081efdce79 842 if (linha==2){
claraluques 26:59081efdce79 843 salvar = 1;
claraluques 32:c293f89170b0 844 //printf("salvar\n\r");
claraluques 31:77eb51d4ee18 845 func = 20;
claraluques 26:59081efdce79 846 }
claraluques 26:59081efdce79 847 if (linha==3){
claraluques 26:59081efdce79 848 salvar = 0;
claraluques 31:77eb51d4ee18 849 func = 7;
claraluques 26:59081efdce79 850 }
claraluques 26:59081efdce79 851 }
claraluques 26:59081efdce79 852 }
claraluques 27:83d2a710cc2f 853
claraluques 27:83d2a710cc2f 854 //func 18
claraluques 27:83d2a710cc2f 855 void ctzhome(){
claraluques 27:83d2a710cc2f 856 lcd.cls();
claraluques 31:77eb51d4ee18 857 bot_enter = penter;
claraluques 27:83d2a710cc2f 858 lcd.printf("Certifique-se de que a maquina pode se");
claraluques 27:83d2a710cc2f 859 lcd.locate(5,2);
claraluques 27:83d2a710cc2f 860 lcd.printf("movimentar");
claraluques 27:83d2a710cc2f 861 lcd.locate(9,3);
claraluques 27:83d2a710cc2f 862 lcd.printf("OK");
claraluques 27:83d2a710cc2f 863 movercursor(3,3,8);
claraluques 27:83d2a710cc2f 864 if (bot_enter!=penter){
claraluques 27:83d2a710cc2f 865 if (linha==3){
claraluques 36:12d202855231 866 home = 1;
claraluques 27:83d2a710cc2f 867 func = 15;
claraluques 27:83d2a710cc2f 868 }
claraluques 27:83d2a710cc2f 869 }
claraluques 27:83d2a710cc2f 870 }
claraluques 27:83d2a710cc2f 871
claraluques 27:83d2a710cc2f 872 //func 19
claraluques 27:83d2a710cc2f 873 void origem(){
claraluques 27:83d2a710cc2f 874 lcd.cls();
claraluques 27:83d2a710cc2f 875 lcd.locate(5,1);
claraluques 27:83d2a710cc2f 876 lcd.printf("A MAQUINA");
claraluques 27:83d2a710cc2f 877 lcd.locate(2,2);
claraluques 27:83d2a710cc2f 878 lcd.printf("ESTA NA ORIGEM");
claraluques 27:83d2a710cc2f 879 wait(1);
claraluques 27:83d2a710cc2f 880 func = 4;
claraluques 27:83d2a710cc2f 881 }
claraluques 26:59081efdce79 882
claraluques 30:614dcbd74cdc 883 //func 20
claraluques 30:614dcbd74cdc 884 void nomeprog(){
claraluques 36:12d202855231 885 lcd.cls();
claraluques 32:c293f89170b0 886 sair = 0;
claraluques 36:12d202855231 887 bot_enter = penter;
claraluques 33:0149960e95c1 888 voltar = 0;
claraluques 37:30f7dd6f2ea5 889 lcd.locate(2,0);
claraluques 35:11e3f3c8cb4e 890 lcd.printf("Escolha o nome:");
claraluques 36:12d202855231 891 lcd.locate(0,3);
claraluques 35:11e3f3c8cb4e 892 lcd.printf("Segure OK p/ salvar");
claraluques 36:12d202855231 893 coluna = 1;
claraluques 32:c293f89170b0 894 escrever();
claraluques 32:c293f89170b0 895 if (sair==1){
claraluques 34:7c7fac39a250 896 lcd.cls();
claraluques 36:12d202855231 897 lcd.locate(10,3);
claraluques 36:12d202855231 898 lcd.printf("Aguarde...");
claraluques 33:0149960e95c1 899 int len = nome.length();
claraluques 33:0149960e95c1 900 nome.erase(len - 1);
claraluques 32:c293f89170b0 901 nome.append(".txt");
claraluques 35:11e3f3c8cb4e 902 //printf("Nome do programa: %s\n\r", nome);
claraluques 32:c293f89170b0 903 int verificar = sdcard.check_name_available(nome);
claraluques 35:11e3f3c8cb4e 904 //printf("Status do nome: %d\n\r", verificar);
claraluques 34:7c7fac39a250 905 if (verificar){
claraluques 36:12d202855231 906 /*lcd.locate(5,1);
claraluques 35:11e3f3c8cb4e 907 lcd.printf("Salvando");
claraluques 35:11e3f3c8cb4e 908 lcd.locate(5,2);
claraluques 36:12d202855231 909 lcd.printf("%s", nome);*/
claraluques 32:c293f89170b0 910 file_name = nome;
claraluques 32:c293f89170b0 911 machine.get_saved_points();
claraluques 34:7c7fac39a250 912 while(1){
claraluques 34:7c7fac39a250 913 if(Mach.readable()){
claraluques 34:7c7fac39a250 914 readSerial();
claraluques 34:7c7fac39a250 915 break;
claraluques 34:7c7fac39a250 916 }
claraluques 34:7c7fac39a250 917 }
claraluques 35:11e3f3c8cb4e 918 //printf("ok\n\r");
claraluques 36:12d202855231 919 func = 25;
claraluques 32:c293f89170b0 920 }
claraluques 34:7c7fac39a250 921 else if (!verificar){
claraluques 35:11e3f3c8cb4e 922 func = 21;
claraluques 35:11e3f3c8cb4e 923 //printf("nok\n\r");
claraluques 32:c293f89170b0 924 }
claraluques 30:614dcbd74cdc 925 }
claraluques 30:614dcbd74cdc 926 }
claraluques 30:614dcbd74cdc 927
claraluques 32:c293f89170b0 928 //func 21
claraluques 32:c293f89170b0 929 void mudar_nome(){
claraluques 32:c293f89170b0 930 lcd.cls();
claraluques 35:11e3f3c8cb4e 931 lcd.printf("ESCOLHA OUTRO NOME");
claraluques 32:c293f89170b0 932 wait(1);
claraluques 32:c293f89170b0 933 func = 20;
claraluques 32:c293f89170b0 934 }
claraluques 32:c293f89170b0 935
claraluques 33:0149960e95c1 936 //func 22
claraluques 33:0149960e95c1 937 void salva2(){
claraluques 33:0149960e95c1 938 lcd.cls();
claraluques 33:0149960e95c1 939 lcd.locate(0,0);
claraluques 33:0149960e95c1 940 lcd.printf("Voce salvou o ponto:");
claraluques 33:0149960e95c1 941 lcd.locate(5,1);
claraluques 33:0149960e95c1 942 lcd.printf("X:");
claraluques 33:0149960e95c1 943 lcd.locate(5,2);
claraluques 33:0149960e95c1 944 lcd.printf("Y:");
claraluques 33:0149960e95c1 945 lcd.locate(5,3);
claraluques 33:0149960e95c1 946 lcd.printf("Z:");
claraluques 33:0149960e95c1 947 //x
claraluques 33:0149960e95c1 948 if (cx<=-1 && cx>=-9){
claraluques 33:0149960e95c1 949 lcd.locate(7,1);
claraluques 33:0149960e95c1 950 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 951 }
claraluques 33:0149960e95c1 952 if (cx<=-10 && cx>=-99){
claraluques 33:0149960e95c1 953 lcd.locate(7,1);
claraluques 33:0149960e95c1 954 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 955 }
claraluques 33:0149960e95c1 956 if (cx<=-100){
claraluques 33:0149960e95c1 957 lcd.locate(7,1);
claraluques 33:0149960e95c1 958 lcd.printf("%.2f ", cx);
claraluques 33:0149960e95c1 959 }
claraluques 33:0149960e95c1 960 if (cx<=9 && cx>=0){
claraluques 33:0149960e95c1 961 lcd.locate(7,1);
claraluques 33:0149960e95c1 962 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 963 }
claraluques 33:0149960e95c1 964 if (cx>=10 && cx<=99){
claraluques 33:0149960e95c1 965 lcd.locate(7,1);
claraluques 33:0149960e95c1 966 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 967 }
claraluques 33:0149960e95c1 968 if (cx>=100){
claraluques 33:0149960e95c1 969 lcd.locate(7,1);
claraluques 33:0149960e95c1 970 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 971 }
claraluques 33:0149960e95c1 972 //y
claraluques 33:0149960e95c1 973 if (cy<=-1 && cy>=-9){
claraluques 33:0149960e95c1 974 lcd.locate(7,2);
claraluques 33:0149960e95c1 975 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 976 }
claraluques 33:0149960e95c1 977 if (cy<=-10 && cx>=-99){
claraluques 33:0149960e95c1 978 lcd.locate(7,2);
claraluques 33:0149960e95c1 979 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 980 }
claraluques 33:0149960e95c1 981 if (cy<=-100){
claraluques 33:0149960e95c1 982 lcd.locate(7,2);
claraluques 33:0149960e95c1 983 lcd.printf("%.2f ", cy);
claraluques 33:0149960e95c1 984 }
claraluques 33:0149960e95c1 985 if (cy<=9 && cy>=0){
claraluques 33:0149960e95c1 986 lcd.locate(7,2);
claraluques 33:0149960e95c1 987 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 988 }
claraluques 33:0149960e95c1 989 if (cy>=10 && cx<=99){
claraluques 33:0149960e95c1 990 lcd.locate(7,2);
claraluques 33:0149960e95c1 991 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 992 }
claraluques 33:0149960e95c1 993 if (cy>=100){
claraluques 33:0149960e95c1 994 lcd.locate(7,2);
claraluques 33:0149960e95c1 995 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 996 }
claraluques 33:0149960e95c1 997 //z
claraluques 33:0149960e95c1 998 if (cz<=-1 && cz>=-9){
claraluques 33:0149960e95c1 999 lcd.locate(7,3);
claraluques 33:0149960e95c1 1000 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 1001 }
claraluques 33:0149960e95c1 1002 if (cz<=-10 && cx>=-99){
claraluques 33:0149960e95c1 1003 lcd.locate(7,3);
claraluques 33:0149960e95c1 1004 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 1005 }
claraluques 33:0149960e95c1 1006 if (cz<=-100){
claraluques 33:0149960e95c1 1007 lcd.locate(7,3);
claraluques 33:0149960e95c1 1008 lcd.printf("%.2f ", cz);
claraluques 33:0149960e95c1 1009 }
claraluques 33:0149960e95c1 1010 if (cz<=9 && cz>=0){
claraluques 33:0149960e95c1 1011 lcd.locate(7,3);
claraluques 33:0149960e95c1 1012 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 1013 }
claraluques 33:0149960e95c1 1014 if (cz>=10 && cx<=99){
claraluques 33:0149960e95c1 1015 lcd.locate(7,3);
claraluques 33:0149960e95c1 1016 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 1017 }
claraluques 33:0149960e95c1 1018 if (cz>=100){
claraluques 33:0149960e95c1 1019 lcd.locate(7,3);
claraluques 33:0149960e95c1 1020 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 1021 }
claraluques 33:0149960e95c1 1022 wait(1);
claraluques 38:6c94230e5ecd 1023 func = 2;
claraluques 33:0149960e95c1 1024 }
claraluques 35:11e3f3c8cb4e 1025
claraluques 35:11e3f3c8cb4e 1026 //func 23
claraluques 35:11e3f3c8cb4e 1027 void deletepoint(){
claraluques 35:11e3f3c8cb4e 1028 lcd.cls();
claraluques 35:11e3f3c8cb4e 1029 lcd.locate(1,1);
claraluques 35:11e3f3c8cb4e 1030 lcd.printf("Você removeu o ultimo ponto");
claraluques 35:11e3f3c8cb4e 1031 //lcd.locate(2,2);
claraluques 35:11e3f3c8cb4e 1032 //lcd.printf("ESTA NA ORIGEM");
claraluques 35:11e3f3c8cb4e 1033 wait(1);
claraluques 35:11e3f3c8cb4e 1034 func = 2;
claraluques 35:11e3f3c8cb4e 1035 }
claraluques 33:0149960e95c1 1036
claraluques 35:11e3f3c8cb4e 1037 //func 24
claraluques 35:11e3f3c8cb4e 1038 void sempontos(){
claraluques 35:11e3f3c8cb4e 1039 lcd.cls();
claraluques 35:11e3f3c8cb4e 1040 lcd.locate(1,1);
claraluques 35:11e3f3c8cb4e 1041 lcd.printf("Nao existem pontos para remover");
claraluques 35:11e3f3c8cb4e 1042 //lcd.locate(2,2);
claraluques 35:11e3f3c8cb4e 1043 //lcd.printf("ESTA NA ORIGEM");
claraluques 35:11e3f3c8cb4e 1044 wait(1);
claraluques 35:11e3f3c8cb4e 1045 func = 2;
claraluques 35:11e3f3c8cb4e 1046 }
claraluques 35:11e3f3c8cb4e 1047
claraluques 36:12d202855231 1048 //func 25
claraluques 36:12d202855231 1049 void salvando_arq(){
claraluques 36:12d202855231 1050 lcd.locate(5,1);
claraluques 36:12d202855231 1051 lcd.printf("Salvando");
claraluques 37:30f7dd6f2ea5 1052 lcd.locate(1,2);
claraluques 36:12d202855231 1053 lcd.printf("%s", nome);
claraluques 36:12d202855231 1054 wait(1);
claraluques 36:12d202855231 1055 func = 7;
claraluques 36:12d202855231 1056 }
claraluques 36:12d202855231 1057
claraluques 36:12d202855231 1058 //func 26
claraluques 36:12d202855231 1059 void exec_auto(){
claraluques 36:12d202855231 1060 lcd.cls();
claraluques 36:12d202855231 1061 bot_enter = penter;
claraluques 36:12d202855231 1062 lcd.locate(2,0);
claraluques 37:30f7dd6f2ea5 1063 lcd.printf("DESEJA EXECUTAR?");
claraluques 36:12d202855231 1064 lcd.locate(3,1);
claraluques 36:12d202855231 1065 lcd.printf("%s", arquivo);
claraluques 36:12d202855231 1066 lcd.locate(6,2);
claraluques 36:12d202855231 1067 lcd.printf("Sim");
claraluques 36:12d202855231 1068 lcd.locate(6,3);
claraluques 36:12d202855231 1069 lcd.printf("Cancelar");
claraluques 36:12d202855231 1070 movercursor(2,3,5);
claraluques 36:12d202855231 1071 if (bot_enter!=penter) {
claraluques 36:12d202855231 1072 if (linha==2){
claraluques 36:12d202855231 1073 //machine.kill_jog();
claraluques 36:12d202855231 1074 wait(0.1);
claraluques 36:12d202855231 1075 //machine.start_program();
claraluques 36:12d202855231 1076 exec = 1;
claraluques 36:12d202855231 1077 func = 9;
claraluques 36:12d202855231 1078 }
claraluques 36:12d202855231 1079 else if (linha==3){
claraluques 36:12d202855231 1080 exec = 0;
claraluques 36:12d202855231 1081 func = 1;
claraluques 36:12d202855231 1082 }
claraluques 36:12d202855231 1083 }
claraluques 36:12d202855231 1084 }
claraluques 36:12d202855231 1085
claraluques 36:12d202855231 1086 //func 27
claraluques 36:12d202855231 1087 void indo_limpeza(){
claraluques 36:12d202855231 1088 lcd.cls();
claraluques 36:12d202855231 1089 lcd.locate(2,1);
claraluques 36:12d202855231 1090 printf("indo home\n\r");
claraluques 36:12d202855231 1091 lcd.printf("Movimentando...");
claraluques 36:12d202855231 1092 machine.machine_zero();
claraluques 36:12d202855231 1093 while (home == 1){
claraluques 36:12d202855231 1094 if (Mach.readable()){
claraluques 36:12d202855231 1095 readSerial();
claraluques 36:12d202855231 1096 }
claraluques 36:12d202855231 1097 }
claraluques 36:12d202855231 1098 func = 28;
claraluques 36:12d202855231 1099 }
claraluques 36:12d202855231 1100
claraluques 36:12d202855231 1101 //func 28
claraluques 36:12d202855231 1102 void chegou_limpeza(){
claraluques 36:12d202855231 1103 lcd.cls();
claraluques 36:12d202855231 1104 bot_enter = penter;
claraluques 36:12d202855231 1105 printf("foi home\n\r");
claraluques 36:12d202855231 1106 lcd.locate(0,0);
claraluques 36:12d202855231 1107 lcd.printf("Posicione o recipiente");
claraluques 36:12d202855231 1108 lcd.locate(3,1);
claraluques 36:12d202855231 1109 lcd.printf("abaixo do bico.");
claraluques 36:12d202855231 1110 lcd.locate(9,3);
claraluques 36:12d202855231 1111 lcd.printf("OK");
claraluques 36:12d202855231 1112 movercursor(3,3,8);
claraluques 36:12d202855231 1113 if (bot_enter!=penter){
claraluques 36:12d202855231 1114 if (linha==3){
claraluques 36:12d202855231 1115 printf("vai cola\n\r");
claraluques 36:12d202855231 1116 limpar_cola = 1;
claraluques 36:12d202855231 1117 func = 29;
claraluques 36:12d202855231 1118 }
claraluques 36:12d202855231 1119 }
claraluques 36:12d202855231 1120
claraluques 36:12d202855231 1121 }
claraluques 36:12d202855231 1122
claraluques 36:12d202855231 1123 //func 29
claraluques 36:12d202855231 1124 void limpando(){
claraluques 36:12d202855231 1125 lcd.cls();
claraluques 36:12d202855231 1126 lcd.locate(3,1);
claraluques 36:12d202855231 1127 printf("indo cola\n\r");
claraluques 36:12d202855231 1128 lcd.printf("Limpando...");
claraluques 36:12d202855231 1129 machine.clean_glue();
claraluques 36:12d202855231 1130 while (limpar_cola == 1){
claraluques 36:12d202855231 1131 if (Mach.readable()){
claraluques 36:12d202855231 1132 readSerial();
claraluques 36:12d202855231 1133 }
claraluques 36:12d202855231 1134 }
claraluques 36:12d202855231 1135 func = 30;
claraluques 36:12d202855231 1136 }
claraluques 36:12d202855231 1137
claraluques 36:12d202855231 1138 //func 30
claraluques 36:12d202855231 1139 void limpeza_completa(){
claraluques 36:12d202855231 1140 lcd.cls();
claraluques 36:12d202855231 1141 lcd.locate(1,1);
claraluques 36:12d202855231 1142 printf("foi cola\n\r");
claraluques 36:12d202855231 1143 lcd.printf("Limpeza completa!");
claraluques 36:12d202855231 1144 wait(1);
claraluques 36:12d202855231 1145 func = 4;
claraluques 36:12d202855231 1146 }
claraluques 36:12d202855231 1147
claraluques 36:12d202855231 1148
claraluques 35:11e3f3c8cb4e 1149 //função ler arquivos
claraluques 35:11e3f3c8cb4e 1150 void arquivos(){
claraluques 38:6c94230e5ecd 1151 exec = 0;
claraluques 35:11e3f3c8cb4e 1152 int nomearq;
claraluques 35:11e3f3c8cb4e 1153 nomearq = sdcard.get_file_names();
claraluques 35:11e3f3c8cb4e 1154 int ftamanho = filenames.size();
claraluques 35:11e3f3c8cb4e 1155 int fmax = ftamanho - 1;
claraluques 35:11e3f3c8cb4e 1156 int fant = 1;
claraluques 35:11e3f3c8cb4e 1157 while (sair==0){
claraluques 38:6c94230e5ecd 1158 if (bot_cima==0){
claraluques 38:6c94230e5ecd 1159 fant = f;
claraluques 38:6c94230e5ecd 1160 f--;
claraluques 38:6c94230e5ecd 1161 if (f<0){
claraluques 38:6c94230e5ecd 1162 f = fmax;
claraluques 35:11e3f3c8cb4e 1163 }
claraluques 38:6c94230e5ecd 1164 bot_cima = 1;
claraluques 38:6c94230e5ecd 1165 }
claraluques 38:6c94230e5ecd 1166 if (bot_baixo==0){
claraluques 38:6c94230e5ecd 1167 fant = f;
claraluques 38:6c94230e5ecd 1168 f++;
claraluques 38:6c94230e5ecd 1169 if (f>fmax){
claraluques 38:6c94230e5ecd 1170 f = 0;
claraluques 35:11e3f3c8cb4e 1171 }
claraluques 38:6c94230e5ecd 1172 bot_baixo = 1;
claraluques 38:6c94230e5ecd 1173 }
claraluques 38:6c94230e5ecd 1174 arquivo = filenames[f];
claraluques 38:6c94230e5ecd 1175 if (f!=fant){
claraluques 38:6c94230e5ecd 1176 lcd.locate(0,1);
claraluques 38:6c94230e5ecd 1177 lcd.printf(" ");
claraluques 38:6c94230e5ecd 1178 lcd.locate(0,2);
claraluques 38:6c94230e5ecd 1179 lcd.printf(" ");
claraluques 38:6c94230e5ecd 1180 lcd.locate(0,1);
claraluques 38:6c94230e5ecd 1181 lcd.printf("%s", arquivo);
claraluques 38:6c94230e5ecd 1182 }
claraluques 38:6c94230e5ecd 1183 if (bot_enter!=penter){
claraluques 38:6c94230e5ecd 1184 lcd.locate(10,3);
claraluques 38:6c94230e5ecd 1185 lcd.printf("Aguarde...");
claraluques 38:6c94230e5ecd 1186 sdcard.send_gcode(arquivo);
claraluques 38:6c94230e5ecd 1187 printf("send gcode, %s\n\r", arquivo);
claraluques 38:6c94230e5ecd 1188 func = 26;
claraluques 38:6c94230e5ecd 1189 break;
claraluques 38:6c94230e5ecd 1190 }
claraluques 35:11e3f3c8cb4e 1191 fant = f;
claraluques 35:11e3f3c8cb4e 1192 }
claraluques 35:11e3f3c8cb4e 1193 }
claraluques 35:11e3f3c8cb4e 1194
claraluques 35:11e3f3c8cb4e 1195
claraluques 30:614dcbd74cdc 1196 //função para escrever nome arquivo
claraluques 32:c293f89170b0 1197 void escrever(){
claraluques 32:c293f89170b0 1198 char alfabeto[38] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
claraluques 30:614dcbd74cdc 1199 '0','1','2','3','4','5','6','7','8','9','-','_'};
claraluques 30:614dcbd74cdc 1200 int imax = 37;
claraluques 30:614dcbd74cdc 1201 int imin = 0;
claraluques 36:12d202855231 1202 nome = "";
claraluques 33:0149960e95c1 1203 //lcd.locate(1,1);
claraluques 32:c293f89170b0 1204 while (sair==0){
claraluques 33:0149960e95c1 1205 voltar = 0;
claraluques 32:c293f89170b0 1206 int i = 0;
claraluques 33:0149960e95c1 1207 //lcd.locate(0,2);
claraluques 33:0149960e95c1 1208 //lcd.setCursor(TextLCD::CurOn_BlkOn);
claraluques 32:c293f89170b0 1209 lcd.locate(1,1);
claraluques 32:c293f89170b0 1210 lcd.printf("%s", nome);
claraluques 32:c293f89170b0 1211 while (bot_enter==penter){
claraluques 32:c293f89170b0 1212 if (bot_cima == 0){
claraluques 32:c293f89170b0 1213 if (i==imin){
claraluques 32:c293f89170b0 1214 i = imax;
claraluques 32:c293f89170b0 1215 }
claraluques 32:c293f89170b0 1216 else if (i>imin && i<=imax){
claraluques 32:c293f89170b0 1217 i--;
claraluques 32:c293f89170b0 1218 }
claraluques 32:c293f89170b0 1219 bot_cima = 1;
claraluques 31:77eb51d4ee18 1220 }
claraluques 32:c293f89170b0 1221 else if (bot_baixo == 0){
claraluques 32:c293f89170b0 1222 if (i==imax){
claraluques 32:c293f89170b0 1223 i = imin;
claraluques 32:c293f89170b0 1224 }
claraluques 32:c293f89170b0 1225 else if (i<imax && i>=imin){
claraluques 32:c293f89170b0 1226 i++;
claraluques 32:c293f89170b0 1227 }
claraluques 32:c293f89170b0 1228 bot_baixo = 1;
claraluques 32:c293f89170b0 1229 }
claraluques 32:c293f89170b0 1230 lcd.locate(coluna, 1);
claraluques 32:c293f89170b0 1231 lcd.printf("%c", alfabeto[i]);
claraluques 33:0149960e95c1 1232 lcd.locate(coluna,2);
claraluques 33:0149960e95c1 1233 lcd.printf("%c", 0x5E);
claraluques 34:7c7fac39a250 1234
claraluques 35:11e3f3c8cb4e 1235 if(timer.read() > 1.0){
claraluques 34:7c7fac39a250 1236 sair = 1;
claraluques 34:7c7fac39a250 1237 printf("SAINDO\n\r");
claraluques 34:7c7fac39a250 1238 timer.reset();
claraluques 34:7c7fac39a250 1239 timer.stop();
claraluques 34:7c7fac39a250 1240 break;
claraluques 34:7c7fac39a250 1241 }
claraluques 35:11e3f3c8cb4e 1242 if(timer2.read() > 1.0){
claraluques 34:7c7fac39a250 1243 voltar = 1;
claraluques 34:7c7fac39a250 1244 printf("APAGANDO\n\r");
claraluques 34:7c7fac39a250 1245 timer2.reset();
claraluques 34:7c7fac39a250 1246 timer2.stop();
claraluques 34:7c7fac39a250 1247 break;
claraluques 34:7c7fac39a250 1248 }
claraluques 34:7c7fac39a250 1249 }
claraluques 34:7c7fac39a250 1250
claraluques 37:30f7dd6f2ea5 1251 if (nome.size()<14 && coluna<=14){
claraluques 32:c293f89170b0 1252 char carac = alfabeto[i];
claraluques 32:c293f89170b0 1253 nome.push_back(carac);
claraluques 32:c293f89170b0 1254 bot_enter = penter;
claraluques 37:30f7dd6f2ea5 1255 if (coluna<=14){
claraluques 33:0149960e95c1 1256 if (voltar==1){
claraluques 35:11e3f3c8cb4e 1257 //printf("voltar\n\r");
claraluques 33:0149960e95c1 1258 if (coluna>1){
claraluques 33:0149960e95c1 1259 //nome[coluna-1]="";
claraluques 33:0149960e95c1 1260 lcd.locate(coluna, 1);
claraluques 33:0149960e95c1 1261 lcd.printf(" ");
claraluques 33:0149960e95c1 1262 lcd.locate(coluna, 2);
claraluques 33:0149960e95c1 1263 lcd.printf(" ");
claraluques 33:0149960e95c1 1264 coluna--;
claraluques 33:0149960e95c1 1265 nome.erase(coluna-1);
claraluques 33:0149960e95c1 1266 lcd.locate(coluna, 2);
claraluques 33:0149960e95c1 1267 lcd.printf("%c", 0x5E);
claraluques 33:0149960e95c1 1268 }
claraluques 33:0149960e95c1 1269 }
claraluques 37:30f7dd6f2ea5 1270 if (voltar==0 && coluna<14){
claraluques 33:0149960e95c1 1271 lcd.locate(coluna, 2);
claraluques 33:0149960e95c1 1272 lcd.printf(" ");
claraluques 33:0149960e95c1 1273 coluna++;
claraluques 33:0149960e95c1 1274 lcd.locate(coluna, 2);
claraluques 33:0149960e95c1 1275 lcd.printf("%c", 0x5E);
claraluques 33:0149960e95c1 1276 }
claraluques 33:0149960e95c1 1277 }
claraluques 32:c293f89170b0 1278 }
claraluques 30:614dcbd74cdc 1279 }
claraluques 30:614dcbd74cdc 1280 }
lucasfontenla 40:e70f811c69dc 1281 void tela_emergencia(void){
lucasfontenla 40:e70f811c69dc 1282 lcd.cls();
lucasfontenla 41:a1ab19cc1387 1283 lcd.printf("EMERGENCIA");
lucasfontenla 41:a1ab19cc1387 1284 printf("Waiting release...");
lucasfontenla 41:a1ab19cc1387 1285 func = 1;
lucasfontenla 41:a1ab19cc1387 1286 while(!emergencia.read());
lucasfontenla 40:e70f811c69dc 1287 }
claraluques 30:614dcbd74cdc 1288
claraluques 26:59081efdce79 1289 //função para ler os pontos
claraluques 21:7603fe283ba4 1290 void readSerial(){
claraluques 21:7603fe283ba4 1291 char recv;
lucasfontenla 24:46c3be0e8273 1292 int points = 0;
lucasfontenla 24:46c3be0e8273 1293 int pointx = 0;
lucasfontenla 24:46c3be0e8273 1294 int pointy = 0;
lucasfontenla 24:46c3be0e8273 1295 int pointz = 0;
claraluques 27:83d2a710cc2f 1296 int action = 0;
lucasfontenla 29:558eccdfc079 1297 int uploading_saved = 0;
lucasfontenla 24:46c3be0e8273 1298 string coordx = "";
lucasfontenla 24:46c3be0e8273 1299 string coordy = "";
lucasfontenla 24:46c3be0e8273 1300 string coordz = "";
lucasfontenla 29:558eccdfc079 1301 string recv_buffer;
claraluques 34:7c7fac39a250 1302
claraluques 34:7c7fac39a250 1303 int status;
claraluques 26:59081efdce79 1304
claraluques 32:c293f89170b0 1305
claraluques 21:7603fe283ba4 1306 while(1){
claraluques 21:7603fe283ba4 1307 recv = Mach.getc();
claraluques 34:7c7fac39a250 1308
claraluques 32:c293f89170b0 1309 if (recv == 'a'){
claraluques 27:83d2a710cc2f 1310 home = 0;
claraluques 27:83d2a710cc2f 1311 exec = 0;
claraluques 36:12d202855231 1312 limpar_cola = 0;
claraluques 36:12d202855231 1313 printf("oi\n\r");
claraluques 27:83d2a710cc2f 1314 action = 1;
lucasfontenla 41:a1ab19cc1387 1315 WiFi.putc('ax');
claraluques 34:7c7fac39a250 1316 }
claraluques 34:7c7fac39a250 1317
lucasfontenla 24:46c3be0e8273 1318 if (recv == 'p'){
claraluques 21:7603fe283ba4 1319 points = 1;
claraluques 38:6c94230e5ecd 1320 printf("p\n\r");
claraluques 34:7c7fac39a250 1321 }
claraluques 34:7c7fac39a250 1322
lucasfontenla 29:558eccdfc079 1323 if(recv == 'u'){
lucasfontenla 29:558eccdfc079 1324 uploading_saved = 1;
lucasfontenla 29:558eccdfc079 1325 }
claraluques 34:7c7fac39a250 1326
claraluques 34:7c7fac39a250 1327 if(uploading_saved){
claraluques 34:7c7fac39a250 1328 if(recv == 'x'){
claraluques 34:7c7fac39a250 1329 printf("OK\n\r");
claraluques 34:7c7fac39a250 1330 status = sdcard.save_GCODE(file_name, recv_buffer);
claraluques 34:7c7fac39a250 1331 return;
claraluques 38:6c94230e5ecd 1332 }
claraluques 38:6c94230e5ecd 1333 else if(recv != 'u'){
claraluques 34:7c7fac39a250 1334 recv_buffer.push_back(recv);
claraluques 34:7c7fac39a250 1335 }
claraluques 34:7c7fac39a250 1336 }
claraluques 34:7c7fac39a250 1337
claraluques 34:7c7fac39a250 1338 if (points && !uploading_saved){
lucasfontenla 24:46c3be0e8273 1339 if (recv == 'X'){
claraluques 21:7603fe283ba4 1340 pointx = 1;
lucasfontenla 24:46c3be0e8273 1341 pointy = 0;
lucasfontenla 24:46c3be0e8273 1342 pointz = 0;
claraluques 21:7603fe283ba4 1343 }
lucasfontenla 24:46c3be0e8273 1344 else if (recv == 'Y'){
claraluques 21:7603fe283ba4 1345 pointy = 1;
lucasfontenla 24:46c3be0e8273 1346 pointx = 0;
lucasfontenla 24:46c3be0e8273 1347 pointz = 0;
claraluques 21:7603fe283ba4 1348 }
lucasfontenla 24:46c3be0e8273 1349 else if (recv == 'Z'){
claraluques 21:7603fe283ba4 1350 pointz = 1;
lucasfontenla 24:46c3be0e8273 1351 pointx = 0;
lucasfontenla 24:46c3be0e8273 1352 pointy = 0;
claraluques 23:19c67758032d 1353 }
claraluques 34:7c7fac39a250 1354 else if(recv == 'x'){
claraluques 23:19c67758032d 1355 cx = atof(coordx.c_str());
claraluques 23:19c67758032d 1356 cy = atof(coordy.c_str());
claraluques 23:19c67758032d 1357 cz = atof(coordz.c_str());
claraluques 23:19c67758032d 1358 printf("%s,%s,%s\n\r", coordx, coordy, coordz);
claraluques 21:7603fe283ba4 1359 break;
claraluques 21:7603fe283ba4 1360 }
claraluques 23:19c67758032d 1361 }
claraluques 34:7c7fac39a250 1362
claraluques 34:7c7fac39a250 1363 if(pointx){
lucasfontenla 24:46c3be0e8273 1364 if (recv!='X'){
claraluques 23:19c67758032d 1365 coordx.push_back(recv);
claraluques 23:19c67758032d 1366 }
claraluques 34:7c7fac39a250 1367 }
claraluques 23:19c67758032d 1368 if (pointy){
lucasfontenla 24:46c3be0e8273 1369 if (recv!='Y'){
claraluques 23:19c67758032d 1370 coordy.push_back(recv);
claraluques 23:19c67758032d 1371 }
claraluques 34:7c7fac39a250 1372 }
claraluques 23:19c67758032d 1373 if (pointz){
lucasfontenla 24:46c3be0e8273 1374 if (recv!='Z'){
claraluques 23:19c67758032d 1375 coordz.push_back(recv);
claraluques 23:19c67758032d 1376 }
claraluques 34:7c7fac39a250 1377 }
claraluques 27:83d2a710cc2f 1378 if (action){
claraluques 27:83d2a710cc2f 1379 if (recv=='x'){
claraluques 27:83d2a710cc2f 1380 break;
claraluques 27:83d2a710cc2f 1381 }
claraluques 34:7c7fac39a250 1382 }
claraluques 21:7603fe283ba4 1383 }
lucasfontenla 29:558eccdfc079 1384 }
claraluques 23:19c67758032d 1385
claraluques 26:59081efdce79 1386
lucasfontenla 22:22ddb0b21d48 1387
claraluques 21:7603fe283ba4 1388 Menu(); //não apagar
lucasfontenla 17:0b8e489fac36 1389 };