farmbot-serial 0.2.1 → 0.2.2

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: 5b9026a21d4da007da2bdc85509d68297763fce5
4
- data.tar.gz: 78705810cdea9c1b98e6f217859b2be0a08e6090
3
+ metadata.gz: baebe8a0cfa185dafd4fbe91636c72f455e5aed2
4
+ data.tar.gz: d0b77fa227cbdf5c28b4800446f107d8063e28b6
5
5
  SHA512:
6
- metadata.gz: d02a8e074e6964ed3340b0450528b3caac103bc54734266cbd24db2d1db25c1516ed48fbd704cd17416f4a6c6f9134da4cbc1e8c18d0a467e560c13d27614aa6
7
- data.tar.gz: 1aa4ede5691439074cd5de2e269b52e18a405d65a2faac85aeac8d305b8643e50570de696fa58a72ee4a54468e0f42ad63dc4d688a8f5ce7d19d613710ef5f7f
6
+ metadata.gz: b7ec31f6cc54759f023c1b42e6001025c78714ba5a9b60198b9959140f9e30bbc8473f79f2ccc1728576e20471692afe4b56df6f9aad8e1963a6fa081e439da7
7
+ data.tar.gz: d19e8921f94dc79f4c15418318f7d1a239ac8d53d3cea335daadc93ee08a9430f43d640c54c2f49ab29e76094c5fc8f118015f414d6204c33c091ab834f4248a
@@ -73,17 +73,16 @@ module FB
73
73
 
74
74
  def execute_command_next_tick
75
75
  EM.next_tick do
76
- if status.ready?
77
- log "Exec after #{(Time.now - (@time || Time.now)).to_i}s wait"
78
- serial_port.puts @outbound_queue.pop
79
- @time = nil
80
- else
81
- @time ||= Time.now
82
- execute_command_next_tick
83
- end
76
+ status.ready? ? pop_gcode_off_queue : execute_command_next_tick
84
77
  end
85
78
  end
86
79
 
80
+ def pop_gcode_off_queue
81
+ gcode = @outbound_queue.pop
82
+ status[:last] = gcode.name if gcode.respond_to?(:name)
83
+ serial_port.puts gcode
84
+ end
85
+
87
86
  def start_event_listeners
88
87
  status.onchange { |diff| @onchange.call(diff) if @onchange }
89
88
  inbound_queue.subscribe do |gcodes|
@@ -13,6 +13,7 @@ module FB
13
13
  def emergency_stop(*)
14
14
  bot.outbound_queue = [] # Dump pending commands.
15
15
  bot.serial_port.puts "E" # Don't queue this one- write to serial line.
16
+ bot.status[:last] = :emergency_stop
16
17
  end
17
18
 
18
19
  def move_relative(x: 0, y: 0, z: 0, s: 100)
@@ -3,7 +3,7 @@ module FB
3
3
  # Map of informational status and default values for status within Arduino.
4
4
  DEFAULT_INFO = {X: 0, Y: 0, Z: 0, S: 10, Q: 0, T: 0, C: '', P: 0, V: 0,
5
5
  W: 0, L: 0, E: 0, M: 0, XA: 0, XB: 0, YA: 0, YB: 0, ZA: 0,
6
- ZB: 0,YR: 0, R: 0, BUSY: 1}
6
+ ZB: 0,YR: 0, R: 0, BUSY: 1, LAST: 'none'}
7
7
  Info = Struct.new(*DEFAULT_INFO.keys)
8
8
 
9
9
  def initialize
@@ -20,7 +20,14 @@ module FB
20
20
  end
21
21
 
22
22
  def []=(register, value)
23
- transaction { @info[register.upcase.to_sym] = value }
23
+ transaction do
24
+ register = register.upcase.to_sym
25
+ if @info.members.include?(register)
26
+ @info[register] = value
27
+ else
28
+ bot.log "Ignoring attempt to set unknown status value: #{register}"
29
+ end
30
+ end
24
31
  end
25
32
 
26
33
  def [](value)
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.2.1
4
+ version: 0.2.2
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-04-12 00:00:00.000000000 Z
12
+ date: 2015-04-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler