Código para o menu no LCD

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Committer:
lucasfontenla
Date:
Fri May 25 23:42:11 2018 +0000
Revision:
47:ada3eb4c9a97
Parent:
46:31297622c5d1
Child:
48:0b0a4bb45a85
Funcionando com a PCB

Who changed what in which revision?

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