Código para o menu no LCD

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Committer:
claraluques
Date:
Mon Jun 04 19:40:07 2018 +0000
Revision:
38:6c94230e5ecd
Parent:
37:30f7dd6f2ea5
Child:
40:e70f811c69dc
OI LUKS

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