Method: OpenC3::PacketItemParser#create_packet_item

Defined in:
lib/openc3/packets/parsers/packet_item_parser.rb

#create_packet_item(packet, cmd_or_tlm) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/openc3/packets/parsers/packet_item_parser.rb', line 65

def create_packet_item(packet, cmd_or_tlm)
  item_name = @parser.parameters[0].upcase
  if packet.items[item_name]
    msg = "#{packet.target_name} #{packet.packet_name} #{item_name} redefined."
    Logger.instance.warn msg
    @warnings << msg
  end
  item = PacketItem.new(item_name,
                        get_bit_offset(),
                        get_bit_size(),
                        get_data_type(),
                        get_endianness(packet),
                        get_array_size(),
                        :ERROR) # overflow
  if cmd_or_tlm == PacketConfig::COMMAND
    item.range = get_range()
    item.default = get_default()
  end
  item.id_value = get_id_value()
  item.description = get_description()
  if append?
    item = packet.append(item)
  else
    item = packet.define(item)
  end
  item
rescue => err
  raise @parser.error(err, @usage)
end