void QXNConfig::setManualModeNow(bool m) { if (manualMode() != m) { setManualMode(m); save(); } }
/*************************************************** * Main */ int main() { bool rereadDir = false, redrawScr = true, redrawDir = false; SystemStartup(); #if (USE_SDCARD == 1) rereadDir = true; FRESULT fres = f_mount(0, &fatfs); if (fres != FR_OK) { showCriticalStatus( " Mount SD error [code:%d]\n" " SD card used for any CNC process\n" " Only RESET possible at now", fres); WAIT_KEY_C(); } #elif (USE_SDCARD == 2) && (USE_KEYBOARD != 0) FRESULT fres; #endif initSmParam(); while (1) { if (SystemProcess() == SYS_READ_FLASH) rereadDir = true; if (rereadDir) { rereadDir = false; readFileList(); redrawScr = true; } if (redrawScr) { redrawScr = false; LCD_Clear(Black); #if (USE_KEYBOARD == 1) win_showMenu(0, 144, 40, 4); scr_puts( "0 - start gcode 1 - manual mode\n" "2 - show gcode 3 - delete file\n" "4 - set time 5 - file info\n" //"6 - scan mode\t " "7 - save conf.file (v1.1)"); #endif #if (USE_KEYBOARD == 2) SetTouchKeys(kbdSelectFile); #endif redrawDir = true; } if (redrawDir) { redrawDir = false; drawFileList(); } showStatusString(); #if (USE_KEYBOARD != 0) switch (kbd_getKey()) { case KEY_A: currentFile--; redrawDir = true; break; case KEY_B: currentFile++; redrawDir = true; break; #if (USE_KEYBOARD == 1) case KEY_STAR: currentFile += FILE_LIST_ROWS; redrawDir = true; break; case KEY_DIES: currentFile -= FILE_LIST_ROWS; redrawDir = true; break; #endif // // Start GCode // case KEY_0: { FLASH_KEYS(); #if (USE_LCD == 1) uint32_t stime; stime = Seconds(); #endif cnc_gfile(&fileList[currentFile][0], GFILE_MODE_MASK_EXEC); while (stepm_inProc()) { scr_fontColor(Yellow, Blue); scr_gotoxy(1, 13); scr_printf(" remain moves: %d", stepm_getRemainLines()); scr_clrEndl(); } stepm_EmergeStop(); #if (USE_LCD == 1) scr_fontColor(Yellow, Blue); scr_gotoxy(0, 13); scr_puts(" FINISH. PRESS C-KEY"); scr_clrEndl(); stime = Seconds() - stime; scr_fontColor(Yellow, Blue); scr_gotoxy(0, 14); scr_printf(" work time: %02d:%02d", stime / 60, stime % 60); scr_clrEndl(); #endif #if (USE_LCD == 2) SetTouchKeys(kbdLast2Lines); #endif FLASH_KEYS(); WAIT_KEY_C(); redrawScr = true; break; } // // Manual Mode // case KEY_1: manualMode(); redrawScr = true; break; #if (USE_SDCARD == 1) // // Show GCode // case KEY_2: FLASH_KEYS(); cnc_gfile(&fileList[currentFile][0], GFILE_MODE_MASK_SHOW | GFILE_MODE_MASK_CHK); scr_printf("\n PRESS C-KEY"); FLASH_KEYS(); while (kbd_getKey() != KEY_C); redrawScr = true; break; // // Delete file // case KEY_3: if (questionYesNo("Delete file:\n'%s'?", &fileList[currentFile][0])) { rereadDir = true; f_unlink(&fileList[currentFile][0]); } else redrawScr = true; break; #endif #if (USE_RTC == 1) // // Set time // case KEY_4: setTime(); redrawScr = true; break; // // Save conf. file // case KEY_7: win_showMsgWin(); saveSmParam(); scr_printf("\n\n\n PRESS C-KEY"); WAIT_KEY_C(); redrawScr = true; break; #endif #if (USE_SDCARD != 0) // // File info // case KEY_5: { FILINFO finf; FIL fid; int c, n; memset(&finf, 0, sizeof(finf)); win_showMsgWin(); scr_setScroll(false); scr_printf("File:%s", &fileList[currentFile][0]); f_stat(&fileList[currentFile][0], &finf); scr_gotoxy(0, 1); scr_printf("Size:%d\n", (uint32_t)finf.fsize); fres = f_open(&fid, &fileList[currentFile][0], FA_READ); if (fres != FR_OK) { #if (USE_SDCARD == 1) scr_printf("Error open file: '%s'\nStatus:%d [%d]", &fileList[currentFile][0], fres, SD_errno); #elif (USE_SDCARD == 2) scr_printf("Error open file: '%s'\nStatus:%d", &fileList[currentFile][0], fres); #endif } else { char str[150]; scr_fontColorInvers(); scr_setScroll(false); // Read lines from 3 to 6 from file and display it for (n = 2; n < 7 && f_gets(str, sizeof(str), &fid) != NULL; n++) { scr_gotoxy(0, n); scr_puts(str_trim(str)); } } scr_fontColorNormal(); scr_gotoxy(8, 7); scr_printf("PRESS C-KEY"); redrawScr = true; do { c = kbd_getKey(); if (c == KEY_B) { char str[150]; scr_fontColorInvers(); for (n = 2; n < 7 && f_gets(str, sizeof(str), &fid) != NULL; n++) { scr_gotoxy(0, n); scr_puts(str_trim(str)); scr_clrEndl(); } } } while (c != KEY_C); f_close(&fid); rereadDir = true; } break; #endif } #endif } }