Commit Graph

743 Commits

Author SHA1 Message Date
Adrian Zankich ea27332430 Merge pull request #145 from hybridgroup/mpu6050
Mpu6050
2014-11-10 18:30:54 -08:00
Adrian Zankich 4dd86c05b5 Merge pull request #146 from hybridgroup/mpl115a2
WIP on MPL115A2
2014-11-10 18:29:59 -08:00
deadprogram b4ff16d14b Support for MPU6050
- Add initial support for MPU6050
- Add real simple test impl
- Add proper formatting
- This pumps out data
2014-11-10 17:05:14 -08:00
deadprogram 9d864d4f1d WIP on MPL115A2
More WIP on mpl115a2
Even more WIP
This pumps out data
2014-11-10 16:53:49 -08:00
Adrian Zankich 7eae6ebe23 Don't use analog slot before it's ready 2014-11-10 12:48:08 -08:00
Adrian Zankich aad77ff5ab Refactor beaglebone tests 2014-11-09 14:35:36 -08:00
Adrian Zankich 7c607426ec Refactor beaglebone tests 2014-11-07 18:45:11 -08:00
Adrian Zankich a276082b97 Refactor edsion tests 2014-11-07 18:37:57 -08:00
Adrian Zankich 94ff30f262 Refactor raspi to use new sysfs interfaces 2014-11-07 16:57:05 -08:00
Adrian Zankich 7247469424 Remove erroneous file 2014-11-07 13:16:38 -08:00
Adrian Zankich 9793dd6db3 Increase leap test coverage 2014-11-07 13:15:45 -08:00
Adrian Zankich ce7181741f Add constructor clientid parameter and set proper datatype for On callback function 2014-11-06 12:28:04 -08:00
Adrian Zankich cbc5546dbb Satisfy DirectPin interface 2014-11-05 18:45:58 -08:00
Adrian Zankich 0a2ea29b49 NewArdroneAdaptor now accepts an ip address as an optional paramater 2014-11-05 17:47:12 -08:00
Adrian Zankich 17a880b43a More pebble test coverage 2014-11-04 20:55:24 -08:00
Adrian Zankich d74c77ec6c Refactor digispark package 2014-11-04 20:37:07 -08:00
Adrian Zankich 9c24626782 cleanup 2014-11-04 17:19:53 -08:00
Adrian Zankich 5ddfd4a848 Add raspi support 2014-11-04 17:14:36 -08:00
Adrian Zankich e888b78035 Add pwm and analog test coverage 2014-11-04 12:21:18 -08:00
deadprogram a9cb290d1f Adding some comments and README 2014-11-04 08:41:56 -08:00
deadprogram 039b85c9df Merge branch 'dev' into mqtt 2014-11-04 08:33:17 -08:00
deadprogram 71061cdd7f Add a few checks and tests 2014-11-04 08:33:05 -08:00
deadprogram 618becbf53 Keep it simple, validate later 2014-11-03 23:27:21 -08:00
deadprogram c5f8b8a869 Not using events array, so can remove 2014-11-03 22:56:52 -08:00
deadprogram d7b8f1883c Using @zankich proposed syntax for receiving subscribed events 2014-11-03 22:54:33 -08:00
deadprogram 7045e622d9 Putting Subscribe in place 2014-11-03 21:34:46 -08:00
deadprogram 660285e24d Disconnect on Finalize 2014-11-03 19:47:41 -08:00
Adrian Zankich 3e5289ff6c Tests for digital io and i2c 2014-11-03 19:41:34 -08:00
Adrian Zankich 0e3d3cf326 Add digital io and i2c tests 2014-11-03 19:02:33 -08:00
deadprogram 49c633ad3d WIP on mqtt support 2014-11-03 18:56:33 -08:00
deadprogram 5ffc43580f Initial skeleton for mqtt platform 2014-11-03 18:30:56 -08: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
Adrian Zankich fd3e7866a9 Fix more inconsistent tests 2014-10-28 16:22:05 -07:00
Adrian Zankich fd24e6a9fe Update docs 2014-10-28 14:52:59 -07:00
Javier Cervantes 1e723648e8 Adding godocs to beaglebone package 2014-10-27 20:21:22 -06:00
Adrian Zankich 1c02083d5b Merge pull request #122 from hybridgroup/godoc-pebble
Godoc pebble
2014-10-27 23:47:56 +00:00
Adrian Zankich 3514d09c36 Merge pull request #124 from hybridgroup/godoc-spark
Adding go-doc documentation to spark package
2014-10-27 23:47:28 +00:00
Adrian Zankich 8d57803a72 Merge pull request #126 from hybridgroup/godoc-firmata
Adding godocs to firmata package
2014-10-27 23:47:10 +00:00
Adrian Zankich e4f870e080 Merge pull request #127 from hybridgroup/godocs-joystick
Adding godocs documentation to joystick package
2014-10-27 23:45:59 +00:00
Adrian Zankich 17a8997d4b Merge pull request #128 from hybridgroup/godocs-neurosky
Adding godocs documentation to neurosky package
2014-10-27 23:45:35 +00:00
Adrian Zankich 404b35c0d1 Merge pull request #129 from hybridgroup/godocs-opencv
Adding godocs documentation to opencv package
2014-10-27 23:45:07 +00:00
Adrian Zankich 92164201c3 Merge pull request #130 from hybridgroup/godocs-digispark
Adding godocs documentation to digispark package
2014-10-27 23:44:41 +00:00
Adrian Zankich 600f4231b4 Merge pull request #131 from hybridgroup/godocs-i2c
Adding godocs documentation to i2c package
2014-10-27 23:44:14 +00:00
Adrian Zankich b4d16f01cc Merge pull request #132 from hybridgroup/godocs-intel-iot
Adding godocs documentation to intel-iot package
2014-10-27 23:43:39 +00:00
Adrian Zankich 8e9120282b Merge pull request #133 from hybridgroup/godoc-mavlink
Godoc mavlink
2014-10-27 23:43:14 +00:00
Adrian Zankich 83103537f5 Merge pull request #136 from hybridgroup/godocs-ardrone
Adding ardrone go docs
2014-10-27 23:27:29 +00:00
Javier Cervantes fbcad95973 Adding godocs information to leap package 2014-10-22 10:10:08 -05:00
Javier Cervantes 15055f1ae2 Adding ardrone go docs 2014-10-22 10:07:56 -05:00
Javier Cervantes a9a2a4f46f Improving godocs and adding doc.go to mavlink package 2014-10-22 09:58:06 -05:00
Javier Cervantes de0efc2666 Adding godocs documentation to intel-iot package 2014-10-22 09:56:55 -05:00
Javier Cervantes 76a81eaef7 Adding godocs documentation to i2c package 2014-10-22 09:56:21 -05:00
Javier Cervantes 04eb685a6c Adding godocs documentation to digispark package 2014-10-22 09:55:00 -05:00
Javier Cervantes dff7d50de7 Adding godocs documentation to opencv package 2014-10-22 09:53:42 -05:00
Javier Cervantes c8652c483f Adding godocs documentation to neurosky package 2014-10-22 09:52:38 -05:00
Javier Cervantes b9c98d0ffd Adding godocs documentation to joystick package 2014-10-22 09:51:26 -05:00
Javier Cervantes 58c15eb116 Adding godocs to firmata package 2014-10-22 09:49:19 -05:00
Javier Cervantes 304b3dd43f Adding go-doc documentation to spark package 2014-10-22 09:47:06 -05:00
Javier Cervantes e482b6d3b5 Adding godoc documentation to pebble package 2014-10-22 09:45:23 -05:00
Javier Cervantes 6d2e25b0d8 Adding doc.go to gpio package 2014-10-21 13:36:42 -05:00
Javier Cervantes af7dbf8bb1 Correct indentation for doc.go in sphero package 2014-10-21 12:30:06 -05:00
Javier Cervantes 8fc24b5a9a Adding doc.go to sphero package 2014-10-21 12:15:32 -05:00
Adrian Zankich bf7bc97c3a Add sphero docs 2014-09-28 20:32:31 -07:00
Adrian Zankich 07b853ef2f Fix broken tests 2014-09-27 11:45:52 -07:00
Adrian Zankich 09bc76d501 Add docs to gpio package 2014-09-27 11:34:13 -07:00
Adrian Zankich 8e1d9e3a1d Add mavlink docs 2014-09-26 19:31:05 -07:00
Adrian Zankich 086fa1efd4 Update README.md 2014-09-26 16:56:18 -07:00
Adrian Zankich 02a9cb3928 Fix test 2014-09-23 21:41:18 -07:00
Adrian Zankich 55fd5b1b64 Add Edison Support
Digital write works

Add PWMWrite

Add AnalogRead

Refactor edison adaptor

Enable more digital pins

Enable all digital pins

Add i2c support

Properly close i2c device

Restore proper examples

Add test stub

Add Edison README

Conflicts:
	scripts/travis.sh
2014-09-23 21:37:29 -07:00
Adrian Zankich 72aade7b3f Add Edison Support
Digital write works

Add PWMWrite

Add AnalogRead

Refactor edison adaptor

Enable more digital pins

Enable all digital pins

Add i2c support

Properly close i2c device

Restore proper examples

Add test stub

Add Edison README
2014-09-23 21:35:29 -07:00
Rafael Magana 5148562dee Tests for I2C 2014-09-18 18:11:10 -05:00
Adrian Zankich 39d3795f5a Add support for blinking usr leds 2014-09-17 15:20:08 -07:00
Adrian Zankich 1936827ad6 Merge pull request #105 from nathany/collision_struct
sphero: return collision data as a struct
2014-09-17 14:36:10 -07:00
Javier Cervantes 1fc619544a Correct AnalogRead in sparkCoreAdaptor
It now returns an int instead of float64, since the interface is
expecting that.
2014-09-15 13:49:23 -05:00
Nathan Youngman 46d46a8ad0 sphero: return collision data as a struct 2014-09-09 21:45:38 -06:00
Nathan Youngman 44d34d1ce7 sphero: calculate checksum of response packets
a little more robust.
2014-09-07 18:38:17 -06:00
Adrian Zankich 0ef0ca4355 Merge pull request #101 from nathany/sphero-readNextChunk
Fix: Sphero partial collision data
2014-09-02 09:07:25 -07:00
Nathan Youngman 613c7d8569 Fix: Sphero partial collision data
The previous behavior would throw out the data if incomplete rather than waiting for additional data.

On some async packets there would be a DLEN of 17 but no body (some of the body was retrieved, but not all 17 bytes, so nil was returned).

With this change it waits for enough data.
2014-08-26 21:23:42 -06:00
Sander van Harmelen a06689e561 Added requirement to get digispark compiled on OSX 2014-08-22 11:58:26 +02:00
Javier Cervantes d5130870dc go fmt spark tests 2014-08-21 17:31:39 -05:00
Rafael Magana 6a817c649a Add tests for SparkCoreAdaptor's postToSpark 2014-08-21 16:09:41 -05:00
Rafael Magana ac5f63efdb Tests for spark 2014-08-20 19:15:14 -05:00
Adrian Zankich b910bf6bb8 Merge pull request #92 from derailed/doc_test
First drop at adding some docs...
2014-08-14 05:30:19 -07:00
derailed 11ff06b0ac First pass at adding some documentation 2014-08-13 10:22:58 -06:00
TaNGSoFT 564e1d2f62 pass argument DeviceID to func craftPacket to identify virtual device the packet is intended for 2014-08-06 01:06:34 +08:00
Adrian Zankich 30dc0f6801 Enable mavlink tests 2014-08-04 12:06:54 -07:00
Adrian Zankich 01cbcf8ec1 Fix issue with reading from 3dr radio 2014-08-03 18:21:00 -07:00
Adrian Zankich 06061ee67c Initial mavlink support 2014-08-03 18:21:00 -07:00
Javier Cervantes 71c6a66049 Making pebble finally work on gobot 2014-07-31 13:56:50 -05:00
Adrian Zankich fd569cddcf Merge branch 'sphero_hotfix' 2014-07-28 11:55:22 -07:00
Homer Strong 3a0a677abe fix "message" capitalization in leap driver
fix leap examples
2014-07-25 09:23:46 -07:00
Homer Strong cdb26ad036 fix Port calls in leap motion adapter
"Message" should be capitalized to match event in driver

fix capitalization again (in example)

last event capitalization fix: hands example
2014-07-25 09:23:36 -07:00
Adrian Zankich 5847624f3e Format output of GetRGB 2014-07-25 09:14:34 -07:00
Adrian Zankich 201b54d56e Mock out window creation in test 2014-07-23 16:54:39 -07:00
Adrian Zankich c081f46609 Add more opencv test coverage 2014-07-23 16:38:46 -07:00
Javier Cervantes eee92acd30 Adding basic test coverage to opencv 2014-07-23 15:13:25 -07:00
Adrian Zankich 6a38454d21 Remove erroneous file 2014-07-22 18:02:41 -07:00
Adrian Zankich fbb054c27e Increase neurosky test coverage 2014-07-22 18:00:54 -07:00
Adrian Zankich 95334434c9 Increase joystick test coverage 2014-07-22 13:55:19 -07:00
Adrian Zankich 84363c6699 Rename Expect to Assert and add Refute function 2014-07-17 11:41:47 -07:00
Adrian Zankich 419193db49 Add more firmata test coverage 2014-07-16 11:49:06 -07:00
Adrian Zankich e55744657c Increase firmata test coverage 2014-07-15 14:52:21 -07:00
Adrian Zankich 5a15fb3198 Merge pull request #79 from strongh/leap-fix
Leap examples and adaptor fix
2014-07-15 09:35:15 -10:00
Homer Strong 4427d0f42b fix "message" capitalization in leap driver
fix leap examples
2014-07-15 12:15:37 -07:00
Homer Strong 04150591f2 fix Port calls in leap motion adapter
"Message" should be capitalized to match event in driver

fix capitalization again (in example)

last event capitalization fix: hands example
2014-07-15 12:14:59 -07:00
Adrian Zankich 31e28f9700 Merge pull request #80 from hybridgroup/enable-stop-on-disconnect
Enable stop on disconnect
2014-07-15 06:57:29 -10:00
Adrian Zankich 874d6e82c8 Fix failing test 2014-07-15 09:35:19 -07:00
Adrian Zankich c903bebc20 Green tests 2014-07-15 09:35:19 -07:00
Adrian Zankich f6c72529f0 Add channel timeouts 2014-07-15 09:35:19 -07:00
Adrian Zankich 83babbbe87 Add 'Once' Event function 2014-07-15 09:35:19 -07:00
Adrian Zankich d8be3d11d2 WIP firmata refactor 2014-07-15 09:35:18 -07:00
Javier Cervantes 884f1e1869 enable stop on disconnect via sphero api 2014-07-14 16:21:03 -05:00
Adrian Zankich b71e8864ff Fix neurosky runtime error 2014-07-13 20:44:28 -07:00
Adrian Zankich 11262956ab Fix issue with halting a sphero driver 2014-07-10 19:24:57 -07:00
Adrian Zankich 1d24bd8866 Update READMEs 2014-07-10 17:02:00 -07:00
Adrian Zankich 129bb7041a Fix firmata tests 2014-07-10 14:28:54 -07:00
Adrian Zankich f0ca761030 Fix firmata slice bounds out of range error 2014-07-10 13:42:18 -07:00
Javier Cervantes 8d76823af7 Fixing firmata out of bounds error 2014-07-10 14:58:29 -05:00
Adrian Zankich 1700c1276c Merge branch 'master' into dev 2014-07-10 11:54:48 -07:00
Adrian Zankich d3f22138f0 Clean up drivers 2014-07-09 18:32:27 -07:00
Adrian Zankich ab7ae975c3 Fix LedDriver test 2014-07-09 18:19:58 -07:00
Adrian Zankich a94c3c0bed Update NewLedDriver function signature 2014-07-09 16:51:00 -07:00
Adrian Zankich 7eec236b07 Update examples 2014-07-08 18:36:14 -07:00
Adrian Zankich 97a1dc67cc Merge branch 'dev' into refactor_device_connection 2014-07-07 22:04:02 -07:00
Adrian Zankich 3f3444f7e7 Update sphero package 2014-07-07 17:42:19 -07:00
Adrian Zankich da835935a8 Update spark package 2014-07-07 17:37:53 -07:00
Adrian Zankich 62a4cd882e Update pebble package 2014-07-07 17:35:59 -07:00
Adrian Zankich ba1c8fe42e Update opencv package 2014-07-07 17:31:35 -07:00
Adrian Zankich 0bac02539d Update neurosky package 2014-07-07 17:27:10 -07:00
Adrian Zankich a770ef1020 Update leap package 2014-07-07 17:19:31 -07:00
Adrian Zankich 6bb7af07b3 Update joystick package 2014-07-07 17:12:45 -07:00
Adrian Zankich cdb563ab02 Update i2c package 2014-07-07 16:59:19 -07:00
Adrian Zankich 089bfaf548 Update digispark package 2014-07-07 16:44:21 -07:00
Adrian Zankich 82af45ef12 Update beaglebone package 2014-07-07 16:41:20 -07:00
Adrian Zankich 8e8593a4c9 Update ardrone package 2014-07-07 16:03:14 -07:00
Jacob Hayes f0d822a0a1 Fix platform paths 2014-07-06 14:17:10 -05:00
Adrian Zankich d8154ce306 Update firmata platform and adaptor interface 2014-07-03 19:52:31 -07:00
Adrian Zankich a6fdedcf38 Update gpio platform and driver interface 2014-07-03 19:14:04 -07:00
Adrian Zankich 958d1941ad Fix errors in API 2014-07-02 18:08:44 -07:00
Adrian Zankich fbc11ded66 Write to pwm pin when its ready 2014-06-30 19:50:28 -07:00
Julio Arias b18a685370 Ensure slots are not already written into the capemanager
Ref PR https://github.com/hybridgroup/gobot-beaglebone/pull/4

Conflicts:
	platforms/beaglebone/beaglebone_adaptor.go
2014-06-30 18:02:54 -07:00
Travis Berry c5cd47a1d2 implement direct pin for beaglebone
Signed-off-by: Travis Berry <contact@travisberry.com>
2014-06-30 17:54:56 -06:00
Adrian Zankich 34ccc13ecb Add analog sensor data event 2014-06-28 17:18:16 -07:00
Adrian Zankich 634756bbb0 Fix issue with reading A1-A5 2014-06-28 17:03:55 -07:00
Adrian Zankich e10d617ece WIP refactor device and connection 2014-06-23 20:33:59 -07:00
Adrian Zankich f77689abe3 The Driver struct now has an Adaptor field 2014-06-15 17:22:50 -07:00
Adrian Zankich daf6e328d5 Refactor ardrone driver 2014-06-14 13:55:12 -07:00
Adrian Zankich aed6b39bb6 Update test formatting 2014-06-13 16:01:39 -07:00
Adrian Zankich 1a63727776 Update sphero tests 2014-06-13 14:26:18 -07:00
Adrian Zankich f5e38ae336 Update spark tests 2014-06-13 14:20:39 -07:00
Adrian Zankich 44f56a6327 Update pebble tests 2014-06-13 14:18:57 -07:00
Adrian Zankich b2ecaffe86 Update opencv tests 2014-06-13 13:45:50 -07:00
Adrian Zankich 10aee2201d Update neurosky tests 2014-06-13 13:40:24 -07:00
Adrian Zankich ebbe0a3db6 Update leap tests 2014-06-13 13:35:19 -07:00
Adrian Zankich 23bd24083d Update joystick tests 2014-06-13 12:54:21 -07:00
Adrian Zankich 73352d1193 Update i2c tests 2014-06-13 12:48:00 -07:00
Adrian Zankich 289e02493a Update gpio tests 2014-06-13 12:39:02 -07:00
Adrian Zankich 448ff0d72e WIP refactor gpio tests 2014-06-12 20:08:06 -07:00
Adrian Zankich cd703baa59 Update firmata tests 2014-06-12 16:22:34 -07:00
Adrian Zankich 1a153df2b0 Update digispark tests 2014-06-12 16:15:06 -07:00
Adrian Zankich b318eef6c4 Update beaglebone tests 2014-06-12 16:12:38 -07:00
Adrian Zankich d7a7202c8e Remove ginkgo test suite file from ardrone 2014-06-12 16:08:57 -07:00
Adrian Zankich fa21a14588 Update ardrone tests 2014-06-12 16:07:40 -07:00
Adrian Zankich f1dbe8b1e2 Update platforms for new device command syntax 2014-06-11 18:59:30 -07:00
Adrian Zankich addb700d23 Refactor driver commands 2014-06-11 17:41:04 -07:00
Adrian Zankich db44941c21 Use new Event type for events 2014-06-11 11:37:20 -07:00
Adrian Zankich c129da61d3 Make golint happy 2014-06-10 15:16:11 -07:00
Adrian Zankich 90423bc68b Merge pull request #64 from hybridgroup/pebble
Pebble Support
2014-06-10 11:55:02 -07:00
Javier Cervantes 3d454a7b05 Updating pebble with new structure
Movinf events creation to newPebbleDriver method

Adding basic button support

Ignoring sass-cache and robeaux

Adding accelerometer example

Adding tap support

Use custom server instead of classic martini

This is to disable logs and avoid noise

Adding correct format to code

Adding notification support to pebble driver

Adding tests and correcting PendingMessage

Updating documentation

Format to example accel

Removing logging changes in api

Removing temp fix in api, will be attended later

Removing extra space
2014-06-10 13:11:27 -05:00
Adrian Zankich b6b65e9af6 Update READMEs for each platform 2014-06-09 19:01:53 -07:00
Adrian Zankich 10df7f5cc6 Fix DirectPin for firmata 2014-06-09 14:28:48 -07:00
Adrian Zankich e1053fbdc5 Fix Wiichuck driver 2014-06-07 20:38:45 -07:00
Adrian Zankich f70150c5f7 Fix firmata examples 2014-06-06 18:58:04 -07:00
Adrian Zankich bd3599dece Fix beaglebone black issues 2014-06-06 16:58:58 -07:00
Adrian Zankich fc124ddf32 I2c inteface now uses byte instead of uint16 2014-06-06 16:58:17 -07:00
Adrian Zankich a7d648eee8 Makey button now uses Interval to manage polling 2014-06-06 14:44:51 -07:00
Javier Cervantes 3de9d86f74 Merge branch 'dev' of https://github.com/hybridgroup/gobot into pebble-support
* 'dev' of https://github.com/hybridgroup/gobot: (44 commits)
  Fix errors in examples
  Update i2c package
  Update gpio package
  Update sphero package and examples
  Update spark package and examples
  Update opencv package and examples
  Update neurosky package and examples
  Update leap package and examples
  Update joystick package and examples
  Update hello examples
  Update digispark package and examples
  Update beaglebone package and examples
  Update firmata examples
  Update ardrone adaptor, driver and examples
  Mark failing tests as pending
  WIP api refactor
  Fix platform tests
  Interval is now a time.Duration
  Gobot tests are green again
  After and Every now require a time.Duration instead of a string
  ...
2014-05-23 15:55:31 -05:00
Adrian Zankich 51bd9247e7 Update i2c package 2014-05-22 21:33:05 -07:00
Adrian Zankich 20395a016e Update gpio package 2014-05-22 21:29:37 -07:00
Adrian Zankich d877ffd251 Update sphero package and examples 2014-05-22 21:20:16 -07:00
Adrian Zankich f81aa43336 Update spark package and examples 2014-05-22 21:04:47 -07:00
Adrian Zankich cfc11f8eda Update opencv package and examples 2014-05-22 20:53:15 -07:00
Adrian Zankich 89b781fbdb Update neurosky package and examples 2014-05-22 20:43:00 -07:00
Adrian Zankich 7806a19a3f Update leap package and examples 2014-05-22 20:35:45 -07:00
Adrian Zankich 02ea69f7e0 Update joystick package and examples 2014-05-22 20:28:26 -07:00
Adrian Zankich 8eaf55552a Update digispark package and examples 2014-05-22 20:13:38 -07:00
Adrian Zankich 93ff0d6844 Update beaglebone package and examples 2014-05-22 19:32:09 -07:00
Adrian Zankich d32a5270f2 Update ardrone adaptor, driver and examples 2014-05-20 23:36:44 -07:00
Adrian Zankich 828b10f556 Fix platform tests 2014-05-03 03:37:02 -07:00
Javier Cervantes 37241b7edb Adding pebble support 2014-05-02 17:22:05 -05:00
Adrian Zankich eca3a1ca99 More WIP restructure 2014-04-30 08:10:44 -07:00
Adrian Zankich 90ee5d7d70 WIP project restructure 2014-04-29 13:20:32 -07:00