Class: Cosmos::PacketsTab

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

Overview

Implements the packets tab in the Command and Telemetry Server GUI

Constant Summary collapse

COMMANDS =
"Commands"
TELEMETRY =
"Telemetry"

Instance Method Summary collapse

Constructor Details

#initialize(server_gui) ⇒ PacketsTab

Returns a new instance of PacketsTab.



22
23
24
25
# File 'lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb', line 22

def initialize(server_gui)
  @server_gui = server_gui
  @packets_table = {}
end

Instance Method Details

#populate_commands(tab_widget) ⇒ Object



27
28
29
# File 'lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb', line 27

def populate_commands(tab_widget)
  populate(COMMANDS, System.commands, tab_widget)
end

#populate_telemetry(tab_widget) ⇒ Object



31
32
33
# File 'lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb', line 31

def populate_telemetry(tab_widget)
  populate(TELEMETRY, System.telemetry, tab_widget)
end

#update(name) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb', line 35

def update(name)
  cmd_tlm = nil
  cmd_tlm = System.commands if name == COMMANDS
  cmd_tlm = System.telemetry if name == TELEMETRY
  return if cmd_tlm.nil? || cmd_tlm.target_names.empty?

  row = 0
  cmd_tlm.target_names.each do |target_name|
    packets = cmd_tlm.packets(target_name)
    packets.sort.each do |packet_name, packet|
      next if packet.hidden
      @packets_table[name].item(row, 2).setText(packet.received_count.to_s)
      row += 1
    end
  end
  packet = cmd_tlm.packet('UNKNOWN', 'UNKNOWN')
  @packets_table[name].item(row, 2).setText(packet.received_count.to_s)
  row += 1
end