Código para o menu no LCD
Dependencies: mbed SDFileSystemSD TextLCD
Fork of TextLCD_HelloWorld2 by
Diff: classes.h
- Revision:
- 34:7c7fac39a250
- Parent:
- 33:0149960e95c1
- Child:
- 35:11e3f3c8cb4e
--- a/classes.h Wed May 23 22:47:31 2018 +0000 +++ b/classes.h Mon May 28 12:01:21 2018 +0000 @@ -108,6 +108,14 @@ send("l"); } + void delete_last_saved(void){ + send("d"); + } + + void clean_glue(void){ + send("g"); + } + private: // PRIVATE FUNCTIONS ---------------------------------------------------------------------------------------------------------------------------------------- @@ -132,12 +140,15 @@ class SDCard{ public: int save_GCODE(string name, string gcode){ + printf("Saving: %s\n\r", name); + printf("Code: %s\n\r", gcode); + string file_path = "/sd/" + folderString + "/" + name; char * path = str_to_char(file_path); printf(path); - printf("going...\n\r"); + //printf("going...\n\r"); FILE *fp = fopen(path, "w"); @@ -151,21 +162,18 @@ fprintf(fp, write_file); fclose(fp); - printf("Cool\n\r"); + printf("Saving done!\n\r"); return 1; } int send_gcode(string name){ + printf("Sending gcode...\n\r"); string file_path = "/sd/" + folderString + "/" + name; char * path = str_to_char(file_path); unsigned char c; string buffer; - printf(path); - - printf("going...\n\r"); - FILE *fp = fopen(path, "r"); if(fp == NULL) { @@ -181,7 +189,6 @@ return 0; } c = fgetc(fp); - printf("%c\n\r", c); buffer.push_back(c); if(c == ';'){ @@ -191,13 +198,12 @@ } fclose(fp); - printf("%s\n\r", buffer); - machine.upload_gcode(buffer); return 1; } int check_name_available(string name){ + printf("Checking name...\r\n"); string file_path = "/sd/" + folderString; char * dir = str_to_char(file_path); struct dirent *dirp; @@ -206,13 +212,15 @@ printf(dir); dp = opendir(dir); - + + t.reset(); t.start(); while((dirp = readdir(dp)) != NULL) { if(t.read() > 2.0){ t.stop(); closedir(dp); + printf("Timeout\r\n"); return 0; } filename = (dirp->d_name); @@ -223,6 +231,7 @@ } } closedir(dp); + printf("Checked!\n\r"); return 1; } @@ -550,7 +559,7 @@ cola = 2; func = 2; } - machine.save_point(cola,2); + machine.save_point(cola,1.0); } } @@ -773,20 +782,30 @@ escrever(); //lcd.setCursor(TextLCD::CurOff_BlkOff); if (sair==1){ + lcd.cls(); + lcd.locate(5,1); + lcd.printf("Salvando"); + lcd.locate(5,2); + lcd.printf("%s", nome); int len = nome.length(); - printf("%d\n\r", len); nome.erase(len - 1); nome.append(".txt"); - printf("%s\n\r", nome); + printf("Nome do programa: %s\n\r", nome); int verificar = sdcard.check_name_available(nome); - printf("%d", verificar); - if (verificar==1){ + printf("Status do nome: %d\n\r", verificar); + if (verificar){ file_name = nome; machine.get_saved_points(); + while(1){ + if(Mach.readable()){ + readSerial(); + break; + } + } printf("ok\n\r"); func = 7; } - else if (verificar==0){ + else if (!verificar){ func = 20; printf("nok\n\r"); } @@ -927,11 +946,27 @@ lcd.printf("%c", alfabeto[i]); lcd.locate(coluna,2); lcd.printf("%c", 0x5E); - } + + if(timer.read() > 1.5){ + sair = 1; + printf("SAINDO\n\r"); + timer.reset(); + timer.stop(); + break; + } + if(timer2.read() > 1.5){ + voltar = 1; + printf("APAGANDO\n\r"); + timer2.reset(); + timer2.stop(); + break; + } + } + if (coluna<=18){ char carac = alfabeto[i]; nome.push_back(carac); - printf("%s\n\r", nome); + printf("Nome do programa (func - escrever): %s\n\r", nome); bot_enter = penter; if (coluna<18){ if (voltar==1){ @@ -977,24 +1012,39 @@ string coordy = ""; string coordz = ""; string recv_buffer; + + int status; while(1){ recv = Mach.getc(); - printf("%c\n\r", recv); + if (recv == 'a'){ home = 0; exec = 0; printf("oi\n\r"); action = 1; - } + } + if (recv == 'p'){ points = 1; - } + } + if(recv == 'u'){ uploading_saved = 1; } - if (points){ + + if(uploading_saved){ + if(recv == 'x'){ + printf("OK\n\r"); + status = sdcard.save_GCODE(file_name, recv_buffer); + return; + } else if(recv != 'u'){ + recv_buffer.push_back(recv); + } + } + + if (points && !uploading_saved){ if (recv == 'X'){ pointx = 1; pointy = 0; @@ -1010,7 +1060,7 @@ pointx = 0; pointy = 0; } - else if (recv == 'x'){ + else if(recv == 'x'){ cx = atof(coordx.c_str()); cy = atof(coordy.c_str()); cz = atof(coordz.c_str()); @@ -1018,32 +1068,27 @@ break; } } - if (pointx){ + + if(pointx){ if (recv!='X'){ coordx.push_back(recv); } - } + } if (pointy){ if (recv!='Y'){ coordy.push_back(recv); } - } + } if (pointz){ if (recv!='Z'){ coordz.push_back(recv); } - } + } if (action){ if (recv=='x'){ break; } - } - if(recv == 'x' && uploading_saved){ - sdcard.save_GCODE(file_name, recv_buffer); - break; - } else if(uploading_saved && recv != 'u'){ - recv_buffer.push_back(recv); - } + } } }