Skip to content

Commit

Permalink
Fixed Menu for Z-Offset-Scan and Save-Matrix with Millingmode
Browse files Browse the repository at this point in the history
Added better navigation through menus top -> bottom.
  • Loading branch information
Stefan Bek committed Mar 22, 2017
1 parent 3d8966e commit 8fd0c82
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 34 deletions.
2 changes: 1 addition & 1 deletion Repetier/Constants.h
Expand Up @@ -20,7 +20,7 @@
#define CONSTANTS_H


#define REPETIER_VERSION "RF.01.37h.Mod"
#define REPETIER_VERSION "RF.01.37i.Mod"
#define UI_PRINTER_COMPANY "Conrad SE"
#define UI_VERSION_STRING "V " REPETIER_VERSION

Expand Down
2 changes: 1 addition & 1 deletion Repetier/RF2000.h
Expand Up @@ -35,7 +35,7 @@
// ##########################################################################################

/** \brief Allows to use the device for milling */
#define FEATURE_MILLING_MODE 0 // 1 = on, 0 = off
#define FEATURE_MILLING_MODE 1 // 1 = on, 0 = off


#if FEATURE_MILLING_MODE
Expand Down
89 changes: 65 additions & 24 deletions Repetier/ui.cpp
Expand Up @@ -2745,35 +2745,76 @@ void UIDisplay::nextPreviousAction(int8_t next)

if(mtype==2 && activeAction==0) // browse through menu items
{
if((UI_INVERT_MENU_DIRECTION && next<0) || (!UI_INVERT_MENU_DIRECTION && next>0))
if((UI_INVERT_MENU_DIRECTION && next < 0) || (!UI_INVERT_MENU_DIRECTION && next > 0))
{
while(menuPos[menuLevel]+1<nr)
{
menuPos[menuLevel]++;
testEnt = (UIMenuEntry *)pgm_read_word(&(entries[menuPos[menuLevel]]));
if(testEnt->showEntry())
break;
}
//up-to-bottom-Patch
//Nibbels: (erklärt ohne UI_INVERT_MENU_DIRECTION) Wenn man am Menü ganz unten ist, soll der komplett hochspringen und nicht unten stehenbleiben:
if(menuPos[menuLevel]+1 >= nr){
menuPos[menuLevel] = 0; //0, menuPos ist unsigned! drum while kopieren und nicht einfach -1 vorherreinschreiben um dem ersten increment eins vorneweg zu nehmen.
//folgend wird das menupos auf gültigkeit geprüft und sonst ignoriert oder geskipped:
while(menuPos[menuLevel]+1 < nr)
{
testEnt = (UIMenuEntry *)pgm_read_word(&(entries[menuPos[menuLevel]]));
if(testEnt->showEntry())
break;
menuPos[menuLevel]++;
}
}else{
//originalcode:
while(menuPos[menuLevel]+1 < nr)
{
menuPos[menuLevel]++;
testEnt = (UIMenuEntry *)pgm_read_word(&(entries[menuPos[menuLevel]]));
if(testEnt->showEntry())
break;
}
//originalcode ende
}
//up-to-bottom-Patch
}
else if(menuPos[menuLevel]>0)
else //if(menuPos[menuLevel] > 0)
{
uint8_t temp = menuPos[menuLevel];
while(menuPos[menuLevel]>0)
{
menuPos[menuLevel]--;

testEnt = (UIMenuEntry *)pgm_read_word(&(entries[menuPos[menuLevel]]));
if(testEnt->showEntry())
break;
}
//down-to-top-Patch
if(menuPos[menuLevel] > 0){
//originalcode:
uint8_t temp = menuPos[menuLevel];
while(menuPos[menuLevel]>0)
{
menuPos[menuLevel]--;

testEnt = (UIMenuEntry *)pgm_read_word(&(entries[menuPos[menuLevel]]));
if(testEnt->showEntry())
break;
}

testEnt = (UIMenuEntry *)pgm_read_word(&(entries[menuPos[menuLevel]]));
if(!testEnt->showEntry())
{
// this new chosen menu item shall not be displayed - revert the so-far used menu item
menuPos[menuLevel] = temp;
}
testEnt = (UIMenuEntry *)pgm_read_word(&(entries[menuPos[menuLevel]]));
if(!testEnt->showEntry())
{
// this new chosen menu item shall not be displayed - revert the so-far used menu item
menuPos[menuLevel] = temp;
}
//originalcode ende
}else{
uint8_t temp = menuPos[menuLevel];
menuPos[menuLevel] = nr-1; //0..nr-1; nr ist anzahl submenüpunkte
while(menuPos[menuLevel] > 0)
{
testEnt = (UIMenuEntry *)pgm_read_word(&(entries[menuPos[menuLevel]]));
if(testEnt->showEntry())
break;
menuPos[menuLevel]--; //decrement nur wenn maximalsubmenüpunkt ungültig, dann nächstes nehmen und nochmal prüfen.
}

testEnt = (UIMenuEntry *)pgm_read_word(&(entries[menuPos[menuLevel]]));
if(!testEnt->showEntry())
{
// this new chosen menu item shall not be displayed - revert the so-far used menu item
menuPos[menuLevel] = temp;
}
}
//down-to-top-Patch ende
}
//Nibbels: Was mir hier nicht ganz klar wurde: Warum baut man beim springen ins negative den temp-Revert-Check-auf-Gültigkeit ein und beim springen ins positive nicht?
adjustMenuPos();
return;
}
Expand Down
14 changes: 6 additions & 8 deletions Repetier/uimenu.h
Expand Up @@ -418,8 +418,8 @@ UI_MENU_ACTIONCOMMAND_FILTER(ui_menu_set_xy_end,UI_TEXT_SET_SCAN_XY_END,UI_ACTIO
UI_MENU_CHANGEACTION_FILTER(ui_menu_set_delta_x,UI_TEXT_SET_SCAN_DELTA_X,UI_ACTION_RF_SET_SCAN_DELTA_X,0,MENU_MODE_PRINTER)
UI_MENU_CHANGEACTION_FILTER(ui_menu_set_delta_y,UI_TEXT_SET_SCAN_DELTA_Y,UI_ACTION_RF_SET_SCAN_DELTA_Y,0,MENU_MODE_PRINTER)

#define UI_MENU_Z {UI_MENU_ADDCONDBACK /*UI_MENU_ADJUST_HOTEND*/ &ui_menu_heat_bed_scan UI_MENU_HEAT_BED_MODE_COND , &ui_menu_zoffset_z , &ui_menu_z_mode , &ui_menu_work_part_scan UI_SPEED_Z /*UI_SPEED_Z_NOTEST*/,&ui_menu_set_z_origin UI_MENU_FIND_Z_COND, &ui_menu_set_z_matrix_heat_bed, &ui_menu_set_z_matrix_work_part, &ui_menu_set_xy_start, &ui_menu_set_xy_end, &ui_menu_set_delta_x, &ui_menu_set_delta_y}
UI_MENU(ui_menu_z,UI_MENU_Z,7 + UI_MENU_BACKCNT + 4 + 1 + UI_MENU_HEAT_BED_MODE_COUNT + UI_MENU_FIND_Z_COUNT/*+UI_MENU_ADJUST_HOTEND_COUNT*/)
#define UI_MENU_Z {UI_MENU_ADDCONDBACK /*UI_MENU_ADJUST_HOTEND*/ &ui_menu_heat_bed_scan UI_MENU_HEAT_BED_MODE_COND UI_MENU_HEAT_MHIER_COND , &ui_menu_zoffset_z , &ui_menu_z_mode , &ui_menu_work_part_scan UI_SPEED_Z /*UI_SPEED_Z_NOTEST*/,&ui_menu_set_z_origin UI_MENU_FIND_Z_COND, &ui_menu_set_z_matrix_heat_bed UI_MENU_SAVE_ACTIVE_ZMATRIX, &ui_menu_set_z_matrix_work_part, &ui_menu_set_xy_start, &ui_menu_set_xy_end, &ui_menu_set_delta_x, &ui_menu_set_delta_y}
UI_MENU(ui_menu_z,UI_MENU_Z,8 + UI_MENU_BACKCNT + 4 + 1 + UI_MENU_HEAT_MHIER_COUNT + UI_MENU_HEAT_BED_MODE_COUNT + UI_MENU_SAVE_ACTIVE_ZMATRIX_COUNT + UI_MENU_FIND_Z_COUNT /*+UI_MENU_ADJUST_HOTEND_COUNT*/)

#else

Expand Down Expand Up @@ -758,17 +758,15 @@ UI_MENU_ACTION2C(ui_menu_extruder_offsetx2,UI_ACTION_EXTRUDER_OFFSET_X,UI_TEXT_E
UI_MENU_ACTIONSELECTOR_FILTER(ui_menu_extruder_offset_x,UI_TEXT_EXTRUDER_OFFSET_X,ui_menu_extruder_offsetx2, MENU_MODE_PRINTER, MENU_MODE_MILLER)
UI_MENU_ACTION2C(ui_menu_extruder_offsety2,UI_ACTION_EXTRUDER_OFFSET_Y,UI_TEXT_EXTRUDER_OFFSET_Y2)
UI_MENU_ACTIONSELECTOR_FILTER(ui_menu_extruder_offset_y,UI_TEXT_EXTRUDER_OFFSET_Y,ui_menu_extruder_offsety2, MENU_MODE_PRINTER, MENU_MODE_MILLER)
#define EXTRUDER_OFFSET_TYPE_ENTRY_X ,&ui_menu_extruder_offset_x
#define EXTRUDER_OFFSET_TYPE_ENTRY_Y ,&ui_menu_extruder_offset_y
#define EXTRUDER_OFFSET_TYPE_ENTRY_XY ,&ui_menu_extruder_offset_x ,&ui_menu_extruder_offset_y
#define EXTRUDER_OFFSET_TYPE_COUNT_XY 2
#else
#define EXTRUDER_OFFSET_TYPE_ENTRY_X
#define EXTRUDER_OFFSET_TYPE_ENTRY_Y
#define EXTRUDER_OFFSET_TYPE_ENTRY_XY
#define EXTRUDER_OFFSET_TYPE_COUNT_XY 0
#endif // NUM_EXTRUDER>1

#define UI_MENU_GENERAL {UI_MENU_ADDCONDBACK &ui_menu_general_baud,&ui_menu_general_stepper_inactive,&ui_menu_general_max_inactive BEEPER_MODE_ENTRY RGB_LIGHT_ENTRY OPERATING_MODE_ENTRY Z_ENDSTOP_TYPE_ENTRY HOTEND_TYPE_ENTRY MILLER_TYPE_ENTRY EXTRUDER_OFFSET_TYPE_ENTRY_X EXTRUDER_OFFSET_TYPE_ENTRY_Y}
UI_MENU(ui_menu_general,UI_MENU_GENERAL,3+UI_MENU_BACKCNT+BEEPER_MODE_COUNT+RGB_LIGHT_COUNT+OPERATING_MODE_COUNT+Z_ENDSTOP_TYPE_COUNT+HOTEND_TYPE_COUNT+MILLER_TYPE_COUNT+EXTRUDER_OFFSET_TYPE_COUNT_XY)
#define UI_MENU_GENERAL {UI_MENU_ADDCONDBACK &ui_menu_general_baud,&ui_menu_general_stepper_inactive,&ui_menu_general_max_inactive BEEPER_MODE_ENTRY RGB_LIGHT_ENTRY OPERATING_MODE_ENTRY Z_ENDSTOP_TYPE_ENTRY HOTEND_TYPE_ENTRY MILLER_TYPE_ENTRY EXTRUDER_OFFSET_TYPE_ENTRY_XY}
UI_MENU(ui_menu_general,UI_MENU_GENERAL,UI_MENU_BACKCNT+1+1+1+BEEPER_MODE_COUNT+RGB_LIGHT_COUNT+OPERATING_MODE_COUNT+Z_ENDSTOP_TYPE_COUNT+HOTEND_TYPE_COUNT+MILLER_TYPE_COUNT+EXTRUDER_OFFSET_TYPE_COUNT_XY +1)

/** \brief Configuration menu */
UI_MENU_SUBMENU(ui_menu_conf_general, UI_TEXT_GENERAL, ui_menu_general)
Expand Down
4 changes: 4 additions & 0 deletions changelog.txt
@@ -1,3 +1,7 @@
V RF.01.37i.mod (2017-03-22)
- Menu fix
- Nicer menu navigation through bottom and top of submenus

V RF.01.37h.mod (2017-03-20)
- Z_BUTTON_DIRECTION removed: https://github.com/RF1000community/Repetier-Firmware/issues/20 -> XYZ_POSITION_BUTTON_DIRECTION introduced.
- the new XYZ_POSITION_BUTTON_DIRECTION will now be 1 as default. This behavour is the same as in the original firmware.
Expand Down

0 comments on commit 8fd0c82

Please sign in to comment.