Código para o menu no LCD

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Committer:
lucasfontenla
Date:
Mon Jun 11 20:09:48 2018 +0000
Revision:
43:4684aba69ba6
Parent:
42:48096cfdea78
Child:
44:15968c7431c6
mudan?as

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 }
lucasfontenla 42:48096cfdea78 300 if(func == 13){
lucasfontenla 42:48096cfdea78 301 if(clean_wifi.read()>6.0){
lucasfontenla 42:48096cfdea78 302 lcd.locate(0,1);
lucasfontenla 42:48096cfdea78 303 lcd.printf(" ");
lucasfontenla 42:48096cfdea78 304 }
lucasfontenla 42:48096cfdea78 305 if(WiFi.readable()){
lucasfontenla 42:48096cfdea78 306 wifiRx();
lucasfontenla 42:48096cfdea78 307 }
lucasfontenla 42:48096cfdea78 308 }
claraluques 31:77eb51d4ee18 309 if (bot_cima==0){
claraluques 18:5338b83b4de9 310 if (linha==min){
claraluques 18:5338b83b4de9 311 lcd.locate(col,min);
claraluques 18:5338b83b4de9 312 lcd.printf(" ");
claraluques 18:5338b83b4de9 313 linha=max;
claraluques 18:5338b83b4de9 314 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 315 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 316 }
claraluques 18:5338b83b4de9 317 else {
claraluques 18:5338b83b4de9 318 lcd.locate(col,linha);
claraluques 18:5338b83b4de9 319 lcd.printf(" ");
claraluques 18:5338b83b4de9 320 linha--;
claraluques 18:5338b83b4de9 321 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 322 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 323 }
claraluques 31:77eb51d4ee18 324 bot_cima = 1;
claraluques 18:5338b83b4de9 325 }
claraluques 31:77eb51d4ee18 326 else if (bot_baixo==0){
claraluques 18:5338b83b4de9 327 if (linha==max){
claraluques 18:5338b83b4de9 328 lcd.locate(col,max);
claraluques 18:5338b83b4de9 329 lcd.printf(" ");
claraluques 18:5338b83b4de9 330 linha=min;
claraluques 18:5338b83b4de9 331 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 332 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 333 }
claraluques 18:5338b83b4de9 334 else {
claraluques 18:5338b83b4de9 335 lcd.locate(col,linha);
claraluques 18:5338b83b4de9 336 lcd.printf(" ");
claraluques 18:5338b83b4de9 337 linha++;
claraluques 18:5338b83b4de9 338 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 339 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 340 }
claraluques 31:77eb51d4ee18 341 bot_baixo = 1;
claraluques 18:5338b83b4de9 342 }
lucasfontenla 40:e70f811c69dc 343 }
claraluques 18:5338b83b4de9 344 }
claraluques 32:c293f89170b0 345
claraluques 18:5338b83b4de9 346
claraluques 18:5338b83b4de9 347 //func 0
claraluques 18:5338b83b4de9 348 void inicializar(){ //função tela incial de boas-vindas
claraluques 33:0149960e95c1 349 int status;
claraluques 33:0149960e95c1 350 printf("Starting...\n\r");
claraluques 26:59081efdce79 351 machine.reset();
claraluques 18:5338b83b4de9 352 lcd.cls();
claraluques 18:5338b83b4de9 353 lcd.locate(4,0);
claraluques 18:5338b83b4de9 354 lcd.printf("Bem-vindo(a)");
claraluques 18:5338b83b4de9 355 lcd.locate(0,1);
claraluques 18:5338b83b4de9 356 lcd.printf("Utilize seu EPI para operar a maquina.");
claraluques 33:0149960e95c1 357 wait(1);
claraluques 30:614dcbd74cdc 358 /*status = sdcard.get_file_names();
lucasfontenla 29:558eccdfc079 359 if(status){
lucasfontenla 29:558eccdfc079 360 printf("Filenames: \n\r");
lucasfontenla 29:558eccdfc079 361 for(int i = 0; i < filenames.size(); i++){
lucasfontenla 29:558eccdfc079 362 printf("%s\n\r", filenames[i]);
lucasfontenla 29:558eccdfc079 363 }
claraluques 30:614dcbd74cdc 364 }*/
claraluques 18:5338b83b4de9 365 func = 1;
claraluques 18:5338b83b4de9 366 }
claraluques 18:5338b83b4de9 367
claraluques 18:5338b83b4de9 368 //func 1
claraluques 18:5338b83b4de9 369 void menuprincipal(){ //função menu principal
claraluques 31:77eb51d4ee18 370 bot_enter = penter;
claraluques 36:12d202855231 371 sair = 0;
claraluques 18:5338b83b4de9 372 lcd.cls();
claraluques 18:5338b83b4de9 373 lcd.locate(1,0);
claraluques 18:5338b83b4de9 374 lcd.printf("Modo JOG");
claraluques 18:5338b83b4de9 375 lcd.locate(1,1);
claraluques 18:5338b83b4de9 376 lcd.printf("Modo Automatico");
claraluques 18:5338b83b4de9 377 lcd.locate(1,2);
claraluques 26:59081efdce79 378 lcd.printf("Zerar");
claraluques 18:5338b83b4de9 379 lcd.locate(1,3);
claraluques 26:59081efdce79 380 lcd.printf("Config");
claraluques 18:5338b83b4de9 381 movercursor(0,3,0);
claraluques 18:5338b83b4de9 382 if (bot_enter!=penter){
claraluques 18:5338b83b4de9 383 if (linha==0){
claraluques 18:5338b83b4de9 384 func = 2;
claraluques 18:5338b83b4de9 385 }
claraluques 18:5338b83b4de9 386 else if (linha==1) {
claraluques 18:5338b83b4de9 387 func = 3;
claraluques 18:5338b83b4de9 388 }
claraluques 18:5338b83b4de9 389 else if (linha==2) {
claraluques 26:59081efdce79 390 func = 8;
claraluques 18:5338b83b4de9 391 }
claraluques 18:5338b83b4de9 392 else if (linha==3) {
claraluques 26:59081efdce79 393 func = 4;
claraluques 18:5338b83b4de9 394 }
claraluques 18:5338b83b4de9 395 }
claraluques 18:5338b83b4de9 396 }
claraluques 18:5338b83b4de9 397
claraluques 18:5338b83b4de9 398 //func 2
claraluques 18:5338b83b4de9 399 void jog(){ //função tela jog
lucasfontenla 42:48096cfdea78 400
claraluques 31:77eb51d4ee18 401 lcd.cls();
claraluques 31:77eb51d4ee18 402 bot_enter = penter;
claraluques 20:ccbd80b668ce 403 machine.kill_jog();
claraluques 20:ccbd80b668ce 404 wait(0.1);
claraluques 19:2c890ae2d187 405 machine.jog();
claraluques 35:11e3f3c8cb4e 406 lcd.locate(2,1);
claraluques 35:11e3f3c8cb4e 407 lcd.printf("MODO");
claraluques 35:11e3f3c8cb4e 408 lcd.locate(2,2);
claraluques 35:11e3f3c8cb4e 409 lcd.printf("JOG");
claraluques 35:11e3f3c8cb4e 410 lcd.locate(11,0);
claraluques 18:5338b83b4de9 411 lcd.printf("Salvar");
claraluques 35:11e3f3c8cb4e 412 lcd.locate(11,1);
claraluques 35:11e3f3c8cb4e 413 lcd.printf("Remover");
claraluques 35:11e3f3c8cb4e 414 lcd.locate(11,2);
claraluques 18:5338b83b4de9 415 lcd.printf("Concluir");
claraluques 35:11e3f3c8cb4e 416 lcd.locate(11,3);
claraluques 18:5338b83b4de9 417 lcd.printf("Cancelar");
claraluques 35:11e3f3c8cb4e 418 movercursor(0,3,10);
claraluques 18:5338b83b4de9 419 if (bot_enter!=penter){
claraluques 35:11e3f3c8cb4e 420 if (linha==0){
claraluques 38:6c94230e5ecd 421 func = 6;
claraluques 18:5338b83b4de9 422 }
claraluques 35:11e3f3c8cb4e 423 else if (linha==1){
claraluques 35:11e3f3c8cb4e 424 if (pontos>=1){
claraluques 35:11e3f3c8cb4e 425 machine.delete_last_saved();
claraluques 35:11e3f3c8cb4e 426 pontos--;
claraluques 35:11e3f3c8cb4e 427 maxpontos++;
claraluques 35:11e3f3c8cb4e 428 func = 23;
claraluques 35:11e3f3c8cb4e 429 }
claraluques 35:11e3f3c8cb4e 430 if (pontos==0){
claraluques 35:11e3f3c8cb4e 431 func = 24;
claraluques 35:11e3f3c8cb4e 432 }
claraluques 35:11e3f3c8cb4e 433 }
claraluques 18:5338b83b4de9 434 else if (linha==2) {
claraluques 27:83d2a710cc2f 435 machine.kill_jog();
claraluques 36:12d202855231 436 pontos = 0;
claraluques 36:12d202855231 437 maxpontos = 100;
claraluques 26:59081efdce79 438 func = 17;
claraluques 18:5338b83b4de9 439 }
claraluques 18:5338b83b4de9 440 else if (linha==3) {
claraluques 20:ccbd80b668ce 441 machine.kill_jog();
claraluques 26:59081efdce79 442 wait(0.1);
claraluques 26:59081efdce79 443 machine.cancel_program();
claraluques 36:12d202855231 444 pontos = 0;
claraluques 36:12d202855231 445 maxpontos = 100;
claraluques 18:5338b83b4de9 446 func = 1;
claraluques 18:5338b83b4de9 447 pontos = 10;
claraluques 18:5338b83b4de9 448 }
claraluques 18:5338b83b4de9 449 }
claraluques 18:5338b83b4de9 450 }
claraluques 18:5338b83b4de9 451
claraluques 18:5338b83b4de9 452 //func 3
claraluques 18:5338b83b4de9 453 void automatico(){ //tela modo automatico
lucasfontenla 42:48096cfdea78 454
claraluques 18:5338b83b4de9 455 lcd.cls();
claraluques 38:6c94230e5ecd 456 f = 0;
claraluques 38:6c94230e5ecd 457 sair = 0;
claraluques 31:77eb51d4ee18 458 bot_enter = penter;
claraluques 36:12d202855231 459 printf("Automatico\n\r");
claraluques 35:11e3f3c8cb4e 460 lcd.printf("Selecione o programa");
claraluques 35:11e3f3c8cb4e 461 arquivos();
claraluques 35:11e3f3c8cb4e 462 if (sair==1) {
claraluques 35:11e3f3c8cb4e 463 func = 1;
claraluques 18:5338b83b4de9 464 }
claraluques 18:5338b83b4de9 465 }
claraluques 18:5338b83b4de9 466
claraluques 18:5338b83b4de9 467 //func 4
claraluques 18:5338b83b4de9 468 void config() {
lucasfontenla 42:48096cfdea78 469
claraluques 18:5338b83b4de9 470 lcd.cls();
claraluques 31:77eb51d4ee18 471 bot_enter = penter;
lucasfontenla 42:48096cfdea78 472 lcd.locate(1,2);
lucasfontenla 42:48096cfdea78 473 lcd.printf("Modo WiFi");
claraluques 18:5338b83b4de9 474 lcd.locate(1,0);
lucasfontenla 42:48096cfdea78 475 lcd.printf("Limpar seringa cola");
claraluques 18:5338b83b4de9 476 lcd.locate(1,1);
claraluques 26:59081efdce79 477 lcd.printf("Origem maquina");
claraluques 18:5338b83b4de9 478 lcd.locate(1,3);
claraluques 18:5338b83b4de9 479 lcd.printf("Voltar");
claraluques 18:5338b83b4de9 480 movercursor(0,3,0);
claraluques 18:5338b83b4de9 481 if (bot_enter!=penter){
lucasfontenla 42:48096cfdea78 482 if (linha==2) {
claraluques 18:5338b83b4de9 483 func = 13;
claraluques 18:5338b83b4de9 484 }
claraluques 18:5338b83b4de9 485 else if (linha==1) {
claraluques 18:5338b83b4de9 486 func = 14;
claraluques 18:5338b83b4de9 487 }
lucasfontenla 42:48096cfdea78 488 else if (linha==0) {
claraluques 27:83d2a710cc2f 489 home = 1;
claraluques 27:83d2a710cc2f 490 func = 18;
claraluques 18:5338b83b4de9 491 }
claraluques 18:5338b83b4de9 492 else if (linha==3) {
claraluques 18:5338b83b4de9 493 func = 1;
claraluques 18:5338b83b4de9 494 }
claraluques 18:5338b83b4de9 495 }
claraluques 18:5338b83b4de9 496 }
claraluques 18:5338b83b4de9 497
claraluques 18:5338b83b4de9 498 //func 5
claraluques 18:5338b83b4de9 499 void telasalvamento(){ //função para quando salvar um ponto
lucasfontenla 42:48096cfdea78 500
claraluques 18:5338b83b4de9 501 lcd.cls();
claraluques 18:5338b83b4de9 502 lcd.locate(0,0);
claraluques 18:5338b83b4de9 503 lcd.printf("Voce salvou");
claraluques 18:5338b83b4de9 504 lcd.locate(1,1);
claraluques 25:af1f99666ca9 505 lcd.printf("X:%.2f ", cx_salva);
claraluques 18:5338b83b4de9 506 lcd.locate(1,2);
claraluques 25:af1f99666ca9 507 lcd.printf("Y:%.2f ", cy_salva);
claraluques 18:5338b83b4de9 508 lcd.locate(1,3);
claraluques 25:af1f99666ca9 509 lcd.printf("Z:%.2f ", cz_salva);
claraluques 18:5338b83b4de9 510 lcd.locate(13,1);
claraluques 18:5338b83b4de9 511 lcd.printf("Pontos");
claraluques 18:5338b83b4de9 512 lcd.locate(13,2);
claraluques 18:5338b83b4de9 513 lcd.printf("livres");
claraluques 18:5338b83b4de9 514 lcd.locate(16,3);
claraluques 26:59081efdce79 515 lcd.printf("%d", maxpontos);
claraluques 18:5338b83b4de9 516 wait(1);
claraluques 18:5338b83b4de9 517 if (pontos>0){
claraluques 38:6c94230e5ecd 518 func = 2;
claraluques 18:5338b83b4de9 519 }
claraluques 18:5338b83b4de9 520 else if (pontos==0){
claraluques 18:5338b83b4de9 521 func = 2;
claraluques 18:5338b83b4de9 522 }
claraluques 18:5338b83b4de9 523 }
claraluques 18:5338b83b4de9 524
claraluques 18:5338b83b4de9 525 //func 6
claraluques 18:5338b83b4de9 526 void telacola(){ //tela para escolher o tipo de sequencia da cola
lucasfontenla 42:48096cfdea78 527
claraluques 18:5338b83b4de9 528 lcd.cls();
claraluques 31:77eb51d4ee18 529 bot_enter = penter;
claraluques 18:5338b83b4de9 530 lcd.printf("P/ o proximo ponto:");
claraluques 18:5338b83b4de9 531 lcd.locate(3,1);
claraluques 18:5338b83b4de9 532 lcd.printf("Sem cola");
claraluques 18:5338b83b4de9 533 lcd.locate(3,2);
claraluques 18:5338b83b4de9 534 lcd.printf("Cola no ponto");
claraluques 18:5338b83b4de9 535 lcd.locate(3,3);
claraluques 18:5338b83b4de9 536 lcd.printf("Cola continua");
claraluques 18:5338b83b4de9 537 movercursor(1,3,2);
claraluques 18:5338b83b4de9 538 if (bot_enter!=penter){
claraluques 38:6c94230e5ecd 539 if (Mach.readable()){
claraluques 38:6c94230e5ecd 540 readSerial();
claraluques 38:6c94230e5ecd 541 }
claraluques 18:5338b83b4de9 542 if (linha==1){
claraluques 18:5338b83b4de9 543 cola = 0;
claraluques 38:6c94230e5ecd 544 if (pontos==0 && maxpontos>10){
claraluques 38:6c94230e5ecd 545 cx_salva = 0;
claraluques 38:6c94230e5ecd 546 cy_salva = 0;
claraluques 38:6c94230e5ecd 547 cz_salva = 0;
claraluques 38:6c94230e5ecd 548 pontos++;
claraluques 38:6c94230e5ecd 549 maxpontos--;
claraluques 38:6c94230e5ecd 550 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 551 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 552 func = 22;
claraluques 38:6c94230e5ecd 553 }
claraluques 38:6c94230e5ecd 554 else if (pontos>=1 && maxpontos>10){
claraluques 38:6c94230e5ecd 555 cx_salva = cx;
claraluques 38:6c94230e5ecd 556 cy_salva = cy;
claraluques 38:6c94230e5ecd 557 cz_salva = cz;
claraluques 38:6c94230e5ecd 558 pontos++;
claraluques 38:6c94230e5ecd 559 maxpontos--;
claraluques 38:6c94230e5ecd 560 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 561 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 562 func = 22;
claraluques 38:6c94230e5ecd 563 }
claraluques 38:6c94230e5ecd 564 else if (maxpontos<=10){
claraluques 38:6c94230e5ecd 565 cx_salva = cx;
claraluques 38:6c94230e5ecd 566 cy_salva = cy;
claraluques 38:6c94230e5ecd 567 cz_salva = cz;
claraluques 38:6c94230e5ecd 568 pontos++;
claraluques 38:6c94230e5ecd 569 maxpontos--;
claraluques 38:6c94230e5ecd 570 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 571 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 572 func = 5;
claraluques 38:6c94230e5ecd 573 }
claraluques 38:6c94230e5ecd 574 else if (maxpontos==0){
claraluques 38:6c94230e5ecd 575 func = 16;
claraluques 38:6c94230e5ecd 576 }
claraluques 18:5338b83b4de9 577 }
claraluques 18:5338b83b4de9 578 else if (linha==2) {
claraluques 18:5338b83b4de9 579 cola = 1;
claraluques 38:6c94230e5ecd 580 if (pontos==0 && maxpontos>10){
claraluques 38:6c94230e5ecd 581 cx_salva = 0;
claraluques 38:6c94230e5ecd 582 cy_salva = 0;
claraluques 38:6c94230e5ecd 583 cz_salva = 0;
claraluques 38:6c94230e5ecd 584 pontos++;
claraluques 38:6c94230e5ecd 585 maxpontos--;
claraluques 38:6c94230e5ecd 586 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 587 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 588 func = 22;
claraluques 38:6c94230e5ecd 589 }
claraluques 38:6c94230e5ecd 590 else if (pontos>=1 && maxpontos>10){
claraluques 38:6c94230e5ecd 591 cx_salva = cx;
claraluques 38:6c94230e5ecd 592 cy_salva = cy;
claraluques 38:6c94230e5ecd 593 cz_salva = cz;
claraluques 38:6c94230e5ecd 594 pontos++;
claraluques 38:6c94230e5ecd 595 maxpontos--;
claraluques 38:6c94230e5ecd 596 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 597 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 598 func = 22;
claraluques 38:6c94230e5ecd 599 }
claraluques 38:6c94230e5ecd 600 else if (maxpontos<=10){
claraluques 38:6c94230e5ecd 601 cx_salva = cx;
claraluques 38:6c94230e5ecd 602 cy_salva = cy;
claraluques 38:6c94230e5ecd 603 cz_salva = cz;
claraluques 38:6c94230e5ecd 604 pontos++;
claraluques 38:6c94230e5ecd 605 maxpontos--;
claraluques 38:6c94230e5ecd 606 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 607 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 608 func = 5;
claraluques 38:6c94230e5ecd 609 }
claraluques 38:6c94230e5ecd 610 else if (maxpontos==0){
claraluques 38:6c94230e5ecd 611 func = 16;
claraluques 38:6c94230e5ecd 612 }
claraluques 18:5338b83b4de9 613 }
claraluques 18:5338b83b4de9 614 else if (linha==3) {
claraluques 18:5338b83b4de9 615 cola = 2;
claraluques 38:6c94230e5ecd 616 if (pontos==0 && maxpontos>10){
claraluques 38:6c94230e5ecd 617 cx_salva = 0;
claraluques 38:6c94230e5ecd 618 cy_salva = 0;
claraluques 38:6c94230e5ecd 619 cz_salva = 0;
claraluques 38:6c94230e5ecd 620 pontos++;
claraluques 38:6c94230e5ecd 621 maxpontos--;
claraluques 38:6c94230e5ecd 622 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 623 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 624 func = 22;
claraluques 38:6c94230e5ecd 625 }
claraluques 38:6c94230e5ecd 626 else if (pontos>=1 && maxpontos>10){
claraluques 38:6c94230e5ecd 627 cx_salva = cx;
claraluques 38:6c94230e5ecd 628 cy_salva = cy;
claraluques 38:6c94230e5ecd 629 cz_salva = cz;
claraluques 38:6c94230e5ecd 630 pontos++;
claraluques 38:6c94230e5ecd 631 maxpontos--;
claraluques 38:6c94230e5ecd 632 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 633 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 634 func = 22;
claraluques 38:6c94230e5ecd 635 }
claraluques 38:6c94230e5ecd 636 else if (maxpontos<=10){
claraluques 38:6c94230e5ecd 637 cx_salva = cx;
claraluques 38:6c94230e5ecd 638 cy_salva = cy;
claraluques 38:6c94230e5ecd 639 cz_salva = cz;
claraluques 38:6c94230e5ecd 640 pontos++;
claraluques 38:6c94230e5ecd 641 maxpontos--;
claraluques 38:6c94230e5ecd 642 machine.save_point(cola,1.0);
claraluques 38:6c94230e5ecd 643 printf("salvei ponto\n\r");
claraluques 38:6c94230e5ecd 644 func = 5;
claraluques 38:6c94230e5ecd 645 }
claraluques 38:6c94230e5ecd 646 else if (maxpontos==0){
claraluques 38:6c94230e5ecd 647 func = 16;
claraluques 38:6c94230e5ecd 648 }
claraluques 38:6c94230e5ecd 649 }
claraluques 18:5338b83b4de9 650 }
claraluques 18:5338b83b4de9 651 }
claraluques 18:5338b83b4de9 652
claraluques 18:5338b83b4de9 653 //func 7
claraluques 18:5338b83b4de9 654 void executarprograma() { //tela para selecionar se deseja executar o programa
lucasfontenla 42:48096cfdea78 655
claraluques 18:5338b83b4de9 656 lcd.cls();
claraluques 31:77eb51d4ee18 657 bot_enter = penter;
claraluques 18:5338b83b4de9 658 lcd.locate(2,0);
claraluques 18:5338b83b4de9 659 lcd.printf("VOCE CONCLUIU SEU");
claraluques 18:5338b83b4de9 660 lcd.locate(5,1);
claraluques 18:5338b83b4de9 661 lcd.printf("PROGRAMA.");
claraluques 18:5338b83b4de9 662 lcd.locate(0,2);
claraluques 18:5338b83b4de9 663 lcd.printf("Deseja");
claraluques 18:5338b83b4de9 664 lcd.locate(0,3);
claraluques 35:11e3f3c8cb4e 665 lcd.printf("executar?");
claraluques 35:11e3f3c8cb4e 666 lcd.locate(12,2);
claraluques 18:5338b83b4de9 667 lcd.printf("Sim");
claraluques 35:11e3f3c8cb4e 668 lcd.locate(12,3);
claraluques 35:11e3f3c8cb4e 669 lcd.printf("Cancelar");
claraluques 35:11e3f3c8cb4e 670 movercursor(2,3,11);
claraluques 18:5338b83b4de9 671 if (bot_enter!=penter) {
claraluques 18:5338b83b4de9 672 if (linha==2){
claraluques 21:7603fe283ba4 673 machine.kill_jog();
claraluques 21:7603fe283ba4 674 wait(0.1);
claraluques 27:83d2a710cc2f 675 //machine.start_program();
claraluques 18:5338b83b4de9 676 exec = 1;
claraluques 18:5338b83b4de9 677 func = 9;
claraluques 18:5338b83b4de9 678 }
claraluques 18:5338b83b4de9 679 else if (linha==3){
claraluques 18:5338b83b4de9 680 exec = 0;
claraluques 35:11e3f3c8cb4e 681 func = 1;
claraluques 18:5338b83b4de9 682 }
claraluques 18:5338b83b4de9 683 }
claraluques 18:5338b83b4de9 684 }
claraluques 18:5338b83b4de9 685
claraluques 18:5338b83b4de9 686 //func 8
claraluques 18:5338b83b4de9 687 void telazerar(){ //tela para zerar a máquina
lucasfontenla 42:48096cfdea78 688
claraluques 18:5338b83b4de9 689 lcd.cls();
claraluques 31:77eb51d4ee18 690 bot_enter = penter;
claraluques 26:59081efdce79 691 machine.kill_jog();
claraluques 26:59081efdce79 692 machine.jog();
claraluques 35:11e3f3c8cb4e 693 lcd.locate(0,0);
claraluques 35:11e3f3c8cb4e 694 lcd.printf("Selecione");
claraluques 35:11e3f3c8cb4e 695 //lcd.locate(0,1);
claraluques 35:11e3f3c8cb4e 696 //lcd.printf("
claraluques 19:2c890ae2d187 697 lcd.locate(13,0);
claraluques 19:2c890ae2d187 698 lcd.printf("X");
claraluques 19:2c890ae2d187 699 lcd.locate(13,1);
claraluques 19:2c890ae2d187 700 lcd.printf("Y");
claraluques 19:2c890ae2d187 701 lcd.locate(13,2);
claraluques 19:2c890ae2d187 702 lcd.printf("Z");
claraluques 19:2c890ae2d187 703 lcd.locate(13,3);
claraluques 19:2c890ae2d187 704 lcd.printf("Voltar");
claraluques 19:2c890ae2d187 705 movercursor(0,3,12);
claraluques 18:5338b83b4de9 706 if (bot_enter!=penter) {
claraluques 19:2c890ae2d187 707 if (linha==0){
claraluques 18:5338b83b4de9 708 cx = 0;
claraluques 19:2c890ae2d187 709 func = 10;
claraluques 19:2c890ae2d187 710 machine.set_zero("X");
claraluques 19:2c890ae2d187 711 }
claraluques 19:2c890ae2d187 712 else if (linha==1){
claraluques 18:5338b83b4de9 713 cy = 0;
claraluques 19:2c890ae2d187 714 func = 10;
claraluques 19:2c890ae2d187 715 machine.set_zero("Y");
claraluques 19:2c890ae2d187 716 }
claraluques 19:2c890ae2d187 717 else if (linha==2){
claraluques 18:5338b83b4de9 718 cz = 0;
claraluques 18:5338b83b4de9 719 func = 10;
claraluques 19:2c890ae2d187 720 machine.set_zero("Z");
claraluques 18:5338b83b4de9 721 }
claraluques 18:5338b83b4de9 722 else if (linha==3){
claraluques 18:5338b83b4de9 723 func = 1;
claraluques 26:59081efdce79 724 machine.kill_jog();
claraluques 18:5338b83b4de9 725 }
claraluques 18:5338b83b4de9 726 }
claraluques 18:5338b83b4de9 727 }
claraluques 18:5338b83b4de9 728
claraluques 18:5338b83b4de9 729 //func 9
claraluques 18:5338b83b4de9 730 void executando(){ //tela de executando
lucasfontenla 42:48096cfdea78 731
claraluques 18:5338b83b4de9 732 lcd.cls();
claraluques 27:83d2a710cc2f 733 machine.start_program();
claraluques 38:6c94230e5ecd 734 printf("start program, %s\n\r", arquivo);
claraluques 18:5338b83b4de9 735 lcd.locate(4,1);
claraluques 18:5338b83b4de9 736 lcd.printf("Executando");
claraluques 38:6c94230e5ecd 737 //tpontinhos.start();
claraluques 27:83d2a710cc2f 738 while (exec == 1){
lucasfontenla 42:48096cfdea78 739 if(emerg){
lucasfontenla 42:48096cfdea78 740 func = 31;
lucasfontenla 42:48096cfdea78 741 break;
lucasfontenla 42:48096cfdea78 742 }
claraluques 27:83d2a710cc2f 743 if (Mach.readable()){
claraluques 27:83d2a710cc2f 744 readSerial();
claraluques 36:12d202855231 745 }
claraluques 18:5338b83b4de9 746 }
claraluques 35:11e3f3c8cb4e 747 //printf("saiu\n\r");
claraluques 27:83d2a710cc2f 748 func = 11;
claraluques 18:5338b83b4de9 749 }
claraluques 18:5338b83b4de9 750
claraluques 18:5338b83b4de9 751 //func 10
claraluques 18:5338b83b4de9 752 void zerado() { //tela avisando que a máquina foi zerada
lucasfontenla 42:48096cfdea78 753
claraluques 18:5338b83b4de9 754 lcd.cls();
claraluques 18:5338b83b4de9 755 lcd.locate(5,1);
claraluques 18:5338b83b4de9 756 lcd.printf("Voce zerou");
claraluques 19:2c890ae2d187 757 lcd.locate(6,2);
claraluques 19:2c890ae2d187 758 lcd.printf("o eixo!");
claraluques 18:5338b83b4de9 759 wait(1);
claraluques 18:5338b83b4de9 760 func = 8;
claraluques 18:5338b83b4de9 761 }
claraluques 18:5338b83b4de9 762
claraluques 18:5338b83b4de9 763 //func 11
claraluques 18:5338b83b4de9 764 void finalizado() { //tela aviso programa finalizado
lucasfontenla 42:48096cfdea78 765
claraluques 18:5338b83b4de9 766 lcd.cls();
claraluques 18:5338b83b4de9 767 lcd.locate(6,1);
claraluques 18:5338b83b4de9 768 lcd.printf("PROGRAMA");
claraluques 18:5338b83b4de9 769 lcd.locate(5,2);
claraluques 18:5338b83b4de9 770 lcd.printf("FINALIZADO");
claraluques 18:5338b83b4de9 771 wait(1);
claraluques 18:5338b83b4de9 772 func = 1;
claraluques 18:5338b83b4de9 773 }
claraluques 18:5338b83b4de9 774
claraluques 18:5338b83b4de9 775 //func 12
claraluques 36:12d202855231 776 void limpeza_livre(){
lucasfontenla 42:48096cfdea78 777
claraluques 36:12d202855231 778 lcd.cls();
claraluques 36:12d202855231 779 bot_enter = penter;
claraluques 36:12d202855231 780 lcd.printf("Certifique-se de que a maquina pode se");
claraluques 36:12d202855231 781 lcd.locate(5,2);
claraluques 36:12d202855231 782 lcd.printf("movimentar.");
claraluques 36:12d202855231 783 lcd.locate(9,3);
claraluques 36:12d202855231 784 lcd.printf("OK");
claraluques 36:12d202855231 785 movercursor(3,3,8);
claraluques 36:12d202855231 786 if (bot_enter!=penter){
claraluques 36:12d202855231 787 if (linha==3){
lucasfontenla 43:4684aba69ba6 788 //printf("vai home\n\r");
claraluques 36:12d202855231 789 home = 1;
claraluques 36:12d202855231 790 func = 27;
claraluques 36:12d202855231 791 }
claraluques 36:12d202855231 792 }
claraluques 36:12d202855231 793 }
claraluques 18:5338b83b4de9 794
claraluques 18:5338b83b4de9 795 //func 13
lucasfontenla 42:48096cfdea78 796 void wifi(){
lucasfontenla 42:48096cfdea78 797 bot_enter = penter;
lucasfontenla 42:48096cfdea78 798 lcd.cls();
lucasfontenla 42:48096cfdea78 799 lcd.locate(0,0);
lucasfontenla 42:48096cfdea78 800 lcd.printf("Modo WiFi Ativo");
lucasfontenla 43:4684aba69ba6 801 movercursor(3,3,5);
lucasfontenla 43:4684aba69ba6 802 lcd.locate(6,3);
lucasfontenla 43:4684aba69ba6 803 lcd.printf("Cancelar");
lucasfontenla 42:48096cfdea78 804 }
claraluques 18:5338b83b4de9 805
claraluques 18:5338b83b4de9 806 //func 14
claraluques 36:12d202855231 807 void limparcola(){
claraluques 36:12d202855231 808 lcd.cls();
claraluques 36:12d202855231 809 bot_enter = penter;
claraluques 36:12d202855231 810 lcd.locate(2,0);
claraluques 36:12d202855231 811 lcd.printf("Deseja limpar a");
claraluques 36:12d202855231 812 lcd.locate(2,1);
claraluques 36:12d202855231 813 lcd.printf("seringa de cola?");
claraluques 36:12d202855231 814 lcd.locate(6,2);
claraluques 36:12d202855231 815 lcd.printf("Sim");
claraluques 36:12d202855231 816 lcd.locate(6,3);
claraluques 36:12d202855231 817 lcd.printf("Cancelar");
claraluques 36:12d202855231 818 movercursor(2,3,5);
claraluques 36:12d202855231 819 if (bot_enter!=penter) {
claraluques 36:12d202855231 820 if (linha==2){
claraluques 36:12d202855231 821 printf("sim home\n\r");
claraluques 36:12d202855231 822 func = 12;
claraluques 36:12d202855231 823 }
claraluques 36:12d202855231 824 else if (linha==3){
claraluques 36:12d202855231 825 func = 4;
claraluques 36:12d202855231 826 }
claraluques 36:12d202855231 827 }
claraluques 36:12d202855231 828 }
claraluques 18:5338b83b4de9 829
claraluques 18:5338b83b4de9 830 //func 15
claraluques 27:83d2a710cc2f 831 void gohome(){
lucasfontenla 42:48096cfdea78 832
claraluques 27:83d2a710cc2f 833 lcd.cls();
claraluques 36:12d202855231 834 //escrever a tela
claraluques 27:83d2a710cc2f 835 machine.machine_zero();
claraluques 27:83d2a710cc2f 836 while (home == 1){
lucasfontenla 42:48096cfdea78 837 if(emerg){
lucasfontenla 42:48096cfdea78 838 func = 31;
lucasfontenla 42:48096cfdea78 839 break;
lucasfontenla 42:48096cfdea78 840 }
claraluques 27:83d2a710cc2f 841 if (Mach.readable()){
claraluques 27:83d2a710cc2f 842 readSerial();
claraluques 27:83d2a710cc2f 843 }
claraluques 27:83d2a710cc2f 844 }
claraluques 27:83d2a710cc2f 845 func = 19;
claraluques 27:83d2a710cc2f 846 }
claraluques 18:5338b83b4de9 847
claraluques 18:5338b83b4de9 848 //func 16
claraluques 18:5338b83b4de9 849 void limitepontos(){ //tela para quando acabam os pontos
lucasfontenla 42:48096cfdea78 850
claraluques 18:5338b83b4de9 851 lcd.cls();
claraluques 26:59081efdce79 852 lcd.printf(" Voce atingiu o n%c maximo de pontos", 0xDF);
claraluques 26:59081efdce79 853 lcd.locate(9,2);
claraluques 26:59081efdce79 854 lcd.printf("(%d)", pontos);
claraluques 18:5338b83b4de9 855 lcd.locate(0,3);
claraluques 18:5338b83b4de9 856 lcd.printf("Conclua seu programa");
claraluques 18:5338b83b4de9 857 wait(1);
claraluques 18:5338b83b4de9 858 func = 2;
claraluques 21:7603fe283ba4 859 }
claraluques 26:59081efdce79 860
claraluques 26:59081efdce79 861 //func 17
claraluques 26:59081efdce79 862 void salvarprog(){
lucasfontenla 42:48096cfdea78 863
claraluques 26:59081efdce79 864 lcd.cls();
claraluques 31:77eb51d4ee18 865 bot_enter = penter;
claraluques 35:11e3f3c8cb4e 866 nome = "";
claraluques 30:614dcbd74cdc 867 lcd.printf("Voce deseja salvar este programa?");
claraluques 35:11e3f3c8cb4e 868 lcd.locate(8,2);
claraluques 26:59081efdce79 869 lcd.printf("Sim");
claraluques 35:11e3f3c8cb4e 870 lcd.locate(8,3);
claraluques 26:59081efdce79 871 lcd.printf("Nao");
claraluques 35:11e3f3c8cb4e 872 movercursor(2,3,7);
claraluques 26:59081efdce79 873 if (bot_enter!=penter){
claraluques 26:59081efdce79 874 if (linha==2){
claraluques 26:59081efdce79 875 salvar = 1;
claraluques 32:c293f89170b0 876 //printf("salvar\n\r");
claraluques 31:77eb51d4ee18 877 func = 20;
claraluques 26:59081efdce79 878 }
claraluques 26:59081efdce79 879 if (linha==3){
claraluques 26:59081efdce79 880 salvar = 0;
claraluques 31:77eb51d4ee18 881 func = 7;
claraluques 26:59081efdce79 882 }
claraluques 26:59081efdce79 883 }
claraluques 26:59081efdce79 884 }
claraluques 27:83d2a710cc2f 885
claraluques 27:83d2a710cc2f 886 //func 18
claraluques 27:83d2a710cc2f 887 void ctzhome(){
lucasfontenla 42:48096cfdea78 888
claraluques 27:83d2a710cc2f 889 lcd.cls();
claraluques 31:77eb51d4ee18 890 bot_enter = penter;
claraluques 27:83d2a710cc2f 891 lcd.printf("Certifique-se de que a maquina pode se");
claraluques 27:83d2a710cc2f 892 lcd.locate(5,2);
claraluques 27:83d2a710cc2f 893 lcd.printf("movimentar");
claraluques 27:83d2a710cc2f 894 lcd.locate(9,3);
claraluques 27:83d2a710cc2f 895 lcd.printf("OK");
claraluques 27:83d2a710cc2f 896 movercursor(3,3,8);
claraluques 27:83d2a710cc2f 897 if (bot_enter!=penter){
claraluques 27:83d2a710cc2f 898 if (linha==3){
claraluques 36:12d202855231 899 home = 1;
claraluques 27:83d2a710cc2f 900 func = 15;
claraluques 27:83d2a710cc2f 901 }
claraluques 27:83d2a710cc2f 902 }
claraluques 27:83d2a710cc2f 903 }
claraluques 27:83d2a710cc2f 904
claraluques 27:83d2a710cc2f 905 //func 19
claraluques 27:83d2a710cc2f 906 void origem(){
lucasfontenla 42:48096cfdea78 907
claraluques 27:83d2a710cc2f 908 lcd.cls();
claraluques 27:83d2a710cc2f 909 lcd.locate(5,1);
claraluques 27:83d2a710cc2f 910 lcd.printf("A MAQUINA");
claraluques 27:83d2a710cc2f 911 lcd.locate(2,2);
claraluques 27:83d2a710cc2f 912 lcd.printf("ESTA NA ORIGEM");
claraluques 27:83d2a710cc2f 913 wait(1);
claraluques 27:83d2a710cc2f 914 func = 4;
claraluques 27:83d2a710cc2f 915 }
claraluques 26:59081efdce79 916
claraluques 30:614dcbd74cdc 917 //func 20
claraluques 30:614dcbd74cdc 918 void nomeprog(){
lucasfontenla 42:48096cfdea78 919
claraluques 36:12d202855231 920 lcd.cls();
claraluques 32:c293f89170b0 921 sair = 0;
claraluques 36:12d202855231 922 bot_enter = penter;
claraluques 33:0149960e95c1 923 voltar = 0;
claraluques 37:30f7dd6f2ea5 924 lcd.locate(2,0);
claraluques 35:11e3f3c8cb4e 925 lcd.printf("Escolha o nome:");
claraluques 36:12d202855231 926 lcd.locate(0,3);
claraluques 35:11e3f3c8cb4e 927 lcd.printf("Segure OK p/ salvar");
claraluques 36:12d202855231 928 coluna = 1;
claraluques 32:c293f89170b0 929 escrever();
claraluques 32:c293f89170b0 930 if (sair==1){
claraluques 34:7c7fac39a250 931 lcd.cls();
claraluques 36:12d202855231 932 lcd.locate(10,3);
claraluques 36:12d202855231 933 lcd.printf("Aguarde...");
claraluques 33:0149960e95c1 934 int len = nome.length();
claraluques 33:0149960e95c1 935 nome.erase(len - 1);
claraluques 32:c293f89170b0 936 nome.append(".txt");
claraluques 35:11e3f3c8cb4e 937 //printf("Nome do programa: %s\n\r", nome);
claraluques 32:c293f89170b0 938 int verificar = sdcard.check_name_available(nome);
claraluques 35:11e3f3c8cb4e 939 //printf("Status do nome: %d\n\r", verificar);
claraluques 34:7c7fac39a250 940 if (verificar){
claraluques 36:12d202855231 941 /*lcd.locate(5,1);
claraluques 35:11e3f3c8cb4e 942 lcd.printf("Salvando");
claraluques 35:11e3f3c8cb4e 943 lcd.locate(5,2);
claraluques 36:12d202855231 944 lcd.printf("%s", nome);*/
claraluques 32:c293f89170b0 945 file_name = nome;
claraluques 32:c293f89170b0 946 machine.get_saved_points();
claraluques 34:7c7fac39a250 947 while(1){
claraluques 34:7c7fac39a250 948 if(Mach.readable()){
claraluques 34:7c7fac39a250 949 readSerial();
claraluques 34:7c7fac39a250 950 break;
claraluques 34:7c7fac39a250 951 }
claraluques 34:7c7fac39a250 952 }
claraluques 35:11e3f3c8cb4e 953 //printf("ok\n\r");
claraluques 36:12d202855231 954 func = 25;
claraluques 32:c293f89170b0 955 }
claraluques 34:7c7fac39a250 956 else if (!verificar){
claraluques 35:11e3f3c8cb4e 957 func = 21;
claraluques 35:11e3f3c8cb4e 958 //printf("nok\n\r");
claraluques 32:c293f89170b0 959 }
claraluques 30:614dcbd74cdc 960 }
claraluques 30:614dcbd74cdc 961 }
claraluques 30:614dcbd74cdc 962
claraluques 32:c293f89170b0 963 //func 21
claraluques 32:c293f89170b0 964 void mudar_nome(){
lucasfontenla 42:48096cfdea78 965
claraluques 32:c293f89170b0 966 lcd.cls();
claraluques 35:11e3f3c8cb4e 967 lcd.printf("ESCOLHA OUTRO NOME");
claraluques 32:c293f89170b0 968 wait(1);
claraluques 32:c293f89170b0 969 func = 20;
claraluques 32:c293f89170b0 970 }
claraluques 32:c293f89170b0 971
claraluques 33:0149960e95c1 972 //func 22
claraluques 33:0149960e95c1 973 void salva2(){
lucasfontenla 42:48096cfdea78 974
claraluques 33:0149960e95c1 975 lcd.cls();
claraluques 33:0149960e95c1 976 lcd.locate(0,0);
claraluques 33:0149960e95c1 977 lcd.printf("Voce salvou o ponto:");
claraluques 33:0149960e95c1 978 lcd.locate(5,1);
claraluques 33:0149960e95c1 979 lcd.printf("X:");
claraluques 33:0149960e95c1 980 lcd.locate(5,2);
claraluques 33:0149960e95c1 981 lcd.printf("Y:");
claraluques 33:0149960e95c1 982 lcd.locate(5,3);
claraluques 33:0149960e95c1 983 lcd.printf("Z:");
claraluques 33:0149960e95c1 984 //x
claraluques 33:0149960e95c1 985 if (cx<=-1 && cx>=-9){
claraluques 33:0149960e95c1 986 lcd.locate(7,1);
claraluques 33:0149960e95c1 987 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 988 }
claraluques 33:0149960e95c1 989 if (cx<=-10 && cx>=-99){
claraluques 33:0149960e95c1 990 lcd.locate(7,1);
claraluques 33:0149960e95c1 991 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 992 }
claraluques 33:0149960e95c1 993 if (cx<=-100){
claraluques 33:0149960e95c1 994 lcd.locate(7,1);
claraluques 33:0149960e95c1 995 lcd.printf("%.2f ", cx);
claraluques 33:0149960e95c1 996 }
claraluques 33:0149960e95c1 997 if (cx<=9 && cx>=0){
claraluques 33:0149960e95c1 998 lcd.locate(7,1);
claraluques 33:0149960e95c1 999 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 1000 }
claraluques 33:0149960e95c1 1001 if (cx>=10 && cx<=99){
claraluques 33:0149960e95c1 1002 lcd.locate(7,1);
claraluques 33:0149960e95c1 1003 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 1004 }
claraluques 33:0149960e95c1 1005 if (cx>=100){
claraluques 33:0149960e95c1 1006 lcd.locate(7,1);
claraluques 33:0149960e95c1 1007 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 1008 }
claraluques 33:0149960e95c1 1009 //y
claraluques 33:0149960e95c1 1010 if (cy<=-1 && cy>=-9){
claraluques 33:0149960e95c1 1011 lcd.locate(7,2);
claraluques 33:0149960e95c1 1012 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 1013 }
claraluques 33:0149960e95c1 1014 if (cy<=-10 && cx>=-99){
claraluques 33:0149960e95c1 1015 lcd.locate(7,2);
claraluques 33:0149960e95c1 1016 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 1017 }
claraluques 33:0149960e95c1 1018 if (cy<=-100){
claraluques 33:0149960e95c1 1019 lcd.locate(7,2);
claraluques 33:0149960e95c1 1020 lcd.printf("%.2f ", cy);
claraluques 33:0149960e95c1 1021 }
claraluques 33:0149960e95c1 1022 if (cy<=9 && cy>=0){
claraluques 33:0149960e95c1 1023 lcd.locate(7,2);
claraluques 33:0149960e95c1 1024 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 1025 }
claraluques 33:0149960e95c1 1026 if (cy>=10 && cx<=99){
claraluques 33:0149960e95c1 1027 lcd.locate(7,2);
claraluques 33:0149960e95c1 1028 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 1029 }
claraluques 33:0149960e95c1 1030 if (cy>=100){
claraluques 33:0149960e95c1 1031 lcd.locate(7,2);
claraluques 33:0149960e95c1 1032 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 1033 }
claraluques 33:0149960e95c1 1034 //z
claraluques 33:0149960e95c1 1035 if (cz<=-1 && cz>=-9){
claraluques 33:0149960e95c1 1036 lcd.locate(7,3);
claraluques 33:0149960e95c1 1037 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 1038 }
claraluques 33:0149960e95c1 1039 if (cz<=-10 && cx>=-99){
claraluques 33:0149960e95c1 1040 lcd.locate(7,3);
claraluques 33:0149960e95c1 1041 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 1042 }
claraluques 33:0149960e95c1 1043 if (cz<=-100){
claraluques 33:0149960e95c1 1044 lcd.locate(7,3);
claraluques 33:0149960e95c1 1045 lcd.printf("%.2f ", cz);
claraluques 33:0149960e95c1 1046 }
claraluques 33:0149960e95c1 1047 if (cz<=9 && cz>=0){
claraluques 33:0149960e95c1 1048 lcd.locate(7,3);
claraluques 33:0149960e95c1 1049 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 1050 }
claraluques 33:0149960e95c1 1051 if (cz>=10 && cx<=99){
claraluques 33:0149960e95c1 1052 lcd.locate(7,3);
claraluques 33:0149960e95c1 1053 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 1054 }
claraluques 33:0149960e95c1 1055 if (cz>=100){
claraluques 33:0149960e95c1 1056 lcd.locate(7,3);
claraluques 33:0149960e95c1 1057 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 1058 }
claraluques 33:0149960e95c1 1059 wait(1);
claraluques 38:6c94230e5ecd 1060 func = 2;
claraluques 33:0149960e95c1 1061 }
claraluques 35:11e3f3c8cb4e 1062
claraluques 35:11e3f3c8cb4e 1063 //func 23
claraluques 35:11e3f3c8cb4e 1064 void deletepoint(){
lucasfontenla 42:48096cfdea78 1065
claraluques 35:11e3f3c8cb4e 1066 lcd.cls();
claraluques 35:11e3f3c8cb4e 1067 lcd.locate(1,1);
claraluques 35:11e3f3c8cb4e 1068 lcd.printf("Você removeu o ultimo ponto");
claraluques 35:11e3f3c8cb4e 1069 //lcd.locate(2,2);
claraluques 35:11e3f3c8cb4e 1070 //lcd.printf("ESTA NA ORIGEM");
claraluques 35:11e3f3c8cb4e 1071 wait(1);
claraluques 35:11e3f3c8cb4e 1072 func = 2;
claraluques 35:11e3f3c8cb4e 1073 }
claraluques 33:0149960e95c1 1074
claraluques 35:11e3f3c8cb4e 1075 //func 24
claraluques 35:11e3f3c8cb4e 1076 void sempontos(){
lucasfontenla 42:48096cfdea78 1077
claraluques 35:11e3f3c8cb4e 1078 lcd.cls();
claraluques 35:11e3f3c8cb4e 1079 lcd.locate(1,1);
claraluques 35:11e3f3c8cb4e 1080 lcd.printf("Nao existem pontos para remover");
claraluques 35:11e3f3c8cb4e 1081 //lcd.locate(2,2);
claraluques 35:11e3f3c8cb4e 1082 //lcd.printf("ESTA NA ORIGEM");
claraluques 35:11e3f3c8cb4e 1083 wait(1);
claraluques 35:11e3f3c8cb4e 1084 func = 2;
claraluques 35:11e3f3c8cb4e 1085 }
claraluques 35:11e3f3c8cb4e 1086
claraluques 36:12d202855231 1087 //func 25
claraluques 36:12d202855231 1088 void salvando_arq(){
lucasfontenla 42:48096cfdea78 1089
claraluques 36:12d202855231 1090 lcd.locate(5,1);
claraluques 36:12d202855231 1091 lcd.printf("Salvando");
claraluques 37:30f7dd6f2ea5 1092 lcd.locate(1,2);
claraluques 36:12d202855231 1093 lcd.printf("%s", nome);
claraluques 36:12d202855231 1094 wait(1);
claraluques 36:12d202855231 1095 func = 7;
claraluques 36:12d202855231 1096 }
claraluques 36:12d202855231 1097
claraluques 36:12d202855231 1098 //func 26
claraluques 36:12d202855231 1099 void exec_auto(){
lucasfontenla 42:48096cfdea78 1100
claraluques 36:12d202855231 1101 lcd.cls();
claraluques 36:12d202855231 1102 bot_enter = penter;
claraluques 36:12d202855231 1103 lcd.locate(2,0);
claraluques 37:30f7dd6f2ea5 1104 lcd.printf("DESEJA EXECUTAR?");
claraluques 36:12d202855231 1105 lcd.locate(3,1);
claraluques 36:12d202855231 1106 lcd.printf("%s", arquivo);
claraluques 36:12d202855231 1107 lcd.locate(6,2);
claraluques 36:12d202855231 1108 lcd.printf("Sim");
claraluques 36:12d202855231 1109 lcd.locate(6,3);
claraluques 36:12d202855231 1110 lcd.printf("Cancelar");
claraluques 36:12d202855231 1111 movercursor(2,3,5);
claraluques 36:12d202855231 1112 if (bot_enter!=penter) {
claraluques 36:12d202855231 1113 if (linha==2){
claraluques 36:12d202855231 1114 //machine.kill_jog();
claraluques 36:12d202855231 1115 wait(0.1);
claraluques 36:12d202855231 1116 //machine.start_program();
claraluques 36:12d202855231 1117 exec = 1;
claraluques 36:12d202855231 1118 func = 9;
claraluques 36:12d202855231 1119 }
claraluques 36:12d202855231 1120 else if (linha==3){
claraluques 36:12d202855231 1121 exec = 0;
claraluques 36:12d202855231 1122 func = 1;
claraluques 36:12d202855231 1123 }
claraluques 36:12d202855231 1124 }
claraluques 36:12d202855231 1125 }
claraluques 36:12d202855231 1126
claraluques 36:12d202855231 1127 //func 27
claraluques 36:12d202855231 1128 void indo_limpeza(){
lucasfontenla 42:48096cfdea78 1129
claraluques 36:12d202855231 1130 lcd.cls();
claraluques 36:12d202855231 1131 lcd.locate(2,1);
claraluques 36:12d202855231 1132 printf("indo home\n\r");
claraluques 36:12d202855231 1133 lcd.printf("Movimentando...");
claraluques 36:12d202855231 1134 machine.machine_zero();
claraluques 36:12d202855231 1135 while (home == 1){
lucasfontenla 42:48096cfdea78 1136 if(emerg){
lucasfontenla 42:48096cfdea78 1137 func = 31;
lucasfontenla 42:48096cfdea78 1138 break;
lucasfontenla 42:48096cfdea78 1139 }
claraluques 36:12d202855231 1140 if (Mach.readable()){
claraluques 36:12d202855231 1141 readSerial();
claraluques 36:12d202855231 1142 }
claraluques 36:12d202855231 1143 }
claraluques 36:12d202855231 1144 func = 28;
claraluques 36:12d202855231 1145 }
claraluques 36:12d202855231 1146
claraluques 36:12d202855231 1147 //func 28
claraluques 36:12d202855231 1148 void chegou_limpeza(){
lucasfontenla 42:48096cfdea78 1149
claraluques 36:12d202855231 1150 lcd.cls();
claraluques 36:12d202855231 1151 bot_enter = penter;
claraluques 36:12d202855231 1152 printf("foi home\n\r");
claraluques 36:12d202855231 1153 lcd.locate(0,0);
claraluques 36:12d202855231 1154 lcd.printf("Posicione o recipiente");
claraluques 36:12d202855231 1155 lcd.locate(3,1);
claraluques 36:12d202855231 1156 lcd.printf("abaixo do bico.");
claraluques 36:12d202855231 1157 lcd.locate(9,3);
claraluques 36:12d202855231 1158 lcd.printf("OK");
claraluques 36:12d202855231 1159 movercursor(3,3,8);
claraluques 36:12d202855231 1160 if (bot_enter!=penter){
claraluques 36:12d202855231 1161 if (linha==3){
claraluques 36:12d202855231 1162 printf("vai cola\n\r");
claraluques 36:12d202855231 1163 limpar_cola = 1;
claraluques 36:12d202855231 1164 func = 29;
claraluques 36:12d202855231 1165 }
claraluques 36:12d202855231 1166 }
claraluques 36:12d202855231 1167
claraluques 36:12d202855231 1168 }
claraluques 36:12d202855231 1169
claraluques 36:12d202855231 1170 //func 29
claraluques 36:12d202855231 1171 void limpando(){
lucasfontenla 42:48096cfdea78 1172
claraluques 36:12d202855231 1173 lcd.cls();
claraluques 36:12d202855231 1174 lcd.locate(3,1);
claraluques 36:12d202855231 1175 printf("indo cola\n\r");
claraluques 36:12d202855231 1176 lcd.printf("Limpando...");
claraluques 36:12d202855231 1177 machine.clean_glue();
claraluques 36:12d202855231 1178 while (limpar_cola == 1){
lucasfontenla 42:48096cfdea78 1179 if(emerg){
lucasfontenla 42:48096cfdea78 1180 func = 31;
lucasfontenla 42:48096cfdea78 1181 break;
lucasfontenla 42:48096cfdea78 1182 }
claraluques 36:12d202855231 1183 if (Mach.readable()){
claraluques 36:12d202855231 1184 readSerial();
claraluques 36:12d202855231 1185 }
claraluques 36:12d202855231 1186 }
claraluques 36:12d202855231 1187 func = 30;
claraluques 36:12d202855231 1188 }
claraluques 36:12d202855231 1189
claraluques 36:12d202855231 1190 //func 30
claraluques 36:12d202855231 1191 void limpeza_completa(){
lucasfontenla 42:48096cfdea78 1192
claraluques 36:12d202855231 1193 lcd.cls();
claraluques 36:12d202855231 1194 lcd.locate(1,1);
claraluques 36:12d202855231 1195 printf("foi cola\n\r");
claraluques 36:12d202855231 1196 lcd.printf("Limpeza completa!");
claraluques 36:12d202855231 1197 wait(1);
claraluques 36:12d202855231 1198 func = 4;
claraluques 36:12d202855231 1199 }
lucasfontenla 43:4684aba69ba6 1200
lucasfontenla 43:4684aba69ba6 1201 //func 31
lucasfontenla 43:4684aba69ba6 1202 void tela_emergencia(void){
lucasfontenla 43:4684aba69ba6 1203
lucasfontenla 43:4684aba69ba6 1204 lcd.cls();
lucasfontenla 43:4684aba69ba6 1205 lcd.locate(0,1);
lucasfontenla 43:4684aba69ba6 1206 lcd.printf("BOTAO DE EMERGENCIA");
lucasfontenla 43:4684aba69ba6 1207 lcd.locate(4,2);
lucasfontenla 43:4684aba69ba6 1208 lcd.printf("PRESSIONADO.");
lucasfontenla 43:4684aba69ba6 1209 printf("Waiting release...");
lucasfontenla 43:4684aba69ba6 1210 func = 1;
lucasfontenla 43:4684aba69ba6 1211 while(!emergencia.read());
lucasfontenla 43:4684aba69ba6 1212 }
claraluques 36:12d202855231 1213
claraluques 36:12d202855231 1214
claraluques 35:11e3f3c8cb4e 1215 //função ler arquivos
claraluques 35:11e3f3c8cb4e 1216 void arquivos(){
lucasfontenla 42:48096cfdea78 1217
claraluques 38:6c94230e5ecd 1218 exec = 0;
claraluques 35:11e3f3c8cb4e 1219 int nomearq;
claraluques 35:11e3f3c8cb4e 1220 nomearq = sdcard.get_file_names();
claraluques 35:11e3f3c8cb4e 1221 int ftamanho = filenames.size();
claraluques 35:11e3f3c8cb4e 1222 int fmax = ftamanho - 1;
claraluques 35:11e3f3c8cb4e 1223 int fant = 1;
claraluques 35:11e3f3c8cb4e 1224 while (sair==0){
lucasfontenla 42:48096cfdea78 1225 if(emerg){
lucasfontenla 42:48096cfdea78 1226 func = 31;
lucasfontenla 42:48096cfdea78 1227 break;
lucasfontenla 42:48096cfdea78 1228 }
claraluques 38:6c94230e5ecd 1229 if (bot_cima==0){
claraluques 38:6c94230e5ecd 1230 fant = f;
claraluques 38:6c94230e5ecd 1231 f--;
claraluques 38:6c94230e5ecd 1232 if (f<0){
claraluques 38:6c94230e5ecd 1233 f = fmax;
claraluques 35:11e3f3c8cb4e 1234 }
claraluques 38:6c94230e5ecd 1235 bot_cima = 1;
claraluques 38:6c94230e5ecd 1236 }
claraluques 38:6c94230e5ecd 1237 if (bot_baixo==0){
claraluques 38:6c94230e5ecd 1238 fant = f;
claraluques 38:6c94230e5ecd 1239 f++;
claraluques 38:6c94230e5ecd 1240 if (f>fmax){
claraluques 38:6c94230e5ecd 1241 f = 0;
claraluques 35:11e3f3c8cb4e 1242 }
claraluques 38:6c94230e5ecd 1243 bot_baixo = 1;
claraluques 38:6c94230e5ecd 1244 }
claraluques 38:6c94230e5ecd 1245 arquivo = filenames[f];
claraluques 38:6c94230e5ecd 1246 if (f!=fant){
claraluques 38:6c94230e5ecd 1247 lcd.locate(0,1);
claraluques 38:6c94230e5ecd 1248 lcd.printf(" ");
claraluques 38:6c94230e5ecd 1249 lcd.locate(0,2);
claraluques 38:6c94230e5ecd 1250 lcd.printf(" ");
claraluques 38:6c94230e5ecd 1251 lcd.locate(0,1);
claraluques 38:6c94230e5ecd 1252 lcd.printf("%s", arquivo);
claraluques 38:6c94230e5ecd 1253 }
claraluques 38:6c94230e5ecd 1254 if (bot_enter!=penter){
claraluques 38:6c94230e5ecd 1255 lcd.locate(10,3);
claraluques 38:6c94230e5ecd 1256 lcd.printf("Aguarde...");
claraluques 38:6c94230e5ecd 1257 sdcard.send_gcode(arquivo);
claraluques 38:6c94230e5ecd 1258 printf("send gcode, %s\n\r", arquivo);
claraluques 38:6c94230e5ecd 1259 func = 26;
claraluques 38:6c94230e5ecd 1260 break;
claraluques 38:6c94230e5ecd 1261 }
claraluques 35:11e3f3c8cb4e 1262 fant = f;
claraluques 35:11e3f3c8cb4e 1263 }
claraluques 35:11e3f3c8cb4e 1264 }
claraluques 35:11e3f3c8cb4e 1265
claraluques 35:11e3f3c8cb4e 1266
claraluques 30:614dcbd74cdc 1267 //função para escrever nome arquivo
claraluques 32:c293f89170b0 1268 void escrever(){
lucasfontenla 42:48096cfdea78 1269
claraluques 32:c293f89170b0 1270 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 1271 '0','1','2','3','4','5','6','7','8','9','-','_'};
claraluques 30:614dcbd74cdc 1272 int imax = 37;
claraluques 30:614dcbd74cdc 1273 int imin = 0;
claraluques 36:12d202855231 1274 nome = "";
claraluques 33:0149960e95c1 1275 //lcd.locate(1,1);
claraluques 32:c293f89170b0 1276 while (sair==0){
lucasfontenla 42:48096cfdea78 1277 if(emerg){
lucasfontenla 42:48096cfdea78 1278 func = 31;
lucasfontenla 42:48096cfdea78 1279 break;
lucasfontenla 42:48096cfdea78 1280 }
claraluques 33:0149960e95c1 1281 voltar = 0;
claraluques 32:c293f89170b0 1282 int i = 0;
claraluques 33:0149960e95c1 1283 //lcd.locate(0,2);
claraluques 33:0149960e95c1 1284 //lcd.setCursor(TextLCD::CurOn_BlkOn);
claraluques 32:c293f89170b0 1285 lcd.locate(1,1);
claraluques 32:c293f89170b0 1286 lcd.printf("%s", nome);
claraluques 32:c293f89170b0 1287 while (bot_enter==penter){
lucasfontenla 42:48096cfdea78 1288 if(emerg){
lucasfontenla 42:48096cfdea78 1289 func = 31;
lucasfontenla 42:48096cfdea78 1290 break;
lucasfontenla 42:48096cfdea78 1291 }
claraluques 32:c293f89170b0 1292 if (bot_cima == 0){
claraluques 32:c293f89170b0 1293 if (i==imin){
claraluques 32:c293f89170b0 1294 i = imax;
claraluques 32:c293f89170b0 1295 }
claraluques 32:c293f89170b0 1296 else if (i>imin && i<=imax){
claraluques 32:c293f89170b0 1297 i--;
claraluques 32:c293f89170b0 1298 }
claraluques 32:c293f89170b0 1299 bot_cima = 1;
claraluques 31:77eb51d4ee18 1300 }
claraluques 32:c293f89170b0 1301 else if (bot_baixo == 0){
claraluques 32:c293f89170b0 1302 if (i==imax){
claraluques 32:c293f89170b0 1303 i = imin;
claraluques 32:c293f89170b0 1304 }
claraluques 32:c293f89170b0 1305 else if (i<imax && i>=imin){
claraluques 32:c293f89170b0 1306 i++;
claraluques 32:c293f89170b0 1307 }
claraluques 32:c293f89170b0 1308 bot_baixo = 1;
claraluques 32:c293f89170b0 1309 }
claraluques 32:c293f89170b0 1310 lcd.locate(coluna, 1);
claraluques 32:c293f89170b0 1311 lcd.printf("%c", alfabeto[i]);
claraluques 33:0149960e95c1 1312 lcd.locate(coluna,2);
claraluques 33:0149960e95c1 1313 lcd.printf("%c", 0x5E);
claraluques 34:7c7fac39a250 1314
claraluques 35:11e3f3c8cb4e 1315 if(timer.read() > 1.0){
claraluques 34:7c7fac39a250 1316 sair = 1;
claraluques 34:7c7fac39a250 1317 printf("SAINDO\n\r");
claraluques 34:7c7fac39a250 1318 timer.reset();
claraluques 34:7c7fac39a250 1319 timer.stop();
claraluques 34:7c7fac39a250 1320 break;
claraluques 34:7c7fac39a250 1321 }
claraluques 35:11e3f3c8cb4e 1322 if(timer2.read() > 1.0){
claraluques 34:7c7fac39a250 1323 voltar = 1;
claraluques 34:7c7fac39a250 1324 printf("APAGANDO\n\r");
claraluques 34:7c7fac39a250 1325 timer2.reset();
claraluques 34:7c7fac39a250 1326 timer2.stop();
claraluques 34:7c7fac39a250 1327 break;
claraluques 34:7c7fac39a250 1328 }
claraluques 34:7c7fac39a250 1329 }
claraluques 34:7c7fac39a250 1330
claraluques 37:30f7dd6f2ea5 1331 if (nome.size()<14 && coluna<=14){
claraluques 32:c293f89170b0 1332 char carac = alfabeto[i];
claraluques 32:c293f89170b0 1333 nome.push_back(carac);
claraluques 32:c293f89170b0 1334 bot_enter = penter;
claraluques 37:30f7dd6f2ea5 1335 if (coluna<=14){
claraluques 33:0149960e95c1 1336 if (voltar==1){
claraluques 35:11e3f3c8cb4e 1337 //printf("voltar\n\r");
claraluques 33:0149960e95c1 1338 if (coluna>1){
claraluques 33:0149960e95c1 1339 //nome[coluna-1]="";
claraluques 33:0149960e95c1 1340 lcd.locate(coluna, 1);
claraluques 33:0149960e95c1 1341 lcd.printf(" ");
claraluques 33:0149960e95c1 1342 lcd.locate(coluna, 2);
claraluques 33:0149960e95c1 1343 lcd.printf(" ");
claraluques 33:0149960e95c1 1344 coluna--;
claraluques 33:0149960e95c1 1345 nome.erase(coluna-1);
claraluques 33:0149960e95c1 1346 lcd.locate(coluna, 2);
claraluques 33:0149960e95c1 1347 lcd.printf("%c", 0x5E);
claraluques 33:0149960e95c1 1348 }
claraluques 33:0149960e95c1 1349 }
claraluques 37:30f7dd6f2ea5 1350 if (voltar==0 && coluna<14){
claraluques 33:0149960e95c1 1351 lcd.locate(coluna, 2);
claraluques 33:0149960e95c1 1352 lcd.printf(" ");
claraluques 33:0149960e95c1 1353 coluna++;
claraluques 33:0149960e95c1 1354 lcd.locate(coluna, 2);
claraluques 33:0149960e95c1 1355 lcd.printf("%c", 0x5E);
claraluques 33:0149960e95c1 1356 }
claraluques 33:0149960e95c1 1357 }
claraluques 32:c293f89170b0 1358 }
claraluques 30:614dcbd74cdc 1359 }
claraluques 30:614dcbd74cdc 1360 }
lucasfontenla 42:48096cfdea78 1361
lucasfontenla 43:4684aba69ba6 1362
claraluques 30:614dcbd74cdc 1363
claraluques 26:59081efdce79 1364 //função para ler os pontos
claraluques 21:7603fe283ba4 1365 void readSerial(){
claraluques 21:7603fe283ba4 1366 char recv;
lucasfontenla 24:46c3be0e8273 1367 int points = 0;
lucasfontenla 24:46c3be0e8273 1368 int pointx = 0;
lucasfontenla 24:46c3be0e8273 1369 int pointy = 0;
lucasfontenla 24:46c3be0e8273 1370 int pointz = 0;
claraluques 27:83d2a710cc2f 1371 int action = 0;
lucasfontenla 29:558eccdfc079 1372 int uploading_saved = 0;
lucasfontenla 24:46c3be0e8273 1373 string coordx = "";
lucasfontenla 24:46c3be0e8273 1374 string coordy = "";
lucasfontenla 24:46c3be0e8273 1375 string coordz = "";
lucasfontenla 29:558eccdfc079 1376 string recv_buffer;
claraluques 34:7c7fac39a250 1377
claraluques 34:7c7fac39a250 1378 int status;
claraluques 26:59081efdce79 1379
claraluques 32:c293f89170b0 1380
claraluques 21:7603fe283ba4 1381 while(1){
claraluques 21:7603fe283ba4 1382 recv = Mach.getc();
claraluques 34:7c7fac39a250 1383
lucasfontenla 42:48096cfdea78 1384 if(emerg){
lucasfontenla 42:48096cfdea78 1385 func = 31;
lucasfontenla 42:48096cfdea78 1386 break;
lucasfontenla 42:48096cfdea78 1387 }
lucasfontenla 42:48096cfdea78 1388
claraluques 32:c293f89170b0 1389 if (recv == 'a'){
claraluques 27:83d2a710cc2f 1390 home = 0;
claraluques 27:83d2a710cc2f 1391 exec = 0;
claraluques 36:12d202855231 1392 limpar_cola = 0;
claraluques 36:12d202855231 1393 printf("oi\n\r");
claraluques 27:83d2a710cc2f 1394 action = 1;
lucasfontenla 41:a1ab19cc1387 1395 WiFi.putc('ax');
claraluques 34:7c7fac39a250 1396 }
claraluques 34:7c7fac39a250 1397
lucasfontenla 24:46c3be0e8273 1398 if (recv == 'p'){
claraluques 21:7603fe283ba4 1399 points = 1;
claraluques 38:6c94230e5ecd 1400 printf("p\n\r");
claraluques 34:7c7fac39a250 1401 }
claraluques 34:7c7fac39a250 1402
lucasfontenla 29:558eccdfc079 1403 if(recv == 'u'){
lucasfontenla 29:558eccdfc079 1404 uploading_saved = 1;
lucasfontenla 29:558eccdfc079 1405 }
claraluques 34:7c7fac39a250 1406
claraluques 34:7c7fac39a250 1407 if(uploading_saved){
claraluques 34:7c7fac39a250 1408 if(recv == 'x'){
claraluques 34:7c7fac39a250 1409 printf("OK\n\r");
claraluques 34:7c7fac39a250 1410 status = sdcard.save_GCODE(file_name, recv_buffer);
claraluques 34:7c7fac39a250 1411 return;
claraluques 38:6c94230e5ecd 1412 }
claraluques 38:6c94230e5ecd 1413 else if(recv != 'u'){
claraluques 34:7c7fac39a250 1414 recv_buffer.push_back(recv);
claraluques 34:7c7fac39a250 1415 }
claraluques 34:7c7fac39a250 1416 }
claraluques 34:7c7fac39a250 1417
claraluques 34:7c7fac39a250 1418 if (points && !uploading_saved){
lucasfontenla 24:46c3be0e8273 1419 if (recv == 'X'){
claraluques 21:7603fe283ba4 1420 pointx = 1;
lucasfontenla 24:46c3be0e8273 1421 pointy = 0;
lucasfontenla 24:46c3be0e8273 1422 pointz = 0;
claraluques 21:7603fe283ba4 1423 }
lucasfontenla 24:46c3be0e8273 1424 else if (recv == 'Y'){
claraluques 21:7603fe283ba4 1425 pointy = 1;
lucasfontenla 24:46c3be0e8273 1426 pointx = 0;
lucasfontenla 24:46c3be0e8273 1427 pointz = 0;
claraluques 21:7603fe283ba4 1428 }
lucasfontenla 24:46c3be0e8273 1429 else if (recv == 'Z'){
claraluques 21:7603fe283ba4 1430 pointz = 1;
lucasfontenla 24:46c3be0e8273 1431 pointx = 0;
lucasfontenla 24:46c3be0e8273 1432 pointy = 0;
claraluques 23:19c67758032d 1433 }
claraluques 34:7c7fac39a250 1434 else if(recv == 'x'){
claraluques 23:19c67758032d 1435 cx = atof(coordx.c_str());
claraluques 23:19c67758032d 1436 cy = atof(coordy.c_str());
claraluques 23:19c67758032d 1437 cz = atof(coordz.c_str());
claraluques 23:19c67758032d 1438 printf("%s,%s,%s\n\r", coordx, coordy, coordz);
claraluques 21:7603fe283ba4 1439 break;
claraluques 21:7603fe283ba4 1440 }
claraluques 23:19c67758032d 1441 }
claraluques 34:7c7fac39a250 1442
claraluques 34:7c7fac39a250 1443 if(pointx){
lucasfontenla 24:46c3be0e8273 1444 if (recv!='X'){
claraluques 23:19c67758032d 1445 coordx.push_back(recv);
claraluques 23:19c67758032d 1446 }
claraluques 34:7c7fac39a250 1447 }
claraluques 23:19c67758032d 1448 if (pointy){
lucasfontenla 24:46c3be0e8273 1449 if (recv!='Y'){
claraluques 23:19c67758032d 1450 coordy.push_back(recv);
claraluques 23:19c67758032d 1451 }
claraluques 34:7c7fac39a250 1452 }
claraluques 23:19c67758032d 1453 if (pointz){
lucasfontenla 24:46c3be0e8273 1454 if (recv!='Z'){
claraluques 23:19c67758032d 1455 coordz.push_back(recv);
claraluques 23:19c67758032d 1456 }
claraluques 34:7c7fac39a250 1457 }
claraluques 27:83d2a710cc2f 1458 if (action){
claraluques 27:83d2a710cc2f 1459 if (recv=='x'){
claraluques 27:83d2a710cc2f 1460 break;
claraluques 27:83d2a710cc2f 1461 }
claraluques 34:7c7fac39a250 1462 }
lucasfontenla 43:4684aba69ba6 1463 t1.reset();
lucasfontenla 43:4684aba69ba6 1464 t1.start();
lucasfontenla 43:4684aba69ba6 1465 tempo = 2;
lucasfontenla 43:4684aba69ba6 1466 if (t1.read()>tempo){
lucasfontenla 43:4684aba69ba6 1467 break;
lucasfontenla 43:4684aba69ba6 1468 }
claraluques 21:7603fe283ba4 1469 }
lucasfontenla 29:558eccdfc079 1470 }
claraluques 23:19c67758032d 1471
claraluques 26:59081efdce79 1472
lucasfontenla 22:22ddb0b21d48 1473
claraluques 21:7603fe283ba4 1474 Menu(); //não apagar
lucasfontenla 17:0b8e489fac36 1475 };