func GetStateOrPanic(gpio GPIOControllablePin) bool {
	r, err := gpio.GetState()
	if err != nil {
		panic(err)
	}
	return r
}
/ GPIOControllablePin Interface and Methods -----------------
package bbhw
import (
	"log"
	"time"
)
type GPIOControllablePin interface {
	SetState(bool) error
	SetStateNow(bool) error
	GetState() (bool, error)
	CheckDirection() (int, error)
	SetActiveLow(bool) error
}
type GPIOCollectionFactory interface {
	EndTransactionApplySetStates()
	BeginTransactionRecordSetStates()
	NewGPIO(uint, int) GPIOControllablePinInCollection
}
type GPIOControllablePinInCollection interface {
	SetState(bool) error
	SetStateNow(bool) error
	GetState() (bool, error)
	CheckDirection() (int, error)
	SetActiveLow(bool) error
	SetFutureState(state bool) error
	GetFutureState() (state_known, state bool, err error)
}
const (
	IN = iota
	OUT
	IN_PULLDOWN
	IN_PULLUP
)
type ADC interface {
	ReadValue() uint16
	CheckErrorOccurred() error
	ReadValueCheckError() (uint16, error)
}