gobot.io/x/gobot@v1.16.0/drivers/gpio/helpers_test.go (about) 1 package gpio 2 3 import "sync" 4 5 type gpioTestBareAdaptor struct{} 6 7 func (t *gpioTestBareAdaptor) Connect() (err error) { return } 8 func (t *gpioTestBareAdaptor) Finalize() (err error) { return } 9 func (t *gpioTestBareAdaptor) Name() string { return "" } 10 func (t *gpioTestBareAdaptor) SetName(n string) {} 11 12 type gpioTestDigitalWriter struct { 13 gpioTestBareAdaptor 14 } 15 16 func (t *gpioTestDigitalWriter) DigitalWrite(string, byte) (err error) { return } 17 18 type gpioTestAdaptor struct { 19 name string 20 port string 21 mtx sync.Mutex 22 testAdaptorDigitalWrite func(pin string, val byte) (err error) 23 testAdaptorServoWrite func(pin string, val byte) (err error) 24 testAdaptorPwmWrite func(pin string, val byte) (err error) 25 testAdaptorAnalogRead func(ping string) (val int, err error) 26 testAdaptorDigitalRead func(ping string) (val int, err error) 27 } 28 29 func (t *gpioTestAdaptor) TestAdaptorDigitalWrite(f func(pin string, val byte) (err error)) { 30 t.mtx.Lock() 31 defer t.mtx.Unlock() 32 t.testAdaptorDigitalWrite = f 33 } 34 func (t *gpioTestAdaptor) TestAdaptorServoWrite(f func(pin string, val byte) (err error)) { 35 t.mtx.Lock() 36 defer t.mtx.Unlock() 37 t.testAdaptorServoWrite = f 38 } 39 func (t *gpioTestAdaptor) TestAdaptorPwmWrite(f func(pin string, val byte) (err error)) { 40 t.mtx.Lock() 41 defer t.mtx.Unlock() 42 t.testAdaptorPwmWrite = f 43 } 44 func (t *gpioTestAdaptor) TestAdaptorAnalogRead(f func(pin string) (val int, err error)) { 45 t.mtx.Lock() 46 defer t.mtx.Unlock() 47 t.testAdaptorAnalogRead = f 48 } 49 func (t *gpioTestAdaptor) TestAdaptorDigitalRead(f func(pin string) (val int, err error)) { 50 t.mtx.Lock() 51 defer t.mtx.Unlock() 52 t.testAdaptorDigitalRead = f 53 } 54 55 func (t *gpioTestAdaptor) ServoWrite(pin string, val byte) (err error) { 56 t.mtx.Lock() 57 defer t.mtx.Unlock() 58 return t.testAdaptorServoWrite(pin, val) 59 } 60 func (t *gpioTestAdaptor) PwmWrite(pin string, val byte) (err error) { 61 t.mtx.Lock() 62 defer t.mtx.Unlock() 63 return t.testAdaptorPwmWrite(pin, val) 64 } 65 func (t *gpioTestAdaptor) AnalogRead(pin string) (val int, err error) { 66 t.mtx.Lock() 67 defer t.mtx.Unlock() 68 return t.testAdaptorAnalogRead(pin) 69 } 70 func (t *gpioTestAdaptor) DigitalRead(pin string) (val int, err error) { 71 t.mtx.Lock() 72 defer t.mtx.Unlock() 73 return t.testAdaptorDigitalRead(pin) 74 } 75 func (t *gpioTestAdaptor) DigitalWrite(pin string, val byte) (err error) { 76 t.mtx.Lock() 77 defer t.mtx.Unlock() 78 return t.testAdaptorDigitalWrite(pin, val) 79 } 80 func (t *gpioTestAdaptor) Connect() (err error) { return } 81 func (t *gpioTestAdaptor) Finalize() (err error) { return } 82 func (t *gpioTestAdaptor) Name() string { return t.name } 83 func (t *gpioTestAdaptor) SetName(n string) { t.name = n } 84 func (t *gpioTestAdaptor) Port() string { return t.port } 85 86 func newGpioTestAdaptor() *gpioTestAdaptor { 87 return &gpioTestAdaptor{ 88 port: "/dev/null", 89 testAdaptorDigitalWrite: func(pin string, val byte) (err error) { 90 return nil 91 }, 92 testAdaptorServoWrite: func(pin string, val byte) (err error) { 93 return nil 94 }, 95 testAdaptorPwmWrite: func(pin string, val byte) (err error) { 96 return nil 97 }, 98 testAdaptorAnalogRead: func(pin string) (val int, err error) { 99 return 99, nil 100 }, 101 testAdaptorDigitalRead: func(pin string) (val int, err error) { 102 return 1, nil 103 }, 104 } 105 }