Class: Cosmos::CommandDecomTopic

Inherits:
Topic show all
Defined in:
lib/cosmos/topics/command_decom_topic.rb

Class Method Summary collapse

Methods inherited from Topic

clear_topics, initialize_streams, read_topics

Class Method Details

.topics(scope:) ⇒ Object



24
25
26
# File 'lib/cosmos/topics/command_decom_topic.rb', line 24

def self.topics(scope:)
  super(scope, 'DECOMCMD')
end

.write_packet(packet, scope:) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/cosmos/topics/command_decom_topic.rb', line 28

def self.write_packet(packet, scope:)
  topic = "#{scope}__DECOMCMD__{#{packet.target_name}}__#{packet.packet_name}"
  msg_hash = { time: packet.received_time.to_nsec_from_epoch,
               target_name: packet.target_name,
               packet_name: packet.packet_name,
               stored: packet.stored,
               received_count: packet.received_count }
  json_hash = {}
  packet.sorted_items.each do |item|
    json_hash[item.name] = packet.read_item(item, :RAW)
    json_hash[item.name + "__C"] = packet.read_item(item, :CONVERTED) if item.write_conversion or item.states
    json_hash[item.name + "__F"] = packet.read_item(item, :FORMATTED) if item.format_string
    json_hash[item.name + "__U"] = packet.read_item(item, :WITH_UNITS) if item.units
  end
  msg_hash['json_data'] = JSON.generate(json_hash.as_json)
  Store.write_topic(topic, msg_hash)
end