minilab 2.0.0-x86-mingw32
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.
- 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
|