Grupo T / Mbed 2 deprecated LCD_GT

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Committer:
claraluques
Date:
Mon May 28 21:41:49 2018 +0000
Revision:
35:11e3f3c8cb4e
Parent:
34:7c7fac39a250
Child:
36:12d202855231
mandando gcode;

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