Now that v1.0.0 is being released and will use a proper versioning mechanism,
there's no need for this warning.
Clients will be able to use http://github.com/golang/dep to version this
library.
As people like to copy paste code, make sure that the semantic of the variable
names is always relevant w.r.t. the object they refer to. In particular, do not
use 'bus' to refer to an spi.Port or spi.PortCloser, as this is blur the
distinction.
Also rename a few fooName to fooID.
Improve support for RPi 1, 2, 3, add support for Zero, Zero Wireless and the Compute Modules.
Removes rpi.Version since it doesn't make much sense anymore, as it more closely related to
the CPU than the actual board.
Fixes#139
This clarifies the difference on ownership and makes it clear that DevParams()
is essentially a 'connection factory'.
The flow is:
Bus -> Port -> Conn
Doing this caught inconsistencies in the unit tests. Made the structs in spitest
enforce the fact that DevParams() can only be called once.
In a follow up, I'll rename a lot of 'bus' to 'port' to be more consistent but
punting to not make this change unreviewable.
This makes it much more generic and extensible. This will enable addressing
issue #125.
Refuse registering an high and low priority pins with different numbers but same
name and reverse.
- This enables more complex use case like write-then-read, 3-wire SPI and when
the number of bits per word changes accross packets.
- Remove the transparent Tx() buffer cutting, the Raspberry Pi 3 spi_bcm2835
driver asserts the CS line even if csChange = 0 on the last packet. This broke
some use case (like FLIR Lepton).
spi-io: improve with more use cases. Used for adhoc testing of the SPI bus and
looking at the results over an oscilloscope.
- Increase test coverage to 100%.
- Add ssd1306smoketest.
- Complete SPI 4-wire implementation.
Differential update reduces the amount of data sent over the I²C/SPI bus at the
(small) cost of slightly more CPU usage. On many platform, I²C default transfert
speed is only 100KHz so when only a small section of the display is updated,
this can lead to significant performance improvement.
For now only page based differential update is used, as column based offset
corrupt the display. This still results in large savings.
- Rename Image to VerticalLSB, so that the 3 other encodings (vertical MSB,
horizontal LSB and MSB) can be added at a later point if ever needed without
breaking the API.
- Use .Pix, .Stride and .Rect so it is more similar to how stdlib image package
does it.
- Export the color model properly as BitModel.
- Remove frivolous methods.
- Allow both app and device drive set max bus speed.
- Make DevParams callable only exactly once.
- sysfs-spi: make SPI implement io.Reader.
- sysfs-spi: Fix Tx() with write only or read only.
This shortens OpenByName() to Open() and removes OpenByNumber(). The concept of
number is not removed, it's still possible to open a bus by number, but a base10
string representation of the number is now needed. In practice, I haven't found
a real use for OpenByNumber().
This simplify the API surface, less functions leads to simpler to understand
API.
This is a breaking change.
- conntest: Small coherency fixes along the way.
- conntest: Add Discard. Useful for zero filled tests.
- reg: Improve testing.
- CONTRIBUTING.md: fix a typo.
Because of the way the SPI bus is exposed via sysfs, do not use the same pattern
as i2c. This may change as more OSes are supported.
Increase test coverage for spi and spitest to 100%.
This is a breaking change.
This is closer to how gpio behaves yet different in practice because of the
different challenges.
spi will be updated later to behave the same. Add support for aliases, which is
very useful, and it permits the CLI tools to accept a free form string to
specify the bus name.
- Increase test coverage of i2c and i2ctest to 100%.
- Add i2c.Pins implementation to i2ctest.Playback.
Now each connection can report if the underlying communication channel is
half-duplex or full-duplex.
This information is leveraged by some clients, like memory mapped registers
helper struct, to change their behavior or deny use on certain kind of
communication channel.