Merge pull request #60 from PavelSindler/MK2

farm mode: printer sends farm number and status, no ping acoustic allert
This commit is contained in:
PavelSindler 2017-03-13 14:45:15 +01:00 committed by GitHub
commit 9411d1dcc5
3 changed files with 58 additions and 25 deletions

View File

@ -5,7 +5,7 @@
#include "Configuration_prusa.h" #include "Configuration_prusa.h"
// Firmware version // 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 "PRUSA3DFW"
#define FW_PRUSA3D_MAGIC_LEN 10 #define FW_PRUSA3D_MAGIC_LEN 10

View File

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