Method: OpenC3::ProcessorParser#create_processor

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

#create_processor(packet) ⇒ Object

Parameters:

  • packet (Packet)

    The packet the processor should be added to



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/openc3/packets/parsers/processor_parser.rb', line 54

def create_processor(packet)
  if @language == 'ruby'
    # require should be performed in target.txt
    klass = OpenC3.require_class(@parser.parameters[1])

    if @parser.parameters[2]
      processor = klass.new(*@parser.parameters[2..(@parser.parameters.length - 1)])
    else
      processor = klass.new
    end
    raise ArgumentError, "processor must be a OpenC3::Processor but is a #{processor.class}" unless OpenC3::Processor === processor
  else
    if @parser.parameters[2]
      processor = PythonProxy.new('Processor', @parser.parameters[1], *@parser.parameters[2..(@parser.parameters.length - 1)])
    else
      processor = PythonProxy.new('Processor', @parser.parameters[1], [])
    end
  end
  processor.name = get_processor_name()
  packet.processors[processor.name] = processor
end