Class: P1MeterReader::DataParsing::StreamSplitter

Inherits:
Object
  • Object
show all
Defined in:
lib/p1_meter_reader/data_parsing/stream_splitter.rb

Instance Method Summary collapse

Constructor Details

#initialize(message_start, input: serial_port) ⇒ StreamSplitter

Returns a new instance of StreamSplitter.



6
7
8
9
# File 'lib/p1_meter_reader/data_parsing/stream_splitter.rb', line 6

def initialize(message_start, input: serial_port)
  @message_start = message_start
  @stream = input.each_line
end

Instance Method Details

#readObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/p1_meter_reader/data_parsing/stream_splitter.rb', line 11

def read
  while (@stream.peek).strip != @message_start
    @stream.next
  end

  result = ""

  loop do
    line = @stream.next
    result << line

    return result if line.strip == "!"
  end
end