Class: Cosmos::MetaPacketLogWriter
- Inherits:
-
PacketLogWriter
- Object
- PacketLogWriter
- Cosmos::MetaPacketLogWriter
- Defined in:
- lib/cosmos/packet_logs/meta_packet_log_writer.rb
Overview
Writes a given packet at the beginning of each telemetry packet log file
Constant Summary
Constants inherited from PacketLogWriter
PacketLogWriter::CYCLE_TIME_INTERVAL, PacketLogWriter::LOG_TYPES
Instance Attribute Summary
Attributes inherited from PacketLogWriter
#filename, #logging_enabled, #queue
Instance Method Summary collapse
-
#initialize(log_type, target_name = nil, packet_name = nil, meta_default_filename = nil, log_meta_packet = false, use_tlm_packet = true, log_name = nil, logging_enabled = true, cycle_time = nil, cycle_size = 2000000000, log_directory = nil, asynchronous = false) ⇒ MetaPacketLogWriter
constructor
See PacketLogWriter#initialize.
-
#write(packet) ⇒ Object
Optionally doesn’t write the meta packet.
Methods inherited from PacketLogWriter
#graceful_kill, #shutdown, #start, #stop
Constructor Details
#initialize(log_type, target_name = nil, packet_name = nil, meta_default_filename = nil, log_meta_packet = false, use_tlm_packet = true, log_name = nil, logging_enabled = true, cycle_time = nil, cycle_size = 2000000000, log_directory = nil, asynchronous = false) ⇒ MetaPacketLogWriter
See PacketLogWriter#initialize
30 31 32 33 34 35 36 37 38 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/cosmos/packet_logs/meta_packet_log_writer.rb', line 30 def initialize( log_type, target_name = nil, packet_name = nil, = nil, = false, use_tlm_packet = true, log_name = nil, logging_enabled = true, cycle_time = nil, cycle_size = 2000000000, log_directory = nil, asynchronous = false ) @target_name = ConfigParser.handle_nil(target_name) @packet_name = ConfigParser.handle_nil(packet_name) @packet = nil @log_meta_packet = ConfigParser.handle_true_false() @meta_default_filename = ConfigParser.handle_nil() @use_tlm_packet = ConfigParser.handle_true_false(use_tlm_packet) # Make sure the packet exists in both commands and telemetry (if given) if @target_name and @packet_name packet = System.telemetry.packet(@target_name, @packet_name) @packet = packet if @use_tlm_packet packet = System.commands.packet(@target_name, @packet_name) @packet = packet if !@use_tlm_packet end # Initialize the meta packet (if given) if @meta_default_filename and @packet parser = ConfigParser.new Cosmos.set_working_dir do parser.parse_file(@meta_default_filename) do |keyword, params| begin item = @packet.get_item(keyword) if item.data_type == :STRING or item.data_type == :BLOCK value = params[0] else value = params[0].convert_to_value end @packet.write(keyword, value) rescue => err raise parser.error(err, "ITEM_NAME VALUE") end end end end super(log_type, log_name, logging_enabled, cycle_time, cycle_size, log_directory, asynchronous) end |
Instance Method Details
#write(packet) ⇒ Object
Optionally doesn’t write the meta packet
83 84 85 86 87 |
# File 'lib/cosmos/packet_logs/meta_packet_log_writer.rb', line 83 def write(packet) if @log_meta_packet or !(packet.target_name == @target_name and packet.packet_name == @packet_name) super(packet) end end |