Merge pull request #1666 from PavelSindler/duplicate_tcode_2

Duplicate T-code fix
This commit is contained in:
mkbel 2019-03-27 20:52:34 +01:00 committed by GitHub
commit c1543f168a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 21 deletions

View File

@ -6991,13 +6991,16 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
if (mmu_enabled) if (mmu_enabled)
{ {
tmp_extruder = choose_menu_P(_T(MSG_CHOOSE_FILAMENT), _T(MSG_FILAMENT)); tmp_extruder = choose_menu_P(_T(MSG_CHOOSE_FILAMENT), _T(MSG_FILAMENT));
if ((tmp_extruder == mmu_extruder) && mmu_fil_loaded) { if ((tmp_extruder == mmu_extruder) && mmu_fil_loaded) //dont execute the same T-code twice in a row
printf_P(PSTR("Duplicit T-code ignored.\n")); {
return; //dont execute the same T-code twice in a row printf_P(PSTR("Duplicate T-code ignored.\n"));
}
else
{
st_synchronize();
mmu_command(MmuCmd::T0 + tmp_extruder);
manage_response(true, true, MMU_TCODE_MOVE);
} }
st_synchronize();
mmu_command(MmuCmd::T0 + tmp_extruder);
manage_response(true, true, MMU_TCODE_MOVE);
} }
} }
else if (*(strchr_pointer + index) == 'c') { //load to from bondtech gears to nozzle (nozzle should be preheated) else if (*(strchr_pointer + index) == 'c') { //load to from bondtech gears to nozzle (nozzle should be preheated)
@ -7033,20 +7036,23 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
if (mmu_enabled) if (mmu_enabled)
{ {
if ((tmp_extruder == mmu_extruder) && mmu_fil_loaded) { if ((tmp_extruder == mmu_extruder) && mmu_fil_loaded) //dont execute the same T-code twice in a row
printf_P(PSTR("Duplicit T-code ignored.\n"));
return; //dont execute the same T-code twice in a row
}
mmu_command(MmuCmd::T0 + tmp_extruder);
manage_response(true, true, MMU_TCODE_MOVE);
mmu_continue_loading();
mmu_extruder = tmp_extruder; //filament change is finished
if (load_to_nozzle)// for single material usage with mmu
{ {
mmu_load_to_nozzle(); printf_P(PSTR("Duplicate T-code ignored.\n"));
} }
else
{
mmu_command(MmuCmd::T0 + tmp_extruder);
manage_response(true, true, MMU_TCODE_MOVE);
mmu_continue_loading();
mmu_extruder = tmp_extruder; //filament change is finished
if (load_to_nozzle)// for single material usage with mmu
{
mmu_load_to_nozzle();
}
}
} }
else else
{ {

View File

@ -58,9 +58,9 @@ static S mmu_state = S::Disabled;
MmuCmd mmu_cmd = MmuCmd::None; MmuCmd mmu_cmd = MmuCmd::None;
//idler ir sensor //idler ir sensor
uint8_t mmu_idl_sens = 0; static uint8_t mmu_idl_sens = 0;
bool ir_sensor_detected = false; bool ir_sensor_detected = false;
bool mmu_loading_flag = false; //when set to true, we assume that mmu2 unload was finished and loading phase is now performed; printer can send 'A' to mmu2 to abort loading process static bool mmu_loading_flag = false; //when set to true, we assume that mmu2 unload was finished and loading phase is now performed; printer can send 'A' to mmu2 to abort loading process
uint8_t mmu_extruder = MMU_FILAMENT_UNKNOWN; uint8_t mmu_extruder = MMU_FILAMENT_UNKNOWN;

View File

@ -15,7 +15,6 @@ extern uint8_t tmp_extruder;
extern int8_t mmu_finda; extern int8_t mmu_finda;
extern bool ir_sensor_detected; extern bool ir_sensor_detected;
extern bool mmu_loading_flag;
extern int16_t mmu_version; extern int16_t mmu_version;
extern int16_t mmu_buildnr; extern int16_t mmu_buildnr;