Method: OpenC3::SlipProtocol#reduce_to_single_packet

Defined in:
lib/openc3/interfaces/protocols/slip_protocol.rb

#reduce_to_single_packetObject



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# File 'lib/openc3/interfaces/protocols/slip_protocol.rb', line 126

def reduce_to_single_packet
  return :STOP if @data.length <= 0
  if @start_char
    index = @data[1..-1].index(@read_termination_characters)
    index = index + 1 if index
  else
    index = @data.index(@read_termination_characters)
  end

  # Reduce to packet data and setup current_data for next packet
  if index
    if index > 0
      packet_data = @data[0..(index + @read_termination_characters.length - 1)]
    else # @data begins with the termination characters
      packet_data = @data[0..(@read_termination_characters.length - 1)]
    end
    @data.replace(@data[(index + @read_termination_characters.length)..-1])
    return packet_data, @extra
  else
    return :STOP
  end
end