minilab 2.0.0-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +2 -0
- data/.gitignore +2 -0
- data/CHANGES +22 -0
- data/Gemfile +3 -0
- data/LICENSE +19 -0
- data/README.rdoc +101 -0
- data/Rakefile +25 -0
- data/doc/UniLib.chm +0 -0
- data/doc/minilab-1008.pdf +0 -0
- data/doc/minilab_systest_setup.txt +38 -0
- data/doc/port_mapping.txt +2 -0
- data/lib/minilab/analog_io.rb +25 -0
- data/lib/minilab/connection_state.rb +15 -0
- data/lib/minilab/digital_auxport_io.rb +36 -0
- data/lib/minilab/digital_configuration.rb +55 -0
- data/lib/minilab/digital_port_io.rb +41 -0
- data/lib/minilab/library_translator.rb +48 -0
- data/lib/minilab/minilab.rb +130 -0
- data/lib/minilab/minilab_constants.rb +22 -0
- data/lib/minilab/minilab_context.rb +18 -0
- data/lib/minilab/minilab_hardware.rb +118 -0
- data/lib/minilab/minilab_wrapper.rb +14 -0
- data/lib/minilab/objects.yml +24 -0
- data/lib/minilab/version.rb +3 -0
- data/lib/minilab.rb +14 -0
- data/minilab.gemspec +32 -0
- data/spec/acceptance/analog_spec.rb +35 -0
- data/spec/acceptance/digital_port_spec.rb +81 -0
- data/spec/acceptance/digital_screw_terminal_spec.rb +22 -0
- data/spec/spec_helper.rb +102 -0
- data/spec/unit/analog_io_spec.rb +55 -0
- data/spec/unit/connection_state_spec.rb +14 -0
- data/spec/unit/digital_auxport_io_spec.rb +98 -0
- data/spec/unit/digital_configuration_spec.rb +96 -0
- data/spec/unit/digital_port_io_spec.rb +65 -0
- data/spec/unit/library_translator_spec.rb +86 -0
- data/spec/unit/minilab_context_spec.rb +17 -0
- data/spec/unit/minilab_hardware_spec.rb +17 -0
- data/spec/unit/minilab_spec.rb +104 -0
- data/spec/unit/minilab_wrapper_spec.rb +20 -0
- data/vendor/mcc/cbw32.dll +0 -0
- metadata +192 -0
@@ -0,0 +1,96 @@
|
|
1
|
+
require_relative "../spec_helper"
|
2
|
+
|
3
|
+
describe Minilab::DigitalConfiguration do
|
4
|
+
before { @mox = create_mocks(:minilab_wrapper) }
|
5
|
+
subject { described_class.new(@mox) }
|
6
|
+
|
7
|
+
it "configure known ports for input" do
|
8
|
+
good_ports.each do |port|
|
9
|
+
expected_configuration = { :direction => DIGITALIN, :port => port_to_library_port_mapping[port] }
|
10
|
+
@minilab_wrapper.configure_port(expected_configuration).returns "you"
|
11
|
+
end
|
12
|
+
|
13
|
+
good_ports.each do |port|
|
14
|
+
assert_equal true, subject.configure_port_for_input(port)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
it "configure known ports for output" do
|
19
|
+
good_ports.each do |port|
|
20
|
+
expected_configuration = { :direction => DIGITALOUT, :port => port_to_library_port_mapping[port] }
|
21
|
+
@minilab_wrapper.configure_port(expected_configuration).returns "boo"
|
22
|
+
end
|
23
|
+
|
24
|
+
good_ports.each do |port|
|
25
|
+
assert_equal true, subject.configure_port_for_output(port)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
it "raise an error for an invalid input port" do
|
30
|
+
check_error_for_all_bad_ports(:configure_port_for_input)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "raise an error for an invalid output port" do
|
34
|
+
check_error_for_all_bad_ports(:configure_port_for_output)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "return false when each of the ports has not been configured for input yet and a client asks if it has" do
|
38
|
+
good_ports.each do |port|
|
39
|
+
assert_equal false, subject.is_port_configured_for_input?(port)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
it "return false when each of the ports has not been configured for output yet and a client asks if it has" do
|
44
|
+
good_ports.each do |port|
|
45
|
+
assert_equal false, subject.is_port_configured_for_output?(port)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
it "return the input configuration status of a port when asked" do
|
50
|
+
expected_configuration = { :direction => DIGITALIN, :port => port_to_library_port_mapping[:porta] }
|
51
|
+
@minilab_wrapper.configure_port(expected_configuration).returns true
|
52
|
+
|
53
|
+
subject.configure_port_for_input(:porta)
|
54
|
+
assert_equal true, subject.is_port_configured_for_input?(:porta)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "return the output configuration status of a port when asked" do
|
58
|
+
expected_configuration = { :direction => DIGITALOUT, :port => port_to_library_port_mapping[:portb] }
|
59
|
+
@minilab_wrapper.configure_port(expected_configuration).returns true
|
60
|
+
|
61
|
+
subject.configure_port_for_output(:portb)
|
62
|
+
assert_equal true, subject.is_port_configured_for_output?(:portb)
|
63
|
+
end
|
64
|
+
|
65
|
+
it "raise an error if you pass is_port_configured_for_input? an invalid port" do
|
66
|
+
check_error_for_all_bad_ports(:is_port_configured_for_input?)
|
67
|
+
end
|
68
|
+
|
69
|
+
it "raise an error if you pass is_port_configured_for_output? an invalid port" do
|
70
|
+
check_error_for_all_bad_ports(:is_port_configured_for_output?)
|
71
|
+
end
|
72
|
+
|
73
|
+
private
|
74
|
+
def good_ports
|
75
|
+
[:porta, :portb, :portcl, :portch]
|
76
|
+
end
|
77
|
+
|
78
|
+
def bad_ports
|
79
|
+
[nil, :portd, :portttt, "ibm"]
|
80
|
+
end
|
81
|
+
|
82
|
+
def port_to_library_port_mapping
|
83
|
+
{
|
84
|
+
:porta => FIRSTPORTA,
|
85
|
+
:portb => FIRSTPORTB,
|
86
|
+
:portcl => FIRSTPORTCL,
|
87
|
+
:portch => FIRSTPORTCH
|
88
|
+
}
|
89
|
+
end
|
90
|
+
|
91
|
+
def check_error_for_all_bad_ports(method_to_test)
|
92
|
+
bad_ports.each do |bad_port|
|
93
|
+
-> { subject.send(method_to_test, bad_port) }.should raise_error
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require_relative "../spec_helper"
|
2
|
+
|
3
|
+
describe Minilab::DigitalPortIo do
|
4
|
+
before { @mox =create_mocks(:minilab_wrapper, :digital_configuration, :library_translator) }
|
5
|
+
subject { described_class.new(@mox) }
|
6
|
+
|
7
|
+
# configuration tests
|
8
|
+
it "use the digital configuration object to configure a port for input" do
|
9
|
+
@digital_configuration.configure_port_for_input(:portch).returns(true)
|
10
|
+
assert subject.configure_input_port(:portch)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "use the digital configuration object to configure a port for output" do
|
14
|
+
@digital_configuration.configure_port_for_output(:portcl).returns(true)
|
15
|
+
assert subject.configure_output_port(:portcl)
|
16
|
+
end
|
17
|
+
|
18
|
+
# read tests
|
19
|
+
it "read digital input from the digital pins" do
|
20
|
+
@library_translator.get_port_for_pin(1).returns(:porta)
|
21
|
+
@digital_configuration.is_port_configured_for_input?(:porta).returns(true)
|
22
|
+
@library_translator.get_library_pin_number(1).returns(21)
|
23
|
+
@minilab_wrapper.read_digital_pin(21).returns "woohoo"
|
24
|
+
|
25
|
+
assert_equal "woohoo", subject.read_digital(1)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "read digital input from a digital port" do
|
29
|
+
@digital_configuration.is_port_configured_for_input?(:portb).returns(true)
|
30
|
+
@library_translator.get_library_port(:portb).returns("some port")
|
31
|
+
@minilab_wrapper.read_port("some port").returns 0x34
|
32
|
+
|
33
|
+
assert_equal 0x34, subject.read_port(:portb)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "raise an error when the configuration object says the port isn't configured for input when reading a pin" do
|
37
|
+
@library_translator.get_port_for_pin(20).returns(:portc)
|
38
|
+
@digital_configuration.is_port_configured_for_input?(:portc).returns(false)
|
39
|
+
|
40
|
+
assert_raise (RuntimeError) { subject.read_digital(20) }
|
41
|
+
end
|
42
|
+
|
43
|
+
it "raise an error when the configuration objects says the port isn't configured for input when reading a port" do
|
44
|
+
@digital_configuration.is_port_configured_for_input?(:porta).returns(false)
|
45
|
+
|
46
|
+
assert_raise (RuntimeError) { subject.read_port(:porta) }
|
47
|
+
end
|
48
|
+
|
49
|
+
# output tests
|
50
|
+
it "write digital output to a digital pin" do
|
51
|
+
@library_translator.get_port_for_pin(2).returns(:portcl)
|
52
|
+
@digital_configuration.is_port_configured_for_output?(:portcl).returns(true)
|
53
|
+
@library_translator.get_library_pin_number(2).returns(7)
|
54
|
+
@minilab_wrapper.write_digital_pin(7, 0).returns "ibm"
|
55
|
+
|
56
|
+
assert_equal true, subject.write_digital(2, 0)
|
57
|
+
end
|
58
|
+
|
59
|
+
it "raise an error when the configuration object says the port is not configured for output (for write_digital)" do
|
60
|
+
@library_translator.get_port_for_pin(1).returns(:portd)
|
61
|
+
@digital_configuration.is_port_configured_for_output?(:portd).returns(false)
|
62
|
+
|
63
|
+
assert_raise (RuntimeError) { subject.write_digital(1, 1) }
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require_relative "../spec_helper"
|
2
|
+
|
3
|
+
describe Minilab::LibraryTranslator do
|
4
|
+
def check_pins_and_ports(low, high, port)
|
5
|
+
low.upto(high) do |pin|
|
6
|
+
assert_equal port, subject.get_port_for_pin(pin), "Didn't get #{port} for pin #{pin}"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
it "provide :porta when asked about numbered pins on the hardware's FIRSTPORTA" do
|
11
|
+
check_pins_and_ports(30, 37, :porta)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "provide :portb when asked about numbered pins on the hardware's FIRSTPORTB" do
|
15
|
+
check_pins_and_ports(3, 10, :portb)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "provide :portcl when asked about numbered pins on the hardware's FIRSTPORTCL" do
|
19
|
+
check_pins_and_ports(26, 29, :portcl)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "provide :portch when asked about numbered pins on the hardware's FIRSTPORTCH" do
|
23
|
+
check_pins_and_ports(22, 25, :portch)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "raise an error when asked about a pin number that does not map to a port (such as the pins for ground, 5v +ve, DIO1..3, etc)" do
|
27
|
+
[ 1, 2, "DIO0", "DIO2", nil, :thedude, 832].each do |bad_pin|
|
28
|
+
-> { subject.get_port_for_pin(bad_pin) }.should raise_error(RuntimeError)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
it "get the number the library uses for the pin when asked to translate from the numbers on the board (port a pins)" do
|
33
|
+
assert_equal 7, subject.get_library_pin_number(30)
|
34
|
+
assert_equal 6, subject.get_library_pin_number(31)
|
35
|
+
assert_equal 5, subject.get_library_pin_number(32)
|
36
|
+
assert_equal 4, subject.get_library_pin_number(33)
|
37
|
+
assert_equal 3, subject.get_library_pin_number(34)
|
38
|
+
assert_equal 2, subject.get_library_pin_number(35)
|
39
|
+
assert_equal 1, subject.get_library_pin_number(36)
|
40
|
+
assert_equal 0, subject.get_library_pin_number(37)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "get the number the library uses for the pin when asked to translate from the numbers on the board (port b pins)" do
|
44
|
+
assert_equal 15, subject.get_library_pin_number(3)
|
45
|
+
assert_equal 14, subject.get_library_pin_number(4)
|
46
|
+
assert_equal 13, subject.get_library_pin_number(5)
|
47
|
+
assert_equal 12, subject.get_library_pin_number(6)
|
48
|
+
assert_equal 11, subject.get_library_pin_number(7)
|
49
|
+
assert_equal 10, subject.get_library_pin_number(8)
|
50
|
+
assert_equal 9, subject.get_library_pin_number(9)
|
51
|
+
assert_equal 8, subject.get_library_pin_number(10)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "get the number the library uses for the pin when asked to translate from the numbers on the board (port cl pins)" do
|
55
|
+
assert_equal 19, subject.get_library_pin_number(26)
|
56
|
+
assert_equal 18, subject.get_library_pin_number(27)
|
57
|
+
assert_equal 17, subject.get_library_pin_number(28)
|
58
|
+
assert_equal 16, subject.get_library_pin_number(29)
|
59
|
+
end
|
60
|
+
|
61
|
+
it "get the number the library uses for the pin when asked to translate from the numbers on the board (port ch pins)" do
|
62
|
+
assert_equal 23, subject.get_library_pin_number(22)
|
63
|
+
assert_equal 22, subject.get_library_pin_number(23)
|
64
|
+
assert_equal 21, subject.get_library_pin_number(24)
|
65
|
+
assert_equal 20, subject.get_library_pin_number(25)
|
66
|
+
end
|
67
|
+
|
68
|
+
it "raise an error if the pin passed in to get_library_pin_number is invalid" do
|
69
|
+
[20, 21, nil, 12, :heynow, "uba"].each do |bad_pin|
|
70
|
+
-> { subject.get_library_pin_number(bad_pin) }.should raise_error(RuntimeError)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
it "know the mapping between symbolic ports and ports in the library" do
|
75
|
+
assert_equal FIRSTPORTA, subject.get_library_port(:porta), "wrong port"
|
76
|
+
assert_equal FIRSTPORTB, subject.get_library_port(:portb), "wrong port"
|
77
|
+
assert_equal FIRSTPORTCL, subject.get_library_port(:portcl), "wrong port"
|
78
|
+
assert_equal FIRSTPORTCH, subject.get_library_port(:portch), "wrong port"
|
79
|
+
end
|
80
|
+
|
81
|
+
it "raise an error if asked about the library port that does not exist" do
|
82
|
+
[:portd, :portci, "cigarette butt", nil].each do |bad_port|
|
83
|
+
-> { subject.get_library_port(bad_port) }.should raise_error(RuntimeError)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative "../spec_helper"
|
2
|
+
|
3
|
+
describe Minilab::MinilabContext do
|
4
|
+
it "build minilab context" do
|
5
|
+
context = nil
|
6
|
+
-> { context = subject.build }.should_not raise_error
|
7
|
+
assert_not_nil context, "should have gotten a context"
|
8
|
+
|
9
|
+
minilab = context[:minilab]
|
10
|
+
assert_not_nil minilab, "should have a minilab object in the context"
|
11
|
+
assert_kind_of Minilab::Minilab, minilab, "should have gotten a Minilab object"
|
12
|
+
end
|
13
|
+
|
14
|
+
it "give the same context when built more than once" do
|
15
|
+
assert_same subject.build, subject.build, "not the same context object"
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative "../spec_helper"
|
2
|
+
|
3
|
+
# Not many tests for this class, since there isn't much behavior outside of
|
4
|
+
# calling into the minilab library. I could probably figure out another way
|
5
|
+
# to unit test those calls, but I don't believe there would be much value
|
6
|
+
# in brittle tests for code that is already covered by system tests.
|
7
|
+
describe Minilab::MinilabHardware do
|
8
|
+
it "raise an error if auxport configuration isn't given the correct hash parameters" do
|
9
|
+
-> { subject.configure_auxport(:pin => 3) }.should raise_error(":direction is a required parameter")
|
10
|
+
-> { subject.configure_auxport(:direction => DIGITALIN) }.should raise_error(":pin is a required parameter")
|
11
|
+
end
|
12
|
+
|
13
|
+
it "raise an error if port configuration isn't given the correct hash parameters" do
|
14
|
+
-> { subject.configure_port(:port => FIRSTPORTA) }.should raise_error(":direction is a required parameter")
|
15
|
+
-> { subject.configure_port(:direction => DIGITALOUT) }.should raise_error(":port is a required parameter")
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
require_relative "../spec_helper"
|
2
|
+
|
3
|
+
describe Minilab::Minilab do
|
4
|
+
before { @mox = create_mocks(:minilab_wrapper, :analog_io, :digital_auxport_io, :digital_port_io, :connection_state) }
|
5
|
+
subject { described_class.new(@mox) }
|
6
|
+
|
7
|
+
it "allow the user to easily build the minilab object and its dependences" do
|
8
|
+
assert_not_nil Minilab.build
|
9
|
+
assert_kind_of Minilab::Minilab, Minilab.build
|
10
|
+
end
|
11
|
+
|
12
|
+
it "connect to the hardware, setup the error handling, declare the library revision, and setup the db37 ports for input" do
|
13
|
+
@minilab_wrapper.setup_error_handling(DONTPRINT, STOPALL)
|
14
|
+
@minilab_wrapper.declare_revision(CURRENTREVNUM)
|
15
|
+
@connection_state.connected=(true)
|
16
|
+
|
17
|
+
Minilab::DigitalConfiguration::PORTS.each do |port|
|
18
|
+
@connection_state.connected?.returns true
|
19
|
+
@digital_port_io.configure_input_port(port)
|
20
|
+
end
|
21
|
+
|
22
|
+
subject.connect
|
23
|
+
end
|
24
|
+
|
25
|
+
it "bomb out if trying to use a method but haven't connected yet" do
|
26
|
+
assert_not_connected_error { subject.read_analog(0) }
|
27
|
+
assert_not_connected_error { subject.write_analog(0, 2.2) }
|
28
|
+
assert_not_connected_error { subject.read_digital(6) }
|
29
|
+
assert_not_connected_error { subject.write_digital(6, 1) }
|
30
|
+
assert_not_connected_error { subject.read_digital_byte(:porta) }
|
31
|
+
assert_not_connected_error { subject.configure_input_port(:portcl) }
|
32
|
+
assert_not_connected_error { subject.configure_output_port(:portb) }
|
33
|
+
end
|
34
|
+
|
35
|
+
# IO tests
|
36
|
+
it "read analog input" do
|
37
|
+
@connection_state.connected?.returns true
|
38
|
+
@analog_io.read_analog(4).returns(1.1)
|
39
|
+
|
40
|
+
assert_equal 1.1, subject.read_analog(4)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "write analog output" do
|
44
|
+
@connection_state.connected?.returns true
|
45
|
+
@analog_io.write_analog(1, 5.9).returns(true)
|
46
|
+
|
47
|
+
subject.write_analog(1, 5.9)
|
48
|
+
end
|
49
|
+
|
50
|
+
it "read digital input from the DIO auxport terminals" do
|
51
|
+
@connection_state.connected?.returns true
|
52
|
+
@digital_auxport_io.read_digital('DIO1').returns(1)
|
53
|
+
|
54
|
+
assert_equal 1, subject.read_digital('DIO1')
|
55
|
+
end
|
56
|
+
|
57
|
+
it "write digital output to the DIO auxport terminals" do
|
58
|
+
@connection_state.connected?.returns true
|
59
|
+
@digital_auxport_io.write_digital('DIO3', 0).returns(true)
|
60
|
+
|
61
|
+
subject.write_digital('DIO3', 0)
|
62
|
+
end
|
63
|
+
|
64
|
+
it "use the digital port object when the pin is a numbered pin for read_digital" do
|
65
|
+
@connection_state.connected?.returns true
|
66
|
+
@digital_port_io.read_digital(7).returns(1)
|
67
|
+
|
68
|
+
assert_equal 1, subject.read_digital(7)
|
69
|
+
end
|
70
|
+
|
71
|
+
it "use the digital port object when the pin is a numbered pin for write_digital" do
|
72
|
+
@connection_state.connected?.returns true
|
73
|
+
@digital_port_io.write_digital(2, 1).returns(:yourmom)
|
74
|
+
|
75
|
+
assert_equal :yourmom, subject.write_digital(2, 1)
|
76
|
+
end
|
77
|
+
|
78
|
+
it "use the digital port object to read a byte from a digital port" do
|
79
|
+
@connection_state.connected?.returns true
|
80
|
+
@digital_port_io.read_port(:porta).returns(0x22)
|
81
|
+
assert_equal 0x22, subject.read_digital_byte(:porta)
|
82
|
+
end
|
83
|
+
|
84
|
+
# Configuration tests
|
85
|
+
it "use the digital port object for configuring a port for input" do
|
86
|
+
@connection_state.connected?.returns true
|
87
|
+
@digital_port_io.configure_input_port(:portch).returns(true)
|
88
|
+
|
89
|
+
assert subject.configure_input_port(:portch)
|
90
|
+
end
|
91
|
+
|
92
|
+
it "use the digital port object for configuring a port for output" do
|
93
|
+
@connection_state.connected?.returns true
|
94
|
+
@digital_port_io.configure_output_port(:porta).returns(true)
|
95
|
+
|
96
|
+
assert subject.configure_output_port(:porta)
|
97
|
+
end
|
98
|
+
|
99
|
+
private
|
100
|
+
def assert_not_connected_error
|
101
|
+
@connection_state.connected?.returns false
|
102
|
+
-> { yield }.should raise_error("Cannot use any minilab methods without calling 'connect' first.")
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative "../spec_helper"
|
2
|
+
|
3
|
+
describe Minilab::MinilabWrapper do
|
4
|
+
before { @mox = create_mocks(:minilab_hardware) }
|
5
|
+
subject { described_class.new(@mox) }
|
6
|
+
|
7
|
+
it "forwards methods to the hardware and gives the result" do
|
8
|
+
@minilab_hardware.razzle(1, 2, "three").returns({ :value => 5 })
|
9
|
+
assert_equal 5, subject.razzle(1, 2, "three")
|
10
|
+
|
11
|
+
@minilab_hardware.dazzle.returns({ :value => :whatever })
|
12
|
+
assert_equal :whatever, subject.dazzle
|
13
|
+
end
|
14
|
+
|
15
|
+
it "raise an error when there is a hardware error" do
|
16
|
+
@minilab_hardware.bang(1, 2).returns({ :error => 4 })
|
17
|
+
@minilab_hardware.get_error_string(4).returns "Righteous error"
|
18
|
+
-> { subject.bang(1,2) }.should raise_error("Command [bang([1, 2])] caused a hardware error: Righteous error")
|
19
|
+
end
|
20
|
+
end
|
Binary file
|
metadata
ADDED
@@ -0,0 +1,192 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: minilab
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 2
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
version: 2.0.0
|
10
|
+
platform: x86-mingw32
|
11
|
+
authors:
|
12
|
+
- Matt Fletcher
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2011-01-02 00:00:00 -05:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: constructor
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 2
|
30
|
+
- 0
|
31
|
+
version: "2.0"
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: diy
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ~>
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
segments:
|
43
|
+
- 1
|
44
|
+
- 1
|
45
|
+
version: "1.1"
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: ffi
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
segments:
|
57
|
+
- 1
|
58
|
+
- 0
|
59
|
+
version: "1.0"
|
60
|
+
type: :runtime
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: steak
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ~>
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
segments:
|
71
|
+
- 1
|
72
|
+
- 0
|
73
|
+
version: "1.0"
|
74
|
+
type: :development
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: rr
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
81
|
+
requirements:
|
82
|
+
- - ~>
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
segments:
|
85
|
+
- 1
|
86
|
+
- 0
|
87
|
+
version: "1.0"
|
88
|
+
type: :development
|
89
|
+
version_requirements: *id005
|
90
|
+
description: "Ruby interface to Measurement Computing's miniLAB 1008 "
|
91
|
+
email:
|
92
|
+
- fletcher@atomicobject.com
|
93
|
+
executables: []
|
94
|
+
|
95
|
+
extensions: []
|
96
|
+
|
97
|
+
extra_rdoc_files:
|
98
|
+
- README.rdoc
|
99
|
+
- CHANGES
|
100
|
+
- LICENSE
|
101
|
+
files:
|
102
|
+
- .document
|
103
|
+
- .gitignore
|
104
|
+
- CHANGES
|
105
|
+
- Gemfile
|
106
|
+
- LICENSE
|
107
|
+
- README.rdoc
|
108
|
+
- Rakefile
|
109
|
+
- doc/UniLib.chm
|
110
|
+
- doc/minilab-1008.pdf
|
111
|
+
- doc/minilab_systest_setup.txt
|
112
|
+
- doc/port_mapping.txt
|
113
|
+
- lib/minilab.rb
|
114
|
+
- lib/minilab/analog_io.rb
|
115
|
+
- lib/minilab/connection_state.rb
|
116
|
+
- lib/minilab/digital_auxport_io.rb
|
117
|
+
- lib/minilab/digital_configuration.rb
|
118
|
+
- lib/minilab/digital_port_io.rb
|
119
|
+
- lib/minilab/library_translator.rb
|
120
|
+
- lib/minilab/minilab.rb
|
121
|
+
- lib/minilab/minilab_constants.rb
|
122
|
+
- lib/minilab/minilab_context.rb
|
123
|
+
- lib/minilab/minilab_hardware.rb
|
124
|
+
- lib/minilab/minilab_wrapper.rb
|
125
|
+
- lib/minilab/objects.yml
|
126
|
+
- lib/minilab/version.rb
|
127
|
+
- minilab.gemspec
|
128
|
+
- spec/acceptance/analog_spec.rb
|
129
|
+
- spec/acceptance/digital_port_spec.rb
|
130
|
+
- spec/acceptance/digital_screw_terminal_spec.rb
|
131
|
+
- spec/spec_helper.rb
|
132
|
+
- spec/unit/analog_io_spec.rb
|
133
|
+
- spec/unit/connection_state_spec.rb
|
134
|
+
- spec/unit/digital_auxport_io_spec.rb
|
135
|
+
- spec/unit/digital_configuration_spec.rb
|
136
|
+
- spec/unit/digital_port_io_spec.rb
|
137
|
+
- spec/unit/library_translator_spec.rb
|
138
|
+
- spec/unit/minilab_context_spec.rb
|
139
|
+
- spec/unit/minilab_hardware_spec.rb
|
140
|
+
- spec/unit/minilab_spec.rb
|
141
|
+
- spec/unit/minilab_wrapper_spec.rb
|
142
|
+
- vendor/mcc/cbw32.dll
|
143
|
+
has_rdoc: true
|
144
|
+
homepage: http://atomicobject.github.com/minilab
|
145
|
+
licenses: []
|
146
|
+
|
147
|
+
post_install_message:
|
148
|
+
rdoc_options:
|
149
|
+
- --main
|
150
|
+
- README.rdoc
|
151
|
+
- --title
|
152
|
+
- minilab
|
153
|
+
require_paths:
|
154
|
+
- lib
|
155
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
156
|
+
none: false
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
segments:
|
161
|
+
- 0
|
162
|
+
version: "0"
|
163
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
|
+
none: false
|
165
|
+
requirements:
|
166
|
+
- - ">="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
segments:
|
169
|
+
- 0
|
170
|
+
version: "0"
|
171
|
+
requirements: []
|
172
|
+
|
173
|
+
rubyforge_project: minilab
|
174
|
+
rubygems_version: 1.3.7
|
175
|
+
signing_key:
|
176
|
+
specification_version: 3
|
177
|
+
summary: Ruby interface to Measurement Computing's miniLAB 1008
|
178
|
+
test_files:
|
179
|
+
- spec/acceptance/analog_spec.rb
|
180
|
+
- spec/acceptance/digital_port_spec.rb
|
181
|
+
- spec/acceptance/digital_screw_terminal_spec.rb
|
182
|
+
- spec/spec_helper.rb
|
183
|
+
- spec/unit/analog_io_spec.rb
|
184
|
+
- spec/unit/connection_state_spec.rb
|
185
|
+
- spec/unit/digital_auxport_io_spec.rb
|
186
|
+
- spec/unit/digital_configuration_spec.rb
|
187
|
+
- spec/unit/digital_port_io_spec.rb
|
188
|
+
- spec/unit/library_translator_spec.rb
|
189
|
+
- spec/unit/minilab_context_spec.rb
|
190
|
+
- spec/unit/minilab_hardware_spec.rb
|
191
|
+
- spec/unit/minilab_spec.rb
|
192
|
+
- spec/unit/minilab_wrapper_spec.rb
|