denkovi_daenetip2 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/denkovi_daenetip2.rb +39 -47
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e6c3ad1dfa025473da9d9967454b82acda9ac570
|
4
|
+
data.tar.gz: 13d44021c2a621290d8a0082d949825b2434ce19
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f209f07b54ff96d85a636c89e886b41934fdf49f9aa99c6d1d5f7047ae719de4190d800a44a39f9d78d8c70ebb8211dabdccbdf849865d90a4549b48f3d6e5c
|
7
|
+
data.tar.gz: 4c9016e3eb9bdc1bb645f957d7a25274d9a1540b3ee4d0fb26ff344e379fcbeb8ce79956653a7adcdc9036ae359c86c655ea5eebafca0e013afa5604250513b1
|
data/lib/denkovi_daenetip2.rb
CHANGED
@@ -5,6 +5,11 @@ require 'snmp'
|
|
5
5
|
class DaenetIP2
|
6
6
|
attr_accessor :ip, :port, :read_pass, :write_pass
|
7
7
|
|
8
|
+
::WRITE_PORT_P3 = '1.3.6.1.4.1.19865.1.2.1.'
|
9
|
+
::WRITE_PORT_P5 = '1.3.6.1.4.1.19865.1.2.2.'
|
10
|
+
::READ_PORT6 = '1.3.6.1.4.1.19865.1.2.3.'
|
11
|
+
::READ_ALL = '1.3.6.1.4.1.19865.1.2.3.33.0'
|
12
|
+
|
8
13
|
#Creates a SNMP Manager
|
9
14
|
def initialize(ip, port, read_pass, write_pass)
|
10
15
|
self.ip = ip
|
@@ -15,73 +20,51 @@ class DaenetIP2
|
|
15
20
|
begin
|
16
21
|
@manager = SNMP::Manager.new(:host => self.ip, :port => self.port.to_i, :community => self.read_pass, :write_community => self.write_pass, :version => :SNMPv1)
|
17
22
|
puts "manager created"
|
18
|
-
|
23
|
+
true
|
19
24
|
rescue
|
20
|
-
|
25
|
+
false
|
21
26
|
end
|
22
27
|
end
|
23
28
|
|
24
29
|
# To read relay state
|
25
|
-
# @param relay [Integer] The relay number:
|
30
|
+
# @param relay [Integer] The relay number: 1-8
|
26
31
|
# @return [Integer] success or not
|
27
32
|
def read(input)
|
28
33
|
begin
|
29
|
-
#manager= Manager.new(:host => self.ip, :community => self.snmp_pass, :write_community => self.snmp_pass, :version => :SNMPv1)
|
30
34
|
puts "to read value: " + input.to_s
|
31
|
-
response = @manager.get(
|
32
|
-
#manager.close
|
35
|
+
response = @manager.get(DaenetIP2::READ_PORT6 + input.to_s + '.0')
|
33
36
|
return response.varbind_list[0].value.to_i
|
34
37
|
rescue => e
|
35
38
|
puts "Exception: " + e.message
|
36
|
-
|
39
|
+
nil
|
37
40
|
end
|
38
41
|
end
|
39
42
|
|
40
43
|
# To change relay state
|
44
|
+
# @param port [String] port 'p3' or 'p5'
|
41
45
|
# @param relay [Integer] The relay number: 0-15
|
42
46
|
# @param value [Integer] Relay new state: 0-1
|
43
47
|
# @return [Boolean] success or not
|
44
|
-
def write(relay, value)
|
48
|
+
def write(port, relay, value)
|
45
49
|
begin
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
puts "response: " + response.inspect.to_s
|
50
|
-
else
|
51
|
-
value = relay.to_i - 8
|
52
|
-
puts "value: " + value.to_s
|
53
|
-
response = @manager.get("1.3.6.1.4.1.19865.1.2.1." + value.to_s + ".0") #puerto 3
|
54
|
-
end
|
55
|
-
|
56
|
-
response.each_varbind do |vb|
|
57
|
-
puts "#{vb.name.to_s} #{vb.value.to_s} #{vb.value.asn1_type}"
|
58
|
-
end
|
59
|
-
|
60
|
-
if relay.to_i <= 8
|
61
|
-
if value == 1
|
62
|
-
puts "to create varbind"
|
63
|
-
varbind = SNMP::VarBind.new("1.3.6.1.4.1.19865.1.2.2." + relay.to_s + ".0", SNMP::Integer.new(1))
|
64
|
-
else
|
65
|
-
varbind = SNMP::VarBind.new("1.3.6.1.4.1.19865.1.2.2." + relay.to_s + ".0", SNMP::Integer.new(0))
|
50
|
+
puts "relay: " + relay.to_s + " value: " + value.to_s
|
51
|
+
if port == 'p3'
|
52
|
+
varbind = SNMP::VarBind.new(DaenetIP2::WRITE_PORT_P3 + relay.to_s + ".0", SNMP::Integer.new(value.to_i))
|
66
53
|
end
|
67
|
-
|
68
|
-
|
69
|
-
varbind = SNMP::VarBind.new("1.3.6.1.4.1.19865.1.2.1." + value.to_s + ".0", SNMP::Integer.new(1))
|
70
|
-
else
|
71
|
-
varbind = SNMP::VarBind.new("1.3.6.1.4.1.19865.1.2.1." + value.to_s + ".0",SNMP::Integer.new(0))
|
54
|
+
if port == 'p5'
|
55
|
+
varbind = SNMP::VarBind.new(DaenetIP2::WRITE_PORT_P5 + relay.to_s + ".0", SNMP::Integer.new(value.to_i))
|
72
56
|
end
|
73
|
-
end
|
74
57
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
58
|
+
begin
|
59
|
+
puts "to set to relay " + relay.to_s + " value " + value.to_s
|
60
|
+
@manager.set(varbind)
|
61
|
+
true
|
62
|
+
rescue
|
63
|
+
false
|
64
|
+
end
|
82
65
|
rescue => e
|
83
66
|
puts "Exception in write: " + e.message
|
84
|
-
|
67
|
+
false
|
85
68
|
end
|
86
69
|
end
|
87
70
|
|
@@ -89,13 +72,22 @@ class DaenetIP2
|
|
89
72
|
#@return [Integer]
|
90
73
|
def read_all
|
91
74
|
begin
|
92
|
-
|
93
|
-
response
|
94
|
-
|
95
|
-
|
75
|
+
response = @manager.get(DaenetIP2::READ_ALL)
|
76
|
+
response.varbind_list[0].value.to_i
|
77
|
+
rescue Exception => e
|
78
|
+
puts "Exception: " + e.message
|
79
|
+
nil
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
#To close manager
|
84
|
+
def close
|
85
|
+
begin
|
86
|
+
@manager.close
|
87
|
+
true
|
96
88
|
rescue Exception => e
|
97
89
|
puts "Exception: " + e.message
|
98
|
-
|
90
|
+
false
|
99
91
|
end
|
100
92
|
end
|
101
93
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: denkovi_daenetip2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pablo Carrillos
|
@@ -31,7 +31,7 @@ extensions: []
|
|
31
31
|
extra_rdoc_files: []
|
32
32
|
files:
|
33
33
|
- lib/denkovi_daenetip2.rb
|
34
|
-
homepage:
|
34
|
+
homepage: https://github.com/webpau/denkovi_daenetip2
|
35
35
|
licenses:
|
36
36
|
- MIT
|
37
37
|
metadata: {}
|