Código para o menu no LCD

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Committer:
lucasfontenla
Date:
Mon May 28 11:44:24 2018 +0000
Revision:
48:0b0a4bb45a85
Parent:
47:ada3eb4c9a97
Oi;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lucasfontenla 48:0b0a4bb45a85 1 // oi
lucasfontenla 48:0b0a4bb45a85 2
lucasfontenla 17:0b8e489fac36 3 #define tx PC_10
lucasfontenla 17:0b8e489fac36 4 #define rx PC_11
lucasfontenla 17:0b8e489fac36 5
lucasfontenla 17:0b8e489fac36 6 Serial Mach(tx, rx);
lucasfontenla 28:b3c51076ebe8 7 Timer t;
lucasfontenla 17:0b8e489fac36 8
lucasfontenla 29:558eccdfc079 9 string file_name;
lucasfontenla 29:558eccdfc079 10 vector <string> filenames;
lucasfontenla 29:558eccdfc079 11
lucasfontenla 17:0b8e489fac36 12 class Machine {
lucasfontenla 17:0b8e489fac36 13 int n;
lucasfontenla 17:0b8e489fac36 14 string buffer;
lucasfontenla 17:0b8e489fac36 15 char buffer_char[2];
lucasfontenla 17:0b8e489fac36 16
lucasfontenla 17:0b8e489fac36 17 public:
lucasfontenla 17:0b8e489fac36 18 int debug;
lucasfontenla 17:0b8e489fac36 19
lucasfontenla 17:0b8e489fac36 20 // PUBLIC FUNCTIONS ----------------------------------------------------------------------------------------------------------------------------------------
lucasfontenla 17:0b8e489fac36 21 void move_to(float x, float y, float z, string type, int speed){
lucasfontenla 17:0b8e489fac36 22
lucasfontenla 17:0b8e489fac36 23 }
lucasfontenla 17:0b8e489fac36 24
lucasfontenla 17:0b8e489fac36 25 void move(int x_axis, int y_axis, int z_axis, float pct_speed){
lucasfontenla 17:0b8e489fac36 26 buffer = "";
lucasfontenla 17:0b8e489fac36 27
lucasfontenla 17:0b8e489fac36 28 buffer.append("f");
lucasfontenla 17:0b8e489fac36 29
lucasfontenla 17:0b8e489fac36 30 //buffer.append("X");
lucasfontenla 17:0b8e489fac36 31 n = sprintf(buffer_char, "%d", x_axis);
lucasfontenla 17:0b8e489fac36 32 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 33
lucasfontenla 17:0b8e489fac36 34 //buffer.append("Y");
lucasfontenla 17:0b8e489fac36 35 n = sprintf(buffer_char, "%d", y_axis);
lucasfontenla 17:0b8e489fac36 36 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 37
lucasfontenla 17:0b8e489fac36 38 //buffer.append("Z");
lucasfontenla 17:0b8e489fac36 39 n = sprintf(buffer_char, "%d", z_axis);
lucasfontenla 17:0b8e489fac36 40 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 41
lucasfontenla 17:0b8e489fac36 42 buffer.append("F");
lucasfontenla 17:0b8e489fac36 43 n = sprintf(buffer_char, "%.2f", pct_speed);
lucasfontenla 17:0b8e489fac36 44 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 45
lucasfontenla 17:0b8e489fac36 46 send(buffer);
lucasfontenla 17:0b8e489fac36 47 }
lucasfontenla 17:0b8e489fac36 48
lucasfontenla 17:0b8e489fac36 49 void save_point(int mode, float pct_speed){
lucasfontenla 17:0b8e489fac36 50 buffer = "";
lucasfontenla 17:0b8e489fac36 51
lucasfontenla 17:0b8e489fac36 52 buffer.append("s");
lucasfontenla 17:0b8e489fac36 53
lucasfontenla 17:0b8e489fac36 54 n = sprintf(buffer_char, "M%d", mode);
lucasfontenla 17:0b8e489fac36 55 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 56
lucasfontenla 17:0b8e489fac36 57 n = sprintf(buffer_char, "F%.2f", pct_speed);
lucasfontenla 17:0b8e489fac36 58 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 59
lucasfontenla 17:0b8e489fac36 60 send(buffer);
lucasfontenla 17:0b8e489fac36 61 }
lucasfontenla 17:0b8e489fac36 62
lucasfontenla 17:0b8e489fac36 63 void start_program(void){
claraluques 20:ccbd80b668ce 64 send("b");
claraluques 20:ccbd80b668ce 65 printf("b\n\r");
lucasfontenla 17:0b8e489fac36 66 }
lucasfontenla 17:0b8e489fac36 67
lucasfontenla 17:0b8e489fac36 68 void cancel_program(void){
lucasfontenla 17:0b8e489fac36 69 send("c");
lucasfontenla 17:0b8e489fac36 70 }
lucasfontenla 17:0b8e489fac36 71
lucasfontenla 17:0b8e489fac36 72 void get_status(void){
lucasfontenla 17:0b8e489fac36 73 send("s");
lucasfontenla 17:0b8e489fac36 74 }
lucasfontenla 17:0b8e489fac36 75
lucasfontenla 17:0b8e489fac36 76 void machine_zero(void){
claraluques 26:59081efdce79 77 send("zm");
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
lucasfontenla 46:31297622c5d1 113 void delete_last_saved(void){
lucasfontenla 46:31297622c5d1 114 send("d");
lucasfontenla 46:31297622c5d1 115 }
lucasfontenla 46:31297622c5d1 116
lucasfontenla 46:31297622c5d1 117 void clean_glue(void){
lucasfontenla 46:31297622c5d1 118 send("g");
lucasfontenla 46:31297622c5d1 119 }
lucasfontenla 46:31297622c5d1 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){
lucasfontenla 45:6701e27510f9 145 printf("Saving: %s\n\r", name);
lucasfontenla 45:6701e27510f9 146 printf("Code: %s\n\r", gcode);
lucasfontenla 45:6701e27510f9 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
lucasfontenla 46:31297622c5d1 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
lucasfontenla 46:31297622c5d1 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){
lucasfontenla 46:31297622c5d1 173 printf("Sending gcode...\n\r");
lucasfontenla 29:558eccdfc079 174 string file_path = "/sd/" + folderString + "/" + name;
lucasfontenla 28:b3c51076ebe8 175 char * path = str_to_char(file_path);
lucasfontenla 28:b3c51076ebe8 176 unsigned char c;
lucasfontenla 28:b3c51076ebe8 177 string buffer;
lucasfontenla 28:b3c51076ebe8 178
lucasfontenla 28:b3c51076ebe8 179 FILE *fp = fopen(path, "r");
lucasfontenla 28:b3c51076ebe8 180
lucasfontenla 28:b3c51076ebe8 181 if(fp == NULL) {
lucasfontenla 28:b3c51076ebe8 182 error("Could not open file for write\n\r");
lucasfontenla 28:b3c51076ebe8 183 return 0;
lucasfontenla 28:b3c51076ebe8 184 }
lucasfontenla 28:b3c51076ebe8 185
lucasfontenla 28:b3c51076ebe8 186 t.start();
lucasfontenla 28:b3c51076ebe8 187
lucasfontenla 28:b3c51076ebe8 188 while(1){
lucasfontenla 29:558eccdfc079 189 if(t.read() > 4.0){
lucasfontenla 28:b3c51076ebe8 190 fclose(fp);
lucasfontenla 28:b3c51076ebe8 191 return 0;
lucasfontenla 28:b3c51076ebe8 192 }
lucasfontenla 28:b3c51076ebe8 193 c = fgetc(fp);
lucasfontenla 28:b3c51076ebe8 194 buffer.push_back(c);
lucasfontenla 28:b3c51076ebe8 195
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){
lucasfontenla 45:6701e27510f9 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
lucasfontenla 28:b3c51076ebe8 214 printf(dir);
lucasfontenla 28:b3c51076ebe8 215
lucasfontenla 28:b3c51076ebe8 216 dp = opendir(dir);
lucasfontenla 45:6701e27510f9 217
lucasfontenla 45:6701e27510f9 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);
lucasfontenla 45:6701e27510f9 225 printf("Timeout\r\n");
lucasfontenla 29:558eccdfc079 226 return 0;
lucasfontenla 29:558eccdfc079 227 }
lucasfontenla 28:b3c51076ebe8 228 filename = (dirp->d_name);
lucasfontenla 28:b3c51076ebe8 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);
lucasfontenla 46:31297622c5d1 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
lucasfontenla 29:558eccdfc079 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);
lucasfontenla 29:558eccdfc079 254 printf("%s\n\r", filename);
lucasfontenla 29:558eccdfc079 255 filenames.push_back(filename);
lucasfontenla 29:558eccdfc079 256 }
lucasfontenla 29:558eccdfc079 257 return 1;
lucasfontenla 29:558eccdfc079 258 }
lucasfontenla 29:558eccdfc079 259
lucasfontenla 28:b3c51076ebe8 260 int create_folders(void){
lucasfontenla 29:558eccdfc079 261 int gotFolder = 0;
lucasfontenla 28:b3c51076ebe8 262 string filename;
lucasfontenla 28:b3c51076ebe8 263 struct dirent *dirp;
lucasfontenla 28:b3c51076ebe8 264
lucasfontenla 28:b3c51076ebe8 265 dp = opendir("/sd");
lucasfontenla 28:b3c51076ebe8 266
lucasfontenla 28:b3c51076ebe8 267 t.start();
lucasfontenla 28:b3c51076ebe8 268
lucasfontenla 28:b3c51076ebe8 269 while((dirp = readdir(dp)) != NULL) {
lucasfontenla 28:b3c51076ebe8 270 if(t.read() > 2){
lucasfontenla 28:b3c51076ebe8 271 t.stop();
lucasfontenla 28:b3c51076ebe8 272 return 0;
lucasfontenla 28:b3c51076ebe8 273 }
lucasfontenla 28:b3c51076ebe8 274 filename = (dirp->d_name);
lucasfontenla 28:b3c51076ebe8 275 printf("%s\n\r", filename);
lucasfontenla 29:558eccdfc079 276 if(filename == folderString){
lucasfontenla 29:558eccdfc079 277 gotFolder = 1;
lucasfontenla 29:558eccdfc079 278 }
lucasfontenla 28:b3c51076ebe8 279 }
lucasfontenla 28:b3c51076ebe8 280
lucasfontenla 29:558eccdfc079 281 if(!gotFolder){
lucasfontenla 29:558eccdfc079 282 char * path = str_to_char(("/sd/" + folderString));
lucasfontenla 28:b3c51076ebe8 283 mkdir(path, 0777);
lucasfontenla 28:b3c51076ebe8 284 }
lucasfontenla 28:b3c51076ebe8 285
lucasfontenla 28:b3c51076ebe8 286 closedir(dp);
lucasfontenla 28:b3c51076ebe8 287 return 1;
lucasfontenla 28:b3c51076ebe8 288 }
lucasfontenla 28:b3c51076ebe8 289
lucasfontenla 28:b3c51076ebe8 290 private:
lucasfontenla 28:b3c51076ebe8 291 char * str_to_char(string str){
lucasfontenla 28:b3c51076ebe8 292 char * path = new char[str.length() + 1];
lucasfontenla 28:b3c51076ebe8 293 std::strcpy(path, str.c_str());
lucasfontenla 28:b3c51076ebe8 294 return path;
lucasfontenla 28:b3c51076ebe8 295 }
lucasfontenla 28:b3c51076ebe8 296 };
lucasfontenla 28:b3c51076ebe8 297
lucasfontenla 28:b3c51076ebe8 298 SDCard sdcard;
lucasfontenla 28:b3c51076ebe8 299
claraluques 18:5338b83b4de9 300 //criar classe "menu" (funções para as telas)
claraluques 18:5338b83b4de9 301 class Menu{
claraluques 19:2c890ae2d187 302
claraluques 18:5338b83b4de9 303 public:
claraluques 18:5338b83b4de9 304 int linha;
claraluques 18:5338b83b4de9 305 int func;
claraluques 32:c293f89170b0 306 string nome;
claraluques 23:19c67758032d 307
claraluques 18:5338b83b4de9 308
claraluques 18:5338b83b4de9 309 void movercursor(int min, int max, int col){ //função para mover cursor de seleção
claraluques 18:5338b83b4de9 310 linha = min;
claraluques 18:5338b83b4de9 311 lcd.locate(col,min);
claraluques 18:5338b83b4de9 312 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 313 while (bot_enter==penter){
claraluques 31:77eb51d4ee18 314 if (bot_cima==0){
claraluques 18:5338b83b4de9 315 if (linha==min){
claraluques 18:5338b83b4de9 316 lcd.locate(col,min);
claraluques 18:5338b83b4de9 317 lcd.printf(" ");
claraluques 18:5338b83b4de9 318 linha=max;
claraluques 18:5338b83b4de9 319 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 320 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 321 }
claraluques 18:5338b83b4de9 322 else {
claraluques 18:5338b83b4de9 323 lcd.locate(col,linha);
claraluques 18:5338b83b4de9 324 lcd.printf(" ");
claraluques 18:5338b83b4de9 325 linha--;
claraluques 18:5338b83b4de9 326 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 327 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 328 }
claraluques 31:77eb51d4ee18 329 bot_cima = 1;
claraluques 18:5338b83b4de9 330 }
claraluques 31:77eb51d4ee18 331 else if (bot_baixo==0){
claraluques 18:5338b83b4de9 332 if (linha==max){
claraluques 18:5338b83b4de9 333 lcd.locate(col,max);
claraluques 18:5338b83b4de9 334 lcd.printf(" ");
claraluques 18:5338b83b4de9 335 linha=min;
claraluques 18:5338b83b4de9 336 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 337 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 338 }
claraluques 18:5338b83b4de9 339 else {
claraluques 18:5338b83b4de9 340 lcd.locate(col,linha);
claraluques 18:5338b83b4de9 341 lcd.printf(" ");
claraluques 18:5338b83b4de9 342 linha++;
claraluques 18:5338b83b4de9 343 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 344 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 345 }
claraluques 31:77eb51d4ee18 346 bot_baixo = 1;
claraluques 18:5338b83b4de9 347 }
claraluques 33:0149960e95c1 348 }
claraluques 18:5338b83b4de9 349 }
claraluques 32:c293f89170b0 350
claraluques 18:5338b83b4de9 351
claraluques 18:5338b83b4de9 352 //func 0
claraluques 18:5338b83b4de9 353 void inicializar(){ //função tela incial de boas-vindas
claraluques 33:0149960e95c1 354 int status;
claraluques 33:0149960e95c1 355 printf("Starting...\n\r");
claraluques 26:59081efdce79 356 machine.reset();
claraluques 18:5338b83b4de9 357 lcd.cls();
claraluques 18:5338b83b4de9 358 lcd.locate(4,0);
claraluques 18:5338b83b4de9 359 lcd.printf("Bem-vindo(a)");
claraluques 18:5338b83b4de9 360 lcd.locate(0,1);
claraluques 18:5338b83b4de9 361 lcd.printf("Utilize seu EPI para operar a maquina.");
claraluques 33:0149960e95c1 362 wait(1);
claraluques 30:614dcbd74cdc 363 /*status = sdcard.get_file_names();
lucasfontenla 29:558eccdfc079 364 if(status){
lucasfontenla 29:558eccdfc079 365 printf("Filenames: \n\r");
lucasfontenla 29:558eccdfc079 366 for(int i = 0; i < filenames.size(); i++){
lucasfontenla 29:558eccdfc079 367 printf("%s\n\r", filenames[i]);
lucasfontenla 29:558eccdfc079 368 }
claraluques 30:614dcbd74cdc 369 }*/
claraluques 18:5338b83b4de9 370 func = 1;
claraluques 18:5338b83b4de9 371 }
claraluques 18:5338b83b4de9 372
claraluques 18:5338b83b4de9 373 //func 1
claraluques 18:5338b83b4de9 374 void menuprincipal(){ //função menu principal
claraluques 31:77eb51d4ee18 375 bot_enter = penter;
claraluques 18:5338b83b4de9 376 lcd.cls();
claraluques 18:5338b83b4de9 377 lcd.locate(1,0);
claraluques 18:5338b83b4de9 378 lcd.printf("Modo JOG");
claraluques 18:5338b83b4de9 379 lcd.locate(1,1);
claraluques 18:5338b83b4de9 380 lcd.printf("Modo Automatico");
claraluques 18:5338b83b4de9 381 lcd.locate(1,2);
claraluques 26:59081efdce79 382 lcd.printf("Zerar");
claraluques 18:5338b83b4de9 383 lcd.locate(1,3);
claraluques 26:59081efdce79 384 lcd.printf("Config");
claraluques 18:5338b83b4de9 385 movercursor(0,3,0);
claraluques 18:5338b83b4de9 386 if (bot_enter!=penter){
claraluques 18:5338b83b4de9 387 if (linha==0){
claraluques 18:5338b83b4de9 388 func = 2;
claraluques 18:5338b83b4de9 389 }
claraluques 18:5338b83b4de9 390 else if (linha==1) {
claraluques 18:5338b83b4de9 391 func = 3;
claraluques 18:5338b83b4de9 392 }
claraluques 18:5338b83b4de9 393 else if (linha==2) {
claraluques 26:59081efdce79 394 func = 8;
claraluques 18:5338b83b4de9 395 }
claraluques 18:5338b83b4de9 396 else if (linha==3) {
claraluques 26:59081efdce79 397 func = 4;
claraluques 18:5338b83b4de9 398 }
claraluques 18:5338b83b4de9 399 }
claraluques 18:5338b83b4de9 400 }
claraluques 18:5338b83b4de9 401
claraluques 18:5338b83b4de9 402 //func 2
claraluques 18:5338b83b4de9 403 void jog(){ //função tela jog
claraluques 31:77eb51d4ee18 404 lcd.cls();
claraluques 31:77eb51d4ee18 405 bot_enter = penter;
claraluques 20:ccbd80b668ce 406 machine.kill_jog();
claraluques 20:ccbd80b668ce 407 wait(0.1);
claraluques 19:2c890ae2d187 408 machine.jog();
claraluques 18:5338b83b4de9 409 lcd.locate(4,0);
claraluques 33:0149960e95c1 410 lcd.printf("");
claraluques 33:0149960e95c1 411 lcd.locate(6,1);
claraluques 18:5338b83b4de9 412 lcd.printf("Salvar");
claraluques 33:0149960e95c1 413 lcd.locate(6,2);
claraluques 18:5338b83b4de9 414 lcd.printf("Concluir");
claraluques 33:0149960e95c1 415 lcd.locate(6,3);
claraluques 18:5338b83b4de9 416 lcd.printf("Cancelar");
claraluques 33:0149960e95c1 417 movercursor(1,3,5);
claraluques 18:5338b83b4de9 418 if (bot_enter!=penter){
claraluques 20:ccbd80b668ce 419 if (linha==1){
claraluques 33:0149960e95c1 420 if (pontos==0 && maxpontos>10){
claraluques 26:59081efdce79 421 cx_salva = 0;
claraluques 26:59081efdce79 422 cy_salva = 0;
claraluques 26:59081efdce79 423 cz_salva = 0;
claraluques 26:59081efdce79 424 pontos++;
claraluques 26:59081efdce79 425 maxpontos--;
claraluques 33:0149960e95c1 426 func = 22;
claraluques 26:59081efdce79 427 }
claraluques 33:0149960e95c1 428 else if (pontos>=1 && maxpontos>10){
claraluques 18:5338b83b4de9 429 cx_salva = cx;
claraluques 18:5338b83b4de9 430 cy_salva = cy;
claraluques 18:5338b83b4de9 431 cz_salva = cz;
claraluques 33:0149960e95c1 432 pontos++;
claraluques 26:59081efdce79 433 maxpontos--;
claraluques 33:0149960e95c1 434 func = 22;
claraluques 33:0149960e95c1 435 }
claraluques 33:0149960e95c1 436 else if (maxpontos<=10){
claraluques 33:0149960e95c1 437 cx_salva = cx;
claraluques 33:0149960e95c1 438 cy_salva = cy;
claraluques 33:0149960e95c1 439 cz_salva = cz;
claraluques 33:0149960e95c1 440 pontos++;
claraluques 33:0149960e95c1 441 maxpontos--;
claraluques 33:0149960e95c1 442 func = 5;
claraluques 18:5338b83b4de9 443 }
claraluques 26:59081efdce79 444 else if (maxpontos==0){
claraluques 18:5338b83b4de9 445 func = 16;
claraluques 33:0149960e95c1 446 }
claraluques 18:5338b83b4de9 447 }
claraluques 18:5338b83b4de9 448 else if (linha==2) {
claraluques 27:83d2a710cc2f 449 machine.kill_jog();
claraluques 26:59081efdce79 450 func = 17;
claraluques 18:5338b83b4de9 451 }
claraluques 18:5338b83b4de9 452 else if (linha==3) {
claraluques 20:ccbd80b668ce 453 machine.kill_jog();
claraluques 26:59081efdce79 454 wait(0.1);
claraluques 26:59081efdce79 455 machine.cancel_program();
claraluques 18:5338b83b4de9 456 func = 1;
claraluques 18:5338b83b4de9 457 pontos = 10;
claraluques 18:5338b83b4de9 458 }
claraluques 18:5338b83b4de9 459 }
claraluques 18:5338b83b4de9 460 }
claraluques 18:5338b83b4de9 461
claraluques 18:5338b83b4de9 462 //func 3
claraluques 18:5338b83b4de9 463 void automatico(){ //tela modo automatico
claraluques 18:5338b83b4de9 464 lcd.cls();
claraluques 31:77eb51d4ee18 465 bot_enter = penter;
claraluques 18:5338b83b4de9 466 lcd.printf("Modo automatico");
claraluques 18:5338b83b4de9 467 lcd.locate(7,2);
claraluques 18:5338b83b4de9 468 lcd.printf("OK");
claraluques 18:5338b83b4de9 469 lcd.locate(7,3);
claraluques 18:5338b83b4de9 470 lcd.printf("Voltar");
claraluques 18:5338b83b4de9 471 movercursor(2,3,6);
claraluques 18:5338b83b4de9 472 if (bot_enter!=penter) {
claraluques 18:5338b83b4de9 473 if (linha==2){
claraluques 18:5338b83b4de9 474 func = 12;
claraluques 18:5338b83b4de9 475 }
claraluques 18:5338b83b4de9 476 else if (linha==3){
claraluques 18:5338b83b4de9 477 func = 1;
claraluques 18:5338b83b4de9 478 }
claraluques 18:5338b83b4de9 479 }
claraluques 18:5338b83b4de9 480 }
claraluques 18:5338b83b4de9 481
claraluques 18:5338b83b4de9 482 //func 4
claraluques 18:5338b83b4de9 483 void config() {
claraluques 18:5338b83b4de9 484 lcd.cls();
claraluques 31:77eb51d4ee18 485 bot_enter = penter;
claraluques 27:83d2a710cc2f 486 //printf("%d,tela\n\r", penter);
claraluques 18:5338b83b4de9 487 lcd.locate(1,0);
claraluques 18:5338b83b4de9 488 lcd.printf("Definir velocidade");
claraluques 18:5338b83b4de9 489 lcd.locate(1,1);
claraluques 18:5338b83b4de9 490 lcd.printf("Limpar seringa cola");
claraluques 18:5338b83b4de9 491 lcd.locate(1,2);
claraluques 26:59081efdce79 492 lcd.printf("Origem maquina");
claraluques 18:5338b83b4de9 493 lcd.locate(1,3);
claraluques 18:5338b83b4de9 494 lcd.printf("Voltar");
claraluques 18:5338b83b4de9 495 movercursor(0,3,0);
claraluques 18:5338b83b4de9 496 if (bot_enter!=penter){
claraluques 18:5338b83b4de9 497 if (linha==0) {
claraluques 18:5338b83b4de9 498 func = 13;
claraluques 18:5338b83b4de9 499 }
claraluques 18:5338b83b4de9 500 else if (linha==1) {
claraluques 18:5338b83b4de9 501 func = 14;
claraluques 18:5338b83b4de9 502 }
claraluques 18:5338b83b4de9 503 else if (linha==2) {
claraluques 27:83d2a710cc2f 504 home = 1;
claraluques 27:83d2a710cc2f 505 func = 18;
claraluques 18:5338b83b4de9 506 }
claraluques 18:5338b83b4de9 507 else if (linha==3) {
claraluques 18:5338b83b4de9 508 func = 1;
claraluques 18:5338b83b4de9 509 }
claraluques 18:5338b83b4de9 510 }
claraluques 18:5338b83b4de9 511 }
claraluques 18:5338b83b4de9 512
claraluques 18:5338b83b4de9 513 //func 5
claraluques 18:5338b83b4de9 514 void telasalvamento(){ //função para quando salvar um ponto
claraluques 18:5338b83b4de9 515 lcd.cls();
claraluques 18:5338b83b4de9 516 lcd.locate(0,0);
claraluques 18:5338b83b4de9 517 lcd.printf("Voce salvou");
claraluques 18:5338b83b4de9 518 lcd.locate(1,1);
claraluques 25:af1f99666ca9 519 lcd.printf("X:%.2f ", cx_salva);
claraluques 18:5338b83b4de9 520 lcd.locate(1,2);
claraluques 25:af1f99666ca9 521 lcd.printf("Y:%.2f ", cy_salva);
claraluques 18:5338b83b4de9 522 lcd.locate(1,3);
claraluques 25:af1f99666ca9 523 lcd.printf("Z:%.2f ", cz_salva);
claraluques 18:5338b83b4de9 524 lcd.locate(13,1);
claraluques 18:5338b83b4de9 525 lcd.printf("Pontos");
claraluques 18:5338b83b4de9 526 lcd.locate(13,2);
claraluques 18:5338b83b4de9 527 lcd.printf("livres");
claraluques 18:5338b83b4de9 528 lcd.locate(16,3);
claraluques 26:59081efdce79 529 lcd.printf("%d", maxpontos);
claraluques 18:5338b83b4de9 530 wait(1);
claraluques 18:5338b83b4de9 531 if (pontos>0){
claraluques 18:5338b83b4de9 532 func = 6;
claraluques 18:5338b83b4de9 533 }
claraluques 18:5338b83b4de9 534 else if (pontos==0){
claraluques 18:5338b83b4de9 535 func = 2;
claraluques 18:5338b83b4de9 536 }
claraluques 18:5338b83b4de9 537 }
claraluques 18:5338b83b4de9 538
claraluques 18:5338b83b4de9 539 //func 6
claraluques 18:5338b83b4de9 540 void telacola(){ //tela para escolher o tipo de sequencia da cola
claraluques 18:5338b83b4de9 541 lcd.cls();
claraluques 31:77eb51d4ee18 542 bot_enter = penter;
claraluques 18:5338b83b4de9 543 lcd.printf("P/ o proximo ponto:");
claraluques 18:5338b83b4de9 544 lcd.locate(3,1);
claraluques 18:5338b83b4de9 545 lcd.printf("Sem cola");
claraluques 18:5338b83b4de9 546 lcd.locate(3,2);
claraluques 18:5338b83b4de9 547 lcd.printf("Cola no ponto");
claraluques 18:5338b83b4de9 548 lcd.locate(3,3);
claraluques 18:5338b83b4de9 549 lcd.printf("Cola continua");
claraluques 18:5338b83b4de9 550 movercursor(1,3,2);
claraluques 18:5338b83b4de9 551 if (bot_enter!=penter){
claraluques 18:5338b83b4de9 552 if (linha==1){
claraluques 18:5338b83b4de9 553 cola = 0;
claraluques 18:5338b83b4de9 554 func = 2;
claraluques 18:5338b83b4de9 555 }
claraluques 18:5338b83b4de9 556 else if (linha==2) {
claraluques 18:5338b83b4de9 557 cola = 1;
claraluques 18:5338b83b4de9 558 func = 2;
claraluques 18:5338b83b4de9 559 }
claraluques 18:5338b83b4de9 560 else if (linha==3) {
claraluques 18:5338b83b4de9 561 cola = 2;
claraluques 18:5338b83b4de9 562 func = 2;
claraluques 18:5338b83b4de9 563 }
lucasfontenla 45:6701e27510f9 564 machine.save_point(cola,1.0);
claraluques 18:5338b83b4de9 565 }
claraluques 18:5338b83b4de9 566 }
claraluques 18:5338b83b4de9 567
claraluques 18:5338b83b4de9 568 //func 7
claraluques 18:5338b83b4de9 569 void executarprograma() { //tela para selecionar se deseja executar o programa
claraluques 18:5338b83b4de9 570 lcd.cls();
claraluques 31:77eb51d4ee18 571 bot_enter = penter;
claraluques 18:5338b83b4de9 572 lcd.locate(2,0);
claraluques 18:5338b83b4de9 573 lcd.printf("VOCE CONCLUIU SEU");
claraluques 18:5338b83b4de9 574 lcd.locate(5,1);
claraluques 18:5338b83b4de9 575 lcd.printf("PROGRAMA.");
claraluques 18:5338b83b4de9 576 lcd.locate(0,2);
claraluques 18:5338b83b4de9 577 lcd.printf("Deseja");
claraluques 18:5338b83b4de9 578 lcd.locate(0,3);
claraluques 18:5338b83b4de9 579 lcd.printf("executa-lo?");
claraluques 18:5338b83b4de9 580 lcd.locate(14,2);
claraluques 18:5338b83b4de9 581 lcd.printf("Sim");
claraluques 18:5338b83b4de9 582 lcd.locate(14,3);
claraluques 18:5338b83b4de9 583 lcd.printf("Voltar");
claraluques 18:5338b83b4de9 584 movercursor(2,3,13);
claraluques 18:5338b83b4de9 585 if (bot_enter!=penter) {
claraluques 18:5338b83b4de9 586 if (linha==2){
claraluques 21:7603fe283ba4 587 machine.kill_jog();
claraluques 21:7603fe283ba4 588 wait(0.1);
claraluques 27:83d2a710cc2f 589 //machine.start_program();
claraluques 18:5338b83b4de9 590 exec = 1;
claraluques 18:5338b83b4de9 591 func = 9;
claraluques 18:5338b83b4de9 592 }
claraluques 18:5338b83b4de9 593 else if (linha==3){
claraluques 18:5338b83b4de9 594 exec = 0;
claraluques 18:5338b83b4de9 595 func = 2;
claraluques 18:5338b83b4de9 596 }
claraluques 18:5338b83b4de9 597 }
claraluques 18:5338b83b4de9 598 }
claraluques 18:5338b83b4de9 599
claraluques 18:5338b83b4de9 600 //func 8
claraluques 18:5338b83b4de9 601 void telazerar(){ //tela para zerar a máquina
claraluques 18:5338b83b4de9 602 lcd.cls();
claraluques 31:77eb51d4ee18 603 bot_enter = penter;
claraluques 26:59081efdce79 604 machine.kill_jog();
claraluques 26:59081efdce79 605 machine.jog();
claraluques 18:5338b83b4de9 606 lcd.locate(2,0);
claraluques 19:2c890ae2d187 607 lcd.printf("Zerar:");
claraluques 19:2c890ae2d187 608 lcd.locate(0,1);
claraluques 19:2c890ae2d187 609 lcd.printf("X:");
claraluques 19:2c890ae2d187 610 lcd.locate(0,2);
claraluques 19:2c890ae2d187 611 lcd.printf("Y:");
claraluques 19:2c890ae2d187 612 lcd.locate(0,3);
claraluques 19:2c890ae2d187 613 lcd.printf("Z:");
claraluques 19:2c890ae2d187 614 lcd.locate(13,0);
claraluques 19:2c890ae2d187 615 lcd.printf("X");
claraluques 19:2c890ae2d187 616 lcd.locate(13,1);
claraluques 19:2c890ae2d187 617 lcd.printf("Y");
claraluques 19:2c890ae2d187 618 lcd.locate(13,2);
claraluques 19:2c890ae2d187 619 lcd.printf("Z");
claraluques 19:2c890ae2d187 620 lcd.locate(13,3);
claraluques 19:2c890ae2d187 621 lcd.printf("Voltar");
claraluques 19:2c890ae2d187 622 movercursor(0,3,12);
claraluques 18:5338b83b4de9 623 if (bot_enter!=penter) {
claraluques 19:2c890ae2d187 624 if (linha==0){
claraluques 18:5338b83b4de9 625 cx = 0;
claraluques 19:2c890ae2d187 626 func = 10;
claraluques 19:2c890ae2d187 627 machine.set_zero("X");
claraluques 19:2c890ae2d187 628 }
claraluques 19:2c890ae2d187 629 else if (linha==1){
claraluques 18:5338b83b4de9 630 cy = 0;
claraluques 19:2c890ae2d187 631 func = 10;
claraluques 19:2c890ae2d187 632 machine.set_zero("Y");
claraluques 19:2c890ae2d187 633 }
claraluques 19:2c890ae2d187 634 else if (linha==2){
claraluques 18:5338b83b4de9 635 cz = 0;
claraluques 18:5338b83b4de9 636 func = 10;
claraluques 19:2c890ae2d187 637 machine.set_zero("Z");
claraluques 18:5338b83b4de9 638 }
claraluques 18:5338b83b4de9 639 else if (linha==3){
claraluques 18:5338b83b4de9 640 func = 1;
claraluques 26:59081efdce79 641 machine.kill_jog();
claraluques 18:5338b83b4de9 642 }
claraluques 18:5338b83b4de9 643 }
claraluques 18:5338b83b4de9 644 }
claraluques 18:5338b83b4de9 645
claraluques 18:5338b83b4de9 646 //func 9
claraluques 18:5338b83b4de9 647 void executando(){ //tela de executando
claraluques 18:5338b83b4de9 648 lcd.cls();
claraluques 27:83d2a710cc2f 649 machine.start_program();
claraluques 18:5338b83b4de9 650 lcd.locate(4,1);
claraluques 18:5338b83b4de9 651 lcd.printf("Executando");
claraluques 27:83d2a710cc2f 652 while (exec == 1){
claraluques 27:83d2a710cc2f 653 if (Mach.readable()){
claraluques 27:83d2a710cc2f 654 readSerial();
claraluques 27:83d2a710cc2f 655 }/*
claraluques 18:5338b83b4de9 656 lcd.locate(14,1);
claraluques 18:5338b83b4de9 657 lcd.printf(". ");
claraluques 18:5338b83b4de9 658 wait(0.5);
claraluques 18:5338b83b4de9 659 lcd.locate(14,1);
claraluques 18:5338b83b4de9 660 lcd.printf(".. ");
claraluques 18:5338b83b4de9 661 wait(0.5);
claraluques 18:5338b83b4de9 662 lcd.locate(14,1);
claraluques 18:5338b83b4de9 663 lcd.printf("...");
claraluques 18:5338b83b4de9 664 wait(0.5);
claraluques 18:5338b83b4de9 665 lcd.locate(14,1);
claraluques 18:5338b83b4de9 666 lcd.printf(" ");
claraluques 27:83d2a710cc2f 667 wait(0.5);*/
claraluques 18:5338b83b4de9 668 }
claraluques 27:83d2a710cc2f 669 printf("saiu\n\r");
claraluques 27:83d2a710cc2f 670 func = 11;
claraluques 18:5338b83b4de9 671 }
claraluques 18:5338b83b4de9 672
claraluques 18:5338b83b4de9 673 //func 10
claraluques 18:5338b83b4de9 674 void zerado() { //tela avisando que a máquina foi zerada
claraluques 18:5338b83b4de9 675 lcd.cls();
claraluques 18:5338b83b4de9 676 lcd.locate(5,1);
claraluques 18:5338b83b4de9 677 lcd.printf("Voce zerou");
claraluques 19:2c890ae2d187 678 lcd.locate(6,2);
claraluques 19:2c890ae2d187 679 lcd.printf("o eixo!");
claraluques 18:5338b83b4de9 680 wait(1);
claraluques 18:5338b83b4de9 681 func = 8;
claraluques 18:5338b83b4de9 682 }
claraluques 18:5338b83b4de9 683
claraluques 18:5338b83b4de9 684 //func 11
claraluques 18:5338b83b4de9 685 void finalizado() { //tela aviso programa finalizado
claraluques 18:5338b83b4de9 686 lcd.cls();
claraluques 18:5338b83b4de9 687 lcd.locate(6,1);
claraluques 18:5338b83b4de9 688 lcd.printf("PROGRAMA");
claraluques 18:5338b83b4de9 689 lcd.locate(5,2);
claraluques 18:5338b83b4de9 690 lcd.printf("FINALIZADO");
claraluques 18:5338b83b4de9 691 wait(1);
claraluques 18:5338b83b4de9 692 func = 1;
claraluques 18:5338b83b4de9 693 }
claraluques 18:5338b83b4de9 694
claraluques 18:5338b83b4de9 695 //func 12
claraluques 18:5338b83b4de9 696
claraluques 18:5338b83b4de9 697 //func 13
claraluques 18:5338b83b4de9 698
claraluques 18:5338b83b4de9 699 //func 14
claraluques 18:5338b83b4de9 700
claraluques 18:5338b83b4de9 701 //func 15
claraluques 27:83d2a710cc2f 702 void gohome(){
claraluques 27:83d2a710cc2f 703 lcd.cls();
claraluques 27:83d2a710cc2f 704 machine.machine_zero();
claraluques 27:83d2a710cc2f 705 while (home == 1){
claraluques 27:83d2a710cc2f 706 if (Mach.readable()){
claraluques 27:83d2a710cc2f 707 readSerial();
claraluques 27:83d2a710cc2f 708 }
claraluques 27:83d2a710cc2f 709 }
claraluques 27:83d2a710cc2f 710 func = 19;
claraluques 27:83d2a710cc2f 711 }
claraluques 18:5338b83b4de9 712
claraluques 18:5338b83b4de9 713 //func 16
claraluques 18:5338b83b4de9 714 void limitepontos(){ //tela para quando acabam os pontos
claraluques 18:5338b83b4de9 715 lcd.cls();
claraluques 26:59081efdce79 716 lcd.printf(" Voce atingiu o n%c maximo de pontos", 0xDF);
claraluques 26:59081efdce79 717 lcd.locate(9,2);
claraluques 26:59081efdce79 718 lcd.printf("(%d)", pontos);
claraluques 18:5338b83b4de9 719 lcd.locate(0,3);
claraluques 18:5338b83b4de9 720 lcd.printf("Conclua seu programa");
claraluques 18:5338b83b4de9 721 wait(1);
claraluques 18:5338b83b4de9 722 func = 2;
claraluques 21:7603fe283ba4 723 }
claraluques 26:59081efdce79 724
claraluques 26:59081efdce79 725 //func 17
claraluques 26:59081efdce79 726 void salvarprog(){
claraluques 26:59081efdce79 727 lcd.cls();
claraluques 31:77eb51d4ee18 728 bot_enter = penter;
claraluques 30:614dcbd74cdc 729 lcd.printf("Voce deseja salvar este programa?");
claraluques 26:59081efdce79 730 lcd.locate(5,2);
claraluques 26:59081efdce79 731 lcd.printf("Sim");
claraluques 26:59081efdce79 732 lcd.locate(5,3);
claraluques 26:59081efdce79 733 lcd.printf("Nao");
claraluques 26:59081efdce79 734 movercursor(2,3,4);
claraluques 26:59081efdce79 735 if (bot_enter!=penter){
claraluques 26:59081efdce79 736 if (linha==2){
claraluques 26:59081efdce79 737 salvar = 1;
claraluques 32:c293f89170b0 738 //printf("salvar\n\r");
claraluques 31:77eb51d4ee18 739 func = 20;
claraluques 26:59081efdce79 740 }
claraluques 26:59081efdce79 741 if (linha==3){
claraluques 26:59081efdce79 742 salvar = 0;
claraluques 31:77eb51d4ee18 743 func = 7;
claraluques 26:59081efdce79 744 }
claraluques 26:59081efdce79 745 }
claraluques 26:59081efdce79 746 }
claraluques 27:83d2a710cc2f 747
claraluques 27:83d2a710cc2f 748 //func 18
claraluques 27:83d2a710cc2f 749 void ctzhome(){
claraluques 27:83d2a710cc2f 750 lcd.cls();
claraluques 31:77eb51d4ee18 751 bot_enter = penter;
claraluques 27:83d2a710cc2f 752 lcd.printf("Certifique-se de que a maquina pode se");
claraluques 27:83d2a710cc2f 753 lcd.locate(5,2);
claraluques 27:83d2a710cc2f 754 lcd.printf("movimentar");
claraluques 27:83d2a710cc2f 755 lcd.locate(9,3);
claraluques 27:83d2a710cc2f 756 lcd.printf("OK");
claraluques 27:83d2a710cc2f 757 movercursor(3,3,8);
claraluques 27:83d2a710cc2f 758 if (bot_enter!=penter){
claraluques 27:83d2a710cc2f 759 if (linha==3){
claraluques 27:83d2a710cc2f 760 func = 15;
claraluques 27:83d2a710cc2f 761 }
claraluques 27:83d2a710cc2f 762 }
claraluques 27:83d2a710cc2f 763 }
claraluques 27:83d2a710cc2f 764
claraluques 27:83d2a710cc2f 765 //func 19
claraluques 27:83d2a710cc2f 766 void origem(){
claraluques 27:83d2a710cc2f 767 lcd.cls();
claraluques 27:83d2a710cc2f 768 lcd.locate(5,1);
claraluques 27:83d2a710cc2f 769 lcd.printf("A MAQUINA");
claraluques 27:83d2a710cc2f 770 lcd.locate(2,2);
claraluques 27:83d2a710cc2f 771 lcd.printf("ESTA NA ORIGEM");
claraluques 27:83d2a710cc2f 772 wait(1);
claraluques 27:83d2a710cc2f 773 func = 4;
claraluques 27:83d2a710cc2f 774 }
claraluques 26:59081efdce79 775
claraluques 30:614dcbd74cdc 776 //func 20
claraluques 30:614dcbd74cdc 777 void nomeprog(){
claraluques 32:c293f89170b0 778 nome = "";
claraluques 32:c293f89170b0 779 sair = 0;
claraluques 33:0149960e95c1 780 voltar = 0;
claraluques 33:0149960e95c1 781 coluna = 1;
claraluques 32:c293f89170b0 782 lcd.cls();
claraluques 31:77eb51d4ee18 783 bot_enter = penter;
claraluques 32:c293f89170b0 784 escrever();
claraluques 33:0149960e95c1 785 //lcd.setCursor(TextLCD::CurOff_BlkOff);
claraluques 32:c293f89170b0 786 if (sair==1){
lucasfontenla 46:31297622c5d1 787 lcd.cls();
lucasfontenla 46:31297622c5d1 788 lcd.locate(5,1);
lucasfontenla 46:31297622c5d1 789 lcd.printf("Salvando");
lucasfontenla 46:31297622c5d1 790 lcd.locate(5,2);
lucasfontenla 46:31297622c5d1 791 lcd.printf("%s", nome);
claraluques 33:0149960e95c1 792 int len = nome.length();
claraluques 33:0149960e95c1 793 nome.erase(len - 1);
claraluques 32:c293f89170b0 794 nome.append(".txt");
lucasfontenla 45:6701e27510f9 795 printf("Nome do programa: %s\n\r", nome);
claraluques 32:c293f89170b0 796 int verificar = sdcard.check_name_available(nome);
lucasfontenla 45:6701e27510f9 797 printf("Status do nome: %d\n\r", verificar);
lucasfontenla 45:6701e27510f9 798 if (verificar){
claraluques 32:c293f89170b0 799 file_name = nome;
claraluques 32:c293f89170b0 800 machine.get_saved_points();
lucasfontenla 45:6701e27510f9 801 while(1){
lucasfontenla 45:6701e27510f9 802 if(Mach.readable()){
lucasfontenla 45:6701e27510f9 803 readSerial();
lucasfontenla 45:6701e27510f9 804 break;
lucasfontenla 45:6701e27510f9 805 }
lucasfontenla 45:6701e27510f9 806 }
claraluques 32:c293f89170b0 807 printf("ok\n\r");
claraluques 33:0149960e95c1 808 func = 7;
claraluques 32:c293f89170b0 809 }
lucasfontenla 45:6701e27510f9 810 else if (!verificar){
claraluques 33:0149960e95c1 811 func = 20;
claraluques 32:c293f89170b0 812 printf("nok\n\r");
claraluques 32:c293f89170b0 813 }
claraluques 30:614dcbd74cdc 814 }
claraluques 30:614dcbd74cdc 815 }
claraluques 30:614dcbd74cdc 816
claraluques 32:c293f89170b0 817 //func 21
claraluques 32:c293f89170b0 818 void mudar_nome(){
claraluques 32:c293f89170b0 819 lcd.cls();
claraluques 32:c293f89170b0 820 wait(1);
claraluques 32:c293f89170b0 821 func = 20;
claraluques 32:c293f89170b0 822 }
claraluques 32:c293f89170b0 823
claraluques 33:0149960e95c1 824 //func 22
claraluques 33:0149960e95c1 825 void salva2(){
claraluques 33:0149960e95c1 826 lcd.cls();
claraluques 33:0149960e95c1 827 lcd.locate(0,0);
claraluques 33:0149960e95c1 828 lcd.printf("Voce salvou o ponto:");
claraluques 33:0149960e95c1 829 lcd.locate(5,1);
claraluques 33:0149960e95c1 830 lcd.printf("X:");
claraluques 33:0149960e95c1 831 lcd.locate(5,2);
claraluques 33:0149960e95c1 832 lcd.printf("Y:");
claraluques 33:0149960e95c1 833 lcd.locate(5,3);
claraluques 33:0149960e95c1 834 lcd.printf("Z:");
claraluques 33:0149960e95c1 835 //x
claraluques 33:0149960e95c1 836 if (cx<=-1 && cx>=-9){
claraluques 33:0149960e95c1 837 lcd.locate(7,1);
claraluques 33:0149960e95c1 838 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 839 }
claraluques 33:0149960e95c1 840 if (cx<=-10 && cx>=-99){
claraluques 33:0149960e95c1 841 lcd.locate(7,1);
claraluques 33:0149960e95c1 842 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 843 }
claraluques 33:0149960e95c1 844 if (cx<=-100){
claraluques 33:0149960e95c1 845 lcd.locate(7,1);
claraluques 33:0149960e95c1 846 lcd.printf("%.2f ", cx);
claraluques 33:0149960e95c1 847 }
claraluques 33:0149960e95c1 848 if (cx<=9 && cx>=0){
claraluques 33:0149960e95c1 849 lcd.locate(7,1);
claraluques 33:0149960e95c1 850 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 851 }
claraluques 33:0149960e95c1 852 if (cx>=10 && cx<=99){
claraluques 33:0149960e95c1 853 lcd.locate(7,1);
claraluques 33:0149960e95c1 854 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 855 }
claraluques 33:0149960e95c1 856 if (cx>=100){
claraluques 33:0149960e95c1 857 lcd.locate(7,1);
claraluques 33:0149960e95c1 858 lcd.printf(" %.2f ", cx);
claraluques 33:0149960e95c1 859 }
claraluques 33:0149960e95c1 860 //y
claraluques 33:0149960e95c1 861 if (cy<=-1 && cy>=-9){
claraluques 33:0149960e95c1 862 lcd.locate(7,2);
claraluques 33:0149960e95c1 863 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 864 }
claraluques 33:0149960e95c1 865 if (cy<=-10 && cx>=-99){
claraluques 33:0149960e95c1 866 lcd.locate(7,2);
claraluques 33:0149960e95c1 867 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 868 }
claraluques 33:0149960e95c1 869 if (cy<=-100){
claraluques 33:0149960e95c1 870 lcd.locate(7,2);
claraluques 33:0149960e95c1 871 lcd.printf("%.2f ", cy);
claraluques 33:0149960e95c1 872 }
claraluques 33:0149960e95c1 873 if (cy<=9 && cy>=0){
claraluques 33:0149960e95c1 874 lcd.locate(7,2);
claraluques 33:0149960e95c1 875 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 876 }
claraluques 33:0149960e95c1 877 if (cy>=10 && cx<=99){
claraluques 33:0149960e95c1 878 lcd.locate(7,2);
claraluques 33:0149960e95c1 879 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 880 }
claraluques 33:0149960e95c1 881 if (cy>=100){
claraluques 33:0149960e95c1 882 lcd.locate(7,2);
claraluques 33:0149960e95c1 883 lcd.printf(" %.2f ", cy);
claraluques 33:0149960e95c1 884 }
claraluques 33:0149960e95c1 885 //z
claraluques 33:0149960e95c1 886 if (cz<=-1 && cz>=-9){
claraluques 33:0149960e95c1 887 lcd.locate(7,3);
claraluques 33:0149960e95c1 888 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 889 }
claraluques 33:0149960e95c1 890 if (cz<=-10 && cx>=-99){
claraluques 33:0149960e95c1 891 lcd.locate(7,3);
claraluques 33:0149960e95c1 892 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 893 }
claraluques 33:0149960e95c1 894 if (cz<=-100){
claraluques 33:0149960e95c1 895 lcd.locate(7,3);
claraluques 33:0149960e95c1 896 lcd.printf("%.2f ", cz);
claraluques 33:0149960e95c1 897 }
claraluques 33:0149960e95c1 898 if (cz<=9 && cz>=0){
claraluques 33:0149960e95c1 899 lcd.locate(7,3);
claraluques 33:0149960e95c1 900 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 901 }
claraluques 33:0149960e95c1 902 if (cz>=10 && cx<=99){
claraluques 33:0149960e95c1 903 lcd.locate(7,3);
claraluques 33:0149960e95c1 904 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 905 }
claraluques 33:0149960e95c1 906 if (cz>=100){
claraluques 33:0149960e95c1 907 lcd.locate(7,3);
claraluques 33:0149960e95c1 908 lcd.printf(" %.2f ", cz);
claraluques 33:0149960e95c1 909 }
claraluques 33:0149960e95c1 910 wait(1);
claraluques 33:0149960e95c1 911 func = 6;
claraluques 33:0149960e95c1 912 }
claraluques 33:0149960e95c1 913
claraluques 30:614dcbd74cdc 914 //função para escrever nome arquivo
claraluques 32:c293f89170b0 915 void escrever(){
claraluques 32:c293f89170b0 916 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 917 '0','1','2','3','4','5','6','7','8','9','-','_'};
claraluques 30:614dcbd74cdc 918 int imax = 37;
claraluques 30:614dcbd74cdc 919 int imin = 0;
claraluques 33:0149960e95c1 920 //lcd.locate(1,1);
claraluques 32:c293f89170b0 921 while (sair==0){
claraluques 33:0149960e95c1 922 voltar = 0;
claraluques 32:c293f89170b0 923 int i = 0;
claraluques 33:0149960e95c1 924 //lcd.locate(0,2);
claraluques 33:0149960e95c1 925 //lcd.setCursor(TextLCD::CurOn_BlkOn);
claraluques 32:c293f89170b0 926 lcd.locate(1,1);
claraluques 32:c293f89170b0 927 lcd.printf("%s", nome);
claraluques 32:c293f89170b0 928 while (bot_enter==penter){
claraluques 32:c293f89170b0 929 if (bot_cima == 0){
claraluques 32:c293f89170b0 930 if (i==imin){
claraluques 32:c293f89170b0 931 i = imax;
claraluques 32:c293f89170b0 932 }
claraluques 32:c293f89170b0 933 else if (i>imin && i<=imax){
claraluques 32:c293f89170b0 934 i--;
claraluques 32:c293f89170b0 935 }
claraluques 32:c293f89170b0 936 bot_cima = 1;
claraluques 31:77eb51d4ee18 937 }
claraluques 32:c293f89170b0 938 else if (bot_baixo == 0){
claraluques 32:c293f89170b0 939 if (i==imax){
claraluques 32:c293f89170b0 940 i = imin;
claraluques 32:c293f89170b0 941 }
claraluques 32:c293f89170b0 942 else if (i<imax && i>=imin){
claraluques 32:c293f89170b0 943 i++;
claraluques 32:c293f89170b0 944 }
claraluques 32:c293f89170b0 945 bot_baixo = 1;
claraluques 32:c293f89170b0 946 }
claraluques 32:c293f89170b0 947 lcd.locate(coluna, 1);
claraluques 32:c293f89170b0 948 lcd.printf("%c", alfabeto[i]);
claraluques 33:0149960e95c1 949 lcd.locate(coluna,2);
claraluques 33:0149960e95c1 950 lcd.printf("%c", 0x5E);
lucasfontenla 46:31297622c5d1 951
lucasfontenla 46:31297622c5d1 952 if(timer.read() > 1.5){
lucasfontenla 46:31297622c5d1 953 sair = 1;
lucasfontenla 46:31297622c5d1 954 printf("SAINDO\n\r");
lucasfontenla 46:31297622c5d1 955 timer.reset();
lucasfontenla 46:31297622c5d1 956 timer.stop();
lucasfontenla 46:31297622c5d1 957 break;
lucasfontenla 46:31297622c5d1 958 }
lucasfontenla 46:31297622c5d1 959 if(timer2.read() > 1.5){
lucasfontenla 46:31297622c5d1 960 voltar = 1;
lucasfontenla 46:31297622c5d1 961 printf("APAGANDO\n\r");
lucasfontenla 46:31297622c5d1 962 timer2.reset();
lucasfontenla 46:31297622c5d1 963 timer2.stop();
lucasfontenla 46:31297622c5d1 964 break;
lucasfontenla 46:31297622c5d1 965 }
lucasfontenla 46:31297622c5d1 966 }
lucasfontenla 46:31297622c5d1 967
claraluques 32:c293f89170b0 968 if (coluna<=18){
claraluques 32:c293f89170b0 969 char carac = alfabeto[i];
claraluques 32:c293f89170b0 970 nome.push_back(carac);
lucasfontenla 45:6701e27510f9 971 printf("Nome do programa (func - escrever): %s\n\r", nome);
claraluques 32:c293f89170b0 972 bot_enter = penter;
claraluques 33:0149960e95c1 973 if (coluna<18){
claraluques 33:0149960e95c1 974 if (voltar==1){
claraluques 33:0149960e95c1 975 printf("voltar\n\r");
claraluques 33:0149960e95c1 976 if (coluna>1){
claraluques 33:0149960e95c1 977 //nome[coluna-1]="";
claraluques 33:0149960e95c1 978 lcd.locate(coluna, 1);
claraluques 33:0149960e95c1 979 lcd.printf(" ");
claraluques 33:0149960e95c1 980 lcd.locate(coluna, 2);
claraluques 33:0149960e95c1 981 lcd.printf(" ");
claraluques 33:0149960e95c1 982 coluna--;
claraluques 33:0149960e95c1 983 nome.erase(coluna-1);
claraluques 33:0149960e95c1 984 lcd.locate(coluna, 2);
claraluques 33:0149960e95c1 985 lcd.printf("%c", 0x5E);
claraluques 33:0149960e95c1 986 }
claraluques 33:0149960e95c1 987 }
claraluques 33:0149960e95c1 988 if (voltar==0){
claraluques 33:0149960e95c1 989 lcd.locate(coluna, 2);
claraluques 33:0149960e95c1 990 lcd.printf(" ");
claraluques 33:0149960e95c1 991 coluna++;
claraluques 33:0149960e95c1 992 lcd.locate(coluna, 2);
claraluques 33:0149960e95c1 993 lcd.printf("%c", 0x5E);
claraluques 33:0149960e95c1 994 }
claraluques 33:0149960e95c1 995 }
claraluques 33:0149960e95c1 996 /*char carac = alfabeto[i];
claraluques 33:0149960e95c1 997 nome.push_back(carac);
claraluques 33:0149960e95c1 998 printf("%s\n\r", nome);
claraluques 33:0149960e95c1 999 bot_enter = penter;*/
claraluques 32:c293f89170b0 1000 }
claraluques 30:614dcbd74cdc 1001 }
claraluques 30:614dcbd74cdc 1002 }
claraluques 30:614dcbd74cdc 1003
claraluques 26:59081efdce79 1004 //função para ler os pontos
claraluques 21:7603fe283ba4 1005 void readSerial(){
claraluques 21:7603fe283ba4 1006 char recv;
lucasfontenla 24:46c3be0e8273 1007 int points = 0;
lucasfontenla 24:46c3be0e8273 1008 int pointx = 0;
lucasfontenla 24:46c3be0e8273 1009 int pointy = 0;
lucasfontenla 24:46c3be0e8273 1010 int pointz = 0;
claraluques 27:83d2a710cc2f 1011 int action = 0;
lucasfontenla 29:558eccdfc079 1012 int uploading_saved = 0;
lucasfontenla 24:46c3be0e8273 1013 string coordx = "";
lucasfontenla 24:46c3be0e8273 1014 string coordy = "";
lucasfontenla 24:46c3be0e8273 1015 string coordz = "";
lucasfontenla 29:558eccdfc079 1016 string recv_buffer;
lucasfontenla 45:6701e27510f9 1017
lucasfontenla 45:6701e27510f9 1018 int status;
claraluques 26:59081efdce79 1019
claraluques 32:c293f89170b0 1020
claraluques 21:7603fe283ba4 1021 while(1){
claraluques 21:7603fe283ba4 1022 recv = Mach.getc();
lucasfontenla 45:6701e27510f9 1023
claraluques 32:c293f89170b0 1024 if (recv == 'a'){
claraluques 27:83d2a710cc2f 1025 home = 0;
claraluques 27:83d2a710cc2f 1026 exec = 0;
claraluques 26:59081efdce79 1027 printf("oi\n\r");
claraluques 27:83d2a710cc2f 1028 action = 1;
lucasfontenla 45:6701e27510f9 1029 }
lucasfontenla 45:6701e27510f9 1030
lucasfontenla 24:46c3be0e8273 1031 if (recv == 'p'){
claraluques 21:7603fe283ba4 1032 points = 1;
lucasfontenla 45:6701e27510f9 1033 }
lucasfontenla 45:6701e27510f9 1034
lucasfontenla 29:558eccdfc079 1035 if(recv == 'u'){
lucasfontenla 29:558eccdfc079 1036 uploading_saved = 1;
lucasfontenla 29:558eccdfc079 1037 }
lucasfontenla 45:6701e27510f9 1038
lucasfontenla 45:6701e27510f9 1039 if(uploading_saved){
lucasfontenla 45:6701e27510f9 1040 if(recv == 'x'){
lucasfontenla 45:6701e27510f9 1041 printf("OK\n\r");
lucasfontenla 45:6701e27510f9 1042 status = sdcard.save_GCODE(file_name, recv_buffer);
lucasfontenla 45:6701e27510f9 1043 return;
lucasfontenla 45:6701e27510f9 1044 } else if(recv != 'u'){
lucasfontenla 45:6701e27510f9 1045 recv_buffer.push_back(recv);
lucasfontenla 45:6701e27510f9 1046 }
lucasfontenla 45:6701e27510f9 1047 }
lucasfontenla 45:6701e27510f9 1048
lucasfontenla 45:6701e27510f9 1049 if (points && !uploading_saved){
lucasfontenla 24:46c3be0e8273 1050 if (recv == 'X'){
claraluques 21:7603fe283ba4 1051 pointx = 1;
lucasfontenla 24:46c3be0e8273 1052 pointy = 0;
lucasfontenla 24:46c3be0e8273 1053 pointz = 0;
claraluques 21:7603fe283ba4 1054 }
lucasfontenla 24:46c3be0e8273 1055 else if (recv == 'Y'){
claraluques 21:7603fe283ba4 1056 pointy = 1;
lucasfontenla 24:46c3be0e8273 1057 pointx = 0;
lucasfontenla 24:46c3be0e8273 1058 pointz = 0;
claraluques 21:7603fe283ba4 1059 }
lucasfontenla 24:46c3be0e8273 1060 else if (recv == 'Z'){
claraluques 21:7603fe283ba4 1061 pointz = 1;
lucasfontenla 24:46c3be0e8273 1062 pointx = 0;
lucasfontenla 24:46c3be0e8273 1063 pointy = 0;
claraluques 23:19c67758032d 1064 }
lucasfontenla 45:6701e27510f9 1065 else if(recv == 'x'){
claraluques 23:19c67758032d 1066 cx = atof(coordx.c_str());
claraluques 23:19c67758032d 1067 cy = atof(coordy.c_str());
claraluques 23:19c67758032d 1068 cz = atof(coordz.c_str());
claraluques 23:19c67758032d 1069 printf("%s,%s,%s\n\r", coordx, coordy, coordz);
claraluques 21:7603fe283ba4 1070 break;
claraluques 21:7603fe283ba4 1071 }
claraluques 23:19c67758032d 1072 }
lucasfontenla 45:6701e27510f9 1073
lucasfontenla 45:6701e27510f9 1074 if(pointx){
lucasfontenla 24:46c3be0e8273 1075 if (recv!='X'){
claraluques 23:19c67758032d 1076 coordx.push_back(recv);
claraluques 23:19c67758032d 1077 }
lucasfontenla 45:6701e27510f9 1078 }
claraluques 23:19c67758032d 1079 if (pointy){
lucasfontenla 24:46c3be0e8273 1080 if (recv!='Y'){
claraluques 23:19c67758032d 1081 coordy.push_back(recv);
claraluques 23:19c67758032d 1082 }
lucasfontenla 45:6701e27510f9 1083 }
claraluques 23:19c67758032d 1084 if (pointz){
lucasfontenla 24:46c3be0e8273 1085 if (recv!='Z'){
claraluques 23:19c67758032d 1086 coordz.push_back(recv);
claraluques 23:19c67758032d 1087 }
lucasfontenla 45:6701e27510f9 1088 }
claraluques 27:83d2a710cc2f 1089 if (action){
claraluques 27:83d2a710cc2f 1090 if (recv=='x'){
claraluques 27:83d2a710cc2f 1091 break;
claraluques 27:83d2a710cc2f 1092 }
lucasfontenla 45:6701e27510f9 1093 }
claraluques 21:7603fe283ba4 1094 }
lucasfontenla 29:558eccdfc079 1095 }
claraluques 23:19c67758032d 1096
claraluques 26:59081efdce79 1097
lucasfontenla 22:22ddb0b21d48 1098
claraluques 21:7603fe283ba4 1099 Menu(); //não apagar
lucasfontenla 17:0b8e489fac36 1100 };