Hey Sir,

Yep. I will test out this C source soon. I guess you are right. It boils 
down to what I want. I mean, if you wanted it and I did not, I guess I 
would be wasting my time using it. W/ that typed out, I would like to use 
your library.

...

Should I put where I got the library in my source if used? 

Seth

P.S. For instance, should I reference each of your names from the github 
page or can I just put https://github.com/shabaz123/iobb in the source?

On Wednesday, April 8, 2020 at 5:54:46 PM UTC-5, shabaz wrote:
>
> The Derek Molloy code (at least from the link below from Seth) uses Linux 
> system 'sysfs' to perform the low-level GPIO, so it is far slower than the 
> method I ended up using (which directly maps and modifies the registers).  
> Despite it not being a microcontroller, I still sometimes want that high 
> speed. For instance, I used my library to make an FPGA programmer with the 
> BBB. It runs fast. Also, I already had a BBB book - didn't really fancy 
> buying another book, I don't see the point when I can write a simple-to-use 
> GPIO library and document it as well as a book might.
>
> It depends on what's wanted. I prefer (naturally, otherwise I would not 
> have written it : ) my method, primarily for the high speed and 
> Arduino-like simplicity. The disadvantages of this method are that it's not 
> as portable (as evidenced by the time taken to port to BB-AI : ( - due to 
> having to go down to register level, so it is restricted to BBB and 
> PocketBeagle so far.  Another disadvantage is that the code is poor, it 
> deserves a re-write from scratch. I'd hoped someone would have written a 
> better library over the years so it would not be needed, but fast-forward 
> five years, in 2019 I *still *couldn't find a usable fast library, so 
> (for my purposes) I had to ressurect it and re-test it - because of 
> non-backward-compatible changes in the BBB Linux image that had occurred 
> over the years.
>
> Having said all that, if all that is needed is to control relays, today 
> I'd also consider to do it with Python, because that's fast enough. No 
> point using a fast library unless you plan to use it for future things that 
> may need the higher speed.
> Also, nothing wrong perhaps with doing it in a bash script, it's just not 
> something I prefer (I'm not super-familiar with shell scripts, so I do the 
> bare minimum in such scripts).
>
> For the past few years I've also used the Pi (with the wiringPi C library, 
> which is also fast and Arduino-like). I built my own relay board for it. I 
> wrote code for it in C (usable with Python of course) to be able to control 
> relays from Python or from bash scripts etc.
>
> The only suggestions I have based on that experience, is if you're going 
> to switch multiple relays on or off simultaneously, then it's 'friendlier' 
> electrically to have a few millisecond pause between each. I ended up 
> incorporating that in my code, i.e. for simultaneous control it would 
> automatically stagger by a few milliseconds multiple relays switching on to 
> make it just a perceived simultaneous time.
>
>
>
> ------------------------------
> *From:* [email protected] <javascript:> <[email protected] 
> <javascript:>> on behalf of jonnymo <[email protected] <javascript:>>
> *Sent:* 08 April 2020 23:00
> *To:* Beagle Board <[email protected] <javascript:>>
> *Subject:* Re: [beagleboard] Re: 4 Relay relay Cape 'c' code 
>  
> Mala, 
>
> Yeah, I have 3 variations of Molloy's books and I do find them quite 
> nice.  His code more up to date than the shabaz code, so I would prefer 
> that.
>
> The other option is the AdaFruit BBIO Python code, which I believe Molloy 
> uses.
>
> https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/installation-on-ubuntu
>  
>
> Regardless, its best to just understand how the underline system is 
> working and how to make calls to the GPIO pins and then go your own route.
>
>
> Jon 
>
> On Wed, Apr 8, 2020 at 2:42 PM Mala Dies <[email protected] <javascript:>> 
> wrote:
>
> Hello jonnymo, 
>
> Seth here. The book exploringBB has some nice source for C++ workings w/ 
> it geared to, on Chapter 6, GPIO and other peripherals. 
>
> Seth
>
> P.S. See here: 
> https://github.com/derekmolloy/exploringBB/tree/version2/chp06. Although 
> this was from two years ago, I am sure if we work on it, minor improvements 
> or some similar changes might be all that is needed. Who knows?
>
> On Tuesday, April 7, 2020 at 5:28:31 PM UTC-5, jonnymo wrote: 
>
> Is this what you are referring to? 
>
>
> http://derekmolloy.ie/beaglebone/beaglebone-gpio-programming-on-arm-embedded-linux/
>  
>
>  https://github.com/derekmolloy/exploringBB
>
> Jon
>
> On Tue, Apr 7, 2020 at 3:20 PM Mala Dies <[email protected]> wrote:
>
> Hello KenUnix, 
>
> Seth here. Do you want me to still work on the C++ code or are you 
> satisfied w/ the shell script you are working on currently?
>
> Seth
>
> P.S. I found my book, ideas, and everything is on chapter six w/ source 
> already done for specific ideas. I would probably need to change some 
> source, too. Let a brother know. 
>
> On Tuesday, April 7, 2020 at 11:39:56 AM UTC-5, KenUnix wrote: 
>
> Robert,
>
> You were correct high level is better for now. It's been a long while 
> since working
> with 'c'.  Went the way of a bash script. Works well see below. Even 
> supports --help.
>
> ---Code Start--
> #!/bin/bash
> #
> # 4-7-2020 Ken
> #
> # cmd [state|label|on|off|in|out] gpio #
> # Example : cmd state 112
> #
> if [ "$1" == "--help" ]
>    then
>     echo -e "\ngpio relay cape tool. 4-7-2020 KenUnix\n"
>     echo "state  Get state of gpio number"
>     echo "label  Display associated P number"
>     echo "on     Set relay # to on"
>     echo "off    Turn relay off"
>     echo -e "out    Set gpio to out\n"
>     echo "Example: cmd status 115 Will display the state of gpio 115"
>     echo -e "         cmd on 20      Will turn relay 1 on for gpio 20\n"
>     exit
> fi
>
> case $2 in
>     20|7|112|115) ;;
>     *) echo "Invalid gpio $2"
>        echo "Vaild numbers are 20, 7, 112 or 115"
>            echo -e "Relay 1 20, relay 2 7, relay 3 112, relay 4 115\007"
>        exit 1 ;;
> esac
>
> case $1 in
>    "state")
>       direction=`cat /sys/class/gpio/gpio$2/direction`
>       echo -n "Direction $direction, State "
>       state=`cat /sys/class/gpio/gpio$2/value`
>       if [ "$state" == "0" ]; then echo "off"; fi
>       if [ "$state" == "1" ]; then echo "on"; fi
>       exit ;;
>    "label")
>       echo -n "Physical header pin number "
>       cat /sys/class/gpio/gpio$2/label ;
>       exit ;;
>    "on")
>       echo 1 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "off")
>       echo 0 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "out")
>       echo "out" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    "in")
>       echo "in" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    *) echo -e "Invalid operation $1. Try cmd --help\007" ; exit 1 ;;
> esac
> --Code End--
>
> Maybe someone else may find this useful.
>
> Ken
>
>
> On Tuesday, April 7, 2020 at 11:39:56 AM UTC-5, KenUnix wrote: 
>
> Robert,
>
> You were correct high level is better for now. It's been a long while 
> since working
> with 'c'.  Went the way of a bash script. Works well see below. Even 
> supports --help.
>
> ---Code Start--
> #!/bin/bash
> #
> # 4-7-2020 Ken
> #
> # cmd [state|label|on|off|in|out] gpio #
> # Example : cmd state 112
> #
> if [ "$1" == "--help" ]
>    then
>     echo -e "\ngpio relay cape tool. 4-7-2020 KenUnix\n"
>     echo "state  Get state of gpio number"
>     echo "label  Display associated P number"
>     echo "on     Set relay # to on"
>     echo "off    Turn relay off"
>     echo -e "out    Set gpio to out\n"
>     echo "Example: cmd status 115 Will display the state of gpio 115"
>     echo -e "         cmd on 20      Will turn relay 1 on for gpio 20\n"
>     exit
> fi
>
> case $2 in
>     20|7|112|115) ;;
>     *) echo "Invalid gpio $2"
>        echo "Vaild numbers are 20, 7, 112 or 115"
>            echo -e "Relay 1 20, relay 2 7, relay 3 112, relay 4 115\007"
>        exit 1 ;;
> esac
>
> case $1 in
>    "state")
>       direction=`cat /sys/class/gpio/gpio$2/direction`
>       echo -n "Direction $direction, State "
>       state=`cat /sys/class/gpio/gpio$2/value`
>       if [ "$state" == "0" ]; then echo "off"; fi
>       if [ "$state" == "1" ]; then echo "on"; fi
>       exit ;;
>    "label")
>       echo -n "Physical header pin number "
>       cat /sys/class/gpio/gpio$2/label ;
>       exit ;;
>    "on")
>       echo 1 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "off")
>       echo 0 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "out")
>       echo "out" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    "in")
>       echo "in" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    *) echo -e "Invalid operation $1. Try cmd --help\007" ; exit 1 ;;
> esac
> --Code End--
>
> Maybe someone else may find this useful.
>
> Ken
>
> -- 
> For more options, visit http://beagleboard.org/discuss
> --- 
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beagleboard/869c0859-6666-452f-9471-65627c6dc9aa%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/beagleboard/869c0859-6666-452f-9471-65627c6dc9aa%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
> On Tuesday, April 7, 2020 at 5:28:31 PM UTC-5, jonnymo wrote: 
>
> Is this what you are referring to? 
>
>
> http://derekmolloy.ie/beaglebone/beaglebone-gpio-programming-on-arm-embedded-linux/
>  
>
>  https://github.com/derekmolloy/exploringBB
>
> Jon
>
> On Tue, Apr 7, 2020 at 3:20 PM Mala Dies <[email protected]> wrote:
>
> Hello KenUnix, 
>
> Seth here. Do you want me to still work on the C++ code or are you 
> satisfied w/ the shell script you are working on currently?
>
> Seth
>
> P.S. I found my book, ideas, and everything is on chapter six w/ source 
> already done for specific ideas. I would probably need to change some 
> source, too. Let a brother know. 
>
> On Tuesday, April 7, 2020 at 11:39:56 AM UTC-5, KenUnix wrote: 
>
> Robert,
>
> You were correct high level is better for now. It's been a long while 
> since working
> with 'c'.  Went the way of a bash script. Works well see below. Even 
> supports --help.
>
> ---Code Start--
> #!/bin/bash
> #
> # 4-7-2020 Ken
> #
> # cmd [state|label|on|off|in|out] gpio #
> # Example : cmd state 112
> #
> if [ "$1" == "--help" ]
>    then
>     echo -e "\ngpio relay cape tool. 4-7-2020 KenUnix\n"
>     echo "state  Get state of gpio number"
>     echo "label  Display associated P number"
>     echo "on     Set relay # to on"
>     echo "off    Turn relay off"
>     echo -e "out    Set gpio to out\n"
>     echo "Example: cmd status 115 Will display the state of gpio 115"
>     echo -e "         cmd on 20      Will turn relay 1 on for gpio 20\n"
>     exit
> fi
>
> case $2 in
>     20|7|112|115) ;;
>     *) echo "Invalid gpio $2"
>        echo "Vaild numbers are 20, 7, 112 or 115"
>            echo -e "Relay 1 20, relay 2 7, relay 3 112, relay 4 115\007"
>        exit 1 ;;
> esac
>
> case $1 in
>    "state")
>       direction=`cat /sys/class/gpio/gpio$2/direction`
>       echo -n "Direction $direction, State "
>       state=`cat /sys/class/gpio/gpio$2/value`
>       if [ "$state" == "0" ]; then echo "off"; fi
>       if [ "$state" == "1" ]; then echo "on"; fi
>       exit ;;
>    "label")
>       echo -n "Physical header pin number "
>       cat /sys/class/gpio/gpio$2/label ;
>       exit ;;
>    "on")
>       echo 1 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "off")
>       echo 0 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "out")
>       echo "out" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    "in")
>       echo "in" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    *) echo -e "Invalid operation $1. Try cmd --help\007" ; exit 1 ;;
> esac
> --Code End--
>
> Maybe someone else may find this useful.
>
> Ken
>
>
> On Tuesday, April 7, 2020 at 11:39:56 AM UTC-5, KenUnix wrote: 
>
> Robert,
>
> You were correct high level is better for now. It's been a long while 
> since working
> with 'c'.  Went the way of a bash script. Works well see below. Even 
> supports --help.
>
> ---Code Start--
> #!/bin/bash
> #
> # 4-7-2020 Ken
> #
> # cmd [state|label|on|off|in|out] gpio #
> # Example : cmd state 112
> #
> if [ "$1" == "--help" ]
>    then
>     echo -e "\ngpio relay cape tool. 4-7-2020 KenUnix\n"
>     echo "state  Get state of gpio number"
>     echo "label  Display associated P number"
>     echo "on     Set relay # to on"
>     echo "off    Turn relay off"
>     echo -e "out    Set gpio to out\n"
>     echo "Example: cmd status 115 Will display the state of gpio 115"
>     echo -e "         cmd on 20      Will turn relay 1 on for gpio 20\n"
>     exit
> fi
>
> case $2 in
>     20|7|112|115) ;;
>     *) echo "Invalid gpio $2"
>        echo "Vaild numbers are 20, 7, 112 or 115"
>            echo -e "Relay 1 20, relay 2 7, relay 3 112, relay 4 115\007"
>        exit 1 ;;
> esac
>
> case $1 in
>    "state")
>       direction=`cat /sys/class/gpio/gpio$2/direction`
>       echo -n "Direction $direction, State "
>       state=`cat /sys/class/gpio/gpio$2/value`
>       if [ "$state" == "0" ]; then echo "off"; fi
>       if [ "$state" == "1" ]; then echo "on"; fi
>       exit ;;
>    "label")
>       echo -n "Physical header pin number "
>       cat /sys/class/gpio/gpio$2/label ;
>       exit ;;
>    "on")
>       echo 1 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "off")
>       echo 0 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "out")
>       echo "out" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    "in")
>       echo "in" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    *) echo -e "Invalid operation $1. Try cmd --help\007" ; exit 1 ;;
> esac
> --Code End--
>
> Maybe someone else may find this useful.
>
> Ken
>
> -- 
> For more options, visit http://beagleboard.org/discuss
> --- 
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beagleboard/869c0859-6666-452f-9471-65627c6dc9aa%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/beagleboard/869c0859-6666-452f-9471-65627c6dc9aa%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> -- 
> For more options, visit http://beagleboard.org/discuss
> --- 
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beagleboard/2cf0a7c2-676a-49d5-bd9b-63d71cd8855a%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/beagleboard/2cf0a7c2-676a-49d5-bd9b-63d71cd8855a%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> -- 
> For more options, visit http://beagleboard.org/discuss
> --- 
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beagleboard/CAG99bko%3DnRu9MH3zBS_X4_c_JME9xdgzqRJi%2BP5W70zTD9P6fQ%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/beagleboard/CAG99bko%3DnRu9MH3zBS_X4_c_JME9xdgzqRJi%2BP5W70zTD9P6fQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

On Wednesday, April 8, 2020 at 5:54:46 PM UTC-5, shabaz wrote:
>
> The Derek Molloy code (at least from the link below from Seth) uses Linux 
> system 'sysfs' to perform the low-level GPIO, so it is far slower than the 
> method I ended up using (which directly maps and modifies the registers).  
> Despite it not being a microcontroller, I still sometimes want that high 
> speed. For instance, I used my library to make an FPGA programmer with the 
> BBB. It runs fast. Also, I already had a BBB book - didn't really fancy 
> buying another book, I don't see the point when I can write a simple-to-use 
> GPIO library and document it as well as a book might.
>
> It depends on what's wanted. I prefer (naturally, otherwise I would not 
> have written it : ) my method, primarily for the high speed and 
> Arduino-like simplicity. The disadvantages of this method are that it's not 
> as portable (as evidenced by the time taken to port to BB-AI : ( - due to 
> having to go down to register level, so it is restricted to BBB and 
> PocketBeagle so far.  Another disadvantage is that the code is poor, it 
> deserves a re-write from scratch. I'd hoped someone would have written a 
> better library over the years so it would not be needed, but fast-forward 
> five years, in 2019 I *still *couldn't find a usable fast library, so 
> (for my purposes) I had to ressurect it and re-test it - because of 
> non-backward-compatible changes in the BBB Linux image that had occurred 
> over the years.
>
> Having said all that, if all that is needed is to control relays, today 
> I'd also consider to do it with Python, because that's fast enough. No 
> point using a fast library unless you plan to use it for future things that 
> may need the higher speed.
> Also, nothing wrong perhaps with doing it in a bash script, it's just not 
> something I prefer (I'm not super-familiar with shell scripts, so I do the 
> bare minimum in such scripts).
>
> For the past few years I've also used the Pi (with the wiringPi C library, 
> which is also fast and Arduino-like). I built my own relay board for it. I 
> wrote code for it in C (usable with Python of course) to be able to control 
> relays from Python or from bash scripts etc.
>
> The only suggestions I have based on that experience, is if you're going 
> to switch multiple relays on or off simultaneously, then it's 'friendlier' 
> electrically to have a few millisecond pause between each. I ended up 
> incorporating that in my code, i.e. for simultaneous control it would 
> automatically stagger by a few milliseconds multiple relays switching on to 
> make it just a perceived simultaneous time.
>
>
>
> ------------------------------
> *From:* [email protected] <javascript:> <[email protected] 
> <javascript:>> on behalf of jonnymo <[email protected] <javascript:>>
> *Sent:* 08 April 2020 23:00
> *To:* Beagle Board <[email protected] <javascript:>>
> *Subject:* Re: [beagleboard] Re: 4 Relay relay Cape 'c' code 
>  
> Mala, 
>
> Yeah, I have 3 variations of Molloy's books and I do find them quite 
> nice.  His code more up to date than the shabaz code, so I would prefer 
> that.
>
> The other option is the AdaFruit BBIO Python code, which I believe Molloy 
> uses.
>
> https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/installation-on-ubuntu
>  
>
> Regardless, its best to just understand how the underline system is 
> working and how to make calls to the GPIO pins and then go your own route.
>
>
> Jon 
>
> On Wed, Apr 8, 2020 at 2:42 PM Mala Dies <[email protected] <javascript:>> 
> wrote:
>
> Hello jonnymo, 
>
> Seth here. The book exploringBB has some nice source for C++ workings w/ 
> it geared to, on Chapter 6, GPIO and other peripherals. 
>
> Seth
>
> P.S. See here: 
> https://github.com/derekmolloy/exploringBB/tree/version2/chp06. Although 
> this was from two years ago, I am sure if we work on it, minor improvements 
> or some similar changes might be all that is needed. Who knows?
>
> On Tuesday, April 7, 2020 at 5:28:31 PM UTC-5, jonnymo wrote: 
>
> Is this what you are referring to? 
>
>
> http://derekmolloy.ie/beaglebone/beaglebone-gpio-programming-on-arm-embedded-linux/
>  
>
>  https://github.com/derekmolloy/exploringBB
>
> Jon
>
> On Tue, Apr 7, 2020 at 3:20 PM Mala Dies <[email protected]> wrote:
>
> Hello KenUnix, 
>
> Seth here. Do you want me to still work on the C++ code or are you 
> satisfied w/ the shell script you are working on currently?
>
> Seth
>
> P.S. I found my book, ideas, and everything is on chapter six w/ source 
> already done for specific ideas. I would probably need to change some 
> source, too. Let a brother know. 
>
> On Tuesday, April 7, 2020 at 11:39:56 AM UTC-5, KenUnix wrote: 
>
> Robert,
>
> You were correct high level is better for now. It's been a long while 
> since working
> with 'c'.  Went the way of a bash script. Works well see below. Even 
> supports --help.
>
> ---Code Start--
> #!/bin/bash
> #
> # 4-7-2020 Ken
> #
> # cmd [state|label|on|off|in|out] gpio #
> # Example : cmd state 112
> #
> if [ "$1" == "--help" ]
>    then
>     echo -e "\ngpio relay cape tool. 4-7-2020 KenUnix\n"
>     echo "state  Get state of gpio number"
>     echo "label  Display associated P number"
>     echo "on     Set relay # to on"
>     echo "off    Turn relay off"
>     echo -e "out    Set gpio to out\n"
>     echo "Example: cmd status 115 Will display the state of gpio 115"
>     echo -e "         cmd on 20      Will turn relay 1 on for gpio 20\n"
>     exit
> fi
>
> case $2 in
>     20|7|112|115) ;;
>     *) echo "Invalid gpio $2"
>        echo "Vaild numbers are 20, 7, 112 or 115"
>            echo -e "Relay 1 20, relay 2 7, relay 3 112, relay 4 115\007"
>        exit 1 ;;
> esac
>
> case $1 in
>    "state")
>       direction=`cat /sys/class/gpio/gpio$2/direction`
>       echo -n "Direction $direction, State "
>       state=`cat /sys/class/gpio/gpio$2/value`
>       if [ "$state" == "0" ]; then echo "off"; fi
>       if [ "$state" == "1" ]; then echo "on"; fi
>       exit ;;
>    "label")
>       echo -n "Physical header pin number "
>       cat /sys/class/gpio/gpio$2/label ;
>       exit ;;
>    "on")
>       echo 1 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "off")
>       echo 0 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "out")
>       echo "out" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    "in")
>       echo "in" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    *) echo -e "Invalid operation $1. Try cmd --help\007" ; exit 1 ;;
> esac
> --Code End--
>
> Maybe someone else may find this useful.
>
> Ken
>
>
> On Tuesday, April 7, 2020 at 11:39:56 AM UTC-5, KenUnix wrote: 
>
> Robert,
>
> You were correct high level is better for now. It's been a long while 
> since working
> with 'c'.  Went the way of a bash script. Works well see below. Even 
> supports --help.
>
> ---Code Start--
> #!/bin/bash
> #
> # 4-7-2020 Ken
> #
> # cmd [state|label|on|off|in|out] gpio #
> # Example : cmd state 112
> #
> if [ "$1" == "--help" ]
>    then
>     echo -e "\ngpio relay cape tool. 4-7-2020 KenUnix\n"
>     echo "state  Get state of gpio number"
>     echo "label  Display associated P number"
>     echo "on     Set relay # to on"
>     echo "off    Turn relay off"
>     echo -e "out    Set gpio to out\n"
>     echo "Example: cmd status 115 Will display the state of gpio 115"
>     echo -e "         cmd on 20      Will turn relay 1 on for gpio 20\n"
>     exit
> fi
>
> case $2 in
>     20|7|112|115) ;;
>     *) echo "Invalid gpio $2"
>        echo "Vaild numbers are 20, 7, 112 or 115"
>            echo -e "Relay 1 20, relay 2 7, relay 3 112, relay 4 115\007"
>        exit 1 ;;
> esac
>
> case $1 in
>    "state")
>       direction=`cat /sys/class/gpio/gpio$2/direction`
>       echo -n "Direction $direction, State "
>       state=`cat /sys/class/gpio/gpio$2/value`
>       if [ "$state" == "0" ]; then echo "off"; fi
>       if [ "$state" == "1" ]; then echo "on"; fi
>       exit ;;
>    "label")
>       echo -n "Physical header pin number "
>       cat /sys/class/gpio/gpio$2/label ;
>       exit ;;
>    "on")
>       echo 1 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "off")
>       echo 0 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "out")
>       echo "out" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    "in")
>       echo "in" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    *) echo -e "Invalid operation $1. Try cmd --help\007" ; exit 1 ;;
> esac
> --Code End--
>
> Maybe someone else may find this useful.
>
> Ken
>
> -- 
> For more options, visit http://beagleboard.org/discuss
> --- 
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beagleboard/869c0859-6666-452f-9471-65627c6dc9aa%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/beagleboard/869c0859-6666-452f-9471-65627c6dc9aa%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
> On Tuesday, April 7, 2020 at 5:28:31 PM UTC-5, jonnymo wrote: 
>
> Is this what you are referring to? 
>
>
> http://derekmolloy.ie/beaglebone/beaglebone-gpio-programming-on-arm-embedded-linux/
>  
>
>  https://github.com/derekmolloy/exploringBB
>
> Jon
>
> On Tue, Apr 7, 2020 at 3:20 PM Mala Dies <[email protected]> wrote:
>
> Hello KenUnix, 
>
> Seth here. Do you want me to still work on the C++ code or are you 
> satisfied w/ the shell script you are working on currently?
>
> Seth
>
> P.S. I found my book, ideas, and everything is on chapter six w/ source 
> already done for specific ideas. I would probably need to change some 
> source, too. Let a brother know. 
>
> On Tuesday, April 7, 2020 at 11:39:56 AM UTC-5, KenUnix wrote: 
>
> Robert,
>
> You were correct high level is better for now. It's been a long while 
> since working
> with 'c'.  Went the way of a bash script. Works well see below. Even 
> supports --help.
>
> ---Code Start--
> #!/bin/bash
> #
> # 4-7-2020 Ken
> #
> # cmd [state|label|on|off|in|out] gpio #
> # Example : cmd state 112
> #
> if [ "$1" == "--help" ]
>    then
>     echo -e "\ngpio relay cape tool. 4-7-2020 KenUnix\n"
>     echo "state  Get state of gpio number"
>     echo "label  Display associated P number"
>     echo "on     Set relay # to on"
>     echo "off    Turn relay off"
>     echo -e "out    Set gpio to out\n"
>     echo "Example: cmd status 115 Will display the state of gpio 115"
>     echo -e "         cmd on 20      Will turn relay 1 on for gpio 20\n"
>     exit
> fi
>
> case $2 in
>     20|7|112|115) ;;
>     *) echo "Invalid gpio $2"
>        echo "Vaild numbers are 20, 7, 112 or 115"
>            echo -e "Relay 1 20, relay 2 7, relay 3 112, relay 4 115\007"
>        exit 1 ;;
> esac
>
> case $1 in
>    "state")
>       direction=`cat /sys/class/gpio/gpio$2/direction`
>       echo -n "Direction $direction, State "
>       state=`cat /sys/class/gpio/gpio$2/value`
>       if [ "$state" == "0" ]; then echo "off"; fi
>       if [ "$state" == "1" ]; then echo "on"; fi
>       exit ;;
>    "label")
>       echo -n "Physical header pin number "
>       cat /sys/class/gpio/gpio$2/label ;
>       exit ;;
>    "on")
>       echo 1 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "off")
>       echo 0 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "out")
>       echo "out" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    "in")
>       echo "in" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    *) echo -e "Invalid operation $1. Try cmd --help\007" ; exit 1 ;;
> esac
> --Code End--
>
> Maybe someone else may find this useful.
>
> Ken
>
>
> On Tuesday, April 7, 2020 at 11:39:56 AM UTC-5, KenUnix wrote: 
>
> Robert,
>
> You were correct high level is better for now. It's been a long while 
> since working
> with 'c'.  Went the way of a bash script. Works well see below. Even 
> supports --help.
>
> ---Code Start--
> #!/bin/bash
> #
> # 4-7-2020 Ken
> #
> # cmd [state|label|on|off|in|out] gpio #
> # Example : cmd state 112
> #
> if [ "$1" == "--help" ]
>    then
>     echo -e "\ngpio relay cape tool. 4-7-2020 KenUnix\n"
>     echo "state  Get state of gpio number"
>     echo "label  Display associated P number"
>     echo "on     Set relay # to on"
>     echo "off    Turn relay off"
>     echo -e "out    Set gpio to out\n"
>     echo "Example: cmd status 115 Will display the state of gpio 115"
>     echo -e "         cmd on 20      Will turn relay 1 on for gpio 20\n"
>     exit
> fi
>
> case $2 in
>     20|7|112|115) ;;
>     *) echo "Invalid gpio $2"
>        echo "Vaild numbers are 20, 7, 112 or 115"
>            echo -e "Relay 1 20, relay 2 7, relay 3 112, relay 4 115\007"
>        exit 1 ;;
> esac
>
> case $1 in
>    "state")
>       direction=`cat /sys/class/gpio/gpio$2/direction`
>       echo -n "Direction $direction, State "
>       state=`cat /sys/class/gpio/gpio$2/value`
>       if [ "$state" == "0" ]; then echo "off"; fi
>       if [ "$state" == "1" ]; then echo "on"; fi
>       exit ;;
>    "label")
>       echo -n "Physical header pin number "
>       cat /sys/class/gpio/gpio$2/label ;
>       exit ;;
>    "on")
>       echo 1 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "off")
>       echo 0 >/sys/class/gpio/gpio$2/value
>       exit ;;
>    "out")
>       echo "out" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    "in")
>       echo "in" > /sys/class/gpio/gpio$2/direction ;
>       exit ;;
>    *) echo -e "Invalid operation $1. Try cmd --help\007" ; exit 1 ;;
> esac
> --Code End--
>
> Maybe someone else may find this useful.
>
> Ken
>
> -- 
> For more options, visit http://beagleboard.org/discuss
> --- 
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beagleboard/869c0859-6666-452f-9471-65627c6dc9aa%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/beagleboard/869c0859-6666-452f-9471-65627c6dc9aa%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> -- 
> For more options, visit http://beagleboard.org/discuss
> --- 
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beagleboard/2cf0a7c2-676a-49d5-bd9b-63d71cd8855a%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/beagleboard/2cf0a7c2-676a-49d5-bd9b-63d71cd8855a%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> -- 
> For more options, visit http://beagleboard.org/discuss
> --- 
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beagleboard/CAG99bko%3DnRu9MH3zBS_X4_c_JME9xdgzqRJi%2BP5W70zTD9P6fQ%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/beagleboard/CAG99bko%3DnRu9MH3zBS_X4_c_JME9xdgzqRJi%2BP5W70zTD9P6fQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/89b406c9-5817-4c15-8e36-1a908b1ec17c%40googlegroups.com.

Reply via email to