pre-production version ;-)
This commit is contained in:
parent
4db4f19128
commit
8229a45187
12
Firmware/Configuration.c
Normal file
12
Firmware/Configuration.c
Normal 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;
|
@ -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
|
||||||
|
@ -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'))
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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:"));
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -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 */
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
@ -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"
|
||||||
|
Loading…
Reference in New Issue
Block a user