firmata 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,16 @@
1
+ require 'bundler/setup'
2
+ require 'firmata'
3
+
4
+ board = Firmata::Board.new('/dev/tty.usbmodemfa131')
5
+
6
+ board.connect
7
+
8
+ 10.times do
9
+ board.digital_write 13, Firmata::Board::HIGH
10
+ puts '+'
11
+ board.delay 0.5
12
+
13
+ board.digital_write 13, Firmata::Board::LOW
14
+ puts '-'
15
+ board.delay 0.5
16
+ end
data/lib/firmata/board.rb CHANGED
@@ -85,10 +85,10 @@ module Firmata
85
85
 
86
86
  def connect
87
87
  unless @connected
88
- self.once('report_version', ->() do
89
- self.once('firmware_query', ->() do
90
- self.once('capability_query', ->() do
91
- self.once('analog_mapping_query', ->() do
88
+ once('report_version', ->() do
89
+ once('firmware_query', ->() do
90
+ once('capability_query', ->() do
91
+ once('analog_mapping_query', ->() do
92
92
  @connected = true
93
93
  emit('ready')
94
94
  end)
@@ -97,7 +97,14 @@ module Firmata
97
97
  query_capabilities
98
98
  end)
99
99
  end)
100
+
101
+ until connected?
102
+ read_and_process
103
+ delay(0.5)
104
+ end
100
105
  end
106
+
107
+ self
101
108
  end
102
109
 
103
110
  # Internal: Write data to the underlying serial port.
@@ -122,10 +129,10 @@ module Firmata
122
129
 
123
130
  # Internal: Process a series of bytes.
124
131
  #
125
- # bytes: An Enumerator of bytes (default: read())
132
+ # bytes: An Enumerator of bytes
126
133
  #
127
134
  # Returns nothing.
128
- def process(bytes = read)
135
+ def process(bytes)
129
136
  bytes.each do |byte|
130
137
  case byte
131
138
  when REPORT_VERSION
@@ -216,6 +223,13 @@ module Firmata
216
223
  # do nadda
217
224
  end
218
225
 
226
+ # Public: Read the serial port and process the results
227
+ #
228
+ # Returns nothing.
229
+ def read_and_process
230
+ process(read)
231
+ end
232
+
219
233
  # Public: Send a SYSTEM_RESET to the Arduino
220
234
  #
221
235
  # Returns nothing.
@@ -1,3 +1,3 @@
1
1
  module Firmata
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/test/board_test.rb CHANGED
@@ -33,7 +33,7 @@ class BoardTest < MiniTest::Unit::TestCase
33
33
  def test_processing_report_version
34
34
  board = Firmata::Board.new(FakeSerialPort.new)
35
35
  board.report_version
36
- board.process
36
+ board.read_and_process
37
37
 
38
38
  assert_equal '2.3', board.version
39
39
  end
@@ -50,7 +50,7 @@ class BoardTest < MiniTest::Unit::TestCase
50
50
  def test_processing_capabilities_query
51
51
  board = Firmata::Board.new(FakeSerialPort.new)
52
52
  board.query_capabilities
53
- board.process
53
+ board.read_and_process
54
54
 
55
55
  assert_equal 20, board.pins.size
56
56
  end
@@ -67,10 +67,10 @@ class BoardTest < MiniTest::Unit::TestCase
67
67
  def test_processing_analog_mapping_query
68
68
  board = Firmata::Board.new(FakeSerialPort.new)
69
69
  board.query_capabilities
70
- board.process
70
+ board.read_and_process
71
71
 
72
72
  board.query_analog_mapping
73
- board.process
73
+ board.read_and_process
74
74
 
75
75
  assert_equal 6, board.analog_pins.size
76
76
  end
@@ -98,12 +98,12 @@ class BoardTest < MiniTest::Unit::TestCase
98
98
  def test_processing_pin_state_query
99
99
  board = Firmata::Board.new(FakeSerialPort.new)
100
100
  board.query_capabilities
101
- board.process
101
+ board.read_and_process
102
102
 
103
103
  board.pins[13].mode = Firmata::Board::INPUT
104
104
 
105
105
  board.query_pin_state(13)
106
- board.process
106
+ board.read_and_process
107
107
 
108
108
  assert_equal Firmata::Board::OUTPUT, board.pins[13].mode
109
109
  end
@@ -141,13 +141,13 @@ class BoardTest < MiniTest::Unit::TestCase
141
141
  board = Firmata::Board.new(fake_port)
142
142
 
143
143
  board.query_capabilities
144
- board.process
144
+ board.read_and_process
145
145
 
146
146
  board.query_analog_mapping
147
- board.process
147
+ board.read_and_process
148
148
 
149
149
  fake_port.buffer = "\xE0\e\u0005\xE1N\u0004\xE2A\u0004\xE3C\u0004\xE4o\u0004\xE5f\u0004\xE0w\u0004\xE1]\u0004\xE2N\u0004\xE3I\u0004\xE4x\u0004\xE5m\u0004\xE0m\u0004\xE1`\u0004\xE2T\u0004\xE3L\u0004\xE4s\u0004\xE5l\u0004\xE0i\u0004\xE1`\u0004\xE2V\u0004\xE3N\u0004\xE4m\u0004\xE5j\u0004\xE0f\u0004\xE1^\u0004\xE2U\u0004\xE3O\u0004\xE4h\u0004\xE5g\u0004\xE0d\u0004\xE1\\\u0004\xE2T\u0004\xE3O\u0004\xE4d\u0004\xE5d\u0004\xE0b\u0004\xE1Z\u0004\xE2S\u0004\xE3N\u0004\xE4`\u0004\xE5a\u0004\xE0_\u0004\xE1X\u0004\xE2Q\u0004\xE3L\u0004\xE4\\\u0004\xE5^\u0004\xE0\\\u0004\xE1T\u0004\xE2N\u0004\xE3J\u0004\xE4X\u0004\xE5Z\u0004\xE0X\u0004\xE1Q\u0004\xE2K\u0004\xE3G\u0004\xE4T\u0004\xE5W\u0004\xE0V\u0004\xE1O\u0004\xE2H\u0004\xE3D\u0004\xE4Q\u0004\xE5T\u0004\xE0S\u0004\xE1L\u0004\xE2F\u0004\xE3B\u0004\xE4N\u0004\xE5Q\u0004\xE0P\u0004\xE1J\u0004\xE2C\u0004\xE3@\u0004\xE4K\u0004\xE5N\u0004\xE0N\u0004\xE1G\u0004\xE2A\u0004\xE3>\u0004\xE4I\u0004\xE5L\u0004\xE0L\u0004\xE1D\u0004\xE2?\u0004\xE3<\u0004\xE4F\u0004\xE5I\u0004\xE0I\u0004\xE1B\u0004\xE2=\u0004\xE39\u0004\xE4C\u0004\xE5F\u0004\xE0F\u0004\xE1?\u0004\xE2:\u0004\xE37\u0004\xE4@\u0004\xE5C\u0004\xE0C\u0004\xE1<\u0004\xE28\u0004\xE34\u0004\xE4>\u0004\xE5A\u0004\xE0A\u0004\xE1:\u0004\xE26\u0004\xE32\u0004\xE4<\u0004\xE5?\u0004\xE0?\u0004\xE19\u0004\xE24\u0004\xE31\u0004\xE4:\u0004\xE5=\u0004\xE0>\u0004\xE17\u0004\xE22\u0004\xE3/\u0004\xE49\u0004\xE5;\u0004\xE0<\u0004\xE15\u0004\xE20\u0004\xE3-\u0004\xE46\u0004\xE59\u0004\xE09\u0004\xE12\u0004\xE2.\u0004\xE3+\u0004\xE44\u0004\xE57\u0004\xE07\u0004\xE10\u0004\xE2,\u0004\xE3)\u0004\xE42\u0004\xE55\u0004\xE05\u0004\xE1.\u0004\xE2*\u0004\xE3'\u0004\xE40\u0004\xE52\u0004\xE03\u0004\xE1-\u0004\xE2(\u0004\xE3&\u0004\xE4/\u0004\xE51\u0004\xE02\u0004\xE1+\u0004\xE2&\u0004\xE3$\u0004\xE4-\u0004\xE50\u0004\xE00\u0004\xE1*\u0004\xE2%\u0004\xE3#\u0004\xE4,\u0004\xE5.\u0004\xE0/\u0004\xE1(\u0004\xE2$\u0004\xE3!\u0004\xE4*\u0004\xE5,\u0004\xE0-\u0004\xE1&\u0004\xE2\"\u0004\xE3\u001F\u0004\xE4(\u0004\xE5*\u0004\xE0+\u0004\xE1$\u0004\xE2 \u0004\xE3\u001D\u0004\xE4&\u0004\xE5(\u0004\xE0)\u0004\xE1\"\u0004\xE2\u001F\u0004\xE3\u001C\u0004\xE4%\u0004\xE5'\u0004\xE0(\u0004\xE1!\u0004\xE2\u001D\u0004\xE3\e\u0004\xE4$\u0004\xE5&\u0004\xE0&\u0004\xE1 \u0004\xE2\u001C\u0004\xE3\u001A\u0004\xE4#\u0004\xE5%\u0004\xE0&\u0004\xE1\u001F\u0004\xE2\e\u0004\xE3\u0019\u0004\xE4\"\u0004\xE5$\u0004\xE0$\u0004\xE1\u001E\u0004\xE2\u0019\u0004\xE3\u0018\u0004\xE4 \u0004\xE5\"\u0004\xE0\"\u0004\xE1\u001C\u0004\xE2\u0018\u0004\xE3\u0016\u0004\xE4\u001F\u0004\xE5 \u0004\xE0!\u0004\xE1\u001A\u0004\xE2\u0017\u0004\xE3\u0014\u0004\xE4\u001D\u0004\xE5\u001E\u0004\xE0\u001F\u0004\xE1\u0019\u0004\xE2\u0015\u0004\xE3\u0013\u0004\xE4\u001C\u0004\xE5\u001D\u0004\xE0\u001E\u0004\xE1\u0018\u0004\xE2\u0013\u0004\xE3\u0012\u0004\xE4\e\u0004\xE5\u001C\u0004\xE0\u001D\u0004\xE1\u0017\u0004\xE2\u0014\u0004\xE3\u0012\u0004\xE4\e\u0004\xE5\u001C\u0004\xE0\u001D\u0004\xE1\u0016\u0004\xE2\u0013\u0004\xE3\u0011\u0004\xE4\u001A\u0004\xE5\e\u0004\xE0\u001C\u0004\xE1\u0015\u0004\xE2\u0011\u0004\xE3\u0010\u0004\xE4\u0018\u0004\xE5\u0019\u0004\xE0\u001A\u0004\xE1\u0014\u0004\xE2\u0010\u0004\xE3\u000E\u0004\xE4\u0017\u0004\xE5\u0018\u0004\xE0\u0018\u0004\xE1\u0012\u0004\xE2\u000E\u0004\xE3\r\u0004\xE4\u0015\u0004\xE5\u0016\u0004\xE0\u0017\u0004\xE1\u0011\u0004\xE2\u000E\u0004\xE3\f\u0004\xE4\u0015\u0004\xE5\u0016\u0004\xE0\u0016\u0004\xE1\u0010\u0004\xE2\f\u0004\xE3\v\u0004\xE4\u0014\u0004\xE5\u0015\u0004\xE0\u0016\u0004\xE1\u000F\u0004\xE2\v\u0004\xE3\n\u0004\xE4\u0013\u0004\xE5\u0014\u0004\xE0\u0015\u0004\xE1\u000F\u0004\xE2\v\u0004\xE3\t\u0004\xE4\u0012\u0004\xE5\u0013\u0004\xE0\u0014\u0004\xE1\u000E\u0004\xE2\n\u0004\xE3\t\u0004\xE4\u0012\u0004\xE5\u0012\u0004\xE0\u0013\u0004\xE1\f\u0004\xE2\t\u0004\xE3\a\u0004\xE4\u0010\u0004\xE5\u0011\u0004\xE0\u0011\u0004\xE1\v\u0004\xE2\b\u0004\xE3\u0006\u0004\xE4\u000F\u0004\xE5\u000F\u0004\xE0\u0010\u0004\xE1\n\u0004\xE2\u0006\u0004\xE3\u0005\u0004\xE4\u000E\u0004\xE5\u000F\u0004\xE0\u000F\u0004\xE1\t\u0004\xE2\u0006\u0004\xE3\u0004\u0004\xE4\r\u0004\xE5\u000E\u0004\xE0\u000F\u0004\xE1\t\u0004\xE2\u0006\u0004\xE3\u0004\u0004\xE4\r\u0004\xE5\u000E\u0004\xE0\u000E\u0004\xE1\b\u0004\xE2\u0004\u0004\xE3\u0003\u0004\xE4\f\u0004\xE5\r\u0004\xE0\u000E\u0004\xE1\a\u0004\xE2\u0004\u0004\xE3\u0003\u0004"
150
- board.process
150
+ board.read_and_process
151
151
 
152
152
  board.analog_pins.each do |pin|
153
153
  refute_nil board.pins[pin].analog_channel, "Analog channel not set for pin #{pin}"
@@ -177,7 +177,7 @@ class BoardTest < MiniTest::Unit::TestCase
177
177
  fake_port.buffer = "\xF0y\u0002\u0003S\u0000t\u0000a\u0000n\u0000d\u0000a\u0000r\u0000d\u0000F\u0000i\u0000r\u0000m\u0000a\u0000t\u0000a\u0000\xF7"
178
178
  board = Firmata::Board.new(fake_port)
179
179
 
180
- board.process
180
+ board.read_and_process
181
181
 
182
182
  assert_equal 'StandardFirmata', board.firmware_name, 'Firmware Name is incorrect'
183
183
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firmata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-17 00:00:00.000000000 Z
12
+ date: 2012-08-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: serialport
@@ -55,11 +55,11 @@ files:
55
55
  - LICENSE
56
56
  - README.md
57
57
  - Rakefile
58
+ - examples/blink_led.rb
58
59
  - firmata.gemspec
59
60
  - lib/firmata.rb
60
61
  - lib/firmata/board.rb
61
62
  - lib/firmata/version.rb
62
- - sample.rb
63
63
  - test/board_test.rb
64
64
  - test/fake_serial_port.rb
65
65
  homepage: ''
data/sample.rb DELETED
@@ -1,25 +0,0 @@
1
- require 'bundler/setup'
2
- require 'firmata'
3
-
4
- board = Firmata::Board.new('/dev/tty.usbmodemfa131')
5
-
6
- board.on('ready', ->() do
7
-
8
- 10.times do
9
- board.digital_write 13, Firmata::Board::HIGH
10
- board.delay 1
11
-
12
- board.digital_write 13, Firmata::Board::LOW
13
- board.delay 1
14
- end
15
-
16
- end)
17
-
18
- board.connect
19
-
20
- Thread.new do
21
- loop do
22
- board.read
23
- sleep 1
24
- end
25
- end