Commit Graph

16 Commits

Author SHA1 Message Date
gmarik e494b9fb99 Refactor to use `gobottest` test helpers 2016-02-22 00:33:58 -05:00
Brian Stengaard 642ab409c1 Use Seek to speed up read/write in sysfs
This maintains `direction` and `value` `File`s for each DigitalPin
implementation. Instead of Open/Read/Close we now only do Seek/Read,
this speeds up Read/Write operations a bit.

A silly benchmark on the mock FS gives:

benchmark                  old ns/op     new ns/op     delta
BenchmarkDigitalRead-8     647           7.36          -98.86%

benchmark                  old allocs     new allocs     delta
BenchmarkDigitalRead-8     5              0              -100.00%

benchmark                  old bytes     new bytes     delta
BenchmarkDigitalRead-8     96            0             -100.00%
2016-02-18 21:18:45 +01:00
Hrishikesh Tapaswi 42475e479d Get I2C functionality before doing SMBus block I/O
In the sysfs i2cDevice implementation, use an ioctl to get the adapter
functionality mask. Prefer SMBus block I/O but if it's not available,
perform read/write calls directly on the file descriptor.

Improve Wiichuck error handling. Add a 1 ms delay between I/O operations
to the Wiichuck; this dramatically improves reliability.

Signed-off-by: Hrishikesh Tapaswi <hrishikesh195@yahoo.com>
2016-02-17 12:25:15 -08:00
Adrian Zankich fe6df92974 Refactor sysfs I2C implementation and add Address parameter to I2C interface functions 2015-07-03 18:57:29 -07:00
Adrian Zankich 22b84cc6ef go lint and documentation tweaks for the sysfs package 2014-12-31 06:12:25 -08:00
Adrian Zankich 67cdddb7ec Correctly pass os.PathError from fs mock Openfile function) 2014-12-23 12:59:59 -08:00
Adrian Zankich 25919240c2 Account for already exported pins and unexportable pins 2014-12-23 12:43:55 -08:00
Adrian Zankich cb2d101b6d Improve error message 2014-11-07 18:38:52 -08:00
Adrian Zankich ece9aa16f9 Add syscall mock 2014-11-07 16:56:13 -08:00
Adrian Zankich a0bcef77fe Refactor sysfs to use internal fs 2014-11-07 16:21:39 -08:00
Adrian Zankich bf30571234 DigitalPin is now an interface 2014-11-03 19:02:20 -08:00
Adrian Zankich e78257c201 Add docs 2014-10-30 16:22:25 -07:00
Adrian Zankich a7cee22918 Add sysfs tests 2014-10-30 16:06:04 -07:00
Adrian Zankich 45c51400fc beaglebone now uses sysfs package 2014-10-30 15:26:31 -07:00
Adrian Zankich 08c74113fb Add label property to DigitalPin 2014-10-30 13:41:27 -07:00
Adrian Zankich 72bd6961e0 WIP switching linux sysfs io to shared package 2014-10-29 17:51:47 -07:00