farmbot-serial 0.2.1 → 0.2.2

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