farmbot-serial 0.3.2 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0af517cc7b6a0ead011b89a0a4f6273fe01edde8
4
- data.tar.gz: ab3b7f12f5dc949d03021c1a63aa6ca0896b336d
3
+ metadata.gz: 348ccc82a174231787613518c05ef3da32c544c7
4
+ data.tar.gz: 772b3ea17280788b8cfd1ad1fbb5f3f1747d9cd3
5
5
  SHA512:
6
- metadata.gz: b7b9a28154e94143155b47e0a548005e9b0744cc036c7159a658126f4e778ea7fe7a2830e0262df4f918e0becdb50ca7abc7087540bae1cd7eb8133f10ff3ffd
7
- data.tar.gz: 95905ed4b8e95d57ae11fd0d90774c2e31b07019735f9342e3d16c1f505101ba197f96460e6856f7ddca62793b39dcd48a06f333657ab6635bde9ce84fec21d8
6
+ metadata.gz: f2640d61eae76ba0e5088698143aed20c8b7e870d997d2153009602476373eb053380d3f0a69ab5fc0d6c1284166d077a63ac3971d535e2ab7eb865a7bed6ed6
7
+ data.tar.gz: 253323c3ec8f39795bfaa965d14d8f715fb0a7294408504cfd9aa4d0e7f315c324d7a4fd1ea9f1b7755aee4edb49da645f7c21f77fc580c3bafc67b202f4dbeb
data/console.rb CHANGED
@@ -50,7 +50,6 @@ EM.run do
50
50
  end
51
51
  bot.onchange { |diff| puts "STATUS CHANGE: #{diff};" }
52
52
  bot.onclose { puts "bye!"; EM.stop } # Unplug the bot and see
53
- # EventMachine::PeriodicTimer.new(7) { print '.'; bot.serial_port.puts "F31 P8" }
54
53
  EM.open_keyboard(KeyboardHandler, bot)
55
54
  0.upto(14) { |num| bot.commands.read_parameter(num) }
56
55
 
data/lib/arduino.rb CHANGED
@@ -36,7 +36,6 @@ module FB
36
36
  # Send outgoing test to arduino from pi
37
37
  def write(gcode)
38
38
  @outbound_queue.unshift gcode
39
- execute_command_next_tick
40
39
  end
41
40
 
42
41
  def onchange(&blk)
@@ -62,10 +61,8 @@ module FB
62
61
  Position.new(status[:X], status[:Y], status[:Z])
63
62
  end
64
63
 
65
- def execute_command_next_tick
66
- EM.next_tick do
67
- status.ready? ? pop_gcode_off_queue : execute_command_next_tick
68
- end
64
+ def maybe_execute_command
65
+ pop_gcode_off_queue if status.ready?
69
66
  end
70
67
 
71
68
  def next_cmd
@@ -85,6 +82,7 @@ module FB
85
82
  end
86
83
 
87
84
  def start_event_listeners
85
+ EM.tick_loop { maybe_execute_command } # A noble experiment.
88
86
  status.onchange { |diff| @onchange.call(diff) if @onchange }
89
87
  inbound_queue.subscribe do |gcodes|
90
88
  Array(gcodes).each do |gcode|
data/spec/spec_helper.rb CHANGED
@@ -3,6 +3,7 @@ require 'simplecov'
3
3
  SimpleCov.start do
4
4
  add_filter "/spec/"
5
5
  end
6
+
6
7
  require 'pry'
7
8
  require 'farmbot-serial'
8
9
 
@@ -10,7 +11,20 @@ require_relative 'fakes/fake_serial_port'
10
11
  require_relative 'fakes/fake_logger'
11
12
  require_relative 'fakes/fake_arduino'
12
13
 
14
+ require 'ruby-prof'
15
+
13
16
  RSpec.configure do |config|
17
+ config.before(:suite) do
18
+ # Profile the code
19
+ RubyProf.start
20
+ end
21
+
22
+ config.after(:suite) do
23
+ result = RubyProf.stop
24
+ # Print a flat profile to text
25
+ printer = RubyProf::FlatPrinter.new(result)
26
+ printer.print(STDOUT)
27
+ end
14
28
  end
15
29
 
16
30
  # This is used for testing things that require an event loop. Once run, you can
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.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Evers
@@ -81,6 +81,20 @@ dependencies:
81
81
  - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: ruby-prof
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
84
98
  - !ruby/object:Gem::Dependency
85
99
  name: eventmachine
86
100
  requirement: !ruby/object:Gem::Requirement