farmbot-serial 0.4.0 → 0.4.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f4349eb566899227dc4a17f353070503c670f5ab
4
- data.tar.gz: d71e9c5485c8161971cd631dc8f07f8d5f907546
3
+ metadata.gz: 06ce110c398cd6a9a9ffc89454d7de2127bd7627
4
+ data.tar.gz: 5be8458098c21f5b89255b876d10a3c349cde7bf
5
5
  SHA512:
6
- metadata.gz: 467e87b8a6d8184054fc160545763e66359821127f26f8cbdd3332c1801f0c86dcccb61908a9640a46ea4c54cb4edf591acc60385e61d795160b3c530b5f7a27
7
- data.tar.gz: 34ba8fca6d587b689058311303803503d6d1bac118fabe5b354d295e125fef3fff5966d2811e2a352716571262fce9ab9592d124a14d6775601228edcabc2e49
6
+ metadata.gz: 33ebc3d04479030e9bef35605e625bad436c8785ded69c77103ff2b627c542e00a20c46759393b40e85fe8322c4924eb85ff7a0094e69397665539c65f2aa0b2
7
+ data.tar.gz: 7aae26c6e3fa5fb346e0552c776c849248c0cdb014ed148700ff3fcf2407c2328bba12b6c5f877f88ca7f73d465974309cf24e9878a0061ba27c8a110be93f63
data/lib/arduino.rb CHANGED
@@ -24,6 +24,8 @@ module FB
24
24
  @commands = FB::OutgoingHandler.new(self)
25
25
  @inputs = FB::IncomingHandler.new(self)
26
26
  @status = FB::Status.new
27
+
28
+ start_event_listeners
27
29
  end
28
30
 
29
31
  # Log to screen/file/IO stream
@@ -64,6 +66,7 @@ module FB
64
66
  end
65
67
 
66
68
  def maybe_execute_command
69
+ sleep 0.05 # Throttle CPU
67
70
  gcode = @outbound_queue.pop
68
71
  return unless gcode
69
72
  if status.ready? && gcode.is_a?(FB::Gcode) # Flip flop order for performance?
@@ -77,6 +80,7 @@ module FB
77
80
  end
78
81
 
79
82
  def start_event_listeners
83
+ EM.tick_loop { maybe_execute_command }
80
84
  status.onchange { |diff| @onchange.call(diff) if @onchange }
81
85
  inbound_queue.subscribe do |gcodes|
82
86
  Array(gcodes).each do |gcode|
@@ -86,12 +90,6 @@ module FB
86
90
  end
87
91
  end
88
92
 
89
- def start
90
- # A noble experiment.
91
- EventMachine::PeriodicTimer.new(0.1) { maybe_execute_command }
92
- start_event_listeners
93
- end
94
-
95
93
  private
96
94
 
97
95
  # Highest priority method for processing incoming Gcode. Use for system
@@ -67,9 +67,7 @@ describe FB::Arduino do
67
67
  bot.outbound_queue.push(command)
68
68
  expect(bot.outbound_queue.length).to eq(1)
69
69
  bot.status[:BUSY] = 0
70
- within_event_loop {
71
- bot.start
72
- bot.maybe_execute_command }
70
+ within_event_loop { bot.maybe_execute_command }
73
71
  expect(bot.outbound_queue.length).to eq(0)
74
72
  expect(serial_port.message).to eq('A1 B2 C3')
75
73
  expect(bot.status.ready?).to be_falsey
@@ -90,7 +88,7 @@ describe FB::Arduino do
90
88
  called_onchange += 1
91
89
  end
92
90
 
93
- within_event_loop { bot.start }
91
+ within_event_loop { nil }
94
92
 
95
93
  expect(called_onmessage).to eq(1)
96
94
  expect(called_onchange).to eq(1)
data/spec/spec_helper.rb CHANGED
@@ -32,6 +32,6 @@ end
32
32
  def within_event_loop(ticks_remaining = 1)
33
33
  EM.run do
34
34
  yield
35
- EventMachine::PeriodicTimer.new(0.25) { EM.stop }
35
+ EventMachine::PeriodicTimer.new(0.1) { EM.stop }
36
36
  end
37
37
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: farmbot-serial
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Evers
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-05-06 00:00:00.000000000 Z
12
+ date: 2015-05-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler