Method: OpenC3::TableParser#create_table

Defined in:
lib/openc3/tools/table_manager/table_parser.rb

#create_table(tables, warnings) ⇒ Object

Parameters:

  • tables (Array<Table>)

    All tables defined in the configuration

  • warnings (String)

    List of warnings to append to



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/openc3/tools/table_manager/table_parser.rb', line 48

def create_table(tables, warnings)
  params = @parser.parameters
  table_name = params[0].to_s.upcase
  endianness = params[1].to_s.upcase.to_sym
  if endianness != :BIG_ENDIAN && endianness != :LITTLE_ENDIAN
    raise @parser.error(
            "Invalid endianness #{params[1]}. Must be BIG_ENDIAN or LITTLE_ENDIAN.",
            @usage,
          )
  end
  type = params[2].to_s.upcase.to_sym
  case type
  when :KEY_VALUE, :ONE_DIMENSIONAL # :ONE_DIMENSIONAL is deprecated
    @parser.verify_num_parameters(3, 4, @usage)
    description = params[3].to_s
  when :ROW_COLUMN, :TWO_DIMENSIONAL # :TWO_DIMENSIONAL is deprecated
    @parser.verify_num_parameters(4, 5, @usage)
    num_rows = params[3].to_i
    description = params[4].to_s
  else
    raise @parser.error(
            "Invalid display type #{params[2]}. Must be KEY_VALUE or ROW_COLUMN.",
            @usage,
          )
  end
  table =
    Table.new(table_name, endianness, type, description, @parser.filename)
  table.num_rows = num_rows if type == :ROW_COLUMN
  TableParser.finish_create_table(table, tables, warnings)
end