domotics-arduino 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +2 -2
- data/lib/domotics/arduino/board_emulator.rb +37 -40
- data/lib/domotics/arduino/version.rb +1 -1
- metadata +2 -2
data/Rakefile
CHANGED
@@ -43,8 +43,6 @@ def update(msg)
|
|
43
43
|
end
|
44
44
|
puts "Changed version."
|
45
45
|
puts "Removed #{File.delete(*Dir['./*.gem'])} old gems"
|
46
|
-
Dir["./*.gemspec"].each { |spec| puts %x(gem build #{spec}) }
|
47
|
-
Dir["./*.gem"].each { |gem| puts %x(gem push #{gem}) }
|
48
46
|
# add new files to repo
|
49
47
|
%x(git add --all .)
|
50
48
|
# commit
|
@@ -52,4 +50,6 @@ def update(msg)
|
|
52
50
|
else %x(git commit -a --reuse-message=HEAD); end
|
53
51
|
%x(git push)
|
54
52
|
puts "Pushed to github."
|
53
|
+
Dir["./*.gemspec"].each { |spec| puts %x(gem build #{spec}) }
|
54
|
+
Dir["./*.gem"].each { |gem| puts %x(gem push #{gem}) }
|
55
55
|
end
|
@@ -1,50 +1,47 @@
|
|
1
1
|
require 'pty'
|
2
2
|
|
3
|
-
module Domotics
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
3
|
+
module Domotics::Arduino
|
4
|
+
class BoardEmulator
|
5
|
+
attr_accessor :type, :state_list
|
6
|
+
def initialize(args = {})
|
7
|
+
success = ArduinoBase::SUCCESSREPRLY
|
8
|
+
@master, @slave = PTY.open
|
9
|
+
@type = args[:type] || :normal
|
10
|
+
@state_list = Hash.new(ArduinoBase::LOW)
|
11
|
+
Thread.new do
|
12
|
+
loop do
|
13
|
+
case @type
|
14
|
+
when :dead
|
15
|
+
terminate
|
16
|
+
when :crasy
|
17
|
+
@master.gets
|
18
|
+
@master.puts rand(4).times.map{ rand(10) }.join(' ')
|
19
|
+
when :disconnect
|
20
|
+
@master.gets
|
21
|
+
@slave.close
|
22
|
+
@master.close
|
23
|
+
else
|
24
|
+
message = @master.gets
|
25
|
+
command, pin, value = message.chomp.split(" ").map{ |m| m.to_i }
|
26
|
+
case command
|
27
|
+
when ArduinoBase::ECHOREPLY
|
28
|
+
@master.puts "#{value} #{pin}"
|
29
|
+
when ArduinoBase::SETDIGITAL
|
30
|
+
@state_list[pin] = value
|
31
|
+
@master.puts success
|
25
32
|
else
|
26
|
-
|
27
|
-
command, pin, value = message.chomp.split(" ").map{ |m| m.to_i }
|
28
|
-
case command
|
29
|
-
when ArduinoBase::ECHOREPLY
|
30
|
-
@master.puts "#{value} #{pin}"
|
31
|
-
when ArduinoBase::SETDIGITAL
|
32
|
-
@state_list[pin] = value
|
33
|
-
@master.puts success
|
34
|
-
else
|
35
|
-
@master.puts success
|
36
|
-
end
|
33
|
+
@master.puts success
|
37
34
|
end
|
38
35
|
end
|
39
36
|
end
|
40
37
|
end
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
38
|
+
end
|
39
|
+
def port
|
40
|
+
@slave.path
|
41
|
+
end
|
42
|
+
def toggle_pin(pin)
|
43
|
+
@state_list[pin] = @state_list[pin] == ArduinoBase::LOW ? ArduinoBase::HIGH : ArduinoBase::LOW
|
44
|
+
@master.puts "0 #{pin} #{@state_list[pin]}"
|
48
45
|
end
|
49
46
|
end
|
50
47
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: domotics-arduino
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-01-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: serialport
|