farmbot-serial 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
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