class P1MeterReader::DataParsing::StreamSplitter
Public Class Methods
new(message_start, input: serial_port)
click to toggle source
# 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
Public Instance Methods
read()
click to toggle source
# 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
Private Instance Methods
serial_port()
click to toggle source
# File lib/p1_meter_reader/data_parsing/stream_splitter.rb, line 27 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