mirror of
https://github.com/hybridgroup/gobot.git
synced 2025-04-27 13:48:56 +08:00
49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
package aio
|
|
|
|
import "sync"
|
|
|
|
type aioTestAdaptor struct {
|
|
name string
|
|
port string
|
|
mtx sync.Mutex
|
|
analogReadFunc func() (val int, err error)
|
|
analogWriteFunc func(val int) error
|
|
written []int
|
|
}
|
|
|
|
func newAioTestAdaptor() *aioTestAdaptor {
|
|
t := aioTestAdaptor{
|
|
name: "aio_test_adaptor",
|
|
port: "/dev/null",
|
|
analogReadFunc: func() (int, error) {
|
|
return 99, nil
|
|
},
|
|
analogWriteFunc: func(val int) error {
|
|
return nil
|
|
},
|
|
}
|
|
|
|
return &t
|
|
}
|
|
|
|
// AnalogRead capabilities (interface AnalogReader)
|
|
func (t *aioTestAdaptor) AnalogRead(pin string) (int, error) {
|
|
t.mtx.Lock()
|
|
defer t.mtx.Unlock()
|
|
return t.analogReadFunc()
|
|
}
|
|
|
|
// AnalogWrite capabilities (interface AnalogWriter)
|
|
func (t *aioTestAdaptor) AnalogWrite(pin string, val int) error {
|
|
t.mtx.Lock()
|
|
defer t.mtx.Unlock()
|
|
t.written = append(t.written, val)
|
|
return t.analogWriteFunc(val)
|
|
}
|
|
|
|
func (t *aioTestAdaptor) Connect() error { return nil }
|
|
func (t *aioTestAdaptor) Finalize() error { return nil }
|
|
func (t *aioTestAdaptor) Name() string { return t.name }
|
|
func (t *aioTestAdaptor) SetName(n string) { t.name = n }
|
|
func (t *aioTestAdaptor) Port() string { return t.port }
|