mirror of
				https://github.com/node-red/node-red-nodes.git
				synced 2025-03-01 10:37:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# There is NO error checking in this program - you can mess up pins big time if you want.
 | 
						|
 | 
						|
# gpio mode pin inputtype
 | 
						|
# gpio read pin
 | 
						|
# gpio write pin level
 | 
						|
# gpio pwm pin level
 | 
						|
# gpio close pin
 | 
						|
 | 
						|
declare -A pins
 | 
						|
# Map the GPIO names to actual underlying IO numbers
 | 
						|
pins=(["0"]="73" ["1"]="72" ["2"]="71" ["3"]="70" ["4"]="194" ["5"]="195" ["6"]="67" ["7"]="1")
 | 
						|
 | 
						|
usage() {
 | 
						|
    echo ""
 | 
						|
    echo "  gpiohb mode  {pin} {in|out}"
 | 
						|
    echo "  gpiohb read  {pin}"
 | 
						|
    echo "  gpiohb write {pin} {0|1}"
 | 
						|
    echo "  gpiohb wfi   {pin} {rising|falling|both|none}"
 | 
						|
    #echo "  gpiohb pwm   {pin} {0-1023}"
 | 
						|
    echo "  gpiohb close {pin}"
 | 
						|
    echo ""
 | 
						|
}
 | 
						|
 | 
						|
while [ "$1" != "" ]; do
 | 
						|
    case $1 in
 | 
						|
        -h | --help | -?)
 | 
						|
            usage
 | 
						|
            exit
 | 
						|
            ;;
 | 
						|
        mode)
 | 
						|
            echo $1 $2 $3
 | 
						|
            if [ "$3" != "out" ] ; then
 | 
						|
                $3="in"
 | 
						|
            fi
 | 
						|
            pin=${pins[$2]}
 | 
						|
            echo $pin > /sys/class/gpio/export
 | 
						|
            echo $3 > /sys/class/gpio/gpio$pin/direction
 | 
						|
            exit
 | 
						|
            ;;
 | 
						|
        read)
 | 
						|
            pin=${pins[$2]}
 | 
						|
            cat /sys/class/gpio/gpio$pin/value
 | 
						|
            exit
 | 
						|
            ;;
 | 
						|
        write)
 | 
						|
            pin=${pins[$2]}
 | 
						|
            echo $3 > /sys/class/gpio/gpio$pin/value
 | 
						|
            exit
 | 
						|
            ;;
 | 
						|
        wfi)
 | 
						|
            pin=${pins[$2]}
 | 
						|
            echo $3 > /sys/class/gpio/gpio$pin/edge
 | 
						|
            exit
 | 
						|
            ;;
 | 
						|
        pwm)
 | 
						|
            # Not implemented yet....
 | 
						|
            pin=${pins[$2]}
 | 
						|
            exit
 | 
						|
            ;;
 | 
						|
        close)
 | 
						|
            pin=${pins[$2]}
 | 
						|
            echo $pin > /sys/class/gpio/unexport
 | 
						|
            exit
 | 
						|
            ;;
 | 
						|
        *)
 | 
						|
            echo "ERROR: unknown parameter \"$PARAM\""
 | 
						|
            usage
 | 
						|
            exit 1
 | 
						|
        ;;
 | 
						|
    esac
 | 
						|
    shift
 | 
						|
done
 |