enhancing embedded development with ruby rubyconf 2007 · enhancing embedded development with ruby...
TRANSCRIPT
![Page 1: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/1.jpg)
Enhancing Embedded Development with Ruby
RubyConf 2007Bill BerezaAtomic Objectatomicobject.com
Sunday, November 4, 2007
![Page 2: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/2.jpg)
What?
Sunday, November 4, 2007
![Page 3: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/3.jpg)
Embedded C
Sunday, November 4, 2007
![Page 4: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/4.jpg)
8-bit PIC micro
Sunday, November 4, 2007
![Page 5: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/5.jpg)
How?
Sunday, November 4, 2007
![Page 6: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/6.jpg)
rake
Sunday, November 4, 2007
![Page 7: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/7.jpg)
argent
Sunday, November 4, 2007
![Page 8: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/8.jpg)
C unit tests
Sunday, November 4, 2007
![Page 9: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/9.jpg)
C mocks generated by Ruby
Sunday, November 4, 2007
![Page 10: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/10.jpg)
system testing in Ruby
Sunday, November 4, 2007
![Page 11: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/11.jpg)
continuous integration
Sunday, November 4, 2007
![Page 12: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/12.jpg)
Why?
Sunday, November 4, 2007
![Page 13: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/13.jpg)
In the beginning...
Sunday, November 4, 2007
![Page 14: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/14.jpg)
programming required intense knowledge of the
machine
Sunday, November 4, 2007
![Page 15: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/15.jpg)
computers
Sunday, November 4, 2007
![Page 16: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/16.jpg)
not powerful
Sunday, November 4, 2007
![Page 17: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/17.jpg)
and tools were primitive
Sunday, November 4, 2007
![Page 18: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/18.jpg)
and there was much pain
Sunday, November 4, 2007
![Page 19: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/19.jpg)
Sunday, November 4, 2007
![Page 20: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/20.jpg)
along came
Sunday, November 4, 2007
![Page 21: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/21.jpg)
compilers
Sunday, November 4, 2007
![Page 22: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/22.jpg)
languages
Sunday, November 4, 2007
![Page 23: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/23.jpg)
libraries
Sunday, November 4, 2007
![Page 24: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/24.jpg)
which helped some
Sunday, November 4, 2007
![Page 25: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/25.jpg)
Today
Sunday, November 4, 2007
![Page 26: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/26.jpg)
automated tests
Sunday, November 4, 2007
![Page 27: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/27.jpg)
code generation
Sunday, November 4, 2007
![Page 28: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/28.jpg)
domain specific languages.
Sunday, November 4, 2007
![Page 29: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/29.jpg)
but
Sunday, November 4, 2007
![Page 30: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/30.jpg)
there's a problem.
Sunday, November 4, 2007
![Page 31: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/31.jpg)
embedded devices
Sunday, November 4, 2007
![Page 32: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/32.jpg)
are small
Sunday, November 4, 2007
![Page 33: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/33.jpg)
cheap
Sunday, November 4, 2007
![Page 34: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/34.jpg)
and they're everywhere.
Sunday, November 4, 2007
![Page 35: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/35.jpg)
The problem is
Sunday, November 4, 2007
![Page 36: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/36.jpg)
they are everywhere
Sunday, November 4, 2007
![Page 37: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/37.jpg)
they all have software
Sunday, November 4, 2007
![Page 38: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/38.jpg)
software contains bugs.
Sunday, November 4, 2007
![Page 39: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/39.jpg)
How it's usually done
Sunday, November 4, 2007
![Page 40: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/40.jpg)
write
Sunday, November 4, 2007
![Page 41: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/41.jpg)
flash
Sunday, November 4, 2007
![Page 42: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/42.jpg)
fiddle
Sunday, November 4, 2007
![Page 43: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/43.jpg)
debug
Sunday, November 4, 2007
![Page 44: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/44.jpg)
scope
Sunday, November 4, 2007
![Page 45: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/45.jpg)
try again.
Sunday, November 4, 2007
![Page 46: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/46.jpg)
Unrepeatable
Sunday, November 4, 2007
![Page 47: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/47.jpg)
This leads to
Sunday, November 4, 2007
![Page 48: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/48.jpg)
hope
Sunday, November 4, 2007
![Page 49: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/49.jpg)
anger
Sunday, November 4, 2007
![Page 50: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/50.jpg)
fear.
Sunday, November 4, 2007
![Page 51: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/51.jpg)
The Goal
Sunday, November 4, 2007
![Page 52: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/52.jpg)
Apply good practices
Sunday, November 4, 2007
![Page 53: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/53.jpg)
automation
Sunday, November 4, 2007
![Page 54: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/54.jpg)
unit tests
Sunday, November 4, 2007
![Page 55: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/55.jpg)
system tests
Sunday, November 4, 2007
![Page 56: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/56.jpg)
user stories
Sunday, November 4, 2007
![Page 57: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/57.jpg)
behavior driven
Sunday, November 4, 2007
![Page 58: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/58.jpg)
mocking
Sunday, November 4, 2007
![Page 59: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/59.jpg)
continuous integration.
Sunday, November 4, 2007
![Page 60: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/60.jpg)
Vendor tools suck.
Sunday, November 4, 2007
![Page 61: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/61.jpg)
Sunday, November 4, 2007
![Page 62: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/62.jpg)
IDEs oversimplify
Sunday, November 4, 2007
![Page 63: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/63.jpg)
and
Sunday, November 4, 2007
![Page 64: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/64.jpg)
also fail to do
Sunday, November 4, 2007
![Page 65: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/65.jpg)
what is needed,
Sunday, November 4, 2007
![Page 66: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/66.jpg)
like test
Sunday, November 4, 2007
![Page 67: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/67.jpg)
and automate.
Sunday, November 4, 2007
![Page 68: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/68.jpg)
Debugging tools
Sunday, November 4, 2007
![Page 69: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/69.jpg)
are plentiful,
Sunday, November 4, 2007
![Page 70: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/70.jpg)
testing support is rare.
Sunday, November 4, 2007
![Page 71: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/71.jpg)
Solution.
Sunday, November 4, 2007
![Page 72: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/72.jpg)
Ruby
Sunday, November 4, 2007
![Page 73: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/73.jpg)
& tools written in
Sunday, November 4, 2007
![Page 74: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/74.jpg)
ruby
Sunday, November 4, 2007
![Page 75: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/75.jpg)
provide glue
Sunday, November 4, 2007
![Page 76: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/76.jpg)
for
Sunday, November 4, 2007
![Page 77: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/77.jpg)
all good practices.
Sunday, November 4, 2007
![Page 78: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/78.jpg)
The Project
Sunday, November 4, 2007
![Page 79: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/79.jpg)
Automated guided vehicles
Sunday, November 4, 2007
![Page 80: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/80.jpg)
which are
Sunday, November 4, 2007
![Page 81: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/81.jpg)
self propelled
Sunday, November 4, 2007
![Page 82: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/82.jpg)
semi-autonomous
Sunday, November 4, 2007
![Page 83: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/83.jpg)
factory vehicles.
Sunday, November 4, 2007
![Page 84: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/84.jpg)
Sunday, November 4, 2007
![Page 85: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/85.jpg)
4 basic types
Sunday, November 4, 2007
![Page 86: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/86.jpg)
forklifts
Sunday, November 4, 2007
![Page 87: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/87.jpg)
tow vehicles
Sunday, November 4, 2007
![Page 88: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/88.jpg)
unit load carriers (lift material on back)
Sunday, November 4, 2007
![Page 89: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/89.jpg)
carts (items are placed on the back)
Sunday, November 4, 2007
![Page 90: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/90.jpg)
Shared hardware architecture
Sunday, November 4, 2007
![Page 91: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/91.jpg)
configurable boards
Sunday, November 4, 2007
![Page 92: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/92.jpg)
for
Sunday, November 4, 2007
![Page 93: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/93.jpg)
steering
Sunday, November 4, 2007
![Page 94: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/94.jpg)
speed
Sunday, November 4, 2007
![Page 95: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/95.jpg)
battery
Sunday, November 4, 2007
![Page 96: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/96.jpg)
navigation.
Sunday, November 4, 2007
![Page 97: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/97.jpg)
Our first project
Sunday, November 4, 2007
![Page 98: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/98.jpg)
speed control
Sunday, November 4, 2007
![Page 99: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/99.jpg)
Our second project
Sunday, November 4, 2007
![Page 100: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/100.jpg)
battery monitor
Sunday, November 4, 2007
![Page 101: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/101.jpg)
Sunday, November 4, 2007
![Page 102: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/102.jpg)
Embedded C
Sunday, November 4, 2007
![Page 103: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/103.jpg)
Microchip PIC18F2480
Sunday, November 4, 2007
![Page 104: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/104.jpg)
16 kilobytes
Sunday, November 4, 2007
![Page 105: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/105.jpg)
FLASH
Sunday, November 4, 2007
![Page 106: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/106.jpg)
768 bytes
Sunday, November 4, 2007
![Page 107: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/107.jpg)
RAM
Sunday, November 4, 2007
![Page 108: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/108.jpg)
How Ruby helped
Sunday, November 4, 2007
![Page 109: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/109.jpg)
rake
Sunday, November 4, 2007
![Page 110: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/110.jpg)
rake test:system
Sunday, November 4, 2007
![Page 111: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/111.jpg)
Written in
Sunday, November 4, 2007
![Page 112: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/112.jpg)
Ruby.
Sunday, November 4, 2007
![Page 113: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/113.jpg)
Uses systir
Sunday, November 4, 2007
![Page 114: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/114.jpg)
system testing framework
Sunday, November 4, 2007
![Page 115: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/115.jpg)
An example:
Sunday, November 4, 2007
![Page 116: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/116.jpg)
proves "the instantaneous battery level reported via CAN is correct."
set_battery_level_display_instantaneousset_can_status_mode_to CAN_STATUS_NORMAL
set_battery_data 700, 24, FLOODEDset_battery_current_for_vehicle_consuming_charge_with_amps 40set_battery_voltage 24 wait_for_battery_level_output 4
set_battery_voltage 25.80verify_battery_level_output_is 9
set_battery_voltage 22.8verify_battery_level_output_is 0
Sunday, November 4, 2007
![Page 117: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/117.jpg)
System tests
Sunday, November 4, 2007
![Page 118: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/118.jpg)
are function calls
Sunday, November 4, 2007
![Page 119: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/119.jpg)
in bm_driver.rb
Sunday, November 4, 2007
![Page 120: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/120.jpg)
def set_battery_voltage(voltage) @minilab.write_analog( VOLTAGE_OUTPUT_PIN, voltage / BATTERY_VOLTAGE_DIVIDER) end
Sunday, November 4, 2007
![Page 121: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/121.jpg)
Ruby C extensions
Sunday, November 4, 2007
![Page 122: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/122.jpg)
minilab
Sunday, November 4, 2007
![Page 123: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/123.jpg)
Hardware
Sunday, November 4, 2007
![Page 124: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/124.jpg)
digital & analog I/O
Sunday, November 4, 2007
![Page 125: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/125.jpg)
Ruby class
Sunday, November 4, 2007
![Page 126: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/126.jpg)
provides
Sunday, November 4, 2007
![Page 127: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/127.jpg)
read_analog(channel)
Sunday, November 4, 2007
![Page 128: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/128.jpg)
write_analog(channel, volts)
Sunday, November 4, 2007
![Page 129: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/129.jpg)
read_digital(pin)
Sunday, November 4, 2007
![Page 130: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/130.jpg)
write_digital(pin)
Sunday, November 4, 2007
![Page 131: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/131.jpg)
The box
Sunday, November 4, 2007
![Page 132: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/132.jpg)
is wired
Sunday, November 4, 2007
![Page 133: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/133.jpg)
to the board.
Sunday, November 4, 2007
![Page 134: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/134.jpg)
pcan
Sunday, November 4, 2007
![Page 135: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/135.jpg)
Hardware
Sunday, November 4, 2007
![Page 136: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/136.jpg)
CAN bus
Sunday, November 4, 2007
![Page 137: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/137.jpg)
to USB
Sunday, November 4, 2007
![Page 138: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/138.jpg)
The vehicles
Sunday, November 4, 2007
![Page 139: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/139.jpg)
use CAN
Sunday, November 4, 2007
![Page 140: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/140.jpg)
internally
Sunday, November 4, 2007
![Page 141: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/141.jpg)
between each board.
Sunday, November 4, 2007
![Page 142: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/142.jpg)
We use CAN
Sunday, November 4, 2007
![Page 143: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/143.jpg)
in system tests
Sunday, November 4, 2007
![Page 144: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/144.jpg)
to
Sunday, November 4, 2007
![Page 145: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/145.jpg)
simulate the system.
Sunday, November 4, 2007
![Page 146: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/146.jpg)
Ruby class
Sunday, November 4, 2007
![Page 147: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/147.jpg)
provides
Sunday, November 4, 2007
![Page 148: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/148.jpg)
message methods.
Sunday, November 4, 2007
![Page 149: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/149.jpg)
receive_message(timeout)
Sunday, November 4, 2007
![Page 150: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/150.jpg)
transmit_message message
Sunday, November 4, 2007
![Page 151: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/151.jpg)
The Build Server
Sunday, November 4, 2007
![Page 152: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/152.jpg)
connected via
Sunday, November 4, 2007
![Page 153: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/153.jpg)
pcan and minilab
Sunday, November 4, 2007
![Page 154: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/154.jpg)
to the board.
Sunday, November 4, 2007
![Page 155: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/155.jpg)
Sunday, November 4, 2007
![Page 156: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/156.jpg)
rake test:units
Sunday, November 4, 2007
![Page 157: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/157.jpg)
written in C
Sunday, November 4, 2007
![Page 158: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/158.jpg)
unity
Sunday, November 4, 2007
![Page 159: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/159.jpg)
C unit test library
Sunday, November 4, 2007
![Page 160: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/160.jpg)
small enough
Sunday, November 4, 2007
![Page 161: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/161.jpg)
argent
Sunday, November 4, 2007
![Page 162: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/162.jpg)
per unit test file
Sunday, November 4, 2007
![Page 163: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/163.jpg)
//[[$argent require 'generate_unity.rb'; generate_unity();$]]//[[$end$]]
Sunday, November 4, 2007
![Page 164: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/164.jpg)
parses test.c
Sunday, November 4, 2007
![Page 165: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/165.jpg)
generates and inserts
Sunday, November 4, 2007
![Page 166: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/166.jpg)
C code
Sunday, November 4, 2007
![Page 167: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/167.jpg)
main()
Sunday, November 4, 2007
![Page 168: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/168.jpg)
calls to unit tests
Sunday, November 4, 2007
![Page 169: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/169.jpg)
//[[$argent require 'generate_unity.rb'; generate_supermock("Model,Utilities");$]]//[[$end$]]
Sunday, November 4, 2007
![Page 170: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/170.jpg)
initializes mocks
Sunday, November 4, 2007
![Page 171: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/171.jpg)
for _all_ C files
Sunday, November 4, 2007
![Page 172: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/172.jpg)
except the ones passed in
Sunday, November 4, 2007
![Page 173: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/173.jpg)
Model,Utilities
Sunday, November 4, 2007
![Page 174: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/174.jpg)
CMock
Sunday, November 4, 2007
![Page 175: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/175.jpg)
quick Ruby script
Sunday, November 4, 2007
![Page 176: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/176.jpg)
FUNC_MAGIC = /(\w*\s+)*(\w+)\s+(\w+)
\s*\(([^\)]*)\)/
Sunday, November 4, 2007
![Page 177: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/177.jpg)
Parses .h
Sunday, November 4, 2007
![Page 178: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/178.jpg)
for each function
Sunday, November 4, 2007
![Page 179: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/179.jpg)
generates
Sunday, November 4, 2007
![Page 180: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/180.jpg)
function_ExpectAndReturn(args)
Sunday, November 4, 2007
![Page 181: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/181.jpg)
and writes
Sunday, November 4, 2007
![Page 182: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/182.jpg)
Mock_file.c.
Sunday, November 4, 2007
![Page 183: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/183.jpg)
A unit test:
Sunday, November 4, 2007
![Page 184: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/184.jpg)
static void testCANConductorHandlesNewMessage_WhenNewMessageAvailable(void){ CANMessage message = {0};
HardwareEvents_GetDoCANOutput_Return(FALSE); CAN_IsNewMessageAvailable_Return(TRUE); CAN_GetNewMessage_Return(message); Model_ProcessCANMessage_Expect(message);
CANConductor_Run();}
Sunday, November 4, 2007
![Page 185: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/185.jpg)
For unit tests
Sunday, November 4, 2007
![Page 186: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/186.jpg)
we link
Sunday, November 4, 2007
![Page 187: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/187.jpg)
the file under test
Sunday, November 4, 2007
![Page 188: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/188.jpg)
to the mocked files.
Sunday, November 4, 2007
![Page 189: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/189.jpg)
Built binary
Sunday, November 4, 2007
![Page 190: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/190.jpg)
run in a simulator.
Sunday, November 4, 2007
![Page 191: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/191.jpg)
One binary per
Sunday, November 4, 2007
![Page 192: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/192.jpg)
test file.
Sunday, November 4, 2007
![Page 193: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/193.jpg)
Continuous integration
Sunday, November 4, 2007
![Page 194: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/194.jpg)
written in Ruby
Sunday, November 4, 2007
![Page 195: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/195.jpg)
monitors subversion
Sunday, November 4, 2007
![Page 196: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/196.jpg)
gets each checkin
Sunday, November 4, 2007
![Page 197: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/197.jpg)
runs rake.
Sunday, November 4, 2007
![Page 198: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/198.jpg)
Unit tests run
Sunday, November 4, 2007
![Page 199: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/199.jpg)
in a simulator.
Sunday, November 4, 2007
![Page 200: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/200.jpg)
System tests run
Sunday, November 4, 2007
![Page 201: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/201.jpg)
on the build server.
Sunday, November 4, 2007
![Page 202: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/202.jpg)
Actual production build
Sunday, November 4, 2007
![Page 203: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/203.jpg)
runs on the board.
Sunday, November 4, 2007
![Page 204: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/204.jpg)
Benefits
Sunday, November 4, 2007
![Page 205: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/205.jpg)
C code is clean
Sunday, November 4, 2007
![Page 206: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/206.jpg)
DRY
Sunday, November 4, 2007
![Page 207: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/207.jpg)
and readable.
Sunday, November 4, 2007
![Page 208: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/208.jpg)
void CANConductor_Run(void){ if(HardwareEvents_GetDoCANOutput()) { CAN_SendMessage(Model_GetCANStatusMessage()); HardwareEvents_ClearDoCANOutput(); }
if(CAN_IsNewMessageAvailable() == TRUE) { Model_ProcessCANMessage(CAN_GetNewMessage()); }}
Sunday, November 4, 2007
![Page 209: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/209.jpg)
Binary being tested
Sunday, November 4, 2007
![Page 210: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/210.jpg)
is actually
Sunday, November 4, 2007
![Page 211: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/211.jpg)
the binary deployed.
Sunday, November 4, 2007
![Page 212: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/212.jpg)
No magic test build.
Sunday, November 4, 2007
![Page 213: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/213.jpg)
Readable system tests.
Sunday, November 4, 2007
![Page 214: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/214.jpg)
Quick to write.
Sunday, November 4, 2007
![Page 215: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/215.jpg)
Unit tests
Sunday, November 4, 2007
![Page 216: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/216.jpg)
test behavior.
Sunday, November 4, 2007
![Page 217: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/217.jpg)
Unit and System
Sunday, November 4, 2007
![Page 218: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/218.jpg)
tests are easy
Sunday, November 4, 2007
![Page 219: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/219.jpg)
and fun to write.
Sunday, November 4, 2007
![Page 220: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/220.jpg)
Customer is happy.
Sunday, November 4, 2007
![Page 221: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/221.jpg)
Developers are happy.
Sunday, November 4, 2007
![Page 222: Enhancing Embedded Development with Ruby RubyConf 2007 · Enhancing Embedded Development with Ruby RubyConf 2007 Bill Bereza Atomic Object atomicobject.com Sunday, November 4, 2007](https://reader033.vdocument.in/reader033/viewer/2022050716/5e16e1761897f0620f555ed0/html5/thumbnails/222.jpg)
Questions?
References:atomicobject.com - papers,
software
Sunday, November 4, 2007