Spacing, coding standards

This commit is contained in:
Scott Lahteine 2017-02-10 00:13:58 -06:00
parent 931914e679
commit d9dcef8a87
5 changed files with 51 additions and 62 deletions

View file

@ -728,9 +728,9 @@
// or until outcoming filament color is not clear for filament color change // or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate #define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45L // Turn off nozzle if user doesn't change filament within this time limit in seconds #define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45L // Turn off nozzle if user doesn't change filament within this time limit in seconds
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5L // Number of alert beeps before printer goes quiet #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5L // Number of alert beeps before printer goes quiet
#define STEPPER_MOTORS_DONT_TIMEOUT_DURING_FILAMENT_CHANGE // Enable to make stepper motors hold position during filament change even if it #define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
// takes longer than DEFAULT_STEPPER_DEACTIVE_TIME // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
#endif #endif
/******************************************************************************\ /******************************************************************************\

View file

@ -7310,7 +7310,7 @@ inline void gcode_M503() {
} }
} }
bool busy_doing_M600 = false; static bool busy_doing_M600 = false;
/** /**
* M600: Pause for filament change * M600: Pause for filament change
@ -7351,8 +7351,6 @@ inline void gcode_M503() {
#define RUNPLAN(RATE_MM_S) line_to_destination(RATE_MM_S); #define RUNPLAN(RATE_MM_S) line_to_destination(RATE_MM_S);
#endif #endif
KEEPALIVE_STATE(IN_HANDLER);
// Initial retract before move to filament change position // Initial retract before move to filament change position
if (code_seen('E')) destination[E_AXIS] += code_value_axis_units(E_AXIS); if (code_seen('E')) destination[E_AXIS] += code_value_axis_units(E_AXIS);
#if defined(FILAMENT_CHANGE_RETRACT_LENGTH) && FILAMENT_CHANGE_RETRACT_LENGTH > 0 #if defined(FILAMENT_CHANGE_RETRACT_LENGTH) && FILAMENT_CHANGE_RETRACT_LENGTH > 0
@ -7409,10 +7407,9 @@ inline void gcode_M503() {
disable_e3(); disable_e3();
delay(100); delay(100);
millis_t nozzle_timeout = millis() + FILAMENT_CHANGE_NOZZLE_TIMEOUT*1000L; millis_t nozzle_timeout = millis() + FILAMENT_CHANGE_NOZZLE_TIMEOUT * 1000L;
bool nozzle_timed_out = false; bool nozzle_timed_out = false;
float temps[4]; float temps[4];
int iii;
// Wait for filament insert by user and press button // Wait for filament insert by user and press button
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_INSERT); lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_INSERT);
@ -7422,62 +7419,62 @@ inline void gcode_M503() {
wait_for_user = true; // LCD click or M108 will clear this wait_for_user = true; // LCD click or M108 will clear this
next_buzz = 0; next_buzz = 0;
runout_beep = 0; runout_beep = 0;
for( iii=0; iii<HOTENDS; iii++) //Save nozzle temps HOTEND_LOOP() temps[e] = thermalManager.target_temperature[e]; // Save nozzle temps
temps[iii] = thermalManager.target_temperature[iii];
while (wait_for_user) { while (wait_for_user) {
millis_t current_ms = millis(); millis_t current_ms = millis();
if (nozzle_timed_out == true) if (nozzle_timed_out)
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_CLICK_TO_HEAT_NOZZLE); lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_CLICK_TO_HEAT_NOZZLE);
#if HAS_BUZZER #if HAS_BUZZER
filament_change_beep(); filament_change_beep();
#endif //HAS_BUZZER #endif
if (current_ms >= nozzle_timeout) { if (current_ms >= nozzle_timeout) {
if (nozzle_timed_out == false ) { if (!nozzle_timed_out) {
nozzle_timed_out = true; // if the nozzle time out happens, remember we turned off the nozzles. nozzle_timed_out = true; // on nozzle timeout remember the nozzles need to be reheated
for( iii=0; iii<HOTENDS; iii++) // turn off all the nozzles HOTEND_LOOP() thermalManager.setTargetHotend(0, e); // Turn off all the nozzles
thermalManager.setTargetHotend( 0.0 , iii );
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_CLICK_TO_HEAT_NOZZLE); lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_CLICK_TO_HEAT_NOZZLE);
} }
} }
idle(true); idle(true);
} }
if (nozzle_timed_out == true ) { // Turn nozzles back on if we turned them off. if (nozzle_timed_out) // Turn nozzles back on if they were turned off
for( iii=0; iii<HOTENDS; iii++) HOTEND_LOOP() thermalManager.setTargetHotend(temps[e], e);
thermalManager.setTargetHotend( temps[iii] , iii );
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT);
}
KEEP_CHECKING_TEMPS: // Show "wait for heating"
idle(); lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT);
for( iii=0; iii<HOTENDS; iii++){
if (abs(thermalManager.degHotend(iii)-temps[iii]) > 3 ) { wait_for_heatup = true;
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT); while (wait_for_heatup) {
goto KEEP_CHECKING_TEMPS; idle();
wait_for_heatup = false;
HOTEND_LOOP() {
if (abs(thermalManager.degHotend(e) - temps[e]) > 3) {
wait_for_heatup = true;
break;
}
} }
} }
// Show "insert filament"
if (nozzle_timed_out)
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_INSERT);
wait_for_user = true; // LCD click or M108 will clear this wait_for_user = true; // LCD click or M108 will clear this
next_buzz = 0; next_buzz = 0;
runout_beep = 0; runout_beep = 0;
while (wait_for_user) { while (wait_for_user && nozzle_timed_out) {
if (nozzle_timed_out == true)
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_INSERT);
else break;
#if HAS_BUZZER #if HAS_BUZZER
filament_change_beep(); filament_change_beep();
#endif #endif
idle(true); idle(true);
} }
// Show load message // Show "load" message
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_LOAD); lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_LOAD);
idle();
// Load filament // Load filament
if (code_seen('L')) destination[E_AXIS] -= code_value_axis_units(E_AXIS); if (code_seen('L')) destination[E_AXIS] -= code_value_axis_units(E_AXIS);
#if defined(FILAMENT_CHANGE_LOAD_LENGTH) && FILAMENT_CHANGE_LOAD_LENGTH > 0 #if defined(FILAMENT_CHANGE_LOAD_LENGTH) && FILAMENT_CHANGE_LOAD_LENGTH > 0
@ -7504,8 +7501,6 @@ KEEP_CHECKING_TEMPS:
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_RESUME); lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_RESUME);
KEEPALIVE_STATE(IN_HANDLER);
// Set extruder to saved position // Set extruder to saved position
destination[E_AXIS] = current_position[E_AXIS] = lastpos[E_AXIS]; destination[E_AXIS] = current_position[E_AXIS] = lastpos[E_AXIS];
planner.set_e_position_mm(current_position[E_AXIS]); planner.set_e_position_mm(current_position[E_AXIS]);
@ -10145,13 +10140,14 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) {
if (max_inactive_time && ELAPSED(ms, previous_cmd_ms + max_inactive_time)) kill(PSTR(MSG_KILLED)); if (max_inactive_time && ELAPSED(ms, previous_cmd_ms + max_inactive_time)) kill(PSTR(MSG_KILLED));
#if ENABLED(FILAMENT_CHANGE_FEATURE) // Prevent steppers timing-out in the middle of M600
#ifdef STEPPER_MOTORS_DONT_TIMEOUT_DURING_FILAMENT_CHANGE #if ENABLED(FILAMENT_CHANGE_FEATURE) && ENABLED(FILAMENT_CHANGE_NO_STEPPER_TIMEOUT)
if (busy_doing_M600 == false ) // We only allow the stepper motors to time out if #define M600_TEST !busy_doing_M600
#endif // we are not in the middle of an M600 command. #else
#define M600_TEST true
#endif #endif
if (stepper_inactive_time && ELAPSED(ms, previous_cmd_ms + stepper_inactive_time) if (M600_TEST && stepper_inactive_time && ELAPSED(ms, previous_cmd_ms + stepper_inactive_time)
&& !ignore_stepper_queue && !planner.blocks_queued()) { && !ignore_stepper_queue && !planner.blocks_queued()) {
#if ENABLED(DISABLE_INACTIVE_X) #if ENABLED(DISABLE_INACTIVE_X)
disable_x(); disable_x();

View file

@ -950,7 +950,7 @@ void kill_screen(const char* lcd_msg) {
// Change filament // Change filament
// //
#if ENABLED(FILAMENT_CHANGE_FEATURE) #if ENABLED(FILAMENT_CHANGE_FEATURE)
if (!thermalManager.tooColdToExtrude(active_extruder)) if (!thermalManager.tooColdToExtrude(active_extruder))
MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change); MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
#endif #endif
@ -2446,19 +2446,19 @@ KeepDrawing:
} }
#endif // LCD_INFO_MENU #endif // LCD_INFO_MENU
/** /**
* *
* Filament Change Feature Screens * Filament Change Feature Screens
* *
*/ */
#if ENABLED(FILAMENT_CHANGE_FEATURE) #if ENABLED(FILAMENT_CHANGE_FEATURE)
void lcd_filament_change_toocold_menu() { void lcd_filament_change_toocold_menu() {
START_MENU(); START_MENU();
STATIC_ITEM(MSG_HEATING_FAILED_LCD, true, true); STATIC_ITEM(MSG_HEATING_FAILED_LCD, true, true);
STATIC_ITEM (MSG_FILAMENT_CHANGE_MINTEMP STRINGIFY(EXTRUDE_MINTEMP) ".", false, false); STATIC_ITEM(MSG_FILAMENT_CHANGE_MINTEMP STRINGIFY(EXTRUDE_MINTEMP) ".", false, false);
MENU_BACK(MSG_BACK); MENU_BACK(MSG_BACK);
STATIC_ITEM (" "); STATIC_ITEM(" ");
STATIC_ITEM(MSG_FILAMENT_CHANGE_NOZZLE, false, true); STATIC_ITEM(MSG_FILAMENT_CHANGE_NOZZLE, false, true);
lcd_implementation_hotend_status(); lcd_implementation_hotend_status();
END_MENU(); END_MENU();
@ -2604,31 +2604,24 @@ KeepDrawing:
switch (message) { switch (message) {
case FILAMENT_CHANGE_MESSAGE_INIT: case FILAMENT_CHANGE_MESSAGE_INIT:
defer_return_to_status = true; defer_return_to_status = true;
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
lcd_goto_screen(lcd_filament_change_init_message); lcd_goto_screen(lcd_filament_change_init_message);
break; break;
case FILAMENT_CHANGE_MESSAGE_UNLOAD: case FILAMENT_CHANGE_MESSAGE_UNLOAD:
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
lcd_goto_screen(lcd_filament_change_unload_message); lcd_goto_screen(lcd_filament_change_unload_message);
break; break;
case FILAMENT_CHANGE_MESSAGE_INSERT: case FILAMENT_CHANGE_MESSAGE_INSERT:
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
lcd_goto_screen(lcd_filament_change_insert_message); lcd_goto_screen(lcd_filament_change_insert_message);
break; break;
case FILAMENT_CHANGE_MESSAGE_LOAD: case FILAMENT_CHANGE_MESSAGE_LOAD:
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
lcd_goto_screen(lcd_filament_change_load_message); lcd_goto_screen(lcd_filament_change_load_message);
break; break;
case FILAMENT_CHANGE_MESSAGE_EXTRUDE: case FILAMENT_CHANGE_MESSAGE_EXTRUDE:
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
lcd_goto_screen(lcd_filament_change_extrude_message); lcd_goto_screen(lcd_filament_change_extrude_message);
break; break;
case FILAMENT_CHANGE_MESSAGE_CLICK_TO_HEAT_NOZZLE: case FILAMENT_CHANGE_MESSAGE_CLICK_TO_HEAT_NOZZLE:
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
lcd_goto_screen(lcd_filament_change_heat_nozzle); lcd_goto_screen(lcd_filament_change_heat_nozzle);
break; break;
case FILAMENT_CHANGE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT: case FILAMENT_CHANGE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT:
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
lcd_goto_screen(lcd_filament_change_wait_for_nozzles_to_heat); lcd_goto_screen(lcd_filament_change_wait_for_nozzles_to_heat);
break; break;
case FILAMENT_CHANGE_MESSAGE_OPTION: case FILAMENT_CHANGE_MESSAGE_OPTION:

View file

@ -382,9 +382,9 @@ FORCE_INLINE void _draw_axis_label(const AxisEnum axis, const char* const pstr,
static void lcd_implementation_hotend_status() { static void lcd_implementation_hotend_status() {
u8g.setPrintPos(58, 60); u8g.setPrintPos(58, 60);
lcd_print( (char) '0'+active_extruder ); lcd_print((char)('0' + active_extruder));
lcd_print( ' ' ); lcd_print(' ');
lcd_print( ' ' ); lcd_print(' ');
lcd_print(itostr3(thermalManager.degHotend(active_extruder))); lcd_print(itostr3(thermalManager.degHotend(active_extruder)));
lcd_print('/'); lcd_print('/');
lcd_print(itostr3(thermalManager.degTargetHotend(active_extruder))); lcd_print(itostr3(thermalManager.degTargetHotend(active_extruder)));

View file

@ -593,7 +593,7 @@ FORCE_INLINE void _draw_axis_label(const AxisEnum axis, const char* const pstr,
#endif // LCD_PROGRESS_BAR #endif // LCD_PROGRESS_BAR
static void lcd_implementation_hotend_status() { static void lcd_implementation_hotend_status() {
lcd.setCursor(10,3); lcd.setCursor(10, 3);
lcd.print(LCD_STR_THERMOMETER[active_extruder]); lcd.print(LCD_STR_THERMOMETER[active_extruder]);
lcd.print(itostr3(thermalManager.degHotend(active_extruder))); lcd.print(itostr3(thermalManager.degHotend(active_extruder)));
lcd.print('/'); lcd.print('/');