class DaenetIP2

dae = DaenetIP2.new(“164.0.0.177”,161,“”,“”)

Constants

READ_ALL
READ_PORT6
WRITE_PORT_P3
WRITE_PORT_P5

Attributes

ip[RW]
port[RW]
read_pass[RW]
write_pass[RW]

Public Class Methods

new(ip, port, read_pass, write_pass) click to toggle source

Creates a SNMP Manager

# File lib/denkovi_daenetip2.rb, line 14
def initialize(ip, port, read_pass, write_pass)
        self.ip = ip
      self.port = port
        self.read_pass = read_pass
        self.write_pass = write_pass
  puts 'to create manager'
  begin
    @manager = SNMP::Manager.new(:host => self.ip, :port => self.port.to_i, :community => self.read_pass, :write_community => self.write_pass, :version => :SNMPv1)
    puts "manager created"
    true
  rescue
    false
  end
end

Public Instance Methods

close() click to toggle source

To close manager

# File lib/denkovi_daenetip2.rb, line 84
def close
  begin
    @manager.close
    true
  rescue Exception => e
    puts "Exception: " + e.message
    false
  end
end
read(input) click to toggle source

To read relay state @param relay [Integer] The relay number: 1-8 @return [Integer] success or not

# File lib/denkovi_daenetip2.rb, line 32
def read(input)
  begin
    puts "to read value: " + input.to_s
    response = @manager.get(DaenetIP2::READ_PORT6 +  input.to_s + '.0')
    return response.varbind_list[0].value.to_i
  rescue => e
    puts "Exception: " + e.message
    nil
  end
end
read_all() click to toggle source

To read all input @return [Integer]

# File lib/denkovi_daenetip2.rb, line 73
def read_all
  begin
    response = @manager.get(DaenetIP2::READ_ALL)
    response.varbind_list[0].value.to_i
  rescue Exception => e
    puts "Exception: " + e.message
     nil
  end
end
write(port, relay, value) click to toggle source

To change relay state @param port [String] port 'p3' or 'p5' @param relay [Integer] The relay number: 0-15 @param value [Integer] Relay new state: 0-1 @return [Boolean] success or not

# File lib/denkovi_daenetip2.rb, line 48
def write(port, relay, value)
  begin
    puts "relay: " + relay.to_s + " value: " + value.to_s
    if port == 'p3'
      varbind = SNMP::VarBind.new(DaenetIP2::WRITE_PORT_P3 + relay.to_s + ".0", SNMP::Integer.new(value.to_i))
    end
    if port == 'p5'
      varbind = SNMP::VarBind.new(DaenetIP2::WRITE_PORT_P5 + relay.to_s + ".0", SNMP::Integer.new(value.to_i))
    end

    begin
      puts "to set to relay " + relay.to_s + " value " + value.to_s
      @manager.set(varbind)
      true
    rescue
      false
    end
  rescue => e
    puts "Exception in write: " + e.message
    false
  end
end