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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/denkovi_daenetip2.rb +39 -47
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8d7d6c9d2e535d25e40ee74227c96876ffe80eca
4
- data.tar.gz: a83fe76d3b9ef6d61c4c6bcc809f93c8b9cf7243
3
+ metadata.gz: e6c3ad1dfa025473da9d9967454b82acda9ac570
4
+ data.tar.gz: 13d44021c2a621290d8a0082d949825b2434ce19
5
5
  SHA512:
6
- metadata.gz: 1ab9f033fd63de560d99a70f5959d58da395a12dbf511392f7ef7714b7f46650c99e11d6a222d04bf595fe5e3f23a1167206bf020b35bf4272b2b7443aa87456
7
- data.tar.gz: 0761c065cf69ac3ac126b167599cfeb1f91a4ff84f8bfb79000219a22deef153837716f99b9f4546c2a8b9b20b0c550d2373abfa56bf3335b5cc7349e8b6b83b
6
+ metadata.gz: 3f209f07b54ff96d85a636c89e886b41934fdf49f9aa99c6d1d5f7047ae719de4190d800a44a39f9d78d8c70ebb8211dabdccbdf849865d90a4549b48f3d6e5c
7
+ data.tar.gz: 4c9016e3eb9bdc1bb645f957d7a25274d9a1540b3ee4d0fb26ff344e379fcbeb8ce79956653a7adcdc9036ae359c86c655ea5eebafca0e013afa5604250513b1
@@ -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
- return true
23
+ true
19
24
  rescue
20
- return false
25
+ false
21
26
  end
22
27
  end
23
28
 
24
29
  # To read relay state
25
- # @param relay [Integer] The relay number: 0-15
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('1.3.6.1.4.1.19865.1.2.3.' + input.to_s + '.0')
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
- return nil
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
- puts "relay: " + relay.to_s + " value: " + value.to_s
47
- if relay <= 8
48
- response = @manager.get("1.3.6.1.4.1.19865.1.2.2." + relay.to_s + ".0") #puerto 5
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
- else
68
- if value == 1
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
- begin
76
- puts "to set to relay " + relay.to_s + " value " + value.to_s
77
- @manager.set(varbind)
78
- return true
79
- rescue
80
- return false
81
- end
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
- return false
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
- #manager= Manager.new(:host => self.ip, :community => self.snmp_pass, :write_community => self.snmp_pass, :version => :SNMPv1)
93
- response = @manager.get('1.3.6.1.4.1.19865.1.2.3.33.0')
94
- #manager.close
95
- return response.varbind_list[0].value.to_i
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
- return nil
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.1
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: {}