Class: Cosmos::LoggingTab

Inherits:
Object show all
Defined in:
lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb

Overview

Implements the logging tab in the Command and Telemetry Server GUI

Instance Method Summary collapse

Constructor Details

#initialize(production) ⇒ LoggingTab

Returns a new instance of LoggingTab.



19
20
21
22
# File 'lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb', line 19

def initialize(production)
  @production = production
  @logging_layouts = {}
end

Instance Method Details

#populate(tab_widget) ⇒ Object

Create the logging tab and add it to the tab_widget

Parameters:

  • tab_widget (Qt::TabWidget)

    The tab widget to add the tab to



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb', line 27

def populate(tab_widget)
  scroll = Qt::ScrollArea.new
  widget = Qt::Widget.new
  layout = Qt::VBoxLayout.new(widget)
  # Since the layout will be inside a scroll area
  # make sure it respects the sizes we set
  layout.setSizeConstraint(Qt::Layout::SetMinAndMaxSize)

  populate_logging_actions(layout)

  # Add the cmd/tlm log files information
  populate_log_file_info(layout)

  # Set the scroll area widget last now that all the items have been layed out
  scroll.setWidget(widget)
  tab_widget.addTab(scroll, "Logging")
end

#updateObject



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb', line 45

def update
  CmdTlmServer.packet_logging.all.each do |packet_log_writer_pair_name, packet_log_writer_pair|
    @logging_layouts[packet_log_writer_pair_name].itemAt(1, Qt::FormLayout::FieldRole).widget.setText(packet_log_writer_pair.cmd_log_writer.logging_enabled.to_s)
    @logging_layouts[packet_log_writer_pair_name].itemAt(2, Qt::FormLayout::FieldRole).widget.setText(packet_log_writer_pair.cmd_log_writer.queue.size.to_s)
    @logging_layouts[packet_log_writer_pair_name].itemAt(3, Qt::FormLayout::FieldRole).widget.setText(packet_log_writer_pair.cmd_log_writer.filename)
    file_size = 0
    begin
      file_size = File.size(packet_log_writer_pair.cmd_log_writer.filename) if packet_log_writer_pair.cmd_log_writer.filename
    rescue Exception
      # Do nothing on error
    end
    @logging_layouts[packet_log_writer_pair_name].itemAt(4, Qt::FormLayout::FieldRole).widget.setText(file_size.to_s)
    @logging_layouts[packet_log_writer_pair_name].itemAt(5, Qt::FormLayout::FieldRole).widget.setText(packet_log_writer_pair.tlm_log_writer.logging_enabled.to_s)
    @logging_layouts[packet_log_writer_pair_name].itemAt(6, Qt::FormLayout::FieldRole).widget.setText(packet_log_writer_pair.tlm_log_writer.queue.size.to_s)
    @logging_layouts[packet_log_writer_pair_name].itemAt(7, Qt::FormLayout::FieldRole).widget.setText(packet_log_writer_pair.tlm_log_writer.filename)
    file_size = 0
    begin
      file_size = File.size(packet_log_writer_pair.tlm_log_writer.filename) if packet_log_writer_pair.tlm_log_writer.filename
    rescue Exception
      # Do nothing on error
    end
    @logging_layouts[packet_log_writer_pair_name].itemAt(8, Qt::FormLayout::FieldRole).widget.setText(file_size.to_s)
  end
end