Method: OpenC3::FileInterface#initialize

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

#initialize(command_write_folder, telemetry_read_folder, telemetry_archive_folder, file_read_size = 65536, stored = true, protocol_type = nil, *protocol_args) ⇒ FileInterface

Returns a new instance of FileInterface.

Parameters:

  • command_write_folder (String)

    Folder to write command files to - Set to nil to disallow writes

  • telemetry_read_folder (String)

    Folder to read telemetry files from - Set to nil to disallow reads

  • telemetry_archive_folder (String)

    Folder to move read telemetry files to - Set to DELETE to delete files

  • file_read_size (Integer) (defaults to: 65536)

    Number of bytes to read from the file at a time

  • stored (Boolean) (defaults to: true)

    Whether to set stored flag on read telemetry

  • protocol_type (String) (defaults to: nil)

    Name of the protocol to use with this interface

  • protocol_args (Array<String>)

    Arguments to pass to the protocol



39
40
41
42
43
44
45
46
47
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
78
79
80
# File 'lib/openc3/interfaces/file_interface.rb', line 39

def initialize(
  command_write_folder,
  telemetry_read_folder,
  telemetry_archive_folder,
  file_read_size = 65536,
  stored = true,
  protocol_type = nil,
  *protocol_args
)
  super()

  @protocol_type = ConfigParser.handle_nil(protocol_type)
  @protocol_args = protocol_args
  if @protocol_type
    protocol_class_name = protocol_type.to_s.capitalize << 'Protocol'
    klass = OpenC3.require_class(protocol_class_name.class_name_to_filename)
    add_protocol(klass, protocol_args, :PARAMS)
  end

  @command_write_folder = ConfigParser.handle_nil(command_write_folder)
  @telemetry_read_folder = ConfigParser.handle_nil(telemetry_read_folder)
  @telemetry_archive_folder = ConfigParser.handle_nil(telemetry_archive_folder)
  @file_read_size = Integer(file_read_size)
  @stored = ConfigParser.handle_true_false(stored)

  @read_allowed = false unless @telemetry_read_folder
  @write_allowed = false unless @command_write_folder
  @write_raw_allowed = false unless @command_write_folder

  @file = nil
  @filename = ''
  @listener = nil
  @connected = false
  @extension = ".bin"
  @label = "command"
  @queue = Queue.new
  @polling = false
  @recursive = false
  @throttle = nil
  @discard_file_header_bytes = nil
  @sleeper = nil
end