Código para o menu no LCD

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Committer:
lucasfontenla
Date:
Sat Jun 09 18:41:32 2018 +0000
Revision:
40:e70f811c69dc
Parent:
38:6c94230e5ecd
Child:
41:a1ab19cc1387
Emerg?ncia funcionado. Fun??o release do bot?o n?o est? 100%.

Who changed what in which revision?

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