farmbot-serial 0.4.3 → 0.5.0

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.
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