Skip to content
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Changle language and edit plugin.txt to test either language
# Change language and edit plugin.txt to test either language
LANGUAGE ruby

IGNORE_PARAMETER ID_ITEM
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,19 +89,24 @@ def build_autocomplete_data(type, scope)
end
else
targets.each do |target_name, target_info|
latest_data = []
OpenC3::TargetModel.packets(target_name, type: type.upcase.intern, scope: scope).each do |packet|
packet_to_autocomplete_hashes(autocomplete_data, packet, target_info, type)
if type.upcase.intern == :TLM
packet['items'].each do |item|
if not item["hidden"]
latest_data <<
{
:caption => "#{target_name} LATEST #{item}",
:snippet => "#{target_name} LATEST #{item}",
:meta => 'telemetry',
}
end
end
end
end
if type.upcase.intern == :TLM
items = OpenC3::TargetModel.all_item_names(target_name, type: :TLM, scope: scope)
items.each do |item|
autocomplete_data <<
{
:caption => "#{target_name} LATEST #{item}",
:snippet => "#{target_name} LATEST #{item}",
:meta => 'telemetry',
}
end
autocomplete_data.concat(latest_data)
end
end
autocomplete_data.sort_by { |packet| packet[:caption] }
Expand Down Expand Up @@ -197,12 +202,14 @@ def target_packet_name(packet)
def packet_to_autocomplete_hashes(autocomplete_data, packet, target_info, type)
if type.upcase == 'TLM'
packet['items'].each do |item|
autocomplete_data <<
{
:caption => "#{target_packet_name(packet)} #{item['name']}",
:snippet => "#{target_packet_name(packet)} #{item['name']}",
:meta => 'telemetry',
}
if not item['hidden']
autocomplete_data <<
{
:caption => "#{target_packet_name(packet)} #{item['name']}",
:snippet => "#{target_packet_name(packet)} #{item['name']}",
:meta => 'telemetry',
}
end
end
else
# There's only one autocomplete option for each command packet
Expand All @@ -220,7 +227,7 @@ def packet_to_autocomplete_hashes(autocomplete_data, packet, target_info, type)
def build_cmd_snippet(packet, target_info)
snippet = target_packet_name(packet)
filtered_items = packet['items'].select do |item|
!OpenC3::Packet::RESERVED_ITEM_NAMES.include?(item['name']) and !target_info['ignored_parameters'].include?(item['name'])
!item["hidden"] and !OpenC3::Packet::RESERVED_ITEM_NAMES.include?(item['name']) and !target_info['ignored_parameters'].include?(item['name'])
end
if filtered_items.any?
params = filtered_items.each_with_index.map do |item, index|
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
£gid_itemeitem1edmore¤eitem2 eitem3û@ ¸Që…eitem4gExampleeitem5„
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
require 'cbor'
data = {"id_item":2, "item1":101, "more": { "item2":12, "item3":3.14, "item4":"Example", "item5":[4, 3, 2, 1] } }
File.open("_cbor_template.bin", 'wb') do |file|
file.write(data.to_cbor)
end
Original file line number Diff line number Diff line change
Expand Up @@ -131,4 +131,121 @@ COMMAND <%= target_name %> SET_PASSWORD BIG_ENDIAN "Set Password Command"
APPEND_PARAMETER SPACER_6 256 STRING "Spacer 6"
APPEND_ARRAY_PARAMETER ARRAY 64 FLOAT 640 "Array of 10 64bit floats"
OBFUSCATE
APPEND_PARAMETER SPACER_7 256 STRING "Spacer 7"
APPEND_PARAMETER SPACER_7 256 STRING "Spacer 7"

COMMAND <%= target_name %> JSONCMD BIG_ENDIAN "JSON Accessor Command"
ACCESSOR JsonAccessor
TEMPLATE '{"id_item":1, "item1":101, "more": { "item2":12, "item3":3.14, "item4":"Example", "item5":[4, 3, 2, 1] } }'
APPEND_ID_PARAMETER ID_ITEM 32 INT 31 31 31 "Int Item"
KEY $.id_item
APPEND_PARAMETER ITEM1 16 UINT MIN MAX 101 "Int Item 2"
KEY $.item1
UNITS CELSIUS C
APPEND_PARAMETER ITEM2 16 UINT MIN MAX 12 "Int Item 3"
KEY $.more.item2
FORMAT_STRING "0x%X"
APPEND_PARAMETER ITEM3 64 FLOAT MIN MAX 3.14 "Float Item"
KEY $.more.item3
APPEND_PARAMETER ITEM4 128 STRING "Example" "String Item"
KEY $.more.item4
APPEND_ARRAY_PARAMETER ITEM5 8 UINT 0 "Array Item"
KEY $.more.item5

COMMAND <%= target_name %> CBORCMD BIG_ENDIAN "CBOR Accessor Command"
ACCESSOR CborAccessor
TEMPLATE_FILE _cbor_template.bin
APPEND_ID_PARAMETER ID_ITEM 32 INT 32 32 32 "Int Item"
KEY $.id_item
APPEND_PARAMETER ITEM1 16 UINT MIN MAX 101 "Int Item 2"
KEY $.item1
UNITS CELSIUS C
APPEND_PARAMETER ITEM2 16 UINT MIN MAX 12 "Int Item 3"
KEY $.more.item2
FORMAT_STRING "0x%X"
APPEND_PARAMETER ITEM3 64 FLOAT MIN MAX 3.14 "Float Item"
KEY $.more.item3
APPEND_PARAMETER ITEM4 128 STRING "Example" "String Item"
KEY $.more.item4
APPEND_ARRAY_PARAMETER ITEM5 8 UINT 0 "Array Item"
KEY $.more.item5

COMMAND <%= target_name %> XMLCMD BIG_ENDIAN "XML Accessor Command"
ACCESSOR XmlAccessor
TEMPLATE '<html><head><script src="3"></script><noscript>101</noscript></head><body><img src="12"/><div><ul><li>3.14</li><li>Example</li></ul></div><div></div></body></html>'
APPEND_ID_PARAMETER ID_ITEM 32 INT 33 33 33 "Int Item"
KEY "/html/head/script/@src"
APPEND_PARAMETER ITEM1 16 UINT MIN MAX 101 "Int Item 2"
KEY "/html/head/noscript/text()"
UNITS CELSIUS C
APPEND_PARAMETER ITEM2 16 UINT MIN MAX 12 "Int Item 3"
KEY "/html/body/img/@src"
FORMAT_STRING "0x%X"
APPEND_PARAMETER ITEM3 64 FLOAT MIN MAX 3.14 "Float Item"
KEY "/html/body/div/ul/li[1]/text()"
APPEND_PARAMETER ITEM4 128 STRING "Example" "String Item"
KEY "/html/body/div/ul/li[2]/text()"

COMMAND <%= target_name %> HTMLCMD BIG_ENDIAN "HTML Accessor Command"
ACCESSOR HtmlAccessor
TEMPLATE '<!DOCTYPE html><html lang="en"><head><title>4</title><script src="101"></script></head><body><noscript>12</noscript><img src="3.14" alt="An Image"/><p>Example</p><ul><li>1</li><li>3.14</li></ul></body></html>'
APPEND_ID_PARAMETER ID_ITEM 32 INT 34 34 34 "Int Item"
KEY "/html/head/title/text()"
APPEND_PARAMETER ITEM1 16 UINT MIN MAX 101 "Int Item 2"
KEY "/html/head/script/@src"
UNITS CELSIUS C
APPEND_PARAMETER ITEM2 16 UINT MIN MAX 12 "Int Item 3"
KEY "/html/body/noscript/text()"
FORMAT_STRING "0x%X"
APPEND_PARAMETER ITEM3 64 FLOAT MIN MAX 3.14 "Float Item"
KEY "/html/body/img/@src"
APPEND_PARAMETER ITEM4 128 STRING "Example" "String Item"
KEY "/html/body/p/text()"

COMMAND <%= target_name %> JSONSTRUCT BIG_ENDIAN "JSON Structure"
VIRTUAL
ACCESSOR JsonAccessor
TEMPLATE '{"id_item":1, "item1":101, "more": { "item2":12, "item3":3.14, "item4":"Example", "item5":[4, 3, 2, 1] } }'
APPEND_PARAMETER ITEM0 32 INT 1 1 1 "Int Item"
KEY $.id_item
APPEND_PARAMETER ITEM1 16 UINT MIN MAX 101 "Int Item 2"
KEY $.item1
UNITS CELSIUS C
APPEND_PARAMETER ITEM2 16 UINT MIN MAX 12 "Int Item 3"
KEY $.more.item2
FORMAT_STRING "0x%X"
APPEND_PARAMETER ITEM3 64 FLOAT MIN MAX 3.14 "Float Item"
KEY $.more.item3
APPEND_PARAMETER ITEM4 128 STRING "Example" "String Item"
KEY $.more.item4
APPEND_ARRAY_PARAMETER ITEM5 8 UINT 0 "Array Item"
KEY $.more.item5

COMMAND <%= target_name %> CBORSTRUCT BIG_ENDIAN "CBOR Structure"
VIRTUAL
ACCESSOR CborAccessor
TEMPLATE_FILE _cbor_template.bin
APPEND_PARAMETER ITEM0 32 INT 2 2 2 "Int Item"
KEY $.id_item
APPEND_PARAMETER ITEM1 16 UINT MIN MAX 101 "Int Item 2"
KEY $.item1
UNITS CELSIUS C
APPEND_PARAMETER ITEM2 16 UINT MIN MAX 12 "Int Item 3"
KEY $.more.item2
FORMAT_STRING "0x%X"
APPEND_PARAMETER ITEM3 64 FLOAT MIN MAX 3.14 "Float Item"
KEY $.more.item3
APPEND_PARAMETER ITEM4 128 STRING "Example" "String Item"
KEY $.more.item4
APPEND_ARRAY_PARAMETER ITEM5 8 UINT 0 "Array Item"
KEY $.more.item5

COMMAND <%= target_name %> HYBRIDCMD BIG_ENDIAN "Hybrid Accessor Command"
<%= render "_ccsds_cmd.txt", locals: {id: 14} %>
APPEND_PARAMETER JSON_LENGTH 32 UINT MIN MAX 0
HIDDEN
APPEND_STRUCTURE JSON 0 CMD <%= target_name %> JSONSTRUCT
VARIABLE_BIT_SIZE JSON_LENGTH
APPEND_PARAMETER CBOR_LENGTH 32 UINT MIN MAX 0
HIDDEN
APPEND_STRUCTURE CBOR 0 CMD <%= target_name %> CBORSTRUCT
VARIABLE_BIT_SIZE CBOR_LENGTH
Original file line number Diff line number Diff line change
Expand Up @@ -179,3 +179,112 @@ TELEMETRY <%= target_name %> HIDDEN BIG_ENDIAN "Hidden packet"
APPEND_ITEM COUNT 32 UINT "Count for hidden command"
ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS

TELEMETRY <%= target_name %> JSONTLM BIG_ENDIAN "JSON Accessor Telemetry"
ACCESSOR JsonAccessor
# Template is not required for telemetry, but is useful for simulation
TEMPLATE '{"id_item":1, "item1":101, "more": { "item2":12, "item3":3.14, "item4":"Example", "item5":[4, 3, 2, 1] } }'
APPEND_ID_ITEM ID_ITEM 32 INT 31 "Int Item"
KEY $.id_item
APPEND_ITEM ITEM1 16 UINT "Int Item 2"
KEY $.item1
GENERIC_READ_CONVERSION_START UINT 16
value * 2
GENERIC_READ_CONVERSION_END
UNITS CELSIUS C
APPEND_ITEM ITEM2 16 UINT "Int Item 3"
KEY $.more.item2
FORMAT_STRING "0x%X"
APPEND_ITEM ITEM3 64 FLOAT "Float Item"
KEY $.more.item3
APPEND_ITEM ITEM4 128 STRING "String Item"
KEY $.more.item4
APPEND_ARRAY_ITEM ITEM5 8 UINT 0 "Array Item"
KEY $.more.item5

TELEMETRY <%= target_name %> CBORTLM BIG_ENDIAN "CBOR Accessor Telemetry"
ACCESSOR CborAccessor
# Template is not required for telemetry, but is useful for simulation
TEMPLATE_FILE _cbor_template.bin
APPEND_ID_ITEM ID_ITEM 32 INT 32 "Int Item"
KEY $.id_item
APPEND_ITEM ITEM1 16 UINT "Int Item 2"
KEY $.item1
GENERIC_READ_CONVERSION_START UINT 16
value * 2
GENERIC_READ_CONVERSION_END
UNITS CELSIUS C
APPEND_ITEM ITEM2 16 UINT "Int Item 3"
KEY $.more.item2
FORMAT_STRING "0x%X"
APPEND_ITEM ITEM3 64 FLOAT "Float Item"
KEY $.more.item3
APPEND_ITEM ITEM4 128 STRING "String Item"
KEY $.more.item4
APPEND_ARRAY_ITEM ITEM5 8 UINT 0 "Array Item"
KEY $.more.item5

TELEMETRY <%= target_name %> XMLTLM BIG_ENDIAN "XML Accessor Telemetry"
ACCESSOR XmlAccessor
# Template is not required for telemetry, but is useful for simulation
TEMPLATE '<html><head><script src="3"></script><noscript>101</noscript></head><body><img src="12"/><div><ul><li>3.14</li><li>Example</li></ul></div><div></div></body></html>'
APPEND_ID_ITEM ID_ITEM 32 INT 33 "Int Item"
KEY "/html/head/script/@src"
APPEND_ITEM ITEM1 16 UINT "Int Item 2"
KEY "/html/head/noscript/text()"
GENERIC_READ_CONVERSION_START UINT 16
value * 2
GENERIC_READ_CONVERSION_END
UNITS CELSIUS C
APPEND_ITEM ITEM2 16 UINT "Int Item 3"
KEY "/html/body/img/@src"
FORMAT_STRING "0x%X"
APPEND_ITEM ITEM3 64 FLOAT "Float Item"
KEY "/html/body/div/ul/li[1]/text()"
APPEND_ITEM ITEM4 128 STRING "String Item"
KEY "/html/body/div/ul/li[2]/text()"

TELEMETRY <%= target_name %> HTMLTLM BIG_ENDIAN "HTML Accessor Telemetry"
ACCESSOR HtmlAccessor
# Template is not required for telemetry, but is useful for simulation
TEMPLATE '<!DOCTYPE html><html lang="en"><head><title>4</title><script src="101"></script></head><body><noscript>12</noscript><img src="3.14" alt="An Image"/><p>Example</p><ul><li>1</li><li>3.14</li></ul></body></html>'
APPEND_ID_ITEM ID_ITEM 32 INT 34 "Int Item"
KEY "/html/head/title/text()"
APPEND_ITEM ITEM1 16 UINT "Int Item 2"
KEY "/html/head/script/@src"
GENERIC_READ_CONVERSION_START UINT 16
value * 2
GENERIC_READ_CONVERSION_END
UNITS CELSIUS C
APPEND_ITEM ITEM2 16 UINT "Int Item 3"
KEY "/html/body/noscript/text()"
FORMAT_STRING "0x%X"
APPEND_ITEM ITEM3 64 FLOAT "Float Item"
KEY "/html/body/img/@src"
APPEND_ITEM ITEM4 128 STRING "String Item"
KEY "/html/body/p/text()"

TELEMETRY <%= target_name %> HYBRIDTLM BIG_ENDIAN "Hybrid Accessor Telemetry"
APPEND_ITEM CCSDSVER 3 UINT "CCSDS packet version number (See CCSDS 133.0-B-1)"
APPEND_ITEM CCSDSTYPE 1 UINT "CCSDS packet type (command or telemetry)"
STATE TLM 0
STATE CMD 1
APPEND_ITEM CCSDSSHF 1 UINT "CCSDS secondary header flag"
STATE FALSE 0
STATE TRUE 1
APPEND_ID_ITEM CCSDSAPID 11 UINT 14 "CCSDS application process id"
APPEND_ITEM CCSDSSEQFLAGS 2 UINT "CCSDS sequence flags"
STATE FIRST 1
STATE CONT 0
STATE LAST 2
STATE NOGROUP 3
APPEND_ITEM CCSDSSEQCNT 14 UINT "CCSDS packet sequence count"
OVERFLOW TRUNCATE
APPEND_ITEM CCSDSLENGTH 16 UINT "CCSDS packet data length"
APPEND_ITEM PKTID 16 UINT
APPEND_ITEM JSON_LENGTH 32 UINT
APPEND_STRUCTURE JSON 0 CMD <%= target_name %> JSONSTRUCT
VARIABLE_BIT_SIZE JSON_LENGTH
APPEND_ITEM CBOR_LENGTH 32 UINT
APPEND_STRUCTURE CBOR 0 CMD <%= target_name %> CBORSTRUCT
VARIABLE_BIT_SIZE CBOR_LENGTH
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,11 @@ def set_rates
set_rate('IMAGE', 100)
set_rate('MECH', 10)
set_rate('HIDDEN', 500)
set_rate('JSONTLM', 500)
set_rate('CBORTLM', 500)
set_rate('XMLTLM', 500)
set_rate('HTMLTLM', 500)
set_rate('HYBRIDTLM', 500)
end

def tick_period_seconds
Expand All @@ -178,6 +183,11 @@ def write(packet)

hs_packet = @tlm_packets['HEALTH_STATUS']
params_packet = @tlm_packets['PARAMS']
json_packet = @tlm_packets['JSONTLM']
cbor_packet = @tlm_packets['CBORTLM']
xml_packet = @tlm_packets['XMLTLM']
html_packet = @tlm_packets['HTMLTLM']
hybrid_packet = @tlm_packets['HYBRIDTLM']

case name
when 'COLLECT'
Expand Down Expand Up @@ -245,6 +255,16 @@ def write(packet)
when 'HIDDEN'
# Deliberately do not increment cmd_acpt_cnt
@tlm_packets['HIDDEN'].count = packet.read('count')
when 'JSONCMD'
json_packet.buffer = packet.buffer
when 'CBORCMD'
cbor_packet.buffer = packet.buffer
when 'XMLCMD'
xml_packet.buffer = packet.buffer
when 'HTMLCMD'
html_packet.buffer = packet.buffer
when 'HYBRIDCMD'
hybrid_packet.buffer = packet.buffer
end
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ IGNORE_PARAMETER CCSDSSEQFLAGS
IGNORE_PARAMETER CCSDSSEQCNT
IGNORE_PARAMETER CCSDSLENGTH
IGNORE_PARAMETER PKTID
IGNORE_PARAMETER ID_ITEM

# Ignored Items
IGNORE_ITEM CCSDSVER
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
£gid_itemeitem1edmore¤eitem2 eitem3û@ ¸Që…eitem4gExampleeitem5„
Loading
Loading