farmbot-serial 0.4.3 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/arduino.rb +19 -11
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 13a66521f3af57ec3336636065bb5019cccd8391
4
- data.tar.gz: 3566d30977fddd4e4907974545d41079e9691b2e
3
+ metadata.gz: 52762a06bad21afddef2fa922e24b444961b8409
4
+ data.tar.gz: 2229dc5fa90ce682ce14910c3acf55d95afff12e
5
5
  SHA512:
6
- metadata.gz: 4df445412c5fc62137559d7b551d61d5cbea3819315b83d0bcde102168323f8f181097ba21401f41bddfa71979435d56f05d3744efaad1a0423733305213dd50
7
- data.tar.gz: b14b9e64075481dd4b3e8e653885e033a8ccebbf220fe439e1d14ef5a1ab11144259d264cc5182909181b56aad25178ae4818c7a885c2be9893bff6a061fdc32
6
+ metadata.gz: ff41ce048316615c745a2946f7709c63339a0cc7b825d91eccd90f5bf0ec2bfc98751cdfff2409d599d0560aea600e7eb834f7cdebb5c7dd5ee11a8509d3da5c
7
+ data.tar.gz: 4a4c5e4af533e65809435d98cec2be8241c1fe16f10d6335fe3ce4865fcde936435a8516209689e08f6eb093d92a947b0375a92e68f6d62ff3ac6d0fe4a9e3c2
data/lib/arduino.rb CHANGED
@@ -65,19 +65,27 @@ module FB
65
65
  outbound_queue.first
66
66
  end
67
67
 
68
- def maybe_execute_command
68
+ def maybe_execute_command # This method smells procedural. Refactor?
69
69
  sleep 0.08 # Throttle CPU
70
+ return unless can_execute?
70
71
  gcode = @outbound_queue.pop
71
- return unless gcode && status.ready?
72
- if gcode.is_a?(FB::Gcode)
73
- log "RPI MSG: #{gcode}"
74
- serial_port.puts gcode
75
- status[:last] = gcode.name
76
- status[:BUSY] = 1 # If not, pi will race arduino and "talk too fast"
77
- else
78
- return log "Outbound messages must be GCode objects. Use of "\
79
- "#{gcode.class}:#{gcode.inspect} is not permitted."
80
- end
72
+ gcode.is_a?(FB::Gcode) ? execute_now(gcode) : reject_gcode(gcode)
73
+ end
74
+
75
+ def can_execute? # If the device is ready and commands are in the queue
76
+ @outbound_queue.any? && status.ready?
77
+ end
78
+
79
+ def execute_now(gcode)
80
+ log "RPI MSG: #{gcode}"
81
+ serial_port.puts gcode
82
+ status[:last] = gcode.name
83
+ status[:BUSY] = 1 # If not, pi will race arduino and "talk too fast"
84
+ end
85
+
86
+ def reject_gcode(gcode)
87
+ log "Outbound messages must be GCode objects. Use of "\
88
+ "#{gcode.class}:#{gcode.inspect} is not permitted."
81
89
  end
82
90
 
83
91
  def start_event_listeners
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.3
4
+ version: 0.5.0
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-12 00:00:00.000000000 Z
12
+ date: 2015-05-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler