791 Commits

Author SHA1 Message Date
Dave Jones
13f5e5ea3b Fix old references to PiGPIOPin 2017-07-14 14:21:08 +01:00
Dave Jones
a68610d737 Minor formatting fixes 2017-07-14 14:11:32 +01:00
Dave Jones
d502dbc8e8 Stupid mistakes...
Spotted by @lurch's eagle eyes as usual :)
2017-07-14 14:02:03 +01:00
Dave Jones
49d3bbc1da Consistency in factory references 2017-07-14 14:01:39 +01:00
Dave Jones
b2e4237a57 Correct remote GPIO recipes 2017-07-14 14:01:29 +01:00
Dave Jones
eafae5c31a Fix #568
Update examples in pin factory docs so they work correctly.
2017-07-14 13:51:29 +01:00
Dave Jones
93a1f529e8 Merge pull request #574 from waveform80/pin-factory-param
Fix #279
2017-07-14 13:38:35 +01:00
Dave Jones
9fdc093837 Add pin_factory to all relevant class docs
Also tell a whole load of lies about what's a keyword-only arg. In the
vast majority of cases, pin_factory (and other args) *aren't*
keyword-only ... but we'd really like them to be, it's just difficult
while maintaining py2 compatibility.
2017-07-14 11:01:02 +01:00
Dave Jones
8958874a77 Add pin_factory param to all devices
And some docs ...
2017-07-14 10:44:24 +01:00
Ben Nuttall
5a07b545e2 Rename x86 distro 2017-07-10 17:44:47 +01:00
Dave Jones
1ca017fc6d Make mock constructor consistent 2017-07-05 20:17:57 +01:00
Dave Jones
c820636fcb Fix #279 once and for all (ha! ;)
This implements the proposal discussed in the re-opened #279 to add a
pin_factory argument at the device level and remove the ability to
specify a pin instance to device constructors (they now only accept a
pin specification).

Note: there's still a couple of bits to tidy up (tests on "real" Pis,
and pin_factory.release_all needs refinement) but the test suite is now
at least capable of passing on a PC.
2017-07-04 00:26:41 +01:00
Ben Nuttall
448feaf68f Correct StatusBoard max strip numbers in docstring 2017-07-03 12:30:58 +01:00
Ben Nuttall
a2a6fa7341 Merge pull request #558 from RPi-Distro/statusboard2
Add StatusZero and StatusBoard
2017-06-29 23:22:33 +01:00
Dave Jones
a980f3d14b Add py3.6 to supported/tested versions 2017-06-25 22:14:42 +01:00
Dave Jones
1ce80a8151 Try an explicit close on init failure 2017-06-25 21:48:48 +01:00
Dave Jones
53a8200507 Move device construction into dict-comprehension
Shouldn't make any difference to object lifetimes, but makes the
constructor similar to all others (which don't seem to have the same
issue?)
2017-06-25 21:35:58 +01:00
Dave Jones
12cbd5ae09 First stab at correcting object lifetime issue
This is a minimal change which re-orders some bits of CompositeDevice's
constructor to ensure that all exceptions get raised *before* we store a
reference to the contained devices. Hopefully this'll be enough to sort
out 2.x but I'm not sure it will be for pypy (might still require an
explicit close there).
2017-06-25 21:17:55 +01:00
Dave Jones
56f2152daf Change CompositeDevice to reject invalid identifiers
Also updated StatusBoard and StatusZero to reject duplicate identifiers
(namedtuple doesn't pick 'em up because they're passed in a dict and
thus the dups are squashed prior to the call). Added tests for all the
relevant stuff.
2017-06-25 20:44:13 +01:00
Dave Jones
c9857d55ce Fix statusboard tests
No point testing for invalid names (as they're not *really* invalid);
also ensure tests requiring PWM using MockPWMPin
2017-06-23 23:02:58 +01:00
Ben Nuttall
83cf4cada5 Add tests for StatusZero and StatusBoard 2017-06-23 22:59:29 +01:00
Ben Nuttall
8c656e4c4d Remove kwargs from CompositeOutputDevice init 2017-06-23 22:59:29 +01:00
Ben Nuttall
09711f2ea6 Correct order of red/green LEDs 2017-06-23 22:59:29 +01:00
Ben Nuttall
fe987aaa91 Add StatusBoard and StatusZero to docs and device hierarchy 2017-06-23 22:59:29 +01:00
Ben Nuttall
5f0e87766e Small Statusboard corrections from PR review 2017-06-23 22:58:06 +01:00
Ben Nuttall
55e031d72f Add implementation for StatusBoard 2017-06-23 22:58:06 +01:00
Ben Nuttall
be6380f97b Add implementation for StatusZero 2017-06-23 22:58:06 +01:00
Dave Jones
67ead55d74 Change default mock revision to Pi3B 2017-06-23 19:19:52 +01:00
Dave Jones
ef554d896d Fix tests for pinout 2017-06-23 19:02:03 +01:00
Dave Jones
eb175cc129 Fix pinout so it "works" on non-pi platforms
Or doesn't fail in such a brutal manner, anyway...
2017-06-23 18:55:50 +01:00
Ben Nuttall
ac8b5dbc3b Merge pull request #523 from RPi-Distro/docs-updates
Docs updates: add installing, advanced recipes, remote gpio and remote recipes, close #428, close #434, close #520
2017-06-22 22:55:35 +01:00
Ben Nuttall
36709d6f91 Merge branch 'master' into docs-updates 2017-06-22 22:55:17 +01:00
Dave Jones
a99e0746c3 Fix #279
Permit replacement of pin_factory without closing old factory. However,
continue closing devices associated with extant pin factory at script
termination.
2017-06-22 22:45:00 +01:00
Dave Jones
6e71f20aa6 Merge pull request #469 from waveform80/doc-chart-updates
Update all hierarchy charts in the docs (re #451)
2017-06-22 14:01:05 +01:00
Dave Jones
f8f810a912 Add a little script to generate class graphs
Heavily based on @lurch's efforts in #469 but with some additional
filtering capabilities.
2017-06-22 13:52:00 +01:00
Dave Jones
576fced6c4 Update all hierarchy charts in the docs
Added notes on how the abstracts are represented, ensured all the class
hierarchies were up to date, and changed the orientation so the classes
are actually readable in the big chart.
2017-06-21 17:01:13 +01:00
Dave Jones
412ca72066 First stab at #451
This is almost a straight copy'n'paste of picamera's development chapter
with a few minor changes to make it read sensibly for GPIO Zero; it
needs plenty more work to fulfil the goals of #451 but hopefully this'll
act as a reasonable base for people to work on.
2017-06-21 16:12:25 +01:00
Dave Jones
a0e7b63b8f Fix docs for #521 2017-06-21 16:08:21 +01:00
Dave Jones
ffe12362f5 Fix #521
Rename pigpiod module to pigpio
2017-06-21 15:39:50 +01:00
Dave Jones
d2a7c1434a Fix SPI tests when spidev is installed
Doh! SPI tests fail when the spidev package is installed (which it
normally isn't in my virtualenv) because hardware SPI always takes
precedence and the mock SPI stuff only replaces software SPI.
2017-06-21 14:40:52 +01:00
Dave Jones
35f1ff0623 Eliminate compatibility names from tests
No need to run the same tests on the same backends
2017-06-21 14:40:30 +01:00
Dave Jones
1022b0b0de Close #465
Factor out hardware SPI pin numbers; this is a effectively a rebase (and
minor modification) of @lurch's original patch which conflicted after
the merge of the remote-spi branch.
2017-06-20 23:16:59 +01:00
Dave Jones
a10c037f64 Merge pull request #468 from waveform80/remote-spi
Fix #459 - properly support remote SPI with pigpio
2017-06-20 15:11:52 +01:00
Dave Jones
bcc94354ea Fix #553
Ensure SourceMixin descendents shut down the source prior to closing.
Furthermore, make sure devices are closed before pin factory shuts down,
and that pins have a strong reference to their owning factory (to
prevent losing the factory before the pins).
2017-06-20 11:24:17 +01:00
Dave Jones
ab73e857fd Add compatibility names for pin factories 2017-06-19 22:21:50 +01:00
Dave Jones
aa3aa21695 Reference Device directly
Don't go via the instance dict (prevents anyone overriding the
reservations dict or pin_factory at the instance level)
2017-06-16 22:12:16 +01:00
Dave Jones
6017e7d01d Missing import... 2017-06-16 13:28:55 +01:00
Dave Jones
5487124f74 Fix pigpiod SPI conflicts
Wrong classname in the software implementation and for some reason I'd
reverted a change on spi_flags somewhere... Also removed the clause
skipping remote pigpiod tests

Tested this commit with hardware and software SPI remotely - working
nicely
2017-06-16 13:28:55 +01:00
Dave Jones
4944849a30 Debug travis
Mock pin tests aren't skipped locally, but are skipped on Travis;
temporarily adding a reporting flag to find out why...
2017-06-16 13:28:55 +01:00
Dave Jones
e5336c38ce Run all tests on all platforms
Also renamed GPIOZERO_INPUT_PIN to GPIOZERO_TEST_INPUT_PIN, and fixed up
the pigpio factory so it actually raises an exception if the connection
fails and we don't try and control the daemon anymore.
2017-06-16 13:28:55 +01:00