class P1MeterReader::Recorder

Attributes

measurement_parser[RW]
measurement_source[RW]

Public Class Methods

new(measurement_source:) click to toggle source
# File lib/p1_meter_reader/recorder.rb, line 5
def initialize(measurement_source:)
  self.measurement_parser = Models::MeasurementParser.new
  self.measurement_source = measurement_source
end

Public Instance Methods

collect_data() { |measurement| ... } click to toggle source
# File lib/p1_meter_reader/recorder.rb, line 10
def collect_data(&block)
  loop do
    message = measurement_source.read

    measurement = measurement_parser.parse(message)

    yield measurement
  end
end

Private Instance Methods

serial_port() click to toggle source
# File lib/p1_meter_reader/recorder.rb, line 24
def serial_port
  serial_port = SerialPort.new("/dev/ttyUSB0", 9600)
  serial_port.data_bits = 7
  serial_port.stop_bits = 1
  serial_port.parity = SerialPort::EVEN

  serial_port
end