[DSF Extension] Exec On MCode (was: Shutdown SBC)



  • Just as a short teaser: the upcoming version will allow an arbitrary amount of M-code+command pairs.



  • great Job !! many thanks.
    exactly what I looked for

    Tobias



  • Release v3.0

    This release adds the possibility to provide an arbitrary amount of -mCode + -command tuples. This way it is possible to have a single instance of execonmcode handle all the custom commands.

    Note that as part of this change there is no longer a default value for -mCode.

    Get it at GitHub Releases page.

    EDIT: This version is built agains goduetapiclient 1.2.0 and as such will only work with DSF 1.2.2.1 and later. In case you need a version that is working with DSF <= 1.2.2.0 please tell me here. It's not a problem to provide that as well.



  • @wilriker I can't believe I missed this whole thread! Gonna give it a try tomorrow.

    I'm also working on something to allow the SBC to do a hardware reset and flash erase via GPIO pins for cases where the firmware is stuck and you can't get to the board. Could be a good companion to your utility.



  • @gtj0 Glad to hear about any use-cases. 🙂

    I myself use it to run poweroff as well as activating and deactivating my webcam (starting/stopping a systemd unit).



  • Tempting to try with a small I2C OLED on the Pi, but not top of the list just yet



  • @wilriker

    This sounds really good. I would like to use it to activate a bash script on my system but I have attempted to install it and I cant get it to work.
    I followed your instructions in your first post but using execonmode V3:

    I downloaded execonmode and placed it into /usr/local/bin.
    I tried to run it using sudo ./execonmode -help (just to see if it works) but I get the error message "cant open binary".

    Could you instruct me where i'm going wrong.

    BTW I am on the latest version of RRF3 and up to date with DSF etc.

    Thanks in advance.



  • @chas2706 If you run

    sudo ./execonmcode -help
    

    It will try to find the executable in the current directory you issue this command. To have your shell locate it in your $PATH remove the ./ in front of execonmcode. For -help you don't need sudo BTW.

    To make sure that it can find it also check if

    echo $PATH
    

    actually does contain /use/local/bin.

    Last thing: you spelled it execonmode instead of execonmcode (extra "c" after "m") above. Make sure that's only a typo here. I might rename the executable in the future to something less error-prone.



  • @wilriker
    Thanks for the info. I will give it another go.

    execonmode was just a typo error in my post lol.

    Thanks



  • @wilriker said in [DSF Extension] Exec On MCode (was: Shutdown SBC):

    ./execonmcode -help

    I have placed execonmcode in /usr/local/bin and typed the following in the terminal without success:

    pi@Duet3:~ $ cd /usr/local/bin
    pi@Duet3:/usr/local/bin $ ls
    execonmcode listen-for-shutdown.py
    pi@Duet3:/usr/local/bin $ ./execonmcode -help
    bash: ./execonmcode: Permission denied
    pi@Duet3:/usr/local/bin $ sudo ./execonmcode -help
    sudo: ./execonmcode: command not found
    pi@Duet3:/usr/local/bin $ execonmcode -help
    bash: /usr/local/bin/execonmcode: Permission denied
    pi@Duet3:/usr/local/bin $ sudo execonmcode -help
    sudo: execonmcode: command not found
    pi@Duet3:/usr/local/bin $



  • @chas2706 Have you made execonmcode executable via sudo chmod +x /usr/local/bin/execonmcode? I think that's missing from the installation instructions.



  • @wilriker

    No I forgot!!

    My silly mistake! It works a treat now.

    Thank you for your help.



  • @chas2706 Thank you for implicitly pointing out a hole in the installation instructions. I amended that to GitHub already and will fix it above in an instant.



  • @wilriker

    No problem, again thanks for your help and for producing a fantastic plugin.


Log in to reply