#!/bin/sh MODE0="IN" MODE1="OUT" MODE4="ALT0" MODE5="ALT1" MODE6="ALT2" MODE7="ALT3" MODE3="ALT4" MODE2="ALT5" PIN1="3.3v" PIN2="5v" PIN3="BCM 2" PIN4="5v" PIN5="BCM 3" PIN6="0v" PIN7="BCM 4" PIN8="BCM 14" PIN9="0v" PIN10="BCM 15" PIN11="BCM 17" PIN12="BCM 18" PIN13="BCM 27" PIN14="0v" PIN15="BCM 22" PIN16="BCM 23" PIN17="3.3v" PIN18="BCM 24" PIN19="BCM 10" PIN20="0v" PIN21="BCM 9" PIN22="BCM 25" PIN23="BCM 11" PIN24="BCM 8" PIN25="0v" PIN26="BCM 7" PIN27="BCM 0" PIN28="BCM 1" PIN29="BCM 5" PIN30="0v" PIN31="BCM 6" PIN32="BCM 12" PIN33="BCM 13" PIN34="0v" PIN35="BCM 19" PIN36="BCM 16" PIN37="BCM 26" PIN38="BCM 20" PIN39="0v" PIN40="BCM 21" i=1 echo "+-----+---------+------+---+-----++-----+---+------+---------+-----+" echo "| BCM | NAME | MODE | V | Physical | V | MODE | NAME | BCM |" echo "+-----+---------+------+---+-----++-----+---+------+---------+-----+" while [ $i -le 40 ]; do A=$i B=$((i+1)) C_PINA=$(eval echo \$PIN${A}) C_PINB=$(eval echo \$PIN${B}) if [ "$(echo $C_PINA | grep "BCM" )" != "" ]; then BCM_NO=$(echo $C_PINA | cut -d" " -f2) STATE=$(pigs r $BCM_NO) MODE=$(pigs mg $BCM_NO) printf "| %2d | GPIO %2d | %4s | %01d | %2d |" $BCM_NO $BCM_NO $(eval echo \$MODE${MODE}) $STATE $A else printf "| | %7s | | | %2d |" $(eval echo \$PIN${A}) $A fi if [ "$(echo $C_PINB | grep "BCM" )" != "" ]; then BCM_NO=$(echo $C_PINB | cut -d" " -f2) STATE=$(pigs r $BCM_NO) MODE=$(pigs mg $BCM_NO) printf "| %2d | %01d | %4s | GPIO %2d | %2d |\n" $B $STATE $(eval echo \$MODE${MODE}) $BCM_NO $BCM_NO else printf "| %-2d | | | %7s | |\n" $B $(eval echo \$PIN${B}) fi i=$((i+2)) done echo "+-----+---------+------+---+-----++-----+---+------+---------+-----+" echo "| BCM | NAME | MODE | V | Physical | V | MODE | NAME | BCM |" echo "+-----+---------+------+---+-----++-----+---+------+---------+-----+"