class Modbus::BitRegister
Public Class Methods
new(addr)
click to toggle source
Calls superclass method
Modbus::Register::new
# File lib/modbus/register/bit_register.rb, line 10 def initialize(addr) super @bits = {} end
Public Instance Methods
update(bit, value)
click to toggle source
# File lib/modbus/register/bit_register.rb, line 16 def update(bit, value) fail ArgumentError unless (0..15).include? bit fail ArgumentError unless [true, false].include? value @bits[bit] = value end
value()
click to toggle source
# File lib/modbus/register/bit_register.rb, line 23 def value result = 0 @bits.each do |bit, bit_value| value = bit_value ? 1 : 0 result |= (value << bit) end result end
write(value)
click to toggle source
# File lib/modbus/register/bit_register.rb, line 35 def write(value) return unless @handler values = @bits.keys.map do |bit| bit_value = value[bit] == 1 {:addr => [@addr, bit].join('.'), :value => bit_value} end @handler.write_values values end