Module: Aurora::ModBus::Slave
- Defined in:
- lib/aurora/modbus/slave.rb
Instance Method Summary collapse
Instance Method Details
#holding_registers ⇒ Object
19 20 21 |
# File 'lib/aurora/modbus/slave.rb', line 19 def holding_registers @holding_registers ||= WFProxy.new(self, :holding_register) end |
#read_multiple_holding_registers(*ranges) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/aurora/modbus/slave.rb', line 6 def read_multiple_holding_registers(*ranges) values = if ranges.any?(Range) addrs_and_lengths = ranges.map do |r| r = Array(r) [r.first, r.last - r.first + 1] end.flatten query("A#{addrs_and_lengths.pack("n*")}").unpack("n*") else query("B#{ranges.pack("n*")}").unpack("n*") end ranges.map { |r| Array(r) }.flatten.zip(values).to_h end |