statistics improved, initial version of function which forces user to connect printer to monitoring
This commit is contained in:
parent
9753446e2e
commit
87cadb1f68
|
|
@ -302,6 +302,10 @@ extern unsigned int custom_message_type;
|
|||
extern unsigned int custom_message_state;
|
||||
extern char snmm_filaments_used;
|
||||
extern unsigned long PingTime;
|
||||
extern unsigned long NcTime;
|
||||
extern bool no_response;
|
||||
extern uint8_t important_status;
|
||||
extern uint8_t saved_filament_type;
|
||||
|
||||
|
||||
// Handling multiple extruders pins
|
||||
|
|
|
|||
|
|
@ -225,6 +225,8 @@ CardReader card;
|
|||
unsigned long TimeSent = millis();
|
||||
unsigned long TimeNow = millis();
|
||||
unsigned long PingTime = millis();
|
||||
unsigned long NcTime;
|
||||
|
||||
union Data
|
||||
{
|
||||
byte b[2];
|
||||
|
|
@ -385,6 +387,10 @@ bool cancel_heatup = false ;
|
|||
const char errormagic[] PROGMEM = "Error:";
|
||||
const char echomagic[] PROGMEM = "echo:";
|
||||
|
||||
bool no_response = false;
|
||||
uint8_t important_status;
|
||||
uint8_t saved_filament_type;
|
||||
|
||||
//===========================================================================
|
||||
//=============================Private Variables=============================
|
||||
//===========================================================================
|
||||
|
|
@ -2058,6 +2064,7 @@ void ramming() {
|
|||
*/
|
||||
void process_commands()
|
||||
{
|
||||
if (!buflen) return; //empty command
|
||||
#ifdef FILAMENT_RUNOUT_SUPPORT
|
||||
SET_INPUT(FR_SENS);
|
||||
#endif
|
||||
|
|
@ -2108,6 +2115,9 @@ void process_commands()
|
|||
MYSERIAL.println("Not in farm mode.");
|
||||
}
|
||||
|
||||
}
|
||||
else if (code_seen("thx")) {
|
||||
no_response = false;
|
||||
}else if (code_seen("fv")) {
|
||||
// get file version
|
||||
#ifdef SDSUPPORT
|
||||
|
|
|
|||
|
|
@ -2133,14 +2133,14 @@ void prusa_statistics(int _message, uint8_t _fil_nr) {
|
|||
farm_timer = 2;
|
||||
break;
|
||||
case 6: // print done
|
||||
SERIAL_ECHOLN("{[PRN:8]");
|
||||
SERIAL_ECHO("{[PRN:8]");
|
||||
prusa_stat_farm_number();
|
||||
SERIAL_ECHOLN("}");
|
||||
status_number = 8;
|
||||
farm_timer = 2;
|
||||
break;
|
||||
case 7: // print done - stopped
|
||||
SERIAL_ECHOLN("{[PRN:9]");
|
||||
SERIAL_ECHO("{[PRN:9]");
|
||||
prusa_stat_farm_number();
|
||||
SERIAL_ECHOLN("}");
|
||||
status_number = 9;
|
||||
|
|
@ -2154,7 +2154,7 @@ void prusa_statistics(int _message, uint8_t _fil_nr) {
|
|||
farm_timer = 2;
|
||||
break;
|
||||
case 20: // echo farm no
|
||||
SERIAL_ECHOLN("{");
|
||||
SERIAL_ECHO("{");
|
||||
prusa_stat_printerstatus(status_number);
|
||||
prusa_stat_farm_number();
|
||||
SERIAL_ECHOLN("}");
|
||||
|
|
@ -2168,19 +2168,19 @@ void prusa_statistics(int _message, uint8_t _fil_nr) {
|
|||
SERIAL_ECHOLN("}");
|
||||
break;
|
||||
case 22: // waiting for filament change
|
||||
SERIAL_ECHOLN("{[PRN:5]");
|
||||
SERIAL_ECHO("{[PRN:5]");
|
||||
prusa_stat_farm_number();
|
||||
SERIAL_ECHOLN("}");
|
||||
status_number = 5;
|
||||
break;
|
||||
|
||||
case 90: // Error - Thermal Runaway
|
||||
SERIAL_ECHOLN("{[ERR:1]");
|
||||
SERIAL_ECHO("{[ERR:1]");
|
||||
prusa_stat_farm_number();
|
||||
SERIAL_ECHOLN("}");
|
||||
break;
|
||||
case 91: // Error - Thermal Runaway Preheat
|
||||
SERIAL_ECHOLN("{[ERR:2]");
|
||||
SERIAL_ECHO("{[ERR:2]");
|
||||
prusa_stat_farm_number();
|
||||
SERIAL_ECHOLN("}");
|
||||
break;
|
||||
|
|
@ -2190,7 +2190,7 @@ void prusa_statistics(int _message, uint8_t _fil_nr) {
|
|||
SERIAL_ECHOLN("}");
|
||||
break;
|
||||
case 93: // Error - Max temp
|
||||
SERIAL_ECHOLN("{[ERR:4]");
|
||||
SERIAL_ECHO("{[ERR:4]");
|
||||
prusa_stat_farm_number();
|
||||
SERIAL_ECHOLN("}");
|
||||
break;
|
||||
|
|
@ -3773,12 +3773,20 @@ void lcd_confirm_print()
|
|||
_ret = 1;
|
||||
filament_type = lcd_choose_color();
|
||||
prusa_statistics(4, filament_type);
|
||||
no_response = true; //we need confirmation by recieving PRUSA thx
|
||||
important_status = 4;
|
||||
saved_filament_type = filament_type;
|
||||
NcTime = millis();
|
||||
}
|
||||
if (cursor_pos == 2)
|
||||
{
|
||||
_ret = 2;
|
||||
filament_type = lcd_choose_color();
|
||||
prusa_statistics(5, filament_type);
|
||||
no_response = true; //we need confirmation by recieving PRUSA thx
|
||||
important_status = 5;
|
||||
saved_filament_type = filament_type;
|
||||
NcTime = millis();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3849,7 +3857,7 @@ static void lcd_main_menu()
|
|||
|
||||
|
||||
}*/
|
||||
|
||||
|
||||
if ( ( IS_SD_PRINTING || is_usb_printing ) && (current_position[Z_AXIS] < Z_HEIGHT_HIDE_LIVE_ADJUST_MENU) && !homing_flag && !mesh_bed_leveling_flag)
|
||||
{
|
||||
MENU_ITEM(submenu, MSG_BABYSTEP_Z, lcd_babystep_z);//8
|
||||
|
|
@ -4109,7 +4117,7 @@ void lcd_sdcard_stop()
|
|||
lcd_return_to_status();
|
||||
lcd_ignore_click(true);
|
||||
lcd_commands_type = LCD_COMMAND_STOP_PRINT;
|
||||
|
||||
if (farm_mode) prusa_statistics(7);
|
||||
// Turn off the print fan
|
||||
SET_OUTPUT(FAN_PIN);
|
||||
WRITE(FAN_PIN, 0);
|
||||
|
|
@ -5202,12 +5210,56 @@ void lcd_update(uint8_t lcdDrawUpdateOverride)
|
|||
}
|
||||
if (!SdFatUtil::test_stack_integrity()) stack_error();
|
||||
lcd_ping(); //check that we have received ping command if we are in farm mode
|
||||
lcd_send_status();
|
||||
}
|
||||
|
||||
void lcd_printer_connected() {
|
||||
printer_connected = true;
|
||||
}
|
||||
|
||||
static void lcd_send_status() {
|
||||
if (farm_mode && no_response && ((millis() - NcTime) > (NC_TIME * 1000))) {
|
||||
//send important status messages periodicaly
|
||||
prusa_statistics(important_status, saved_filament_type);
|
||||
NcTime = millis();
|
||||
lcd_connect_printer();
|
||||
}
|
||||
};
|
||||
|
||||
static void lcd_connect_printer() {
|
||||
lcd_update_enable(false);
|
||||
lcd_implementation_clear();
|
||||
|
||||
bool pressed = false;
|
||||
int i = 0;
|
||||
int t = 0;
|
||||
lcd_set_custom_characters_progress();
|
||||
lcd_implementation_print_at(0, 0, "Connect printer to");
|
||||
lcd_implementation_print_at(0, 1, "monitoring or hold");
|
||||
lcd_implementation_print_at(0, 2, "the knob to continue");
|
||||
while (no_response) {
|
||||
i++;
|
||||
t++;
|
||||
delay_keep_alive(100);
|
||||
process_commands();
|
||||
if (t == 10) {
|
||||
prusa_statistics(important_status, saved_filament_type);
|
||||
t = 0;
|
||||
}
|
||||
if (READ(BTN_ENC)) { //if button is not pressed
|
||||
i = 0;
|
||||
lcd_implementation_print_at(0, 3, " ");
|
||||
}
|
||||
if (i!=0) lcd_implementation_print_at((i * 20) / (NC_BUTTON_LONG_PRESS * 10), 3, "\x01");
|
||||
if (i == NC_BUTTON_LONG_PRESS * 10) {
|
||||
no_response = false;
|
||||
}
|
||||
}
|
||||
lcd_set_custom_characters_degree();
|
||||
lcd_update_enable(true);
|
||||
lcd_update(2);
|
||||
}
|
||||
|
||||
void lcd_ping() { //chceck if printer is connected to monitoring when in farm mode
|
||||
if (farm_mode) {
|
||||
bool empty = is_buffer_empty();
|
||||
|
|
|
|||
|
|
@ -266,4 +266,7 @@ void lcd_set_arrows();
|
|||
void lcd_set_progress();
|
||||
#endif
|
||||
|
||||
static void lcd_send_status();
|
||||
static void lcd_connect_printer();
|
||||
|
||||
#endif //ULTRALCD_H
|
||||
|
|
@ -831,7 +831,7 @@ static void lcd_implementation_status_screen()
|
|||
if (heating_status != 0) { custom_message = true; }
|
||||
|
||||
// If printing from SD, show what we are printing
|
||||
if ((IS_SD_PRINTING) && !custom_message)
|
||||
if (IS_SD_PRINTING)
|
||||
{
|
||||
|
||||
if(strcmp(longFilenameOLD, card.longFilename) != 0)
|
||||
|
|
@ -840,38 +840,40 @@ static void lcd_implementation_status_screen()
|
|||
sprintf_P(longFilenameOLD, PSTR("%s"), card.longFilename);
|
||||
scrollstuff = 0;
|
||||
}
|
||||
if (!custom_message) {
|
||||
|
||||
if(strlen(card.longFilename) > LCD_WIDTH)
|
||||
{
|
||||
|
||||
int inters = 0;
|
||||
int gh = scrollstuff;
|
||||
while( ((gh-scrollstuff)<LCD_WIDTH) && (inters == 0) )
|
||||
{
|
||||
|
||||
if(card.longFilename[gh] == '\0')
|
||||
if (strlen(card.longFilename) > LCD_WIDTH)
|
||||
{
|
||||
lcd.setCursor(gh-scrollstuff, 3);
|
||||
lcd.print(card.longFilename[gh-1]);
|
||||
scrollstuff = 0;
|
||||
gh = scrollstuff;
|
||||
inters = 1;
|
||||
}
|
||||
|
||||
int inters = 0;
|
||||
int gh = scrollstuff;
|
||||
while (((gh - scrollstuff) < LCD_WIDTH) && (inters == 0))
|
||||
{
|
||||
|
||||
if (card.longFilename[gh] == '\0')
|
||||
{
|
||||
lcd.setCursor(gh - scrollstuff, 3);
|
||||
lcd.print(card.longFilename[gh - 1]);
|
||||
scrollstuff = 0;
|
||||
gh = scrollstuff;
|
||||
inters = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
lcd.setCursor(gh - scrollstuff, 3);
|
||||
lcd.print(card.longFilename[gh - 1]);
|
||||
gh++;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
scrollstuff++;
|
||||
}
|
||||
else
|
||||
{
|
||||
lcd.setCursor(gh-scrollstuff, 3);
|
||||
lcd.print(card.longFilename[gh-1]);
|
||||
gh++;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
scrollstuff++;
|
||||
}
|
||||
else
|
||||
{
|
||||
lcd.print(longFilenameOLD);
|
||||
}
|
||||
lcd.print(longFilenameOLD);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue