mirror of
https://github.com/kidoman/embd
synced 2024-12-22 12:50:19 +01:00
Merge pull request #3 from gavincabbage/gavincabbage-readbytes
Gavincabbage readbytes
This commit is contained in:
commit
4503849da9
@ -131,6 +131,7 @@ type mockI2CBus struct {
|
||||
closed bool
|
||||
}
|
||||
|
||||
func (bus *mockI2CBus) ReadBytes(addr byte, num int) ([]byte, error) { return []byte{0x00}, nil }
|
||||
func (bus *mockI2CBus) ReadByte(addr byte) (byte, error) { return 0x00, nil }
|
||||
func (bus *mockI2CBus) WriteBytes(addr byte, value []byte) error { return nil }
|
||||
func (bus *mockI2CBus) ReadFromReg(addr, reg byte, value []byte) error { return nil }
|
||||
|
@ -101,6 +101,28 @@ func (b *i2cBus) ReadByte(addr byte) (byte, error) {
|
||||
return bytes[0], nil
|
||||
}
|
||||
|
||||
func (b *i2cBus) ReadBytes(addr byte, num int) ([]byte, error) {
|
||||
b.mu.Lock()
|
||||
defer b.mu.Unlock()
|
||||
|
||||
if err := b.init(); err != nil {
|
||||
return []byte{0}, err
|
||||
}
|
||||
|
||||
if err := b.setAddress(addr); err != nil {
|
||||
return []byte{0}, err
|
||||
}
|
||||
|
||||
bytes := make([]byte, num)
|
||||
n, _ := b.file.Read(bytes)
|
||||
|
||||
if n != num {
|
||||
return []byte{0}, fmt.Errorf("i2c: Unexpected number (%v) of bytes read", n)
|
||||
}
|
||||
|
||||
return bytes, nil
|
||||
}
|
||||
|
||||
func (b *i2cBus) WriteByte(addr, value byte) error {
|
||||
b.mu.Lock()
|
||||
defer b.mu.Unlock()
|
||||
|
2
i2c.go
2
i2c.go
@ -6,6 +6,8 @@ package embd
|
||||
type I2CBus interface {
|
||||
// ReadByte reads a byte from the given address.
|
||||
ReadByte(addr byte) (value byte, err error)
|
||||
// ReadBytes reads a slice of bytes from the given address.
|
||||
ReadBytes(addr byte, num int) (value []byte, err error)
|
||||
// WriteByte writes a byte to the given address.
|
||||
WriteByte(addr, value byte) error
|
||||
// WriteBytes writes a slice bytes to the given address.
|
||||
|
Loading…
x
Reference in New Issue
Block a user