statistics improved, initial version of function which forces user to connect printer to monitoring
This commit is contained in:
parent
a23ac6db7d
commit
ddeb7b8c84
|
|
@ -315,6 +315,10 @@ extern unsigned int custom_message_type;
|
||||||
extern unsigned int custom_message_state;
|
extern unsigned int custom_message_state;
|
||||||
extern char snmm_filaments_used;
|
extern char snmm_filaments_used;
|
||||||
extern unsigned long PingTime;
|
extern unsigned long PingTime;
|
||||||
|
extern unsigned long NcTime;
|
||||||
|
extern bool no_response;
|
||||||
|
extern uint8_t important_status;
|
||||||
|
extern uint8_t saved_filament_type;
|
||||||
|
|
||||||
extern bool fan_state[2];
|
extern bool fan_state[2];
|
||||||
extern int fan_edge_counter[2];
|
extern int fan_edge_counter[2];
|
||||||
|
|
|
||||||
|
|
@ -251,6 +251,8 @@ CardReader card;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
unsigned long PingTime = millis();
|
unsigned long PingTime = millis();
|
||||||
|
unsigned long NcTime;
|
||||||
|
|
||||||
union Data
|
union Data
|
||||||
{
|
{
|
||||||
byte b[2];
|
byte b[2];
|
||||||
|
|
@ -414,6 +416,10 @@ bool cancel_heatup = false ;
|
||||||
const char errormagic[] PROGMEM = "Error:";
|
const char errormagic[] PROGMEM = "Error:";
|
||||||
const char echomagic[] PROGMEM = "echo:";
|
const char echomagic[] PROGMEM = "echo:";
|
||||||
|
|
||||||
|
bool no_response = false;
|
||||||
|
uint8_t important_status;
|
||||||
|
uint8_t saved_filament_type;
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//=============================Private Variables=============================
|
//=============================Private Variables=============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
@ -2382,6 +2388,7 @@ void gcode_M701()
|
||||||
|
|
||||||
void process_commands()
|
void process_commands()
|
||||||
{
|
{
|
||||||
|
if (!buflen) return; //empty command
|
||||||
#ifdef FILAMENT_RUNOUT_SUPPORT
|
#ifdef FILAMENT_RUNOUT_SUPPORT
|
||||||
SET_INPUT(FR_SENS);
|
SET_INPUT(FR_SENS);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -2455,6 +2462,9 @@ void process_commands()
|
||||||
MYSERIAL.println("Not in farm mode.");
|
MYSERIAL.println("Not in farm mode.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (code_seen("thx")) {
|
||||||
|
no_response = false;
|
||||||
}else if (code_seen("fv")) {
|
}else if (code_seen("fv")) {
|
||||||
// get file version
|
// get file version
|
||||||
#ifdef SDSUPPORT
|
#ifdef SDSUPPORT
|
||||||
|
|
|
||||||
|
|
@ -3077,14 +3077,14 @@ void prusa_statistics(int _message) {
|
||||||
farm_timer = 2;
|
farm_timer = 2;
|
||||||
break;
|
break;
|
||||||
case 6: // print done
|
case 6: // print done
|
||||||
SERIAL_ECHOLN("{[PRN:8]");
|
SERIAL_ECHO("{[PRN:8]");
|
||||||
prusa_stat_farm_number();
|
prusa_stat_farm_number();
|
||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
status_number = 8;
|
status_number = 8;
|
||||||
farm_timer = 2;
|
farm_timer = 2;
|
||||||
break;
|
break;
|
||||||
case 7: // print done - stopped
|
case 7: // print done - stopped
|
||||||
SERIAL_ECHOLN("{[PRN:9]");
|
SERIAL_ECHO("{[PRN:9]");
|
||||||
prusa_stat_farm_number();
|
prusa_stat_farm_number();
|
||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
status_number = 9;
|
status_number = 9;
|
||||||
|
|
@ -3098,7 +3098,7 @@ void prusa_statistics(int _message) {
|
||||||
farm_timer = 2;
|
farm_timer = 2;
|
||||||
break;
|
break;
|
||||||
case 20: // echo farm no
|
case 20: // echo farm no
|
||||||
SERIAL_ECHOLN("{");
|
SERIAL_ECHO("{");
|
||||||
prusa_stat_printerstatus(status_number);
|
prusa_stat_printerstatus(status_number);
|
||||||
prusa_stat_farm_number();
|
prusa_stat_farm_number();
|
||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
|
|
@ -3112,19 +3112,19 @@ void prusa_statistics(int _message) {
|
||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
break;
|
break;
|
||||||
case 22: // waiting for filament change
|
case 22: // waiting for filament change
|
||||||
SERIAL_ECHOLN("{[PRN:5]");
|
SERIAL_ECHO("{[PRN:5]");
|
||||||
prusa_stat_farm_number();
|
prusa_stat_farm_number();
|
||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
status_number = 5;
|
status_number = 5;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 90: // Error - Thermal Runaway
|
case 90: // Error - Thermal Runaway
|
||||||
SERIAL_ECHOLN("{[ERR:1]");
|
SERIAL_ECHO("{[ERR:1]");
|
||||||
prusa_stat_farm_number();
|
prusa_stat_farm_number();
|
||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
break;
|
break;
|
||||||
case 91: // Error - Thermal Runaway Preheat
|
case 91: // Error - Thermal Runaway Preheat
|
||||||
SERIAL_ECHOLN("{[ERR:2]");
|
SERIAL_ECHO("{[ERR:2]");
|
||||||
prusa_stat_farm_number();
|
prusa_stat_farm_number();
|
||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
break;
|
break;
|
||||||
|
|
@ -3134,7 +3134,7 @@ void prusa_statistics(int _message) {
|
||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
break;
|
break;
|
||||||
case 93: // Error - Max temp
|
case 93: // Error - Max temp
|
||||||
SERIAL_ECHOLN("{[ERR:4]");
|
SERIAL_ECHO("{[ERR:4]");
|
||||||
prusa_stat_farm_number();
|
prusa_stat_farm_number();
|
||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
break;
|
break;
|
||||||
|
|
@ -5220,14 +5220,22 @@ void lcd_confirm_print()
|
||||||
if (cursor_pos == 1)
|
if (cursor_pos == 1)
|
||||||
{
|
{
|
||||||
_ret = 1;
|
_ret = 1;
|
||||||
prusa_statistics(20);
|
filament_type = lcd_choose_color();
|
||||||
prusa_statistics(4);
|
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)
|
if (cursor_pos == 2)
|
||||||
{
|
{
|
||||||
_ret = 2;
|
_ret = 2;
|
||||||
prusa_statistics(20);
|
filament_type = lcd_choose_color();
|
||||||
prusa_statistics(5);
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -7162,6 +7170,7 @@ void lcd_update(uint8_t lcdDrawUpdateOverride)
|
||||||
if (stepper_timer_overflow_state) stepper_timer_overflow();
|
if (stepper_timer_overflow_state) stepper_timer_overflow();
|
||||||
#endif /* DEBUG_STEPPER_TIMER_MISSED */
|
#endif /* DEBUG_STEPPER_TIMER_MISSED */
|
||||||
lcd_ping(); //check that we have received ping command if we are in farm mode
|
lcd_ping(); //check that we have received ping command if we are in farm mode
|
||||||
|
lcd_send_status();
|
||||||
if (lcd_commands_type == LCD_COMMAND_V2_CAL) lcd_commands();
|
if (lcd_commands_type == LCD_COMMAND_V2_CAL) lcd_commands();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -7169,6 +7178,49 @@ void lcd_printer_connected() {
|
||||||
printer_connected = true;
|
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
|
void lcd_ping() { //chceck if printer is connected to monitoring when in farm mode
|
||||||
if (farm_mode) {
|
if (farm_mode) {
|
||||||
bool empty = is_buffer_empty();
|
bool empty = is_buffer_empty();
|
||||||
|
|
|
||||||
|
|
@ -285,4 +285,7 @@ void lcd_service_mode_show_result();
|
||||||
void lcd_wizard();
|
void lcd_wizard();
|
||||||
void lcd_wizard(int state);
|
void lcd_wizard(int state);
|
||||||
|
|
||||||
|
static void lcd_send_status();
|
||||||
|
static void lcd_connect_printer();
|
||||||
|
|
||||||
#endif //ULTRALCD_H
|
#endif //ULTRALCD_H
|
||||||
|
|
@ -877,34 +877,35 @@ if (print_sd_status)
|
||||||
if(strlen(card.longFilename) > LCD_WIDTH)
|
if(strlen(card.longFilename) > LCD_WIDTH)
|
||||||
{
|
{
|
||||||
|
|
||||||
int inters = 0;
|
int inters = 0;
|
||||||
int gh = scrollstuff;
|
int gh = scrollstuff;
|
||||||
while( ((gh-scrollstuff)<LCD_WIDTH) && (inters == 0) )
|
while (((gh - scrollstuff) < LCD_WIDTH) && (inters == 0))
|
||||||
{
|
{
|
||||||
|
|
||||||
if(card.longFilename[gh] == '\0')
|
if (card.longFilename[gh] == '\0')
|
||||||
{
|
{
|
||||||
lcd.setCursor(gh-scrollstuff, 3);
|
lcd.setCursor(gh - scrollstuff, 3);
|
||||||
lcd.print(card.longFilename[gh-1]);
|
lcd.print(card.longFilename[gh - 1]);
|
||||||
scrollstuff = 0;
|
scrollstuff = 0;
|
||||||
gh = scrollstuff;
|
gh = scrollstuff;
|
||||||
inters = 1;
|
inters = 1;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lcd.setCursor(gh - scrollstuff, 3);
|
||||||
|
lcd.print(card.longFilename[gh - 1]);
|
||||||
|
gh++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
scrollstuff++;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lcd.setCursor(gh-scrollstuff, 3);
|
lcd.print(longFilenameOLD);
|
||||||
lcd.print(card.longFilename[gh-1]);
|
}
|
||||||
gh++;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
scrollstuff++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lcd.print(longFilenameOLD);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue