pre-production version ;-)

This commit is contained in:
MRprusa3d 2019-07-09 12:16:51 +02:00
parent 4db4f19128
commit 8229a45187
16 changed files with 168 additions and 78 deletions

12
Firmware/Configuration.c Normal file
View File

@ -0,0 +1,12 @@
#include <stdint.h>
#include <avr/pgmspace.h>
//!?! #include "Configuration.h"
#include "Configuration_prusa.h"
const uint16_t _nPrinterType PROGMEM=PRINTER_TYPE;
const char _sPrinterName[] PROGMEM=PRINTER_NAME;
const uint16_t _nPrinterMmuType PROGMEM=PRINTER_MMU_TYPE;
const char _sPrinterMmuName[] PROGMEM=PRINTER_MMU_NAME;
uint16_t nPrinterType;
PGM_P sPrinterName;

View File

@ -6,6 +6,15 @@
#define STR_HELPER(x) #x #define STR_HELPER(x) #x
#define STR(x) STR_HELPER(x) #define STR(x) STR_HELPER(x)
//-//
#include <avr/pgmspace.h>
extern const uint16_t _nPrinterType;
extern const char _sPrinterName[] PROGMEM;
extern const uint16_t _nPrinterMmuType;
extern const char _sPrinterMmuName[] PROGMEM;
extern uint16_t nPrinterType;
extern PGM_P sPrinterName;
// Firmware version // Firmware version
#define FW_VERSION "3.7.1" #define FW_VERSION "3.7.1"
#define FW_COMMIT_NR 2266 #define FW_COMMIT_NR 2266

View File

@ -43,8 +43,10 @@
* *
*/ */
//-//
#include "Configuration.h"
#include "Marlin.h" #include "Marlin.h"
#ifdef ENABLE_AUTO_BED_LEVELING #ifdef ENABLE_AUTO_BED_LEVELING
#include "vector_3.h" #include "vector_3.h"
#ifdef AUTO_BED_LEVELING_GRID #ifdef AUTO_BED_LEVELING_GRID
@ -1646,11 +1648,11 @@ void setup()
} }
#endif //UVLO_SUPPORT #endif //UVLO_SUPPORT
fCheckModeInit(); fCheckModeInit();
fSetMmuMode(mmu_enabled);
KEEPALIVE_STATE(NOT_BUSY); KEEPALIVE_STATE(NOT_BUSY);
#ifdef WATCHDOG #ifdef WATCHDOG
wdt_enable(WDTO_4S); wdt_enable(WDTO_4S);
#endif //WATCHDOG #endif //WATCHDOG
} }
@ -6894,12 +6896,14 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
nDiameter=(uint16_t)(code_value()*1000.0+0.5); // [,um] nDiameter=(uint16_t)(code_value()*1000.0+0.5); // [,um]
nozzle_diameter_check(nDiameter); nozzle_diameter_check(nDiameter);
} }
/*
else if(code_seen('S')&&farm_mode) else if(code_seen('S')&&farm_mode)
{ {
nDiameter=(uint16_t)(code_value()*1000.0+0.5); // [,um] nDiameter=(uint16_t)(code_value()*1000.0+0.5); // [,um]
eeprom_update_byte((uint8_t*)EEPROM_NOZZLE_DIAMETER,(uint8_t)ClNozzleDiameter::_Diameter_Undef); // for correct synchronization after farm-mode exiting eeprom_update_byte((uint8_t*)EEPROM_NOZZLE_DIAMETER,(uint8_t)ClNozzleDiameter::_Diameter_Undef); // for correct synchronization after farm-mode exiting
eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,nDiameter); eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,nDiameter);
} }
*/
else if(code_seen('Q')) else if(code_seen('Q'))
SERIAL_PROTOCOLLN((float)eeprom_read_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM)/1000.0); SERIAL_PROTOCOLLN((float)eeprom_read_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM)/1000.0);
break; break;
@ -6911,13 +6915,13 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
printer_model_check(nPrinterModel); printer_model_check(nPrinterModel);
} }
else if(code_seen('Q')) else if(code_seen('Q'))
SERIAL_PROTOCOLLN(PRINTER_TYPE); SERIAL_PROTOCOLLN(nPrinterType);
break; break;
case ClPrintChecking::_Smodel: // ~ .3 case ClPrintChecking::_Smodel: // ~ .3
if(code_seen('P')) if(code_seen('P'))
printer_smodel_check(strchr_pointer); printer_smodel_check(strchr_pointer);
else if(code_seen('Q')) else if(code_seen('Q'))
SERIAL_PROTOCOLLN(PRINTER_NAME); SERIAL_PROTOCOLLNRPGM(sPrinterName);
break; break;
case ClPrintChecking::_Version: // ~ .4 case ClPrintChecking::_Version: // ~ .4
if(code_seen('P')) if(code_seen('P'))

View File

@ -15,6 +15,8 @@
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
#include "io_atmega2560.h" #include "io_atmega2560.h"
#include "AutoDeplete.h" #include "AutoDeplete.h"
//-//
#include "util.h"
#ifdef TMC2130 #ifdef TMC2130
#include "tmc2130.h" #include "tmc2130.h"
@ -263,6 +265,9 @@ void mmu_loop(void)
FDEBUG_PRINTF_P(PSTR("MMU => '%dok'\n"), mmu_finda); FDEBUG_PRINTF_P(PSTR("MMU => '%dok'\n"), mmu_finda);
puts_P(PSTR("MMU - ENABLED")); puts_P(PSTR("MMU - ENABLED"));
mmu_enabled = true; mmu_enabled = true;
//-//
// ... PrinterType/Name
fSetMmuMode(true);
mmu_state = S::Idle; mmu_state = S::Idle;
} }
return; return;

View File

@ -3,23 +3,49 @@
#define PRINTER_UNKNOWN 0 #define PRINTER_UNKNOWN 0
#define PRINTER_MK1 100 /* original definition(s)
#define PRINTER_MK2 200 #define PRINTER_MK1 100
#define PRINTER_MK2_SNMM 201 #define PRINTER_MK2 200
#define PRINTER_MK25 250 #define PRINTER_MK2_SNMM 201
#define PRINTER_MK25_SNMM 251 #define PRINTER_MK25 250
#define PRINTER_MK25_SNMM 251
#define PRINTER_MK25S 252
#define PRINTER_MK3 300
#define PRINTER_MK3_SNMM 301
#define PRINTER_MK3S 302
*/
// *** MK1
#define PRINTER_MK1 100
#define PRINTER_MK1_NAME "MK1"
// *** MK2
#define PRINTER_MK2 200
#define PRINTER_MK2_NAME "MK2"
#define PRINTER_MK2_SNMM 201 // better is "10200"
#define PRINTER_MK2_SNMM_NAME "MK2MM" // better is "MK2MMU1"
// *** MK2S ??? is same as "MK2" ???
#define PRINTER_MK2S 202
#define PRINTER_MK2S_NAME "MK2S"
#define PRINTER_MK2S_SNMM 203 // better is "10202"
#define PRINTER_MK2S_SNMM_NAME "MK2SMM" // better is "MK2SMMU1"
// *** MK2.5
#define PRINTER_MK25 250
#define PRINTER_MK25_NAME "MK2.5"
#define PRINTER_MK25_MMU2 20250
#define PRINTER_MK25_MMU2_NAME "MK2.5MMU2"
// *** MK2.5S
#define PRINTER_MK25S 252 #define PRINTER_MK25S 252
#define PRINTER_MK25S_NAME "MK2.5S"
#define PRINTER_MK3 300 #define PRINTER_MK25S_MMU2 20252
#define PRINTER_MK25S_MMU2_NAME "MK2.5SMMU2S"
// *** MK3
#define PRINTER_MK3 300
#define PRINTER_MK3_NAME "MK3" #define PRINTER_MK3_NAME "MK3"
#define PRINTER_MK3_SNMM 301 #define PRINTER_MK3_MMU2 20300
#define PRINTER_MK3_MMU2_NAME "MK3MMU2"
#define PRINTER_MK3_MMU2 20300 // *** MK3S
#define PRINTER_MK3_MMU2_NAME "MK3MMU2"
#define PRINTER_MK3S 302 #define PRINTER_MK3S 302
#define PRINTER_MK3S_NAME "MK3S" #define PRINTER_MK3S_NAME "MK3S"
#define PRINTER_MK3S_MMU2 20302 #define PRINTER_MK3S_MMU2 20302
#define PRINTER_MK3S_MMU2_NAME "MK3SMMU2S" #define PRINTER_MK3S_MMU2_NAME "MK3SMMU2S"
#endif //PRINTERS_H #endif //PRINTERS_H

View File

@ -5311,16 +5311,16 @@ do\
switch(oCheckMode)\ switch(oCheckMode)\
{\ {\
case ClCheckMode::_None:\ case ClCheckMode::_None:\
MENU_ITEM_FUNCTION_P(_i("Nozzle Ch. [none]"),lcd_check_mode_set);\ MENU_ITEM_FUNCTION_P(_i("Nozzle [none]"),lcd_check_mode_set);\
break;\ break;\
case ClCheckMode::_Warn:\ case ClCheckMode::_Warn:\
MENU_ITEM_FUNCTION_P(_i("Nozzle Ch. [warn]"),lcd_check_mode_set);\ MENU_ITEM_FUNCTION_P(_i("Nozzle [warn]"),lcd_check_mode_set);\
break;\ break;\
case ClCheckMode::_Strict:\ case ClCheckMode::_Strict:\
MENU_ITEM_FUNCTION_P(_i("Nozzle Ch[strict]"),lcd_check_mode_set);\ MENU_ITEM_FUNCTION_P(_i("Nozzle [strict]"),lcd_check_mode_set);\
break;\ break;\
default:\ default:\
MENU_ITEM_FUNCTION_P(_i("Nozzle Ch. [none]"),lcd_check_mode_set);\ MENU_ITEM_FUNCTION_P(_i("Nozzle [none]"),lcd_check_mode_set);\
}\ }\
}\ }\
while (0) while (0)
@ -5396,16 +5396,16 @@ do\
switch(oCheckModel)\ switch(oCheckModel)\
{\ {\
case ClCheckModel::_None:\ case ClCheckModel::_None:\
MENU_ITEM_FUNCTION_P(_i("Model Ch. [none]"),lcd_check_model_set);\ MENU_ITEM_FUNCTION_P(_i("Model [none]"),lcd_check_model_set);\
break;\ break;\
case ClCheckModel::_Warn:\ case ClCheckModel::_Warn:\
MENU_ITEM_FUNCTION_P(_i("Model Ch. [warn]"),lcd_check_model_set);\ MENU_ITEM_FUNCTION_P(_i("Model [warn]"),lcd_check_model_set);\
break;\ break;\
case ClCheckModel::_Strict:\ case ClCheckModel::_Strict:\
MENU_ITEM_FUNCTION_P(_i("Model Ch.[strict]"),lcd_check_model_set);\ MENU_ITEM_FUNCTION_P(_i("Model [strict]"),lcd_check_model_set);\
break;\ break;\
default:\ default:\
MENU_ITEM_FUNCTION_P(_i("Model Ch. [none]"),lcd_check_model_set);\ MENU_ITEM_FUNCTION_P(_i("Model [none]"),lcd_check_model_set);\
}\ }\
}\ }\
while (0) while (0)
@ -5435,16 +5435,16 @@ do\
switch(oCheckVersion)\ switch(oCheckVersion)\
{\ {\
case ClCheckVersion::_None:\ case ClCheckVersion::_None:\
MENU_ITEM_FUNCTION_P(_i("FW Ch. [none]"),lcd_check_version_set);\ MENU_ITEM_FUNCTION_P(_i("Firmware [none]"),lcd_check_version_set);\
break;\ break;\
case ClCheckVersion::_Warn:\ case ClCheckVersion::_Warn:\
MENU_ITEM_FUNCTION_P(_i("FW Ch. [warn]"),lcd_check_version_set);\ MENU_ITEM_FUNCTION_P(_i("Firmware [warn]"),lcd_check_version_set);\
break;\ break;\
case ClCheckVersion::_Strict:\ case ClCheckVersion::_Strict:\
MENU_ITEM_FUNCTION_P(_i("FW Ch. [strict]"),lcd_check_version_set);\ MENU_ITEM_FUNCTION_P(_i("Firmware [strict]"),lcd_check_version_set);\
break;\ break;\
default:\ default:\
MENU_ITEM_FUNCTION_P(_i("FW Ch. [none]"),lcd_check_version_set);\ MENU_ITEM_FUNCTION_P(_i("Firmware [none]"),lcd_check_version_set);\
}\ }\
}\ }\
while (0) while (0)
@ -5474,25 +5474,26 @@ do\
switch(oCheckGcode)\ switch(oCheckGcode)\
{\ {\
case ClCheckGcode::_None:\ case ClCheckGcode::_None:\
MENU_ITEM_FUNCTION_P(_i("Gcode Ch. [none]"),lcd_check_gcode_set);\ MENU_ITEM_FUNCTION_P(_i("Gcode [none]"),lcd_check_gcode_set);\
break;\ break;\
case ClCheckGcode::_Warn:\ case ClCheckGcode::_Warn:\
MENU_ITEM_FUNCTION_P(_i("Gcode Ch. [warn]"),lcd_check_gcode_set);\ MENU_ITEM_FUNCTION_P(_i("Gcode [warn]"),lcd_check_gcode_set);\
break;\ break;\
case ClCheckGcode::_Strict:\ case ClCheckGcode::_Strict:\
MENU_ITEM_FUNCTION_P(_i("Gcode Ch.[strict]"),lcd_check_gcode_set);\ MENU_ITEM_FUNCTION_P(_i("Gcode [strict]"),lcd_check_gcode_set);\
break;\ break;\
default:\ default:\
MENU_ITEM_FUNCTION_P(_i("Gcode Ch. [none]"),lcd_check_gcode_set);\ MENU_ITEM_FUNCTION_P(_i("Gcode [none]"),lcd_check_gcode_set);\
}\ }\
}\ }\
while (0) while (0)
//static void lcd_checking_menu() //-//static void lcd_checking_menu()
void lcd_checking_menu() void lcd_checking_menu()
{ {
MENU_BEGIN(); MENU_BEGIN();
MENU_ITEM_BACK_P(_T(MSG_SETTINGS)); //-//MENU_ITEM_BACK_P(_T(MSG_SETTINGS));
MENU_ITEM_BACK_P(_T(MSG_BACK));
SETTINGS_NOZZLE; SETTINGS_NOZZLE;
MENU_ITEM_TEXT_P(STR_SEPARATOR); MENU_ITEM_TEXT_P(STR_SEPARATOR);
MENU_ITEM_TEXT_P(_i("Checks:")); MENU_ITEM_TEXT_P(_i("Checks:"));

View File

@ -359,19 +359,19 @@ oCheckModel=(ClCheckModel)eeprom_read_byte((uint8_t*)EEPROM_CHECK_MODEL);
if(oCheckModel==ClCheckModel::_Undef) if(oCheckModel==ClCheckModel::_Undef)
{ {
oCheckModel=ClCheckModel::_Warn; oCheckModel=ClCheckModel::_Warn;
// eeprom_update_byte((uint8_t*)EEPROM_CHECK_MODEL,(uint8_t)oCheckModel); eeprom_update_byte((uint8_t*)EEPROM_CHECK_MODEL,(uint8_t)oCheckModel);
} }
oCheckVersion=(ClCheckVersion)eeprom_read_byte((uint8_t*)EEPROM_CHECK_VERSION); oCheckVersion=(ClCheckVersion)eeprom_read_byte((uint8_t*)EEPROM_CHECK_VERSION);
if(oCheckVersion==ClCheckVersion::_Undef) if(oCheckVersion==ClCheckVersion::_Undef)
{ {
oCheckVersion=ClCheckVersion::_Warn; oCheckVersion=ClCheckVersion::_Warn;
// eeprom_update_byte((uint8_t*)EEPROM_CHECK_VERSION,(uint8_t)oCheckVersion); eeprom_update_byte((uint8_t*)EEPROM_CHECK_VERSION,(uint8_t)oCheckVersion);
} }
oCheckGcode=(ClCheckGcode)eeprom_read_byte((uint8_t*)EEPROM_CHECK_GCODE); oCheckGcode=(ClCheckGcode)eeprom_read_byte((uint8_t*)EEPROM_CHECK_GCODE);
if(oCheckGcode==ClCheckGcode::_Undef) if(oCheckGcode==ClCheckGcode::_Undef)
{ {
oCheckGcode=ClCheckGcode::_Warn; oCheckGcode=ClCheckGcode::_Warn;
// eeprom_update_byte((uint8_t*)EEPROM_CHECK_GCODE,(uint8_t)oCheckGcode); eeprom_update_byte((uint8_t*)EEPROM_CHECK_GCODE,(uint8_t)oCheckGcode);
} }
} }
@ -407,12 +407,12 @@ void printer_model_check(uint16_t nPrinterModel)
{ {
if(oCheckModel==ClCheckModel::_None) if(oCheckModel==ClCheckModel::_None)
return; return;
if(nPrinterModel==(uint16_t)PRINTER_TYPE) if(nPrinterModel==nPrinterType)
return; return;
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOLNPGM("Printer model doesn't match ..."); SERIAL_ECHOLNPGM("Printer model doesn't match ...");
SERIAL_ECHOPGM("actual : "); SERIAL_ECHOPGM("actual : ");
SERIAL_ECHOLN(PRINTER_TYPE); SERIAL_ECHOLN(nPrinterType);
SERIAL_ECHOPGM("expected: "); SERIAL_ECHOPGM("expected: ");
SERIAL_ECHOLN(nPrinterModel); SERIAL_ECHOLN(nPrinterModel);
switch(oCheckModel) switch(oCheckModel)
@ -427,47 +427,31 @@ switch(oCheckModel)
} }
} }
int8_t mCmp(uint16_t nX,uint16_t nY) uint8_t mCompareValue(uint16_t nX,uint16_t nY)
{ {
if(nX>nY) if(nX>nY)
return(1); return((uint8_t)ClCompareValue::_Greater);
if(nX<nY) if(nX<nY)
return(-1); return((uint8_t)ClCompareValue::_Less);
return(0); return((uint8_t)ClCompareValue::_Equal);
} }
void fw_version_check(const char *pVersion) void fw_version_check(const char *pVersion)
{ {
uint16_t aVersion[4]; uint16_t aVersion[4];
bool bMatch; uint8_t nCompareValueResult;
parse_version(pVersion,aVersion);
if(oCheckVersion==ClCheckVersion::_None) if(oCheckVersion==ClCheckVersion::_None)
return; return;
bMatch=(aVersion[0]==eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_MAJOR)); parse_version(pVersion,aVersion);
bMatch=bMatch&&(aVersion[1]==eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_MINOR)); nCompareValueResult=mCompareValue(aVersion[0],eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_MAJOR))<<6;
bMatch=bMatch&&(aVersion[2]==eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_REVISION)); nCompareValueResult+=mCompareValue(aVersion[1],eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_MINOR))<<4;
bMatch=bMatch&&(aVersion[3]==eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_FLAVOR)); nCompareValueResult+=mCompareValue(aVersion[2],eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_REVISION))<<2;
if(bMatch) nCompareValueResult+=mCompareValue(aVersion[3],eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_FLAVOR));
if(nCompareValueResult==COMPARE_VALUE_EQUAL)
return; return;
if((nCompareValueResult<COMPARE_VALUE_EQUAL)&&oCheckVersion==ClCheckVersion::_Warn)
bMatch=(aVersion[0]>eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_MAJOR));
bMatch=!bMatch||(aVersion[1]>eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_MINOR));
bMatch=!bMatch||(aVersion[2]>eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_REVISION));
bMatch=!bMatch||(aVersion[3]>eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_FLAVOR));
if(!bMatch&&oCheckVersion==ClCheckVersion::_Warn)
return; return;
/*
if((aVersion[0]<eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_MAJOR))&&(oCheckVersion==ClCheckVersion::_Warn))
return;
else if((aVersion[1]<eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_MINOR))&&(oCheckVersion==ClCheckVersion::_Warn))
return;
else if((aVersion[2]<eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_REVISION))&&(oCheckVersion==ClCheckVersion::_Warn))
return;
else if((aVersion[3]<eeprom_read_word((uint16_t*)EEPROM_FIRMWARE_VERSION_FLAVOR))&&(oCheckVersion==ClCheckVersion::_Warn))
return;
*/
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOLNPGM("FW version doesn't match ..."); SERIAL_ECHOLNPGM("FW version doesn't match ...");
SERIAL_ECHOPGM("actual : "); SERIAL_ECHOPGM("actual : ");
@ -494,8 +478,6 @@ if(nGcodeLevel==(uint16_t)GCODE_LEVEL)
return; return;
if((nGcodeLevel<(uint16_t)GCODE_LEVEL)&&(oCheckGcode==ClCheckGcode::_Warn)) if((nGcodeLevel<(uint16_t)GCODE_LEVEL)&&(oCheckGcode==ClCheckGcode::_Warn))
return; return;
if(oCheckGcode==ClCheckGcode::_None)
return;
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOLNPGM("G-code level doesn't match ..."); SERIAL_ECHOLNPGM("G-code level doesn't match ...");
SERIAL_ECHOPGM("actual : "); SERIAL_ECHOPGM("actual : ");
@ -515,7 +497,7 @@ switch(oCheckGcode)
} }
//-// -> cmdqueue ??? //-// -> cmdqueue ???
#define PRINTER_NAME_LENGTH (sizeof(PRINTER_NAME)-1) #define PRINTER_NAME_LENGTH ((sizeof(PRINTER_MMU_NAME)>sizeof(PRINTER_NAME))?(sizeof(PRINTER_MMU_NAME)-1):(sizeof(PRINTER_NAME)-1))
#define GCODE_DELIMITER '"' #define GCODE_DELIMITER '"'
#define ELLIPSIS "..." #define ELLIPSIS "..."
@ -538,24 +520,25 @@ return(pStrBegin);
void printer_smodel_check(char* pStrPos) void printer_smodel_check(char* pStrPos)
{ {
char* pResult; char* pResult;
size_t nLength; size_t nLength,nPrinterNameLength;
bool bCheckOK; bool bCheckOK;
char sPrinterName[PRINTER_NAME_LENGTH+sizeof(ELLIPSIS)-1+1]=""; char sPrinterName[PRINTER_NAME_LENGTH+sizeof(ELLIPSIS)-1+1]="";
nPrinterNameLength=strlen_P(::sPrinterName);
pResult=code_string(pStrPos,&nLength); pResult=code_string(pStrPos,&nLength);
if(pResult!=NULL) if(pResult!=NULL)
{ {
strlcpy(sPrinterName,pResult,min(PRINTER_NAME_LENGTH,nLength)+1); strlcpy(sPrinterName,pResult,min(nPrinterNameLength,nLength)+1);
if(nLength>PRINTER_NAME_LENGTH) if(nLength>nPrinterNameLength)
strcat(sPrinterName,ELLIPSIS); strcat(sPrinterName,ELLIPSIS);
bCheckOK=(nLength==PRINTER_NAME_LENGTH); bCheckOK=(nLength==nPrinterNameLength);
if(bCheckOK&&(!strncasecmp(pResult,PRINTER_NAME,nLength))) // i.e. string compare execute only if lengths are same if(bCheckOK&&(!strncasecmp_P(pResult,::sPrinterName,nLength))) // i.e. string compare execute only if lengths are same
return; return;
} }
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOLNPGM("Printer model doesn't match ..."); SERIAL_ECHOLNPGM("Printer model doesn't match ...");
SERIAL_ECHOPGM("actual : \""); SERIAL_ECHOPGM("actual : \"");
SERIAL_ECHO(PRINTER_NAME); serialprintPGM(::sPrinterName);
SERIAL_ECHOLNPGM("\""); SERIAL_ECHOLNPGM("\"");
SERIAL_ECHOPGM("expected: \""); SERIAL_ECHOPGM("expected: \"");
SERIAL_ECHO(sPrinterName); SERIAL_ECHO(sPrinterName);
@ -571,3 +554,16 @@ switch(oCheckModel)
break; break;
} }
} }
void fSetMmuMode(bool bMMu)
{
if(bMMu)
{
nPrinterType=pgm_read_word(&_nPrinterMmuType);
sPrinterName=_sPrinterMmuName;
}
else {
nPrinterType=pgm_read_word(&_nPrinterType);
sPrinterName=_sPrinterName;
}
}

View File

@ -84,6 +84,14 @@ enum class ClCheckGcode:uint_least8_t
_Undef=EEPROM_EMPTY_VALUE _Undef=EEPROM_EMPTY_VALUE
}; };
#define COMPARE_VALUE_EQUAL (((uint8_t)ClCompareValue::_Equal<<6)+((uint8_t)ClCompareValue::_Equal<<4)+((uint8_t)ClCompareValue::_Equal<<2)+((uint8_t)ClCompareValue::_Equal))
enum class ClCompareValue:uint_least8_t
{
_Less=0,
_Equal=1,
_Greater=2
};
extern ClNozzleDiameter oNozzleDiameter; extern ClNozzleDiameter oNozzleDiameter;
extern ClCheckMode oCheckMode; extern ClCheckMode oCheckMode;
extern ClCheckModel oCheckModel; extern ClCheckModel oCheckModel;
@ -97,4 +105,6 @@ void printer_smodel_check(char* pStrPos);
void fw_version_check(const char *pVersion); void fw_version_check(const char *pVersion);
void gcode_level_check(uint16_t nGcodeLevel); void gcode_level_check(uint16_t nGcodeLevel);
void fSetMmuMode(bool bMMu);
#endif /* UTIL_H */ #endif /* UTIL_H */

View File

@ -2,12 +2,16 @@
#define CONFIGURATION_PRUSA_H #define CONFIGURATION_PRUSA_H
#include <limits.h> #include <limits.h>
#include "printers.h"
/*------------------------------------ /*------------------------------------
GENERAL SETTINGS GENERAL SETTINGS
*------------------------------------*/ *------------------------------------*/
// Printer revision // Printer revision
#define PRINTER_TYPE PRINTER_MK2 #define PRINTER_TYPE PRINTER_MK2
#define PRINTER_NAME PRINTER_MK2_NAME
#define PRINTER_MMU_TYPE PRINTER_MK2 // dummy item (due to successfully compilation / building only)
#define PRINTER_MMU_NAME PRINTER_MK2_NAME // dummy item (due to successfully compilation / building only)
#define FILAMENT_SIZE "1_75mm_MK2" #define FILAMENT_SIZE "1_75mm_MK2"
#define NOZZLE_TYPE "E3Dv6full" #define NOZZLE_TYPE "E3Dv6full"

View File

@ -2,12 +2,16 @@
#define CONFIGURATION_PRUSA_H #define CONFIGURATION_PRUSA_H
#include <limits.h> #include <limits.h>
#include "printers.h"
/*------------------------------------ /*------------------------------------
GENERAL SETTINGS GENERAL SETTINGS
*------------------------------------*/ *------------------------------------*/
// Printer revision // Printer revision
#define PRINTER_TYPE PRINTER_MK2 #define PRINTER_TYPE PRINTER_MK2
#define PRINTER_NAME PRINTER_MK2_NAME
#define PRINTER_MMU_TYPE PRINTER_MK2 // dummy item (due to successfully compilation / building only)
#define PRINTER_MMU_NAME PRINTER_MK2_NAME // dummy item (due to successfully compilation / building only)
#define FILAMENT_SIZE "1_75mm_MK2" #define FILAMENT_SIZE "1_75mm_MK2"
#define NOZZLE_TYPE "E3Dv6full" #define NOZZLE_TYPE "E3Dv6full"

View File

@ -2,12 +2,16 @@
#define CONFIGURATION_PRUSA_H #define CONFIGURATION_PRUSA_H
#include <limits.h> #include <limits.h>
#include "printers.h"
/*------------------------------------ /*------------------------------------
GENERAL SETTINGS GENERAL SETTINGS
*------------------------------------*/ *------------------------------------*/
// Printer revision // Printer revision
#define PRINTER_TYPE PRINTER_MK25 #define PRINTER_TYPE PRINTER_MK25
#define PRINTER_NAME PRINTER_MK25_NAME
#define PRINTER_MMU_TYPE PRINTER_MK25_MMU2
#define PRINTER_MMU_NAME PRINTER_MK25_MMU2_NAME
#define FILAMENT_SIZE "1_75mm_MK25" #define FILAMENT_SIZE "1_75mm_MK25"
#define NOZZLE_TYPE "E3Dv6full" #define NOZZLE_TYPE "E3Dv6full"

View File

@ -2,12 +2,16 @@
#define CONFIGURATION_PRUSA_H #define CONFIGURATION_PRUSA_H
#include <limits.h> #include <limits.h>
#include "printers.h"
/*------------------------------------ /*------------------------------------
GENERAL SETTINGS GENERAL SETTINGS
*------------------------------------*/ *------------------------------------*/
// Printer revision // Printer revision
#define PRINTER_TYPE PRINTER_MK25 #define PRINTER_TYPE PRINTER_MK25
#define PRINTER_NAME PRINTER_MK25_NAME
#define PRINTER_MMU_TYPE PRINTER_MK25_MMU2
#define PRINTER_MMU_NAME PRINTER_MK25_MMU2_NAME
#define FILAMENT_SIZE "1_75mm_MK25" #define FILAMENT_SIZE "1_75mm_MK25"
#define NOZZLE_TYPE "E3Dv6full" #define NOZZLE_TYPE "E3Dv6full"

View File

@ -2,12 +2,16 @@
#define CONFIGURATION_PRUSA_H #define CONFIGURATION_PRUSA_H
#include <limits.h> #include <limits.h>
#include "printers.h"
/*------------------------------------ /*------------------------------------
GENERAL SETTINGS GENERAL SETTINGS
*------------------------------------*/ *------------------------------------*/
// Printer revision // Printer revision
#define PRINTER_TYPE PRINTER_MK25S #define PRINTER_TYPE PRINTER_MK25S
#define PRINTER_NAME PRINTER_MK25S_NAME
#define PRINTER_MMU_TYPE PRINTER_MK25S_MMU2
#define PRINTER_MMU_NAME PRINTER_MK25S_MMU2_NAME
#define FILAMENT_SIZE "1_75mm_MK25S" #define FILAMENT_SIZE "1_75mm_MK25S"
#define NOZZLE_TYPE "E3Dv6full" #define NOZZLE_TYPE "E3Dv6full"

View File

@ -2,12 +2,16 @@
#define CONFIGURATION_PRUSA_H #define CONFIGURATION_PRUSA_H
#include <limits.h> #include <limits.h>
#include "printers.h"
/*------------------------------------ /*------------------------------------
GENERAL SETTINGS GENERAL SETTINGS
*------------------------------------*/ *------------------------------------*/
// Printer revision // Printer revision
#define PRINTER_TYPE PRINTER_MK25S #define PRINTER_TYPE PRINTER_MK25S
#define PRINTER_NAME PRINTER_MK25S_NAME
#define PRINTER_MMU_TYPE PRINTER_MK25S_MMU2
#define PRINTER_MMU_NAME PRINTER_MK25S_MMU2_NAME
#define FILAMENT_SIZE "1_75mm_MK25" #define FILAMENT_SIZE "1_75mm_MK25"
#define NOZZLE_TYPE "E3Dv6full" #define NOZZLE_TYPE "E3Dv6full"

View File

@ -2,6 +2,7 @@
#define CONFIGURATION_PRUSA_H #define CONFIGURATION_PRUSA_H
#include <limits.h> #include <limits.h>
//-//
#include "printers.h" #include "printers.h"
/*------------------------------------ /*------------------------------------
GENERAL SETTINGS GENERAL SETTINGS
@ -10,6 +11,7 @@
// Printer revision // Printer revision
#define PRINTER_TYPE PRINTER_MK3 #define PRINTER_TYPE PRINTER_MK3
#define PRINTER_NAME PRINTER_MK3_NAME #define PRINTER_NAME PRINTER_MK3_NAME
#define PRINTER_MMU_TYPE PRINTER_MK3_MMU2
#define PRINTER_MMU_NAME PRINTER_MK3_MMU2_NAME #define PRINTER_MMU_NAME PRINTER_MK3_MMU2_NAME
#define FILAMENT_SIZE "1_75mm_MK3" #define FILAMENT_SIZE "1_75mm_MK3"
#define NOZZLE_TYPE "E3Dv6full" #define NOZZLE_TYPE "E3Dv6full"

View File

@ -10,6 +10,7 @@
// Printer revision // Printer revision
#define PRINTER_TYPE PRINTER_MK3S #define PRINTER_TYPE PRINTER_MK3S
#define PRINTER_NAME PRINTER_MK3S_NAME #define PRINTER_NAME PRINTER_MK3S_NAME
#define PRINTER_MMU_TYPE PRINTER_MK3S_MMU2
#define PRINTER_MMU_NAME PRINTER_MK3S_MMU2_NAME #define PRINTER_MMU_NAME PRINTER_MK3S_MMU2_NAME
#define FILAMENT_SIZE "1_75mm_MK3" #define FILAMENT_SIZE "1_75mm_MK3"
#define NOZZLE_TYPE "E3Dv6full" #define NOZZLE_TYPE "E3Dv6full"