Method: OpenC3::Interface#add_protocol

Defined in:
lib/openc3/interfaces/interface.rb

#add_protocol(protocol_class, protocol_args, read_write) ⇒ Object



456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
# File 'lib/openc3/interfaces/interface.rb', line 456

def add_protocol(protocol_class, protocol_args, read_write)
  protocol_args = protocol_args.clone
  protocol = protocol_class.new(*protocol_args)
  case read_write
  when :READ
    @read_protocols << protocol
  when :WRITE
    @write_protocols.unshift(protocol)
  when :READ_WRITE
    @read_protocols << protocol
    @write_protocols.unshift(protocol)
  else
    raise "Unknown protocol descriptor: #{read_write}. Must be :READ, :WRITE, or :READ_WRITE."
  end
  @protocol_info << [protocol_class, protocol_args, read_write]
  protocol.interface = self
end