Two rows in predefined commands

Good Morning,
during setup und calibration I´m using intensively the console of the TouchUI of my printer running klipper. I need the command results klipper sends, so I work with the console and predefined commands (console/Send predefined/Select command). As I have a lot of predefined commands the list is long (as long as it could not displayed at once on my 1024 x 600 Touchscreen). I have at the moment 22 commands defined. The problem now is if I scroll through that list I have to touch one item at the end of the list and drag it upwards to see the items which reside at the end of the list. During that it often happens that the item I use to drag is selected and the corresponding command is executed, which is not as desired. 
Long description  short question:  
Is it possible (e.g. in an upcoming version of RS) to get two rows of commands in the console, so that more commands can be seen at the same time? Or can U implement a scroll bar at the side. Would really be an improvement for peoble with a lot of predefined commands. 
In the other menu (Printer Commands) all the predefineds are easy accessible, but this window does not show the ACKs.


  • I see what you mean. I have to play with it and see what is possible.

    BTW: You say you need klipper responses. You are aware that you can add a watcher for a period to watch responses for a regular expression and than call a function to continue and extract the information? Might make automation easier perhaps. This was added to make wizards easily defineable in gcode. Especially with this command send before you send the gcode where you expect some responses:

    @monitorCall Name "Expression" timeoutMS hitFunction missFunction

    Defines a regular expression with Expression that when matched with a firmware response will call the function hitFunction. If the expression contained groups, these groups appear as parameter to the matchFunction in that order. Server will look for timeoutMS milliseconds for a match and if not matched by than will call missFunction. After a match or timeout the test gets automatically removed. Name is used to delete a monitor manually with @deleteMonitorCall. Multiple calls can share the same name, but then one delete on the name will delete all of them.

  • I see what you mean, but my problem is at lower level I think. It is not that complicated:
    If I start a quad gantry leveling via command I want to see the results from klipper during that test. While the probe is testing klipper writes the distance and standard deviation to the hosts. These I want to see during test.
    If I check the probe accuracy: I start the macro and the results are printed to the console.
    If I make the Z-Adjustment and fine tuning, I use Z_ENDSTOP_CALIBRATE macro from klipper. To adjust the nozzle high I do that with TESTZ Z=0.1, Z=-0.1, and so on. As ACK klipper sends the actual high than after each step . This can be taken over by ACCEPT macro and SAVE_CONFIG. All these steps are mirrored by klipper to the host. Therefore I need the console. Otherwise I could send these macros from the printer command menu.
    Regards Stefan
  • That is what the dialogs are for. You collect the data and present a dialog with results or even input fields to send new values based on that. With multiple buttons you can then cancel, continue, repeat, ... but of course with console you can do the same.
  • Ok, I will give it a try. 
    Do you have a more detailed example in the docs? (Where to put the commands @monitorCall Name "Expression" timeoutMS hitFunction missFunction)

  • There is a doc for dialogs in detail:

    For monitor there is no sample. But it quite easy it just uses PCRE2 regular expressions. Use

    to test your expression. Make groups match values you want to extract. You see hits as well in regex101. These become parameter to the hit function. Miss function is called when the pattern was not found in the given time so you can assume something is wrong and trigger action.
  • Thanks! I will try!
Sign In or Register to comment.