farm mode: printer sends farm number and status, no ping acoustic allert

This commit is contained in:
PavelSindler 2017-03-13 14:40:26 +01:00
parent 608717d110
commit 7ad319a16a
3 changed files with 58 additions and 25 deletions

View file

@ -5,7 +5,7 @@
#include "Configuration_prusa.h"
// Firmware version
#define FW_version "3.0.10-5"
#define FW_version "3.0.10-6"
#define FW_PRUSA3D_MAGIC "PRUSA3DFW"
#define FW_PRUSA3D_MAGIC_LEN 10

View file

@ -1962,7 +1962,7 @@ void process_commands()
if (code_seen("Ping")) { //PRUSA Ping
if (farm_mode) {
PingTime = millis();
MYSERIAL.print(farm_no); MYSERIAL.println(": OK");
//MYSERIAL.print(farm_no); MYSERIAL.println(": OK");
}
}
else if (code_seen("PRN")) {

View file

@ -152,6 +152,7 @@ static void lcd_control_motion_menu();
static void lcd_control_volumetric_menu();
static void prusa_stat_printerstatus(int _status);
static void prusa_stat_farm_number();
static void prusa_stat_temperatures();
static void prusa_stat_printinfo();
static void lcd_farm_no();
@ -1891,19 +1892,18 @@ void prusa_statistics(int _message) {
{
SERIAL_ECHO("{");
prusa_stat_printerstatus(4);
status_number = 4;
prusa_stat_farm_number();
prusa_stat_printinfo();
SERIAL_ECHOLN("}");
status_number = 4;
}
else
{
SERIAL_ECHO("{");
prusa_stat_printerstatus(1);
status_number = 1;
SERIAL_ECHO("[PFN:");
SERIAL_ECHO(farm_no);
SERIAL_ECHO("]");
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
status_number = 1;
}
break;
@ -1911,8 +1911,9 @@ void prusa_statistics(int _message) {
farm_status = 2;
SERIAL_ECHO("{");
prusa_stat_printerstatus(2);
status_number = 2;
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
status_number = 2;
farm_timer = 1;
break;
@ -1920,8 +1921,9 @@ void prusa_statistics(int _message) {
farm_status = 3;
SERIAL_ECHO("{");
prusa_stat_printerstatus(3);
status_number = 3;
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
status_number = 3;
farm_timer = 1;
if (IS_SD_PRINTING)
@ -1929,15 +1931,17 @@ void prusa_statistics(int _message) {
farm_status = 4;
SERIAL_ECHO("{");
prusa_stat_printerstatus(4);
status_number = 4;
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
status_number = 4;
}
else
{
SERIAL_ECHO("{");
prusa_stat_printerstatus(3);
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
status_number = 3;
SERIAL_ECHOLN("}");;
}
farm_timer = 1;
break;
@ -1946,20 +1950,30 @@ void prusa_statistics(int _message) {
break;
case 4: // print succesfull
SERIAL_ECHOLN("{[RES:1]}");
SERIAL_ECHOLN("{[RES:1]");
prusa_stat_printerstatus(status_number);
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
farm_timer = 2;
break;
case 5: // print not succesfull
SERIAL_ECHOLN("{[RES:0]}");
SERIAL_ECHOLN("{[RES:0]");
prusa_stat_printerstatus(status_number);
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
farm_timer = 2;
break;
case 6: // print done
SERIAL_ECHOLN("{[PRN:8]}");
SERIAL_ECHOLN("{[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_ECHOLN("{[PRN:9]");
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
status_number = 9;
farm_timer = 2;
break;
@ -1971,32 +1985,45 @@ void prusa_statistics(int _message) {
farm_timer = 2;
break;
case 20: // echo farm no
SERIAL_ECHO("{[PFN:");
SERIAL_ECHO(farm_no);
SERIAL_ECHOLN("]}");
SERIAL_ECHOLN("{");
prusa_stat_printerstatus(status_number);
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
farm_timer = 5;
break;
case 21: // temperatures
SERIAL_ECHO("{");
prusa_stat_temperatures();
prusa_stat_farm_number();
prusa_stat_printerstatus(status_number);
SERIAL_ECHOLN("}");
break;
case 22: // waiting for filament change
SERIAL_ECHOLN("{[PRN:5]}");
SERIAL_ECHOLN("{[PRN:5]");
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
status_number = 5;
break;
case 90: // Error - Thermal Runaway
SERIAL_ECHOLN("{[ERR:1]}");
SERIAL_ECHOLN("{[ERR:1]");
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
break;
case 91: // Error - Thermal Runaway Preheat
SERIAL_ECHOLN("{[ERR:2]}");
SERIAL_ECHOLN("{[ERR:2]");
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
break;
case 92: // Error - Min temp
SERIAL_ECHOLN("{[ERR:3]}");
SERIAL_ECHOLN("{[ERR:3]");
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
break;
case 93: // Error - Max temp
SERIAL_ECHOLN("{[ERR:4]}");
SERIAL_ECHOLN("{[ERR:4]");
prusa_stat_farm_number();
SERIAL_ECHOLN("}");
break;
case 99: // heartbeat
@ -2019,6 +2046,12 @@ static void prusa_stat_printerstatus(int _status)
SERIAL_ECHO("]");
}
static void prusa_stat_farm_number() {
SERIAL_ECHO("[PFN:");
SERIAL_ECHO(farm_no);
SERIAL_ECHO("]");
}
static void prusa_stat_temperatures()
{
SERIAL_ECHO("[ST0:");
@ -4503,14 +4536,14 @@ void lcd_printer_connected() {
printer_connected = true;
}
void lcd_ping() {
void lcd_ping() { //chceck if printer is connected to monitoring when in farm mode
if (farm_mode) {
bool empty = is_buffer_empty();
if ((millis() - PingTime) * 0.001 > (empty ? PING_TIME : PING_TIME_LONG)) { //if commands buffer is empty use shorter time period
//if there are comamnds in buffer, some long gcodes can delay execution of ping command
//therefore longer period is used
printer_connected = false;
lcd_ping_allert();
//lcd_ping_allert(); //acustic signals
}
else {
lcd_printer_connected();