Código para o menu no LCD

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Committer:
claraluques
Date:
Tue May 29 16:37:48 2018 +0000
Revision:
36:12d202855231
Parent:
35:11e3f3c8cb4e
Child:
37:30f7dd6f2ea5
limpar cola funionando

Who changed what in which revision?

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