modbus-cli 0.0.9 → 0.0.10
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 +7 -0
- data/.gitignore +0 -0
- data/.travis.yml +1 -0
- data/Gemfile +0 -0
- data/README.markdown +2 -2
- data/Rakefile +0 -0
- data/lib/modbus-cli.rb +0 -0
- data/lib/modbus-cli/commands_common.rb +0 -0
- data/lib/modbus-cli/dump_command.rb +10 -12
- data/lib/modbus-cli/read_command.rb +0 -0
- data/lib/modbus-cli/version.rb +1 -1
- data/lib/modbus-cli/write_command.rb +11 -13
- data/modbus-cli.gemspec +3 -3
- data/spec/dump_command_spec.rb +19 -19
- data/spec/modbus_cli_spec.rb +0 -0
- data/spec/read_command_spec.rb +7 -7
- data/spec/spec_helper.rb +15 -3
- data/spec/write_command_spec.rb +1 -1
- data/tust.yml +0 -0
- metadata +23 -34
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8f4ff66a5456651880910145cd8919117d404c80
|
4
|
+
data.tar.gz: 4d09091363edb51efc393e4ca97eec6953856e4a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c5511ea5098afc1dd9ab931a11b3164eca5c3baa29a6a6970a5b12236131b71b9b5ccb1f9d312c8f21c3ca070e179786ee27d579fc66ebd828ed989d37f097ac
|
7
|
+
data.tar.gz: d946a25b721a6cf072f4ac9fa83f3d43bd82918ca5cf0bf02ab4c3557cce4c342d73c7112a18d888dbd741382baa6f7e970329206c428c35ea2bd5311f7ad245
|
data/.gitignore
CHANGED
File without changes
|
data/Gemfile
CHANGED
File without changes
|
data/README.markdown
CHANGED
@@ -21,7 +21,7 @@ The pure ruby gem should run on most rubies.
|
|
21
21
|
Quick Start
|
22
22
|
-----------
|
23
23
|
|
24
|
-
|
24
|
+
Let's start by reading five words from our device starting from address %MW100.
|
25
25
|
|
26
26
|
$ modbus read 192.168.0.1 %MW100 5
|
27
27
|
|
@@ -187,7 +187,7 @@ License
|
|
187
187
|
|
188
188
|
(The MIT License)
|
189
189
|
|
190
|
-
Copyright (C) 2011 Tallak Tveide
|
190
|
+
Copyright (C) 2011-2015 Tallak Tveide
|
191
191
|
|
192
192
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
193
193
|
of this software and associated documentation files (the "Software"), to
|
data/Rakefile
CHANGED
File without changes
|
data/lib/modbus-cli.rb
CHANGED
File without changes
|
File without changes
|
@@ -7,15 +7,13 @@ module Modbus
|
|
7
7
|
extend CommandsCommon::ClassMethods
|
8
8
|
include CommandsCommon
|
9
9
|
|
10
|
-
parameter 'FILES ...', 'restore data in FILES to original devices (created by modbus read command)'
|
11
|
-
f.
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
ff[:offset] = offset || ff[:offset]
|
18
|
-
end
|
10
|
+
parameter 'FILES ...', 'restore data in FILES to original devices (created by modbus read command)' do |f|
|
11
|
+
YAML.load_file(f).dup.tap do |ff|
|
12
|
+
#parameter takes presedence
|
13
|
+
ff[:host] = host || ff[:host]
|
14
|
+
ff[:port] = port || ff[:port]
|
15
|
+
ff[:slave] = slave || ff[:slave]
|
16
|
+
ff[:offset] = offset || ff[:offset]
|
19
17
|
end
|
20
18
|
end
|
21
19
|
|
@@ -34,12 +32,12 @@ module Modbus
|
|
34
32
|
debug_option
|
35
33
|
|
36
34
|
def execute
|
37
|
-
host_ids =
|
35
|
+
host_ids = files_list.map {|d| d[:host] }.sort.uniq
|
38
36
|
host_ids.each {|host_id| execute_host host_id }
|
39
37
|
end
|
40
38
|
|
41
39
|
def execute_host(host_id)
|
42
|
-
slave_ids =
|
40
|
+
slave_ids = files_list.select {|d| d[:host] == host_id }.map {|d| d[:slave] }.sort.uniq
|
43
41
|
ModBus::TCPClient.connect(host_id, port) do |client|
|
44
42
|
slave_ids.each {|slave_id| execute_slave host_id, slave_id, client }
|
45
43
|
end
|
@@ -48,7 +46,7 @@ module Modbus
|
|
48
46
|
def execute_slave(host_id, slave_id, client)
|
49
47
|
client.with_slave(slave_id) do |slave|
|
50
48
|
slave.debug = true if debug?
|
51
|
-
|
49
|
+
files_list.select {|d| d[:host] == host_id && d[:slave] == slave_id }.each do |file_data|
|
52
50
|
execute_single_file slave, file_data
|
53
51
|
end
|
54
52
|
end
|
File without changes
|
data/lib/modbus-cli/version.rb
CHANGED
@@ -16,19 +16,19 @@ module Modbus
|
|
16
16
|
debug_option
|
17
17
|
timeout_option
|
18
18
|
|
19
|
-
parameter 'VALUES ...', 'values to write, nonzero counts as true for discrete values'
|
19
|
+
parameter 'VALUES ...', 'values to write, nonzero counts as true for discrete values' do |v|
|
20
20
|
case addr_type
|
21
21
|
|
22
22
|
when :bit
|
23
|
-
int_parameter
|
23
|
+
int_parameter v, 0, 1
|
24
24
|
when :word
|
25
|
-
int_parameter
|
25
|
+
int_parameter v, 0, 0xffff
|
26
26
|
when :int
|
27
|
-
int_parameter
|
27
|
+
int_parameter v, -32768, 32767
|
28
28
|
when :dword
|
29
|
-
int_parameter
|
29
|
+
int_parameter v, 0, 0xffffffff
|
30
30
|
when :float
|
31
|
-
|
31
|
+
Float(v)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -55,11 +55,11 @@ module Modbus
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def write_coils(sl)
|
58
|
-
sliced_write_coils sl, addr_offset,
|
58
|
+
sliced_write_coils sl, addr_offset, values_list
|
59
59
|
end
|
60
60
|
|
61
61
|
def write_words(sl)
|
62
|
-
sliced_write_registers sl, addr_offset,
|
62
|
+
sliced_write_registers sl, addr_offset, values_list.pack('S*').unpack('S*')
|
63
63
|
end
|
64
64
|
|
65
65
|
def write_floats(sl)
|
@@ -72,14 +72,12 @@ module Modbus
|
|
72
72
|
|
73
73
|
def pack_and_write(sl, format)
|
74
74
|
# the word ordering is wrong. calling reverse two times effectively swaps every pair
|
75
|
-
sliced_write_registers(sl, addr_offset,
|
75
|
+
sliced_write_registers(sl, addr_offset, values_list.reverse.pack("#{format}*").unpack('n*').reverse)
|
76
76
|
end
|
77
77
|
|
78
78
|
def int_parameter(vv, min, max)
|
79
|
-
|
80
|
-
|
81
|
-
raise ArgumentError, "Value should be in the range #{min}..#{max}" unless (min..max).member? v
|
82
|
-
end
|
79
|
+
Integer(vv).tap do |v|
|
80
|
+
raise ArgumentError, "Value should be in the range #{min}..#{max}" unless (min..max).member? v
|
83
81
|
end
|
84
82
|
end
|
85
83
|
end
|
data/modbus-cli.gemspec
CHANGED
@@ -20,8 +20,8 @@ Gem::Specification.new do |s|
|
|
20
20
|
|
21
21
|
# specify any dependencies here; for example:
|
22
22
|
# s.add_development_dependency "rspec"
|
23
|
-
s.add_runtime_dependency "rmodbus", '~> 1.
|
24
|
-
s.add_runtime_dependency "clamp", '~> 0.
|
25
|
-
s.add_development_dependency "rspec", '~> 2
|
23
|
+
s.add_runtime_dependency "rmodbus", '~> 1.2'
|
24
|
+
s.add_runtime_dependency "clamp", '~> 0.6.5'
|
25
|
+
s.add_development_dependency "rspec", '~> 3.2'
|
26
26
|
s.add_development_dependency "rake", '~> 0.9'
|
27
27
|
end
|
data/spec/dump_command_spec.rb
CHANGED
@@ -8,20 +8,20 @@ describe Modbus::Cli::DumpCommand do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
it 'reads the file and write the contents to the original device' do
|
11
|
-
client =
|
12
|
-
slave =
|
11
|
+
client = double 'client'
|
12
|
+
slave = double 'slave'
|
13
13
|
YAML.should_receive(:load_file).with('dump.yml').and_return(:host => '1.2.3.4', :port => 502, :slave => 5, :offset => 400123, :data => [4, 5, 6])
|
14
14
|
ModBus::TCPClient.should_receive(:connect).with('1.2.3.4', 502).and_yield(client)
|
15
15
|
client.should_receive(:with_slave).with(5).and_yield(slave)
|
16
16
|
slave.should_receive(:write_holding_registers).with(122, [4, 5, 6])
|
17
|
-
cmd.run %w(dump dump.yml)
|
17
|
+
cmd.run %w(dump dump.yml)
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'can read two files from separate hosts' do
|
21
|
-
client1 =
|
22
|
-
client2 =
|
23
|
-
slave1 =
|
24
|
-
slave2 =
|
21
|
+
client1 = double 'client1'
|
22
|
+
client2 = double 'client2'
|
23
|
+
slave1 = double 'slave1'
|
24
|
+
slave2 = double 'slave2'
|
25
25
|
yml = {:host => 'X', :slave => 5, :offset => 400010, :data => [99]}
|
26
26
|
YAML.should_receive(:load_file).with('a.yml').and_return(yml)
|
27
27
|
YAML.should_receive(:load_file).with('b.yml').and_return(yml.dup.tap {|y| y[:host] = 'Y' })
|
@@ -35,9 +35,9 @@ describe Modbus::Cli::DumpCommand do
|
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'can dump two files from separate slaves on same host' do
|
38
|
-
client1 =
|
39
|
-
slave1 =
|
40
|
-
slave2 =
|
38
|
+
client1 = double 'client1'
|
39
|
+
slave1 = double 'slave1'
|
40
|
+
slave2 = double 'slave2'
|
41
41
|
yml = {:host => 'X', :slave => 5, :offset => 400010, :data => [99]}
|
42
42
|
YAML.should_receive(:load_file).with('a.yml').and_return(yml)
|
43
43
|
YAML.should_receive(:load_file).with('b.yml').and_return(yml.dup.tap {|y| y[:slave] = 99 })
|
@@ -50,8 +50,8 @@ describe Modbus::Cli::DumpCommand do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
it 'can dump two files from one slave' do
|
53
|
-
client1 =
|
54
|
-
slave1 =
|
53
|
+
client1 = double 'client1'
|
54
|
+
slave1 = double 'slave1'
|
55
55
|
yml = {:host => 'X', :slave => 5, :offset => 400010, :data => [99]}
|
56
56
|
YAML.should_receive(:load_file).with('a.yml').and_return(yml)
|
57
57
|
YAML.should_receive(:load_file).with('b.yml').and_return(yml.dup)
|
@@ -69,7 +69,7 @@ describe Modbus::Cli::DumpCommand do
|
|
69
69
|
end
|
70
70
|
|
71
71
|
it 'accepts the --slave <id> parameter' do
|
72
|
-
client =
|
72
|
+
client = double 'client'
|
73
73
|
YAML.should_receive(:load_file).with('dump.yml').and_return(:host => '1.2.3.4', :port => 502, :slave => 5, :offset => 123, :data => [4, 5, 6])
|
74
74
|
ModBus::TCPClient.should_receive(:connect).with('1.2.3.4', 502).and_yield(client)
|
75
75
|
client.should_receive(:with_slave).with(99)
|
@@ -77,8 +77,8 @@ describe Modbus::Cli::DumpCommand do
|
|
77
77
|
end
|
78
78
|
|
79
79
|
it 'accepts the --offset <n> parameter with modicon addressing' do
|
80
|
-
client =
|
81
|
-
slave =
|
80
|
+
client = double 'client'
|
81
|
+
slave = double 'slave'
|
82
82
|
YAML.should_receive(:load_file).with('dump.yml').and_return(:host => '1.2.3.4', :port => 502, :slave => 5, :offset => 123, :data => [4, 5, 6])
|
83
83
|
ModBus::TCPClient.should_receive(:connect).with('1.2.3.4', 502).and_yield(client)
|
84
84
|
client.should_receive(:with_slave).with(5).and_yield(slave)
|
@@ -87,8 +87,8 @@ describe Modbus::Cli::DumpCommand do
|
|
87
87
|
end
|
88
88
|
|
89
89
|
it 'accepts the --offset <n> parameter with schneider addressing' do
|
90
|
-
client =
|
91
|
-
slave =
|
90
|
+
client = double 'client'
|
91
|
+
slave = double 'slave'
|
92
92
|
YAML.should_receive(:load_file).with('dump.yml').and_return(:host => '1.2.3.4', :port => 502, :slave => 5, :offset => 123, :data => [4, 5, 6])
|
93
93
|
ModBus::TCPClient.should_receive(:connect).with('1.2.3.4', 502).and_yield(client)
|
94
94
|
client.should_receive(:with_slave).with(5).and_yield(slave)
|
@@ -97,8 +97,8 @@ describe Modbus::Cli::DumpCommand do
|
|
97
97
|
end
|
98
98
|
|
99
99
|
it 'has a --debug flag' do
|
100
|
-
client =
|
101
|
-
slave =
|
100
|
+
client = double 'client'
|
101
|
+
slave = double 'slave'
|
102
102
|
YAML.should_receive(:load_file).with('dump.yml').and_return(:host => '1.2.3.4', :port => 502, :slave => 5, :offset => 400123, :data => [4, 5, 6])
|
103
103
|
ModBus::TCPClient.should_receive(:connect).with('1.2.3.4', 502).and_yield(client)
|
104
104
|
client.should_receive(:with_slave).with(5).and_yield(slave)
|
data/spec/modbus_cli_spec.rb
CHANGED
File without changes
|
data/spec/read_command_spec.rb
CHANGED
@@ -130,7 +130,7 @@ describe Modbus::Cli::ReadCommand do
|
|
130
130
|
end
|
131
131
|
|
132
132
|
it 'has a --slave parameter' do
|
133
|
-
client =
|
133
|
+
client = double 'client'
|
134
134
|
ModBus::TCPClient.should_receive(:connect).with('X', 502).and_yield(client)
|
135
135
|
client.should_receive(:with_slave).with(99)
|
136
136
|
cmd.run %w(read --slave 99 X 101 1)
|
@@ -139,9 +139,9 @@ describe Modbus::Cli::ReadCommand do
|
|
139
139
|
it 'can write the output from reading registers to a yaml file using the -o <filename> parameter' do
|
140
140
|
client, slave = standard_connect_helper '1.2.3.4', 502
|
141
141
|
slave.should_receive(:read_holding_registers).with(100, 1).and_return([1])
|
142
|
-
|
143
|
-
File.should_receive(:open).and_yield(
|
144
|
-
|
142
|
+
file_double = double('file')
|
143
|
+
File.should_receive(:open).and_yield(file_double)
|
144
|
+
file_double.should_receive(:puts).with({:host => '1.2.3.4', :port => 502, :slave => 1, :offset => '400101', :data => [1]}.to_yaml)
|
145
145
|
cmd.run %w(read --output filename.yml 1.2.3.4 %MW100 1)
|
146
146
|
stdout.should_not match(/./)
|
147
147
|
end
|
@@ -149,9 +149,9 @@ describe Modbus::Cli::ReadCommand do
|
|
149
149
|
it 'can write the output from reading coils to a yaml file using the -o <filename> parameter' do
|
150
150
|
client, slave = standard_connect_helper '1.2.3.4', 502
|
151
151
|
slave.should_receive(:read_coils).with(100, 1).and_return([1])
|
152
|
-
|
153
|
-
File.should_receive(:open).and_yield(
|
154
|
-
|
152
|
+
file_double = double('file')
|
153
|
+
File.should_receive(:open).and_yield(file_double)
|
154
|
+
file_double.should_receive(:puts).with({:host => '1.2.3.4', :port => 502, :slave => 1, :offset => '101', :data => [1]}.to_yaml)
|
155
155
|
cmd.run %w(read --output filename.yml 1.2.3.4 %M100 1)
|
156
156
|
stdout.should_not match(/./)
|
157
157
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,6 +3,17 @@ require 'clamp'
|
|
3
3
|
require 'stringio'
|
4
4
|
require 'modbus-cli'
|
5
5
|
|
6
|
+
# keep old fashioned should syntax for now, would be better to convert to new
|
7
|
+
# syntax
|
8
|
+
RSpec.configure do |config|
|
9
|
+
config.mock_with :rspec do |mocks|
|
10
|
+
mocks.syntax = [:should, :expect]
|
11
|
+
end
|
12
|
+
config.expect_with :rspec do |c|
|
13
|
+
c.syntax = [:should, :expect]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
6
17
|
# Borrowed from Clamp tests
|
7
18
|
module OutputCapture
|
8
19
|
|
@@ -30,13 +41,14 @@ module OutputCapture
|
|
30
41
|
end
|
31
42
|
|
32
43
|
def stub_tcpip
|
33
|
-
|
44
|
+
# prevent any real TCP communications
|
45
|
+
allow(TCPSocket).to receive(:new).and_return("TCPSocket")
|
34
46
|
end
|
35
47
|
|
36
48
|
|
37
49
|
def standard_connect_helper(address, port)
|
38
|
-
client =
|
39
|
-
slave =
|
50
|
+
client = double 'client'
|
51
|
+
slave = double 'slave'
|
40
52
|
ModBus::TCPClient.should_receive(:connect).with(address, port).and_yield(client)
|
41
53
|
client.should_receive(:with_slave).with(1).and_yield(slave)
|
42
54
|
return client, slave
|
data/spec/write_command_spec.rb
CHANGED
@@ -96,7 +96,7 @@ describe Modbus::Cli::WriteCommand do
|
|
96
96
|
end
|
97
97
|
|
98
98
|
it 'has a --slave parameter' do
|
99
|
-
client =
|
99
|
+
client = double 'client'
|
100
100
|
ModBus::TCPClient.should_receive(:connect).with('X', 502).and_yield(client)
|
101
101
|
client.should_receive(:with_slave).with(99)
|
102
102
|
cmd.run %w(write --slave 99 X 101 1)
|
data/tust.yml
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,78 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: modbus-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.10
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Tallak Tveide
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-06-01 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rmodbus
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: '1.
|
19
|
+
version: '1.2'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '1.
|
26
|
+
version: '1.2'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: clamp
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- - ~>
|
31
|
+
- - "~>"
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
33
|
+
version: 0.6.5
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- - ~>
|
38
|
+
- - "~>"
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
40
|
+
version: 0.6.5
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- - ~>
|
45
|
+
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: '2
|
47
|
+
version: '3.2'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- - ~>
|
52
|
+
- - "~>"
|
60
53
|
- !ruby/object:Gem::Version
|
61
|
-
version: '2
|
54
|
+
version: '3.2'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- - ~>
|
59
|
+
- - "~>"
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0.9'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- - ~>
|
66
|
+
- - "~>"
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0.9'
|
78
69
|
description: Command line interface to communicate over Modbus TCP
|
@@ -83,8 +74,8 @@ executables:
|
|
83
74
|
extensions: []
|
84
75
|
extra_rdoc_files: []
|
85
76
|
files:
|
86
|
-
- .gitignore
|
87
|
-
- .travis.yml
|
77
|
+
- ".gitignore"
|
78
|
+
- ".travis.yml"
|
88
79
|
- Gemfile
|
89
80
|
- README.markdown
|
90
81
|
- Rakefile
|
@@ -104,27 +95,25 @@ files:
|
|
104
95
|
- tust.yml
|
105
96
|
homepage: http://www.github.com/tallakt/modbus-cli
|
106
97
|
licenses: []
|
98
|
+
metadata: {}
|
107
99
|
post_install_message:
|
108
100
|
rdoc_options: []
|
109
101
|
require_paths:
|
110
102
|
- lib
|
111
103
|
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
-
none: false
|
113
104
|
requirements:
|
114
|
-
- -
|
105
|
+
- - ">="
|
115
106
|
- !ruby/object:Gem::Version
|
116
107
|
version: '0'
|
117
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
|
-
none: false
|
119
109
|
requirements:
|
120
|
-
- -
|
110
|
+
- - ">="
|
121
111
|
- !ruby/object:Gem::Version
|
122
112
|
version: '0'
|
123
113
|
requirements: []
|
124
114
|
rubyforge_project: modbus-cli
|
125
|
-
rubygems_version:
|
115
|
+
rubygems_version: 2.2.2
|
126
116
|
signing_key:
|
127
|
-
specification_version:
|
117
|
+
specification_version: 4
|
128
118
|
summary: Modbus command line
|
129
119
|
test_files: []
|
130
|
-
has_rdoc:
|