浏览代码

snmm: bowden length menu updated

PavelSindler 8 年之前
父节点
当前提交
1db5b43175
共有 4 个文件被更改,包括 73 次插入23 次删除
  1. 5 0
      Firmware/language_all.cpp
  2. 2 0
      Firmware/language_all.h
  3. 1 0
      Firmware/language_en.h
  4. 65 23
      Firmware/ultralcd.cpp

+ 5 - 0
Firmware/language_all.cpp

@@ -446,6 +446,11 @@ const char * const MSG_BEGIN_FILE_LIST_LANG_TABLE[1] PROGMEM = {
 	MSG_BEGIN_FILE_LIST_EN
 };
 
+const char MSG_BOWDEN_SETTINGS_EN[] PROGMEM = "Continue?";
+const char * const MSG_BOWDEN_SETTINGS_LANG_TABLE[1] PROGMEM = {
+	MSG_BOWDEN_SETTINGS_EN
+};
+
 const char MSG_BROWNOUT_RESET_EN[] PROGMEM = " Brown out Reset";
 const char * const MSG_BROWNOUT_RESET_LANG_TABLE[1] PROGMEM = {
 	MSG_BROWNOUT_RESET_EN

+ 2 - 0
Firmware/language_all.h

@@ -99,6 +99,8 @@ extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_L
 #define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_LANG_TABLE)
 extern const char* const MSG_BEGIN_FILE_LIST_LANG_TABLE[1];
 #define MSG_BEGIN_FILE_LIST LANG_TABLE_SELECT_EXPLICIT(MSG_BEGIN_FILE_LIST_LANG_TABLE, 0)
+extern const char* const MSG_BOWDEN_SETTINGS_LANG_TABLE[1];
+#define MSG_BOWDEN_SETTINGS LANG_TABLE_SELECT_EXPLICIT(MSG_BOWDEN_SETTINGS_LANG_TABLE, 0)
 extern const char* const MSG_BROWNOUT_RESET_LANG_TABLE[1];
 #define MSG_BROWNOUT_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_BROWNOUT_RESET_LANG_TABLE, 0)
 extern const char* const MSG_CALIBRATE_BED_LANG_TABLE[LANG_NUM];

+ 1 - 0
Firmware/language_en.h

@@ -293,3 +293,4 @@
 #define(length=20, lines=1) MSG_TEMP_CALIBRATION_ON				"Temp. cal. [ON]"
 #define(length=20, lines=1) MSG_TEMP_CALIBRATION_OFF			"Temp. cal. [OFF]"
 
+

+ 65 - 23
Firmware/ultralcd.cpp

@@ -2783,20 +2783,30 @@ void bowden_menu() {
 
 	}
 	enc_dif = encoderDiff;
-	/*while (1) {
-		if (lcd_clicked()) {
-			while (lcd_clicked());
-			delay(10);
-			while (lcd_clicked());
-			break;
-		}
-	}*/
 
 	while (1) {
-		
+
 		manage_heater();
 		manage_inactivity(true);
 
+		if (abs((enc_dif - encoderDiff)) > 1) {
+
+			if (enc_dif > encoderDiff) {
+					cursor_pos--;
+				}
+
+				if (enc_dif < encoderDiff) {
+					cursor_pos++;
+				}
+
+				if (cursor_pos > 3) {
+					cursor_pos = 3;
+				}
+
+				if (cursor_pos < 0) {
+					cursor_pos = 0;
+				}
+
 				lcd.setCursor(0, 0);
 				lcd.print(" ");
 				lcd.setCursor(0, 1);
@@ -2807,25 +2817,43 @@ void bowden_menu() {
 				lcd.print(" ");
 				lcd.setCursor(0, cursor_pos);
 				lcd.print(">");
-				
-				
-				if (abs((enc_dif - encoderDiff)) > 4) {
 
-					if ((abs(enc_dif - encoderDiff)) > 1) {
+				enc_dif = encoderDiff;
+				delay(100);
+		}
+
+		if (lcd_clicked()) {
+			while (lcd_clicked());
+			delay(10);
+			while (lcd_clicked());
+
+			lcd_implementation_clear();
+			while (1) {
+
+				manage_heater();
+				manage_inactivity(true);
+
+				lcd.setCursor(1, 1);
+				lcd.print("Extruder ");
+				lcd.print(cursor_pos);
+				lcd.print(": ");
+				lcd.setCursor(13, 1);
+				lcd.print(bowden_length[cursor_pos] - 48);
+
+				if (abs((enc_dif - encoderDiff)) > 2) {
 						if (enc_dif > encoderDiff) {
 							bowden_length[cursor_pos]--;
-							lcd.setCursor(13, cursor_pos);
-							lcd.print(bowden_length[cursor_pos] -48);
+							lcd.setCursor(13, 1);
+							lcd.print(bowden_length[cursor_pos] - 48);
 							enc_dif = encoderDiff;
 						}
 
 						if (enc_dif < encoderDiff) {
 							bowden_length[cursor_pos]++;
-							lcd.setCursor(13, cursor_pos);
-							lcd.print(bowden_length[cursor_pos] -48);
+							lcd.setCursor(13, 1);
+							lcd.print(bowden_length[cursor_pos] - 48);
 							enc_dif = encoderDiff;
 						}
-					}
 				}
 				delay(100);
 				if (lcd_clicked()) {
@@ -2833,13 +2861,27 @@ void bowden_menu() {
 					delay(10);
 					while (lcd_clicked());
 					EEPROM_save_B(EEPROM_BOWDEN_LENGTH + cursor_pos * 2, &bowden_length[cursor_pos]);
-					if (cursor_pos == 3) return;
-					else {
-						cursor_pos++;
+					if (lcd_show_fullscreen_message_yes_no_and_wait_P(PSTR("Continue with another bowden?"))) {
+						lcd_update_enable(true);
+						lcd_implementation_clear();
+						enc_dif = encoderDiff;
+						lcd.setCursor(0, cursor_pos);
+						lcd.print(">");
+						for (int i = 0; i < 4; i++) {
+							lcd.setCursor(1, i);
+							lcd.print("Extruder ");
+							lcd.print(i);
+							lcd.print(": ");
+							EEPROM_read_B(EEPROM_BOWDEN_LENGTH + i * 2, &bowden_length[i]);
+							lcd.print(bowden_length[i] - 48);
+
+						}
+						break;
 					}
+					else return;
 				}
-				
-		
+			}
+		}
 	}
 }