Commit Graph

6 Commits

Author SHA1 Message Date
Dave Jones
737a739cd6 Fix #421
Added SPI tests, simplified the shared SPI software bus implementation,
and fixed several protocol errors in our MCP3xxx classes (the x2 and x1
protocols were wrong)
2016-09-08 22:24:06 +01:00
Ben Nuttall
89062ed4c2 Add quotes to dict keys
This is a bug introduced in v1.3.0. Currently, hardware SPI is not possible because the NameError is caught on 418 and incorrectly dealt with. The plan is to do a point release v1.3.1 to address this.
2016-08-31 15:04:07 +01:00
Dave Jones
3ac838f85f Raise warning when spidev missing for hardware SPI 2016-08-30 23:48:56 +01:00
Andrew Scheller
67261e44b2 Typo in SPISoftwareBus._shared_key
It's a @classmethod, so the first parameter is cls not self
2016-05-02 19:53:33 +01:00
Andrew Scheller
72ca075668 fix various bugs found by the 'prospector' static-analysis tool 2016-04-07 17:58:51 +01:00
Dave Jones
759a6a58e6 Fix #140, fix #69, fix #185
This PR adds a software SPI implementation. Firstly this removes the
absolute necessity for spidev (#140), which also means when it's not
present things still work (effectively fixes #185), and also enables any
four pins to be used for SPI devices (which don't require the hardware
implementation).

The software implementation is simplistic but still supports clock
polarity and phase, select-high, and variable bits per word. However it
doesn't allow precise speeds to be implemented because it just wibbles
the clock as fast as it can (which being pure Python isn't actually that
fast).

Finally, because this PR involves creating a framework for "shared"
devices (like SPI devices with multiple channels), it made sense to bung
Energenie (#69) in as wells as this is a really simple shared device.
2016-04-01 12:57:17 +01:00