From 9071fab473a2ab20f9ff742223b59eff4444ebdc Mon Sep 17 00:00:00 2001 From: Gerik Kubiak Date: Tue, 17 Mar 2026 09:28:51 -0700 Subject: [PATCH 01/10] Updated array serializable representation to remove values from each member. Optimize type methods for numerical types --- .../common/models/serialize/array_type.py | 80 +++++++++++++++---- 1 file changed, 64 insertions(+), 16 deletions(-) diff --git a/src/fprime_gds/common/models/serialize/array_type.py b/src/fprime_gds/common/models/serialize/array_type.py index 142aff46..3542932f 100644 --- a/src/fprime_gds/common/models/serialize/array_type.py +++ b/src/fprime_gds/common/models/serialize/array_type.py @@ -4,6 +4,8 @@ @author: jishii """ +import struct + from .type_base import DictionaryType from .type_exceptions import ( ArrayLengthException, @@ -11,6 +13,7 @@ TypeMismatchException, DeserializeException, ) +from .numerical_types import NumericalType class ArrayType(DictionaryType): @@ -47,6 +50,9 @@ def validate(cls, val): for i in range(cls.LENGTH): cls.MEMBER_TYPE.validate(val[i]) + def _is_numerical_array(self) -> bool: + return issubclass(self.MEMBER_TYPE, NumericalType) + @property def val(self) -> list: """ @@ -55,7 +61,12 @@ def val(self) -> list: :return dictionary of member names to python values of member keys """ - return None if self._val is None else [item.val for item in self._val] + if self._val is None: + return None + elif self._is_numerical_array(): + return [item for item in self._val] + else: + return [item.val for item in self._val] @property def formatted_val(self) -> list: @@ -83,49 +94,86 @@ def val(self, val: list): :param val: dictionary containing python types to key names. This """ self.validate(val) - items = [self.MEMBER_TYPE(item) for item in val] + if self._is_numerical_array(): + items = [item for item in val] + else: + items = [self.MEMBER_TYPE(item) for item in val] self._val = items def to_jsonable(self): """ JSONable array object format """ + if self._is_numerical_array(): + vals = self._val + else: + vals = None if self._val is None \ + else [member.val for member in self._val] return { "name": self.__class__.__name__, "type": self.__class__.__name__, "size": self.LENGTH, "format": self.FORMAT, - "values": ( - None - if self._val is None - else [member.to_jsonable() for member in self._val] - ), + "value_type": repr(self.MEMBER_TYPE()), + "values": vals, } def serialize(self): """Serialize the array by serializing the elements one by one""" if self.val is None: raise NotInitializedException(type(self)) - return b"".join([item.serialize() for item in self._val]) + if self._is_numerical_array(): + value_format_raw = self.MEMBER_TYPE().get_serialize_format() + value_endian = '' + if self.MEMBER_TYPE.getSize() > 1: + assert value_format_raw[0] in ('>', '<'), \ + f'Expected explicit endian numerical type format but found {value_format_raw}' + value_endian = value_format_raw[0] + value_format = value_format_raw.strip('><') + + array_format = f"{value_endian}{self.LENGTH}{value_format}" + return struct.pack(array_format, *self._val) + else: + return b"".join([item.serialize() for item in self._val]) def deserialize(self, data, offset): """Deserialize the members of the array""" - values = [] - for field_index in range(self.LENGTH): + if issubclass(self.MEMBER_TYPE, NumericalType) and self.LENGTH > 0: try: - item = self.MEMBER_TYPE() - item.deserialize(data, offset) - offset += item.getSize() - values.append(item) + value_format_raw = self.MEMBER_TYPE().get_serialize_format() + value_endian = '' + if self.MEMBER_TYPE.getSize() > 1: + assert value_format_raw[0] in ('>', '<'), \ + f'Expected explicit endian numerical type format but found {value_format_raw}' + value_endian = value_format_raw[0] + value_format = value_format_raw.strip('><') + + array_format = f"{value_endian}{self.LENGTH}{value_format}" + values = struct.unpack_from(array_format, data, offset) except Exception as exc: raise DeserializeException( - f"Array index {field_index} failed to deserialize: {exc}" + f"Array NumericalType optimization failed to deserialize: {exc}" ) + else: + values = [] + for field_index in range(self.LENGTH): + try: + item = self.MEMBER_TYPE() + item.deserialize(data, offset) + offset += item.getSize() + values.append(item) + except Exception as exc: + raise DeserializeException( + f"Array index {field_index} failed to deserialize: {exc}" + ) self._val = values def getSize(self): """Return the size in bytes of the array""" - return sum(item.getSize() for item in self._val) + if self._is_numerical_array(): + return self.MEMBER_TYPE.getMaxSize() * len(self._val) + else: + return sum(item.getSize() for item in self._val) @classmethod def getMaxSize(cls): From be683206b6dc8816311cd874a765365ee6ea004d Mon Sep 17 00:00:00 2001 From: Gerik Kubiak Date: Tue, 17 Mar 2026 10:08:43 -0700 Subject: [PATCH 02/10] Updated Data Product decoder to decode array records using an ArrayType serializable --- src/fprime_gds/common/dp/decoder.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/fprime_gds/common/dp/decoder.py b/src/fprime_gds/common/dp/decoder.py index 424b8da8..d64fd1f4 100644 --- a/src/fprime_gds/common/dp/decoder.py +++ b/src/fprime_gds/common/dp/decoder.py @@ -26,6 +26,7 @@ get_dp_header_type, ) from fprime_gds.common.models.dictionaries import Dictionaries +from fprime_gds.common.models.serialize.array_type import ArrayType from fprime_gds.common.utils.config_manager import ConfigManager from fprime_gds.common.templates.dp_record_template import DpRecordTemplate @@ -183,13 +184,12 @@ def read_element(element_type): array_size_type.deserialize(array_size_data, 0) array_size = array_size_type.val - record['Size'] = array_size - record['Data'] = [] + element_array_type = ArrayType.construct_type( + record_template.get_name(), record_type, array_size, "{}" + ) - # Read each array element - for _ in range(array_size): - element_instance = read_element(record_type) - record['Data'].append(element_instance.to_jsonable()) + element_instance = read_element(element_array_type) + record['Data'] = element_instance.to_jsonable() else: # For scalar records, read the single value element_instance = read_element(record_type) From 52156b26182a51c2277b84563a76f96ba9736f0f Mon Sep 17 00:00:00 2001 From: Gerik Kubiak Date: Tue, 17 Mar 2026 10:34:45 -0700 Subject: [PATCH 03/10] Update gds data product unit tests to check against the new json format --- test/fprime_gds/common/dp/test_decoder.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/fprime_gds/common/dp/test_decoder.py b/test/fprime_gds/common/dp/test_decoder.py index 401ac0fd..e58620e7 100644 --- a/test/fprime_gds/common/dp/test_decoder.py +++ b/test/fprime_gds/common/dp/test_decoder.py @@ -175,9 +175,9 @@ def test_decode_u8_array(self, load_dictionary, tmp_path): # Array records should have a Size field record = result["Records"][0] - assert "Size" in record assert "Data" in record - assert isinstance(record["Data"], list) + assert "size" in record["Data"] + assert isinstance(record["Data"]["values"], list) def test_decode_u32_array(self, load_dictionary, tmp_path): """Test decoding of U32 array data product.""" @@ -191,9 +191,9 @@ def test_decode_u32_array(self, load_dictionary, tmp_path): assert "Header" in result assert "Records" in result record = result["Records"][0] - assert "Size" in record assert "Data" in record - assert isinstance(record["Data"], list) + assert "size" in record["Data"] + assert isinstance(record["Data"]["values"], list) def test_decode_data_array(self, load_dictionary, tmp_path): """Test decoding of Data array data product.""" @@ -397,10 +397,10 @@ def test_decode_array_record(self, load_dictionary): assert len(records) > 0 record = records[0] - assert "Size" in record assert "Data" in record - assert isinstance(record["Data"], list) - assert len(record["Data"]) == record["Size"] + assert "size" in record["Data"] + assert isinstance(record["Data"]["values"], list) + assert len(record["Data"]["values"]) == record["Data"]["size"] class TestDataProductDecoderIntegration: From 6ea177f44c9cafb3bcb5bb8930cada94654f043d Mon Sep 17 00:00:00 2001 From: Gerik Kubiak Date: Tue, 17 Mar 2026 10:35:25 -0700 Subject: [PATCH 04/10] Ensure that values is a list type when using numerical optimization --- .../common/models/serialize/array_type.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/fprime_gds/common/models/serialize/array_type.py b/src/fprime_gds/common/models/serialize/array_type.py index 3542932f..d1d54f82 100644 --- a/src/fprime_gds/common/models/serialize/array_type.py +++ b/src/fprime_gds/common/models/serialize/array_type.py @@ -64,7 +64,7 @@ def val(self) -> list: if self._val is None: return None elif self._is_numerical_array(): - return [item for item in self._val] + return list(self._val) else: return [item.val for item in self._val] @@ -95,7 +95,7 @@ def val(self, val: list): """ self.validate(val) if self._is_numerical_array(): - items = [item for item in val] + items = list(val) else: items = [self.MEMBER_TYPE(item) for item in val] self._val = items @@ -104,11 +104,12 @@ def to_jsonable(self): """ JSONable array object format """ - if self._is_numerical_array(): - vals = self._val + if self._val is None: + vals = None + elif self._is_numerical_array(): + vals = list(self._val) else: - vals = None if self._val is None \ - else [member.val for member in self._val] + vals = [member.val for member in self._val] return { "name": self.__class__.__name__, "type": self.__class__.__name__, @@ -149,7 +150,7 @@ def deserialize(self, data, offset): value_format = value_format_raw.strip('><') array_format = f"{value_endian}{self.LENGTH}{value_format}" - values = struct.unpack_from(array_format, data, offset) + values = list(struct.unpack_from(array_format, data, offset)) except Exception as exc: raise DeserializeException( f"Array NumericalType optimization failed to deserialize: {exc}" From 153c962c0d94c5fa21262866fa33859f6fb0a330 Mon Sep 17 00:00:00 2001 From: Gerik Kubiak Date: Tue, 31 Mar 2026 14:39:14 -0700 Subject: [PATCH 05/10] Tag created ArrayTypes with record size --- src/fprime_gds/common/dp/decoder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fprime_gds/common/dp/decoder.py b/src/fprime_gds/common/dp/decoder.py index d64fd1f4..c76da11f 100644 --- a/src/fprime_gds/common/dp/decoder.py +++ b/src/fprime_gds/common/dp/decoder.py @@ -185,7 +185,7 @@ def read_element(element_type): array_size = array_size_type.val element_array_type = ArrayType.construct_type( - record_template.get_name(), record_type, array_size, "{}" + f'{record_template.get_name()}_{array_size}', record_type, array_size, "{}" ) element_instance = read_element(element_array_type) From cca3be7fa0e2ec625cbd7d153fccd21db4c43bac Mon Sep 17 00:00:00 2001 From: Gerik Kubiak Date: Tue, 31 Mar 2026 15:33:14 -0700 Subject: [PATCH 06/10] Added specialization for formatted_val --- .../common/models/serialize/array_type.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/fprime_gds/common/models/serialize/array_type.py b/src/fprime_gds/common/models/serialize/array_type.py index d1d54f82..04f8e853 100644 --- a/src/fprime_gds/common/models/serialize/array_type.py +++ b/src/fprime_gds/common/models/serialize/array_type.py @@ -77,11 +77,15 @@ def formatted_val(self) -> list: :return a formatted array """ result = [] - for item in self._val: - if hasattr(item, "formatted_val"): - result.append(item.formatted_val) - else: - result.append(self.FORMAT.format(item.val)) + if self._is_numerical_array(): + for item in self._val: + result.append(self.FORMAT.format(item)) + else: + for item in self._val: + if hasattr(item, "formatted_val"): + result.append(item.formatted_val) + else: + result.append(self.FORMAT.format(item.val)) return result @val.setter From 057ee67924fc4983dff1f4f9f811fdbf6232ff6c Mon Sep 17 00:00:00 2001 From: Gerik Kubiak Date: Thu, 9 Apr 2026 12:53:43 -0700 Subject: [PATCH 07/10] Added support for decompressing compressed data products --- src/fprime_gds/common/dp/decoder.py | 69 +++++++++++++++++---- src/fprime_gds/executables/data_products.py | 3 +- 2 files changed, 59 insertions(+), 13 deletions(-) diff --git a/src/fprime_gds/common/dp/decoder.py b/src/fprime_gds/common/dp/decoder.py index c76da11f..4603fe6f 100644 --- a/src/fprime_gds/common/dp/decoder.py +++ b/src/fprime_gds/common/dp/decoder.py @@ -19,6 +19,9 @@ from pathlib import Path from typing import Dict, List, Any, Optional import dataclasses +import re +from io import BytesIO +import zlib from fprime_gds.common.dp.common import ( ChecksumConfig, @@ -85,7 +88,7 @@ class DataProductDecoder: - both these assumptions can be resolved by loading dictionaries (see executables/data_products.py) """ - def __init__(self, dictionaries: Dictionaries, binary_file_path: str, output_json_path: Optional[str] = None): + def __init__(self, dictionaries: Dictionaries, binary_file_path: str, disable_decompression: bool, output_json_path: Optional[str] = None): """Initialize the decoder. Args: @@ -96,6 +99,7 @@ def __init__(self, dictionaries: Dictionaries, binary_file_path: str, output_jso """ self.dictionaries = dictionaries self.binary_file_path = binary_file_path + self.disable_decompression = disable_decompression if output_json_path is None: # Generate default output path if not provided as same path with .json extension self.output_json_path = str(Path(binary_file_path).with_suffix('.json')) @@ -145,7 +149,7 @@ def decode_record(self, file_handle, record_id: int) -> Dict[str, Any]: Raises: RecordNotFoundError: If record ID not found """ - + # Query ConfigManager for record definition record_template: DpRecordTemplate = self.dictionaries.dp_record_id.get(record_id) @@ -197,6 +201,46 @@ def read_element(element_type): return record + def decode_records(self, r_io, data_size) -> List[Any]: + records = list() + position_at_start = r_io.tell() + while (r_io.tell() - position_at_start) < data_size: + # Read record ID + record_id_bin = r_io.read(ConfigManager().get_type("FwDpIdType").getSize()) + record_id_obj = ConfigManager().get_type("FwDpIdType")() + record_id_obj.deserialize(record_id_bin, 0) + record_id = record_id_obj.val + + # decode the record + record = self.decode_record(r_io, record_id) + records.append(record) + + return records + + def is_compression_record(self, record): + return re.search("dpCompressProc.CompressionRecord$", record["Record"]["record_name"]) is not None + + def decompress_records(self, records): + uncomp_bytes = bytearray() + CompressionMetadata = ConfigManager().get_type("Svc.CompressionMetadata") + + for record in records: + if not self.is_compression_record(record): + # All records must be compressed, otherwise bail + return None + + record_io = BytesIO(bytes(record["Data"]["values"])) + + record_meta = CompressionMetadata() + record_meta_data = record_io.read(record_meta.getMaxSize()) + record_meta.deserialize(record_meta_data, 0) + if record_meta.val['algorithm'] == 'UNCOMPRESSED': + uncomp_bytes.extend(record_io.read()) + elif record_meta.val['algorithm'] == 'ZLIB_DEFLATE': + uncomp_bytes.extend(zlib.decompress(record_io.read())) + + return uncomp_bytes + def decode(self) -> List[Dict[str, Any]]: """decode the entire data product file. @@ -223,16 +267,7 @@ def decode(self) -> List[Dict[str, Any]]: ##################### data_size = header_json['DataSize']["value"] position_at_start = f.tell() - while (f.tell() - position_at_start) < data_size: - # Read record ID - record_id_bin = f.read(ConfigManager().get_type("FwDpIdType").getSize()) - record_id_obj = ConfigManager().get_type("FwDpIdType")() - record_id_obj.deserialize(record_id_bin, 0) - record_id = record_id_obj.val - - # decode the record - record = self.decode_record(f, record_id) - results["Records"].append(record) + results["Records"] = self.decode_records(f, data_size) ##################### # Validate checksum # @@ -250,6 +285,16 @@ def decode(self) -> List[Dict[str, Any]]: if computed_crc != dp_crc.val: raise CRCError("Data", dp_crc.val, computed_crc) + if not self.disable_decompression and self.is_compression_record(results["Records"][0]): + + # Compressed records. Decompress and re-process + uncomp_bytes = self.decompress_records(results["Records"]) + if uncomp_bytes is not None: + uncomp_io = BytesIO(uncomp_bytes) + uncomp_records = self.decode_records(uncomp_io, len(uncomp_bytes)) + if uncomp_records is not None: + results["Records"] = uncomp_records + return results def process(self): diff --git a/src/fprime_gds/executables/data_products.py b/src/fprime_gds/executables/data_products.py index bf8eee76..b2d5b80d 100644 --- a/src/fprime_gds/executables/data_products.py +++ b/src/fprime_gds/executables/data_products.py @@ -13,6 +13,7 @@ def main(): decode_parser.add_argument("-b", "--bin-file", required=True, help="Path to input data product binary file (.fdp)") decode_parser.add_argument("-d", "--dictionary", required=True, help="Path to F Prime JSON Dictionary") decode_parser.add_argument("-o", "--output", required=False, help="Path to output JSON file (defaults to .json)") + decode_parser.add_argument("-z", "--disable-decompression", action='store_true', help="Disable automatic decompression of data products") validate_parser = subcommands_parser.add_parser('validate', help='Validate a data product') validate_parser.add_argument("-b", "--bin-file", required=True, help="Path to input data product binary file (.fdp)") @@ -29,7 +30,7 @@ def main(): if args.command == "decode": assert args.dictionaries is not None, "Dictionaries must be loaded" - DataProductDecoder(args.dictionaries, args.bin_file, args.output).process() + DataProductDecoder(args.dictionaries, args.bin_file, args.disable_decompression, args.output).process() elif args.command == "validate": success = DataProductValidator( From 20d0ff1245db975e8d95840d03319128fb47b735 Mon Sep 17 00:00:00 2001 From: Gerik Kubiak Date: Tue, 16 Jun 2026 13:31:49 -0700 Subject: [PATCH 08/10] Updated the order of DataProductDecord init arguments to not break existing unit tests or code --- src/fprime_gds/common/dp/decoder.py | 2 +- src/fprime_gds/executables/data_products.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fprime_gds/common/dp/decoder.py b/src/fprime_gds/common/dp/decoder.py index 4603fe6f..aa33b4a7 100644 --- a/src/fprime_gds/common/dp/decoder.py +++ b/src/fprime_gds/common/dp/decoder.py @@ -88,7 +88,7 @@ class DataProductDecoder: - both these assumptions can be resolved by loading dictionaries (see executables/data_products.py) """ - def __init__(self, dictionaries: Dictionaries, binary_file_path: str, disable_decompression: bool, output_json_path: Optional[str] = None): + def __init__(self, dictionaries: Dictionaries, binary_file_path: str, output_json_path: Optional[str] = None, disable_decompression: bool = False): """Initialize the decoder. Args: diff --git a/src/fprime_gds/executables/data_products.py b/src/fprime_gds/executables/data_products.py index b2d5b80d..a1d2dd03 100644 --- a/src/fprime_gds/executables/data_products.py +++ b/src/fprime_gds/executables/data_products.py @@ -30,7 +30,7 @@ def main(): if args.command == "decode": assert args.dictionaries is not None, "Dictionaries must be loaded" - DataProductDecoder(args.dictionaries, args.bin_file, args.disable_decompression, args.output).process() + DataProductDecoder(args.dictionaries, args.bin_file, args.output, args.disable_decompression).process() elif args.command == "validate": success = DataProductValidator( From 7f69b7cc883c367f9ec6f8c29f2e02898544a355 Mon Sep 17 00:00:00 2001 From: Gerik Kubiak Date: Tue, 16 Jun 2026 17:11:31 -0700 Subject: [PATCH 09/10] Updated dp decoder with additional checks requested in PR --- src/fprime_gds/common/dp/decoder.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/fprime_gds/common/dp/decoder.py b/src/fprime_gds/common/dp/decoder.py index aa33b4a7..22eaef1d 100644 --- a/src/fprime_gds/common/dp/decoder.py +++ b/src/fprime_gds/common/dp/decoder.py @@ -207,6 +207,10 @@ def decode_records(self, r_io, data_size) -> List[Any]: while (r_io.tell() - position_at_start) < data_size: # Read record ID record_id_bin = r_io.read(ConfigManager().get_type("FwDpIdType").getSize()) + if len(record_id_bin) == 0: + # No bytes read. Off nominal behavior + raise DataProductError(f"End of file reached while processing data product") + record_id_obj = ConfigManager().get_type("FwDpIdType")() record_id_obj.deserialize(record_id_bin, 0) record_id = record_id_obj.val @@ -238,6 +242,8 @@ def decompress_records(self, records): uncomp_bytes.extend(record_io.read()) elif record_meta.val['algorithm'] == 'ZLIB_DEFLATE': uncomp_bytes.extend(zlib.decompress(record_io.read())) + else: + raise DataProductError(f"Compression algorithm {record_meta.val['algorithm']} unsupported") return uncomp_bytes @@ -285,7 +291,7 @@ def decode(self) -> List[Dict[str, Any]]: if computed_crc != dp_crc.val: raise CRCError("Data", dp_crc.val, computed_crc) - if not self.disable_decompression and self.is_compression_record(results["Records"][0]): + if not self.disable_decompression and len(results["Records"]) > 0 and self.is_compression_record(results["Records"][0]): # Compressed records. Decompress and re-process uncomp_bytes = self.decompress_records(results["Records"]) From 7628e4245b45ccfee59493b86ddb77094820910c Mon Sep 17 00:00:00 2001 From: Gerik Kubiak Date: Tue, 16 Jun 2026 17:14:43 -0700 Subject: [PATCH 10/10] Update dp test with compression tests --- test/fprime_gds/common/dp/test_decoder.py | 55 + .../dp/test_dp_data/DpDemoCompressed.fdp | Bin 0 -> 335 bytes .../dp/test_dp_data/DpDemoUncompressed.fdp | Bin 0 -> 1277 bytes .../common/dp/test_dp_data/dictionary.json | 49 + .../dp/test_dp_data/dictionary_ref.json | 14871 ++++++++++++++++ 5 files changed, 14975 insertions(+) create mode 100644 test/fprime_gds/common/dp/test_dp_data/DpDemoCompressed.fdp create mode 100644 test/fprime_gds/common/dp/test_dp_data/DpDemoUncompressed.fdp create mode 100644 test/fprime_gds/common/dp/test_dp_data/dictionary_ref.json diff --git a/test/fprime_gds/common/dp/test_decoder.py b/test/fprime_gds/common/dp/test_decoder.py index e58620e7..9440b227 100644 --- a/test/fprime_gds/common/dp/test_decoder.py +++ b/test/fprime_gds/common/dp/test_decoder.py @@ -23,6 +23,7 @@ # Path to test data directory TEST_DATA_DIR = Path(__file__).parent / "test_dp_data" DICTIONARY_PATH = TEST_DATA_DIR / "dictionary.json" +DICTIONARY_REF_PATH = TEST_DATA_DIR / "dictionary_ref.json" @pytest.fixture @@ -35,6 +36,16 @@ def load_dictionary(): yield dictionaries globals_cleanup() +@pytest.fixture +def load_dictionary_ref(): + """Fixture to load the test dictionary into ConfigManager before tests. + Also uses the globals_cleanup utility to reset global state and not interfere + with other tests.""" + globals_cleanup() + dictionaries = Dictionaries.load_dictionaries_into_config(str(DICTIONARY_REF_PATH)) + yield dictionaries + globals_cleanup() + class TestDataProductDecoderBasicTypes: """Test decoding of basic primitive data types.""" @@ -468,6 +479,50 @@ def test_decode_and_verify_json_structure(self, load_dictionary, tmp_path): assert "Record" in record assert "Data" in record +class TestDataProductDecoderCompressedProducts: + """Test decoding of compressed products.""" + + def test_decode_compressed(self, load_dictionary_ref, tmp_path): + """Test that compressed records can be decoded""" + decoder = DataProductDecoder( + load_dictionary_ref, + str(TEST_DATA_DIR / "DpDemoCompressed.fdp") + ) + result = decoder.decode() + + # Should contain 14 records from DpDemo + records = result["Records"] + assert len(records) == 14 + + def test_decode_compressed_raw(self, load_dictionary_ref, tmp_path): + """Test that RAW compressed records can be generated""" + decoder = DataProductDecoder( + load_dictionary_ref, + str(TEST_DATA_DIR / "DpDemoCompressed.fdp"), + disable_decompression=True + ) + result = decoder.decode() + + # Product should contain one compressed record segment + records = result["Records"] + assert len(records) == 1 + assert result["Records"][0]["Record"]["record_name"] == "DpCompression.dpCompressProc.CompressionRecord" + + def test_decode_compressed_compare(self, load_dictionary_ref, tmp_path): + """Test that compressed records can be identical to uncompressed records""" + decoder_compressed = DataProductDecoder( + load_dictionary_ref, + str(TEST_DATA_DIR / "DpDemoCompressed.fdp") + ) + result_compressed = decoder_compressed.decode() + + decoder_uncompressed = DataProductDecoder( + load_dictionary_ref, + str(TEST_DATA_DIR / "DpDemoUncompressed.fdp") + ) + result_uncompressed = decoder_uncompressed.decode() + + assert result_uncompressed["Records"] == result_compressed["Records"] if __name__ == "__main__": pytest.main([__file__, "-v"]) diff --git a/test/fprime_gds/common/dp/test_dp_data/DpDemoCompressed.fdp b/test/fprime_gds/common/dp/test_dp_data/DpDemoCompressed.fdp new file mode 100644 index 0000000000000000000000000000000000000000..f342f71d9a26cdd956742e936c8e3ee8934bef73 GIT binary patch literal 335 zcmZQzWnkbEU|?WiWME>*GJKTJz`L`T5y;0682SFTr)^{bYGmYKteBIW@IWZ(0iUO? zUZ94a=BYE@=|F*h{3;^5C-B0L2h(vJkpnP#amZ;8C<;26&6 z>Kd3;R2RrK=^)Eg38u4?*nT+(cqZm$*GJKTHz`JBNkV^ot>``(1_yVX^h=DsKwYWr~xTGjEFC8c# z{2xe&{Qv)d4v-eL{{l0JOAN?j1Y#y2W(HywAO=}3Zr^j}tOE}a2OAp$`4T__7`UW> zYQ%!UhAJc$6(v?Gq~@gNrskC>7~l{$#3613G))F*v!a25t^$gQMXAa8MJY%I6I5ad zG)o%j13@ISa#M4YQi~X*kc7}3j9bo-LC_H4ESOP9LKsHjlmod8|8 z0Rff_!oUU;X9r>qAm#*OE(cJC*}%Zya2b?gFy(<_AOJCo#7qRtd@z?mJx`(mLnQ@% I+Scg;09F27!T {}", + "annotation" : "Buffers are too large to process with zlib due to the\ntype differences between FwSizeType and uInt", + "throttle" : { + "count" : 5, + "every" : null + } + }, + { + "name" : "DpCompression.dpZLibCompressor.ZLibNoCompression", + "severity" : "DIAGNOSTIC", + "formalParams" : [ + { + "name" : "buffer_size", + "type" : { + "name" : "FwSizeType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + }, + { + "name" : "min_compression", + "type" : { + "name" : "FwSizeType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 68161541, + "format" : "Unable to compress buffer of size {} to at most {} bytes with zlib", + "annotation" : "ZLib compression failed" + }, + { + "name" : "DpCompression.dpZLibCompressor.ZLibCompression", + "severity" : "DIAGNOSTIC", + "formalParams" : [ + { + "name" : "buffer_size", + "type" : { + "name" : "FwSizeType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + }, + { + "name" : "compressed_size", + "type" : { + "name" : "FwSizeType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 68161542, + "format" : "Compressed buffer of size {} to {} bytes", + "annotation" : "ZLib compression succeeded" + }, + { + "name" : "DpCompression.dpZLibCompressor.ZLibMemoryUsage", + "severity" : "DIAGNOSTIC", + "formalParams" : [ + { + "name" : "memory_used", + "type" : { + "name" : "FwSizeType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + }, + { + "name" : "total_memory", + "type" : { + "name" : "FwSizeType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 68161543, + "format" : "Compression used {} of {} available bytes", + "annotation" : "ZLib compression memory usage" + }, + { + "name" : "DpCompression.dpZLibCompressorBufferManager.NoBuffsAvailable", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "size", + "type" : { + "name" : "FwSizeType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The requested size" + } + ], + "id" : 68165632, + "format" : "No available buffers of size {}", + "annotation" : "The BufferManager was unable to allocate a requested buffer", + "throttle" : { + "count" : 10, + "every" : null + } + }, + { + "name" : "DpCompression.dpZLibCompressorBufferManager.NullEmptyBuffer", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 68165633, + "format" : "Received null pointer and zero size buffer", + "annotation" : "The buffer manager received a null pointer and zero-sized buffer as a return. Probably undetected failed buffer allocation", + "throttle" : { + "count" : 10, + "every" : null + } + }, + { + "name" : "FileHandling.fileUplink.BadChecksum", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "ref" : false, + "annotation" : "The file name" + }, + { + "name" : "computed", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The computed value" + }, + { + "name" : "read", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The value read" + } + ], + "id" : 83886080, + "format" : "Bad checksum value during receipt of file {}: computed 0x{x}, read 0x{x}", + "annotation" : "During receipt of a file, the computed checksum value did not match the stored value" + }, + { + "name" : "FileHandling.fileUplink.FileOpenError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "ref" : false, + "annotation" : "The name of the file" + } + ], + "id" : 83886081, + "format" : "Could not open file {}", + "annotation" : "An error occurred opening a file" + }, + { + "name" : "FileHandling.fileUplink.FileReceived", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "ref" : false, + "annotation" : "The name of the file" + } + ], + "id" : 83886082, + "format" : "Received file {}", + "annotation" : "The File Uplink component successfully received a file" + }, + { + "name" : "FileHandling.fileUplink.FileWriteError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "ref" : false, + "annotation" : "The name of the file" + } + ], + "id" : 83886083, + "format" : "Could not write to file {}", + "annotation" : "An error occurred writing to a file", + "throttle" : { + "count" : 5, + "every" : null + } + }, + { + "name" : "FileHandling.fileUplink.InvalidReceiveMode", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "packetType", + "type" : { + "name" : "FwPacketDescriptorType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The type of the packet received" + }, + { + "name" : "mode", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The receive mode" + } + ], + "id" : 83886084, + "format" : "Packet type {} received in mode {}", + "annotation" : "The File Uplink component received a packet with a type that was invalid for the current receive mode", + "throttle" : { + "count" : 5, + "every" : null + } + }, + { + "name" : "FileHandling.fileUplink.PacketOutOfBounds", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "packetIndex", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The sequence index of the packet" + }, + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "ref" : false, + "annotation" : "The name of the file" + } + ], + "id" : 83886085, + "format" : "Packet {} out of bounds for file {}", + "annotation" : "During receipt of a file, the File Uplink component encountered a packet with offset and size out of bounds for the current file", + "throttle" : { + "count" : 5, + "every" : null + } + }, + { + "name" : "FileHandling.fileUplink.PacketOutOfOrder", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "packetIndex", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The sequence index of the out-of-order packet" + }, + { + "name" : "lastPacketIndex", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The sequence index of the last packet received before the out-of-order packet" + } + ], + "id" : 83886086, + "format" : "Received packet {} after packet {}", + "annotation" : "The File Uplink component encountered an out-of-order packet during file receipt", + "throttle" : { + "count" : 20, + "every" : null + } + }, + { + "name" : "FileHandling.fileUplink.PacketDuplicate", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "packetIndex", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The sequence index of the duplicate packet" + } + ], + "id" : 83886087, + "format" : "Received a duplicate of packet {}", + "annotation" : "The File Uplink component encountered a duplicate packet during file receipt", + "throttle" : { + "count" : 20, + "every" : null + } + }, + { + "name" : "FileHandling.fileUplink.UplinkCanceled", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + ], + "id" : 83886088, + "format" : "Received CANCEL packet", + "annotation" : "The File Uplink component received a CANCEL packet" + }, + { + "name" : "FileHandling.fileUplink.DecodeError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "status", + "type" : { + "name" : "I32", + "kind" : "integer", + "size" : 32, + "signed" : true + }, + "ref" : false, + "annotation" : "The sequence index of the out-of-order packet" + } + ], + "id" : 83886089, + "format" : "Unable to decode file packet. Status: {}", + "annotation" : "Error decoding file packet" + }, + { + "name" : "FileHandling.fileUplink.InvalidPacketReceived", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "packetType", + "type" : { + "name" : "FwPacketDescriptorType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The packet type received" + } + ], + "id" : 83886090, + "format" : "Invalid packet received. Wrong packet type: {}", + "annotation" : "Invalid packet received" + }, + { + "name" : "FileHandling.fileDownlink.FileOpenError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The name of the file" + } + ], + "id" : 83890176, + "format" : "Could not open file {}", + "annotation" : "An error occurred opening a file" + }, + { + "name" : "FileHandling.fileDownlink.FileReadError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The name of the file" + }, + { + "name" : "status", + "type" : { + "name" : "I32", + "kind" : "integer", + "size" : 32, + "signed" : true + }, + "ref" : false, + "annotation" : "The file status of read" + } + ], + "id" : 83890177, + "format" : "Could not read file {} with status {}", + "annotation" : "An error occurred reading a file" + }, + { + "name" : "FileHandling.fileDownlink.FileSent", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "sourceFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The source file name" + }, + { + "name" : "destFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The destination file name" + } + ], + "id" : 83890178, + "format" : "Sent file {} to file {}", + "annotation" : "The File Downlink component successfully sent a file" + }, + { + "name" : "FileHandling.fileDownlink.DownlinkCanceled", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "sourceFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The source file name" + }, + { + "name" : "destFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The destination file name" + } + ], + "id" : 83890179, + "format" : "Canceled downlink of file {} to file {}", + "annotation" : "The File Downlink component canceled downlink of a file" + }, + { + "name" : "FileHandling.fileDownlink.DownlinkPartialWarning", + "severity" : "WARNING_LO", + "formalParams" : [ + { + "name" : "startOffset", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "Starting file offset in bytes" + }, + { + "name" : "length", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "Number of bytes to downlink" + }, + { + "name" : "filesize", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "Size of source file" + }, + { + "name" : "sourceFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The source filename" + }, + { + "name" : "destFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The destination file name" + } + ], + "id" : 83890181, + "format" : "Offset {} plus length {} is greater than source size {} for partial downlink of file {} to file {}. ", + "annotation" : "The File Downlink component has detected a timeout. Downlink has been canceled." + }, + { + "name" : "FileHandling.fileDownlink.DownlinkPartialFail", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "sourceFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The source filename" + }, + { + "name" : "destFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The destination file name" + }, + { + "name" : "startOffset", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "Starting file offset in bytes" + }, + { + "name" : "filesize", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "Size of source file" + } + ], + "id" : 83890182, + "format" : "Error occurred during partial downlink of file {} to file {}. Offset {} greater than or equal to source filesize {}.", + "annotation" : "The File Downlink component has detected a timeout. Downlink has been canceled." + }, + { + "name" : "FileHandling.fileDownlink.SendDataFail", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "sourceFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The source filename" + }, + { + "name" : "byteOffset", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "Byte offset" + } + ], + "id" : 83890183, + "format" : "Failed to send data packet from file {} at byte offset {}.", + "annotation" : "The File Downlink component generated an error when trying to send a data packet." + }, + { + "name" : "FileHandling.fileDownlink.SendStarted", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "fileSize", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The source file size" + }, + { + "name" : "sourceFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The source filename" + }, + { + "name" : "destFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The destination filename" + } + ], + "id" : 83890184, + "format" : "Downlink of {} bytes started from {} to {}", + "annotation" : "The File Downlink component started a file download." + }, + { + "name" : "FileHandling.fileDownlink.DownlinkZeroSizeFile", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "sourceFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 100 + }, + "ref" : false, + "annotation" : "The source file name" + } + ], + "id" : 83890185, + "format" : "Downlink of file {} stopped due to zero-size.", + "annotation" : "The File Downlink component stopped due to a zero-size file" + }, + { + "name" : "FileHandling.fileDownlink.FilenameSourceOverflow", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 83890192, + "format" : "Commanded source filename too long", + "annotation" : "Supplied filename has overflowed. This intentionally discards the filename to avoid cascading overflows." + }, + { + "name" : "FileHandling.fileDownlink.FilenameDestinationOverflow", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 83890193, + "format" : "Commanded destination filename too long", + "annotation" : "Supplied filename has overflowed" + }, + { + "name" : "FileHandling.fileManager.DirectoryCreateError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "dirName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the directory" + }, + { + "name" : "status", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The error status" + } + ], + "id" : 83894272, + "format" : "Could not create directory {}, returned status {}", + "annotation" : "An error occurred while attempting to create a directory" + }, + { + "name" : "FileHandling.fileManager.DirectoryRemoveError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "dirName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the directory" + }, + { + "name" : "status", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The error status" + } + ], + "id" : 83894273, + "format" : "Could not remove directory {}, returned status {}", + "annotation" : "An error occurred while attempting to remove a directory" + }, + { + "name" : "FileHandling.fileManager.FileMoveError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "sourceFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the source file" + }, + { + "name" : "destFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the destination file" + }, + { + "name" : "status", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The error status" + } + ], + "id" : 83894274, + "format" : "Could not move file {} to file {}, returned status {}", + "annotation" : "An error occurred while attempting to move a file" + }, + { + "name" : "FileHandling.fileManager.FileRemoveError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file" + }, + { + "name" : "status", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The error status" + } + ], + "id" : 83894275, + "format" : "Could not remove file {}, returned status {}", + "annotation" : "An error occurred while attempting to remove a file" + }, + { + "name" : "FileHandling.fileManager.AppendFileFailed", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "source", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file being read from" + }, + { + "name" : "target", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file to append to" + }, + { + "name" : "status", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The error status" + } + ], + "id" : 83894277, + "format" : "Appending {} onto {} failed with status {}", + "annotation" : "The File System component returned status non-zero when trying to append 2 files together" + }, + { + "name" : "FileHandling.fileManager.AppendFileSucceeded", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "source", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file being read from" + }, + { + "name" : "target", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file to append to" + } + ], + "id" : 83894278, + "format" : "Appended {} to the end of {}", + "annotation" : "The File System component appended 2 files without error" + }, + { + "name" : "FileHandling.fileManager.CreateDirectorySucceeded", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "dirName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the directory" + } + ], + "id" : 83894280, + "format" : "Created directory {} successfully", + "annotation" : "The File System component created a new directory without error" + }, + { + "name" : "FileHandling.fileManager.RemoveDirectorySucceeded", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "dirName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the directory" + } + ], + "id" : 83894281, + "format" : "Removed directory {} successfully", + "annotation" : "The File System component deleted and existing directory without error" + }, + { + "name" : "FileHandling.fileManager.MoveFileSucceeded", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "sourceFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the source file" + }, + { + "name" : "destFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the destination file" + } + ], + "id" : 83894282, + "format" : "Moved file {} to file {} successfully", + "annotation" : "The File System component moved a file to a new location without error" + }, + { + "name" : "FileHandling.fileManager.RemoveFileSucceeded", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file" + } + ], + "id" : 83894283, + "format" : "Removed file {} successfully", + "annotation" : "The File System component deleted an existing file without error" + }, + { + "name" : "FileHandling.fileManager.AppendFileStarted", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "source", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file being read from" + }, + { + "name" : "target", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file to append to" + } + ], + "id" : 83894284, + "format" : "Appending file {} to the end of {}...", + "annotation" : "The File System component appended 2 files without error" + }, + { + "name" : "FileHandling.fileManager.CreateDirectoryStarted", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "dirName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the directory" + } + ], + "id" : 83894286, + "format" : "Creating directory {}...", + "annotation" : "The File System component began creating a new directory" + }, + { + "name" : "FileHandling.fileManager.RemoveDirectoryStarted", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "dirName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the directory" + } + ], + "id" : 83894287, + "format" : "Removing directory {}...", + "annotation" : "The File System component began deleting a directory" + }, + { + "name" : "FileHandling.fileManager.MoveFileStarted", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "sourceFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the source file" + }, + { + "name" : "destFileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the destination file" + } + ], + "id" : 83894288, + "format" : "Moving file {} to file {}...", + "annotation" : "The File System component began moving a file to a new location" + }, + { + "name" : "FileHandling.fileManager.RemoveFileStarted", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file" + } + ], + "id" : 83894289, + "format" : "Removing file {}...", + "annotation" : "The File System component began deleting an existing file" + }, + { + "name" : "FileHandling.fileManager.FileSizeSucceeded", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file" + }, + { + "name" : "size", + "type" : { + "name" : "FwSizeType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The size of the file in bytes" + } + ], + "id" : 83894290, + "format" : "The size of file {} is {} B", + "annotation" : "File size response" + }, + { + "name" : "FileHandling.fileManager.FileSizeError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file" + }, + { + "name" : "status", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The error status" + } + ], + "id" : 83894291, + "format" : "Failed to get the size of file {}, returned status {}", + "annotation" : "Failed to get file size" + }, + { + "name" : "FileHandling.fileManager.FileSizeStarted", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file" + } + ], + "id" : 83894292, + "format" : "Checking size of file {}...", + "annotation" : "Checking file size" + }, + { + "name" : "FileHandling.fileManager.ListDirectoryStarted", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "dirName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the directory" + } + ], + "id" : 83894293, + "format" : "Listing contents of directory {}...", + "annotation" : "Starting directory listing" + }, + { + "name" : "FileHandling.fileManager.ListDirectorySucceeded", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "dirName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the directory" + }, + { + "name" : "fileCount", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The number of files found" + } + ], + "id" : 83894294, + "format" : "Directory {} contains {} files", + "annotation" : "Directory listing completed successfully" + }, + { + "name" : "FileHandling.fileManager.ListDirectoryError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "dirName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the directory" + }, + { + "name" : "status", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The error status" + } + ], + "id" : 83894295, + "format" : "Failed to list directory {}, returned status {}", + "annotation" : "Failed to list directory" + }, + { + "name" : "FileHandling.fileManager.DirectoryListing", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "dirName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the directory" + }, + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file" + }, + { + "name" : "fileSize", + "type" : { + "name" : "FwSizeType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The size of the file in bytes" + } + ], + "id" : 83894296, + "format" : "Directory {}: {} ({} bytes)", + "annotation" : "Directory listing file entry" + }, + { + "name" : "FileHandling.fileManager.DirectoryListingSubdir", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "dirName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the directory" + }, + { + "name" : "subdirName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the subdirectory" + } + ], + "id" : 83894297, + "format" : "Directory {}: {}", + "annotation" : "Directory listing subdirectory entry" + }, + { + "name" : "FileHandling.fileManager.CalculateCrcStarted", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file being read from" + } + ], + "id" : 83894298, + "format" : "Started CRC calculation for file {}", + "annotation" : "CRC started" + }, + { + "name" : "FileHandling.fileManager.CalculateCrcFailed", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file being read from" + }, + { + "name" : "status", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The error status" + } + ], + "id" : 83894299, + "format" : "Failed CRC calculation for file {}, returned status {}", + "annotation" : "CRC failed" + }, + { + "name" : "FileHandling.fileManager.CalculateCrcSucceeded", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 240 + }, + "ref" : false, + "annotation" : "The name of the file being read from" + }, + { + "name" : "crc", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The computed CRC value" + } + ], + "id" : 83894300, + "format" : "{} has CRC value 0x{x}", + "annotation" : "CRC succeeded" + }, + { + "name" : "FileHandling.prmDb.PrmIdNotFound", + "severity" : "WARNING_LO", + "formalParams" : [ + { + "name" : "Id", + "type" : { + "name" : "FwPrmIdType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The parameter ID" + } + ], + "id" : 83898368, + "format" : "Parameter ID 0x{x} not found", + "annotation" : "Parameter ID not found in database.", + "throttle" : { + "count" : 5, + "every" : null + } + }, + { + "name" : "FileHandling.prmDb.PrmIdUpdated", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "Id", + "type" : { + "name" : "FwPrmIdType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The parameter ID" + } + ], + "id" : 83898369, + "format" : "Parameter ID 0x{x} updated", + "annotation" : "Parameter ID updated in database" + }, + { + "name" : "FileHandling.prmDb.PrmDbFull", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "Id", + "type" : { + "name" : "FwPrmIdType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The parameter ID" + } + ], + "id" : 83898370, + "format" : "Parameter DB full when adding ID 0x{x} ", + "annotation" : "Parameter database is full" + }, + { + "name" : "FileHandling.prmDb.PrmIdAdded", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "Id", + "type" : { + "name" : "FwPrmIdType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The parameter ID" + } + ], + "id" : 83898371, + "format" : "Parameter ID 0x{x} added", + "annotation" : "Parameter ID added to database" + }, + { + "name" : "FileHandling.prmDb.PrmFileWriteError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "stage", + "type" : { + "name" : "Svc.PrmDb.PrmWriteError", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The write stage" + }, + { + "name" : "record", + "type" : { + "name" : "I32", + "kind" : "integer", + "size" : 32, + "signed" : true + }, + "ref" : false, + "annotation" : "The record that had the failure" + }, + { + "name" : "error", + "type" : { + "name" : "I32", + "kind" : "integer", + "size" : 32, + "signed" : true + }, + "ref" : false, + "annotation" : "The error code" + } + ], + "id" : 83898372, + "format" : "Parameter write failed in stage {} with record {} and error {}", + "annotation" : "Failed to write parameter file" + }, + { + "name" : "FileHandling.prmDb.PrmFileSaveComplete", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The number of records saved" + } + ], + "id" : 83898373, + "format" : "Parameter file save completed. Wrote {} records.", + "annotation" : "Save of parameter file completed" + }, + { + "name" : "FileHandling.prmDb.PrmFileReadError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "stage", + "type" : { + "name" : "Svc.PrmDb.PrmReadError", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The read stage" + }, + { + "name" : "record", + "type" : { + "name" : "I32", + "kind" : "integer", + "size" : 32, + "signed" : true + }, + "ref" : false, + "annotation" : "The record that had the failure" + }, + { + "name" : "error", + "type" : { + "name" : "I32", + "kind" : "integer", + "size" : 32, + "signed" : true + }, + "ref" : false, + "annotation" : "The error code" + } + ], + "id" : 83898374, + "format" : "Parameter file read failed in stage {} with record {} and error {}", + "annotation" : "Failed to read parameter file" + }, + { + "name" : "FileHandling.prmDb.PrmFileLoadComplete", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "databaseString", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 256 + }, + "ref" : false, + "annotation" : "The database string" + }, + { + "name" : "recordsTotal", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The number of records total" + }, + { + "name" : "recordsAdded", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The number of new records added" + }, + { + "name" : "recordsUpdated", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The number of records updated" + } + ], + "id" : 83898375, + "format" : "Parameter file load completed. Database: {}, Records: {} ({} added and {} updated).", + "annotation" : "Load of parameter file completed" + }, + { + "name" : "FileHandling.prmDb.PrmDbCommitComplete", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + ], + "id" : 83898376, + "format" : "Parameter DB commit complete, staged updates are now active.", + "annotation" : "Committed staged parameter updates" + }, + { + "name" : "FileHandling.prmDb.PrmDbCopyAllComplete", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "databaseStringSrc", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 256 + }, + "ref" : false, + "annotation" : "The src database string" + }, + { + "name" : "databaseStringDest", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 256 + }, + "ref" : false, + "annotation" : "The dest database string" + } + ], + "id" : 83898377, + "format" : "All parameters copied. Source database: {}, Destination database: {}.", + "annotation" : "All parameters Copied from one DB to another" + }, + { + "name" : "FileHandling.prmDb.PrmDbFileLoadFailed", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 83898378, + "format" : "Parameter file load failed. Clearing staging database and abandoning parameter file load.", + "annotation" : "Parameter file load failed, not staging any update" + }, + { + "name" : "FileHandling.prmDb.PrmDbFileLoadInvalidAction", + "severity" : "WARNING_LO", + "formalParams" : [ + { + "name" : "currentState", + "type" : { + "name" : "Svc.PrmDb.PrmDbFileLoadState", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The current state" + }, + { + "name" : "attemptedAction", + "type" : { + "name" : "Svc.PrmDb.PrmLoadAction", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The invalid action attempted" + } + ], + "id" : 83898379, + "format" : "Invalid action during parameter file load. Current state: {}, Action (Invalid for current state): {}.", + "annotation" : "Invalid Action during parameter file load" + }, + { + "name" : "FileHandling.prmDb.PrmFileBadCrc", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "readCrc", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The read CRC" + }, + { + "name" : "compCrc", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The computed CRC" + } + ], + "id" : 83898380, + "format" : "Parameter file failed CRC. Read: 0x{x} Computed: 0x{x}", + "annotation" : "parameter file failed CRC" + }, + { + "name" : "Ref.rateGroup1Comp.RateGroupStarted", + "severity" : "DIAGNOSTIC", + "formalParams" : [ + ], + "id" : 268439552, + "format" : "Rate group started.", + "annotation" : "Informational event that rate group has started" + }, + { + "name" : "Ref.rateGroup1Comp.RateGroupCycleSlip", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "cycle", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The cycle where the cycle occurred" + } + ], + "id" : 268439553, + "format" : "Rate group cycle slipped on cycle {}", + "annotation" : "Warning event that rate group has had a cycle slip" + }, + { + "name" : "Ref.rateGroup2Comp.RateGroupStarted", + "severity" : "DIAGNOSTIC", + "formalParams" : [ + ], + "id" : 268443648, + "format" : "Rate group started.", + "annotation" : "Informational event that rate group has started" + }, + { + "name" : "Ref.rateGroup2Comp.RateGroupCycleSlip", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "cycle", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The cycle where the cycle occurred" + } + ], + "id" : 268443649, + "format" : "Rate group cycle slipped on cycle {}", + "annotation" : "Warning event that rate group has had a cycle slip" + }, + { + "name" : "Ref.rateGroup3Comp.RateGroupStarted", + "severity" : "DIAGNOSTIC", + "formalParams" : [ + ], + "id" : 268447744, + "format" : "Rate group started.", + "annotation" : "Informational event that rate group has started" + }, + { + "name" : "Ref.rateGroup3Comp.RateGroupCycleSlip", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "cycle", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The cycle where the cycle occurred" + } + ], + "id" : 268447745, + "format" : "Rate group cycle slipped on cycle {}", + "annotation" : "Warning event that rate group has had a cycle slip" + }, + { + "name" : "Ref.pingRcvr.PR_PingsDisabled", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + ], + "id" : 268451840, + "format" : "PingReceiver ping responses disabled", + "annotation" : "Disabled ping responses" + }, + { + "name" : "Ref.pingRcvr.PR_PingReceived", + "severity" : "DIAGNOSTIC", + "formalParams" : [ + { + "name" : "code", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "Ping code" + } + ], + "id" : 268451841, + "format" : "PingReceiver pinged with code {}", + "annotation" : "Got ping" + }, + { + "name" : "Ref.typeDemo.ChoiceEv", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "choice", + "type" : { + "name" : "Ref.Choice", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268455936, + "format" : "Choice: {}", + "annotation" : "Single choice event" + }, + { + "name" : "Ref.typeDemo.ChoicesEv", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "choices", + "type" : { + "name" : "Ref.ManyChoices", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268455937, + "format" : "Choices: {}", + "annotation" : "Multiple choice event via Array" + }, + { + "name" : "Ref.typeDemo.ExtraChoicesEv", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "choices", + "type" : { + "name" : "Ref.TooManyChoices", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268455938, + "format" : "Choices: {}", + "annotation" : "Too many choice event via Array" + }, + { + "name" : "Ref.typeDemo.ChoicePairEv", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "choices", + "type" : { + "name" : "Ref.ChoicePair", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268455939, + "format" : "Choices: {}", + "annotation" : "Multiple choice event via Structure" + }, + { + "name" : "Ref.typeDemo.ChoiceSlurryEv", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "choices", + "type" : { + "name" : "Ref.ChoiceSlurry", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268455940, + "format" : "Choices: {}", + "annotation" : "Multiple choice event via Complex Structure" + }, + { + "name" : "Ref.typeDemo.ChoicePrmEv", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "choice", + "type" : { + "name" : "Ref.Choice", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + }, + { + "name" : "validity", + "type" : { + "name" : "Fw.ParamValid", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268455941, + "format" : "CHOICE_PRM: {} with validity: {}", + "annotation" : "Single choice parameter event" + }, + { + "name" : "Ref.typeDemo.ChoicesPrmEv", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "choices", + "type" : { + "name" : "Ref.ManyChoices", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + }, + { + "name" : "validity", + "type" : { + "name" : "Fw.ParamValid", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268455942, + "format" : "CHOICES_PRM: {} with validity: {}", + "annotation" : "Multiple choice parameter event via Array" + }, + { + "name" : "Ref.typeDemo.ExtraChoicesPrmEv", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "choices", + "type" : { + "name" : "Ref.TooManyChoices", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + }, + { + "name" : "validity", + "type" : { + "name" : "Fw.ParamValid", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268455943, + "format" : "EXTRA_CHOICES_PRM: {} with validity: {}", + "annotation" : "Too many choice parameter event via Array" + }, + { + "name" : "Ref.typeDemo.ChoicePairPrmEv", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "choices", + "type" : { + "name" : "Ref.ChoicePair", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + }, + { + "name" : "validity", + "type" : { + "name" : "Fw.ParamValid", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268455944, + "format" : "CHOICE_PAIR_PRM: {} with validity: {}", + "annotation" : "Multiple choice parameter event via Structure" + }, + { + "name" : "Ref.typeDemo.ChoiceSlurryPrmEv", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "choices", + "type" : { + "name" : "Ref.ChoiceSlurry", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + }, + { + "name" : "validity", + "type" : { + "name" : "Fw.ParamValid", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268455945, + "format" : "GLUTTON_OF_CHOICE_PRM: {} with validity: {}", + "annotation" : "Multiple choice parameter event via Complex Structure" + }, + { + "name" : "Ref.typeDemo.FloatEv", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "float1", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "ref" : false + }, + { + "name" : "float2", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "ref" : false + }, + { + "name" : "float3", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "ref" : false + }, + { + "name" : "floats", + "type" : { + "name" : "Ref.FloatSet", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268455946, + "format" : "Floats: {} {} {} as a set: {}", + "annotation" : "A set of floats in an event" + }, + { + "name" : "Ref.typeDemo.ScalarStructEv", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "scalar_argument", + "type" : { + "name" : "Ref.ScalarStruct", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268455947, + "format" : "ScalarStruct: {}", + "annotation" : "Event for scalar struct" + }, + { + "name" : "Ref.cmdSeq.CS_SequenceLoaded", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The name of the sequence file" + } + ], + "id" : 268460032, + "format" : "Loaded sequence {}", + "annotation" : "Sequence file was successfully loaded." + }, + { + "name" : "Ref.cmdSeq.CS_SequenceCanceled", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The name of the sequence file" + } + ], + "id" : 268460033, + "format" : "Sequence file {} canceled", + "annotation" : "A command sequence was successfully canceled." + }, + { + "name" : "Ref.cmdSeq.CS_FileReadError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The name of the sequence file" + } + ], + "id" : 268460034, + "format" : "Error reading sequence file {}", + "annotation" : "The Sequence File Loader could not read the sequence file." + }, + { + "name" : "Ref.cmdSeq.CS_FileInvalid", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The name of the sequence file" + }, + { + "name" : "stage", + "type" : { + "name" : "Svc.CmdSequencer.FileReadStage", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The read stage" + }, + { + "name" : "error", + "type" : { + "name" : "I32", + "kind" : "integer", + "size" : 32, + "signed" : true + }, + "ref" : false, + "annotation" : "The error code" + } + ], + "id" : 268460035, + "format" : "Sequence file {} invalid. Stage: {} Error: {}", + "annotation" : "The sequence file format was invalid." + }, + { + "name" : "Ref.cmdSeq.CS_RecordInvalid", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The name of the sequence file" + }, + { + "name" : "recordNumber", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The record number" + }, + { + "name" : "error", + "type" : { + "name" : "I32", + "kind" : "integer", + "size" : 32, + "signed" : true + }, + "ref" : false, + "annotation" : "The error code" + } + ], + "id" : 268460036, + "format" : "Sequence file {}: Record {} invalid. Err: {}", + "annotation" : "The format of a command record was invalid." + }, + { + "name" : "Ref.cmdSeq.CS_FileSizeError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The name of the sequence file" + }, + { + "name" : "size", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "Invalid size" + } + ], + "id" : 268460037, + "format" : "Sequence file {} too large. Size: {}", + "annotation" : "The sequence file was too large." + }, + { + "name" : "Ref.cmdSeq.CS_FileNotFound", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The sequence file" + } + ], + "id" : 268460038, + "format" : "Sequence file {} not found.", + "annotation" : "The sequence file was not found" + }, + { + "name" : "Ref.cmdSeq.CS_FileCrcFailure", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The sequence file" + }, + { + "name" : "storedCRC", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The CRC stored in the file" + }, + { + "name" : "computedCRC", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The CRC computed over the file" + } + ], + "id" : 268460039, + "format" : "Sequence file {} had invalid CRC. Stored 0x{x}, Computed 0x{x}.", + "annotation" : "The sequence file validation failed" + }, + { + "name" : "Ref.cmdSeq.CS_CommandComplete", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The name of the sequence file" + }, + { + "name" : "recordNumber", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The record number of the command" + }, + { + "name" : "opCode", + "type" : { + "name" : "FwOpcodeType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The command opcode" + } + ], + "id" : 268460040, + "format" : "Sequence file {}: Command {} (opcode {}) complete", + "annotation" : "The Command Sequencer issued a command and received a success status in return." + }, + { + "name" : "Ref.cmdSeq.CS_SequenceComplete", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The name of the sequence file" + } + ], + "id" : 268460041, + "format" : "Sequence file {} complete", + "annotation" : "A command sequence successfully completed." + }, + { + "name" : "Ref.cmdSeq.CS_CommandError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The name of the sequence file" + }, + { + "name" : "recordNumber", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The record number" + }, + { + "name" : "opCode", + "type" : { + "name" : "FwOpcodeType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The opcode" + }, + { + "name" : "errorStatus", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The error status" + } + ], + "id" : 268460042, + "format" : "Sequence file {}: Command {} (opcode {}) completed with error {}", + "annotation" : "The Command Sequencer issued a command and received an error status in return." + }, + { + "name" : "Ref.cmdSeq.CS_InvalidMode", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268460043, + "format" : "Invalid mode", + "annotation" : "The Command Sequencer received a command that was invalid for its current mode." + }, + { + "name" : "Ref.cmdSeq.CS_RecordMismatch", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The name of the sequence file" + }, + { + "name" : "header_records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The number of records in the header" + }, + { + "name" : "extra_bytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The number of bytes beyond last record" + } + ], + "id" : 268460044, + "format" : "Sequence file {} header records mismatch: {} in header, found {} extra bytes.", + "annotation" : "Number of records in header doesn't match number in file" + }, + { + "name" : "Ref.cmdSeq.CS_TimeBaseMismatch", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The name of the sequence file" + }, + { + "name" : "time_base", + "type" : { + "name" : "U16", + "kind" : "integer", + "size" : 16, + "signed" : false + }, + "ref" : false, + "annotation" : "The current time" + }, + { + "name" : "seq_time_base", + "type" : { + "name" : "U16", + "kind" : "integer", + "size" : 16, + "signed" : false + }, + "ref" : false, + "annotation" : "The sequence time base" + } + ], + "id" : 268460045, + "format" : "Sequence file {}: Current time base doesn't match sequence time: base: {} seq: {}", + "annotation" : "The running time base doesn't match the time base in the sequence files" + }, + { + "name" : "Ref.cmdSeq.CS_TimeContextMismatch", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The name of the sequence file" + }, + { + "name" : "currTimeBase", + "type" : { + "name" : "U8", + "kind" : "integer", + "size" : 8, + "signed" : false + }, + "ref" : false, + "annotation" : "The current time base" + }, + { + "name" : "seqTimeBase", + "type" : { + "name" : "U8", + "kind" : "integer", + "size" : 8, + "signed" : false + }, + "ref" : false, + "annotation" : "The sequence time base" + } + ], + "id" : 268460046, + "format" : "Sequence file {}: Current time context doesn't match sequence context: base: {} seq: {}", + "annotation" : "The running time base doesn't match the time base in the sequence files" + }, + { + "name" : "Ref.cmdSeq.CS_PortSequenceStarted", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "filename", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The sequence file" + } + ], + "id" : 268460047, + "format" : "Local request for sequence {} started.", + "annotation" : "A local port request to run a sequence was started" + }, + { + "name" : "Ref.cmdSeq.CS_UnexpectedCompletion", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "opcode", + "type" : { + "name" : "FwOpcodeType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The reported opcode" + } + ], + "id" : 268460048, + "format" : "Command complete status received while no sequences active. Opcode: {}", + "annotation" : "A command status came back when no sequence was running" + }, + { + "name" : "Ref.cmdSeq.CS_ModeSwitched", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "mode", + "type" : { + "name" : "Svc.CmdSequencer.SeqMode", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The new mode" + } + ], + "id" : 268460049, + "format" : "Sequencer switched to {} step mode", + "annotation" : "Switched step mode" + }, + { + "name" : "Ref.cmdSeq.CS_NoSequenceActive", + "severity" : "WARNING_LO", + "formalParams" : [ + ], + "id" : 268460050, + "format" : "No sequence active.", + "annotation" : "A sequence related command came with no active sequence" + }, + { + "name" : "Ref.cmdSeq.CS_SequenceValid", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "filename", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The sequence file" + } + ], + "id" : 268460051, + "format" : "Sequence {} is valid.", + "annotation" : "A sequence passed validation" + }, + { + "name" : "Ref.cmdSeq.CS_SequenceTimeout", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "filename", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The sequence file" + }, + { + "name" : "command", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The command that timed out" + } + ], + "id" : 268460052, + "format" : "Sequence {} timed out on command {}", + "annotation" : "A sequence passed validation" + }, + { + "name" : "Ref.cmdSeq.CS_CmdStepped", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "filename", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The sequence file" + }, + { + "name" : "command", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The command that was stepped" + } + ], + "id" : 268460053, + "format" : "Sequence {} command {} stepped", + "annotation" : "A command in a sequence was stepped through" + }, + { + "name" : "Ref.cmdSeq.CS_CmdStarted", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "filename", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The sequence file" + } + ], + "id" : 268460054, + "format" : "Sequence {} started", + "annotation" : "A manual sequence was started" + }, + { + "name" : "Ref.cmdSeq.CS_JoinWaiting", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "filename", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The sequence file" + }, + { + "name" : "recordNumber", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The record number" + }, + { + "name" : "opCode", + "type" : { + "name" : "FwOpcodeType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false, + "annotation" : "The opcode" + } + ], + "id" : 268460055, + "format" : "Start waiting for sequence file {}: Command {} (opcode {}) to complete", + "annotation" : "Wait for the current running sequence file complete" + }, + { + "name" : "Ref.cmdSeq.CS_JoinWaitingNotComplete", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268460056, + "format" : "Still waiting for sequence file to complete", + "annotation" : "Cannot run new sequence when current sequence file is still running." + }, + { + "name" : "Ref.cmdSeq.CS_NoRecords", + "severity" : "WARNING_LO", + "formalParams" : [ + { + "name" : "fileName", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 60 + }, + "ref" : false, + "annotation" : "The name of the sequence file" + } + ], + "id" : 268460057, + "format" : "Sequence file {} has no records. Ignoring." + }, + { + "name" : "Ref.sendBuffComp.FirstPacketSent", + "severity" : "ACTIVITY_HI", + "formalParams" : [ + { + "name" : "id", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The ID argument" + } + ], + "id" : 268500992, + "format" : "First packet ID {} received", + "annotation" : "First packet send" + }, + { + "name" : "Ref.sendBuffComp.PacketErrorInserted", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "id", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The ID argument" + } + ], + "id" : 268500993, + "format" : "Inserted error in packet ID {}", + "annotation" : "Packet checksum error" + }, + { + "name" : "Ref.sendBuffComp.BuffSendParameterUpdated", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "id", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The ID argument" + } + ], + "id" : 268500994, + "format" : "BuffSend Parameter {} was updated", + "annotation" : "Report parameter update" + }, + { + "name" : "Ref.sendBuffComp.SendBuffFatal", + "severity" : "FATAL", + "formalParams" : [ + { + "name" : "arg1", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "First FATAL argument" + }, + { + "name" : "arg2", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "Second FATAL argument" + }, + { + "name" : "arg3", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "Second FATAL argument" + } + ], + "id" : 268500995, + "format" : "Test Fatal: {} {} {}", + "annotation" : "A test FATAL" + }, + { + "name" : "Ref.SG1.SettingsChanged", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "Frequency", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "Amplitude", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "ref" : false + }, + { + "name" : "Phase", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "ref" : false + }, + { + "name" : "SignalType", + "type" : { + "name" : "Ref.SignalType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268505088, + "format" : "Set Frequency(Hz) {}, Amplitude {f}, Phase {f}, Signal Type {}", + "annotation" : "Signal Generator Settings Changed" + }, + { + "name" : "Ref.SG1.DpStarted", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268505089, + "format" : "Writing {} DP records" + }, + { + "name" : "Ref.SG1.DpComplete", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "bytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268505090, + "format" : "Writing {} DP records {} bytes total" + }, + { + "name" : "Ref.SG1.DpRecordFull", + "severity" : "WARNING_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "bytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268505091, + "format" : "DP container full with {} records and {} bytes. Closing DP." + }, + { + "name" : "Ref.SG1.DpsNotConnected", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268505092, + "format" : "DP Ports not connected!" + }, + { + "name" : "Ref.SG1.DpMemoryFail", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268505093, + "format" : "Failed to acquire a DP buffer" + }, + { + "name" : "Ref.SG1.InSufficientDpRecords", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268505094, + "format" : "Need to request at least one record" + }, + { + "name" : "Ref.SG1.DpMemRequested", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "size", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268505095, + "format" : "Requesting {} bytes for DP" + }, + { + "name" : "Ref.SG1.DpMemReceived", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "size", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268505096, + "format" : "Received {} bytes for DP" + }, + { + "name" : "Ref.SG2.SettingsChanged", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "Frequency", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "Amplitude", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "ref" : false + }, + { + "name" : "Phase", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "ref" : false + }, + { + "name" : "SignalType", + "type" : { + "name" : "Ref.SignalType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268509184, + "format" : "Set Frequency(Hz) {}, Amplitude {f}, Phase {f}, Signal Type {}", + "annotation" : "Signal Generator Settings Changed" + }, + { + "name" : "Ref.SG2.DpStarted", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268509185, + "format" : "Writing {} DP records" + }, + { + "name" : "Ref.SG2.DpComplete", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "bytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268509186, + "format" : "Writing {} DP records {} bytes total" + }, + { + "name" : "Ref.SG2.DpRecordFull", + "severity" : "WARNING_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "bytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268509187, + "format" : "DP container full with {} records and {} bytes. Closing DP." + }, + { + "name" : "Ref.SG2.DpsNotConnected", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268509188, + "format" : "DP Ports not connected!" + }, + { + "name" : "Ref.SG2.DpMemoryFail", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268509189, + "format" : "Failed to acquire a DP buffer" + }, + { + "name" : "Ref.SG2.InSufficientDpRecords", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268509190, + "format" : "Need to request at least one record" + }, + { + "name" : "Ref.SG2.DpMemRequested", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "size", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268509191, + "format" : "Requesting {} bytes for DP" + }, + { + "name" : "Ref.SG2.DpMemReceived", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "size", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268509192, + "format" : "Received {} bytes for DP" + }, + { + "name" : "Ref.SG3.SettingsChanged", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "Frequency", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "Amplitude", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "ref" : false + }, + { + "name" : "Phase", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "ref" : false + }, + { + "name" : "SignalType", + "type" : { + "name" : "Ref.SignalType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268513280, + "format" : "Set Frequency(Hz) {}, Amplitude {f}, Phase {f}, Signal Type {}", + "annotation" : "Signal Generator Settings Changed" + }, + { + "name" : "Ref.SG3.DpStarted", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268513281, + "format" : "Writing {} DP records" + }, + { + "name" : "Ref.SG3.DpComplete", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "bytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268513282, + "format" : "Writing {} DP records {} bytes total" + }, + { + "name" : "Ref.SG3.DpRecordFull", + "severity" : "WARNING_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "bytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268513283, + "format" : "DP container full with {} records and {} bytes. Closing DP." + }, + { + "name" : "Ref.SG3.DpsNotConnected", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268513284, + "format" : "DP Ports not connected!" + }, + { + "name" : "Ref.SG3.DpMemoryFail", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268513285, + "format" : "Failed to acquire a DP buffer" + }, + { + "name" : "Ref.SG3.InSufficientDpRecords", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268513286, + "format" : "Need to request at least one record" + }, + { + "name" : "Ref.SG3.DpMemRequested", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "size", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268513287, + "format" : "Requesting {} bytes for DP" + }, + { + "name" : "Ref.SG3.DpMemReceived", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "size", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268513288, + "format" : "Received {} bytes for DP" + }, + { + "name" : "Ref.SG4.SettingsChanged", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "Frequency", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "Amplitude", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "ref" : false + }, + { + "name" : "Phase", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "ref" : false + }, + { + "name" : "SignalType", + "type" : { + "name" : "Ref.SignalType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268517376, + "format" : "Set Frequency(Hz) {}, Amplitude {f}, Phase {f}, Signal Type {}", + "annotation" : "Signal Generator Settings Changed" + }, + { + "name" : "Ref.SG4.DpStarted", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268517377, + "format" : "Writing {} DP records" + }, + { + "name" : "Ref.SG4.DpComplete", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "bytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268517378, + "format" : "Writing {} DP records {} bytes total" + }, + { + "name" : "Ref.SG4.DpRecordFull", + "severity" : "WARNING_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "bytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268517379, + "format" : "DP container full with {} records and {} bytes. Closing DP." + }, + { + "name" : "Ref.SG4.DpsNotConnected", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268517380, + "format" : "DP Ports not connected!" + }, + { + "name" : "Ref.SG4.DpMemoryFail", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268517381, + "format" : "Failed to acquire a DP buffer" + }, + { + "name" : "Ref.SG4.InSufficientDpRecords", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268517382, + "format" : "Need to request at least one record" + }, + { + "name" : "Ref.SG4.DpMemRequested", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "size", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268517383, + "format" : "Requesting {} bytes for DP" + }, + { + "name" : "Ref.SG4.DpMemReceived", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "size", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268517384, + "format" : "Received {} bytes for DP" + }, + { + "name" : "Ref.SG5.SettingsChanged", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "Frequency", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "Amplitude", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "ref" : false + }, + { + "name" : "Phase", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "ref" : false + }, + { + "name" : "SignalType", + "type" : { + "name" : "Ref.SignalType", + "kind" : "qualifiedIdentifier" + }, + "ref" : false + } + ], + "id" : 268521472, + "format" : "Set Frequency(Hz) {}, Amplitude {f}, Phase {f}, Signal Type {}", + "annotation" : "Signal Generator Settings Changed" + }, + { + "name" : "Ref.SG5.DpStarted", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268521473, + "format" : "Writing {} DP records" + }, + { + "name" : "Ref.SG5.DpComplete", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "bytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268521474, + "format" : "Writing {} DP records {} bytes total" + }, + { + "name" : "Ref.SG5.DpRecordFull", + "severity" : "WARNING_LO", + "formalParams" : [ + { + "name" : "records", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + }, + { + "name" : "bytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268521475, + "format" : "DP container full with {} records and {} bytes. Closing DP." + }, + { + "name" : "Ref.SG5.DpsNotConnected", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268521476, + "format" : "DP Ports not connected!" + }, + { + "name" : "Ref.SG5.DpMemoryFail", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268521477, + "format" : "Failed to acquire a DP buffer" + }, + { + "name" : "Ref.SG5.InSufficientDpRecords", + "severity" : "WARNING_HI", + "formalParams" : [ + ], + "id" : 268521478, + "format" : "Need to request at least one record" + }, + { + "name" : "Ref.SG5.DpMemRequested", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "size", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268521479, + "format" : "Requesting {} bytes for DP" + }, + { + "name" : "Ref.SG5.DpMemReceived", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "size", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false + } + ], + "id" : 268521480, + "format" : "Received {} bytes for DP" + }, + { + "name" : "Ref.recvBuffComp.FirstPacketReceived", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "id", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The ID argument" + } + ], + "id" : 268574720, + "format" : "First packet ID {} received", + "annotation" : "First packet received" + }, + { + "name" : "Ref.recvBuffComp.PacketChecksumError", + "severity" : "WARNING_HI", + "formalParams" : [ + { + "name" : "id", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The ID argument" + } + ], + "id" : 268574721, + "format" : "Packet ID {} had checksum error", + "annotation" : "Packet checksum error" + }, + { + "name" : "Ref.recvBuffComp.BuffRecvParameterUpdated", + "severity" : "ACTIVITY_LO", + "formalParams" : [ + { + "name" : "id", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "ref" : false, + "annotation" : "The ID argument" + } + ], + "id" : 268574722, + "format" : "BuffRecv Parameter {} was updated", + "annotation" : "Report parameter update" + } + ], + "telemetryChannels" : [ + { + "name" : "CdhCore.cmdDisp.CommandsDispatched", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 16777216, + "telemetryUpdate" : "on change", + "annotation" : "Number of commands dispatched" + }, + { + "name" : "CdhCore.cmdDisp.CommandErrors", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 16777217, + "telemetryUpdate" : "on change", + "annotation" : "Number of command errors" + }, + { + "name" : "CdhCore.cmdDisp.CommandsDropped", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 16777218, + "telemetryUpdate" : "on change", + "annotation" : "Number of commands drooped due to buffer overflow" + }, + { + "name" : "CdhCore.health.PingLateWarnings", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 16785408, + "telemetryUpdate" : "always", + "annotation" : "Number of overrun warnings" + }, + { + "name" : "CdhCore.version.FrameworkVersion", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "id" : 16789504, + "telemetryUpdate" : "always", + "annotation" : "Software framework version" + }, + { + "name" : "CdhCore.version.ProjectVersion", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "id" : 16789505, + "telemetryUpdate" : "always", + "annotation" : "Software project version" + }, + { + "name" : "CdhCore.version.CustomVersion01", + "type" : { + "name" : "Svc.CustomVersionDb", + "kind" : "qualifiedIdentifier" + }, + "id" : 16789506, + "telemetryUpdate" : "always", + "annotation" : "Custom Versions" + }, + { + "name" : "CdhCore.version.CustomVersion02", + "type" : { + "name" : "Svc.CustomVersionDb", + "kind" : "qualifiedIdentifier" + }, + "id" : 16789507, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.CustomVersion03", + "type" : { + "name" : "Svc.CustomVersionDb", + "kind" : "qualifiedIdentifier" + }, + "id" : 16789508, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.CustomVersion04", + "type" : { + "name" : "Svc.CustomVersionDb", + "kind" : "qualifiedIdentifier" + }, + "id" : 16789509, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.CustomVersion05", + "type" : { + "name" : "Svc.CustomVersionDb", + "kind" : "qualifiedIdentifier" + }, + "id" : 16789510, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.CustomVersion06", + "type" : { + "name" : "Svc.CustomVersionDb", + "kind" : "qualifiedIdentifier" + }, + "id" : 16789511, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.CustomVersion07", + "type" : { + "name" : "Svc.CustomVersionDb", + "kind" : "qualifiedIdentifier" + }, + "id" : 16789512, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.CustomVersion08", + "type" : { + "name" : "Svc.CustomVersionDb", + "kind" : "qualifiedIdentifier" + }, + "id" : 16789513, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.CustomVersion09", + "type" : { + "name" : "Svc.CustomVersionDb", + "kind" : "qualifiedIdentifier" + }, + "id" : 16789514, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.CustomVersion10", + "type" : { + "name" : "Svc.CustomVersionDb", + "kind" : "qualifiedIdentifier" + }, + "id" : 16789515, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.LibraryVersion01", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "id" : 16789516, + "telemetryUpdate" : "always", + "annotation" : "Library Versions" + }, + { + "name" : "CdhCore.version.LibraryVersion02", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "id" : 16789517, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.LibraryVersion03", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "id" : 16789518, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.LibraryVersion04", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "id" : 16789519, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.LibraryVersion05", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "id" : 16789520, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.LibraryVersion06", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "id" : 16789521, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.LibraryVersion07", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "id" : 16789522, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.LibraryVersion08", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "id" : 16789523, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.LibraryVersion09", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "id" : 16789524, + "telemetryUpdate" : "always" + }, + { + "name" : "CdhCore.version.LibraryVersion10", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 40 + }, + "id" : 16789525, + "telemetryUpdate" : "always" + }, + { + "name" : "ComCcsds.comQueue.comQueueDepth", + "type" : { + "name" : "Svc.ComQueueDepth", + "kind" : "qualifiedIdentifier" + }, + "id" : 33554432, + "telemetryUpdate" : "always", + "annotation" : "Depth of queues of Fw::ComBuffer type" + }, + { + "name" : "ComCcsds.comQueue.buffQueueDepth", + "type" : { + "name" : "Svc.BuffQueueDepth", + "kind" : "qualifiedIdentifier" + }, + "id" : 33554433, + "telemetryUpdate" : "always", + "annotation" : "Depth of queues of Fw::Buffer type" + }, + { + "name" : "ComCcsds.commsBufferManager.TotalBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 33562624, + "telemetryUpdate" : "on change", + "annotation" : "The total buffers allocated" + }, + { + "name" : "ComCcsds.commsBufferManager.CurrBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 33562625, + "telemetryUpdate" : "on change", + "annotation" : "The current number of allocated buffers" + }, + { + "name" : "ComCcsds.commsBufferManager.HiBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 33562626, + "telemetryUpdate" : "on change", + "annotation" : "The high water mark of allocated buffers" + }, + { + "name" : "ComCcsds.commsBufferManager.NoBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 33562627, + "telemetryUpdate" : "on change", + "annotation" : "The number of requests that couldn't return a buffer", + "limits" : { + "high" : { + "red" : 1 + } + } + }, + { + "name" : "ComCcsds.commsBufferManager.EmptyBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 33562628, + "telemetryUpdate" : "on change", + "annotation" : "The number of empty buffers returned", + "limits" : { + "high" : { + "red" : 1 + } + } + }, + { + "name" : "DataProducts.dpCat.CatalogDps", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67108864, + "telemetryUpdate" : "always", + "annotation" : "Number of data products in catalog" + }, + { + "name" : "DataProducts.dpCat.DpsSent", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67108865, + "telemetryUpdate" : "always", + "annotation" : "Number of data products sent" + }, + { + "name" : "DataProducts.dpMgr.NumSuccessfulAllocations", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67112960, + "telemetryUpdate" : "on change", + "annotation" : "The number of successful buffer allocations" + }, + { + "name" : "DataProducts.dpMgr.NumFailedAllocations", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67112961, + "telemetryUpdate" : "on change", + "annotation" : "The number of failed buffer allocations" + }, + { + "name" : "DataProducts.dpMgr.NumDataProducts", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67112962, + "telemetryUpdate" : "on change", + "annotation" : "Number of data products handled" + }, + { + "name" : "DataProducts.dpMgr.NumBytes", + "type" : { + "name" : "U64", + "kind" : "integer", + "size" : 64, + "signed" : false + }, + "id" : 67112963, + "telemetryUpdate" : "on change", + "annotation" : "Number of bytes handled" + }, + { + "name" : "DataProducts.dpWriter.NumBuffersReceived", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67117056, + "telemetryUpdate" : "on change", + "annotation" : "The number of buffers received" + }, + { + "name" : "DataProducts.dpWriter.NumBytesWritten", + "type" : { + "name" : "U64", + "kind" : "integer", + "size" : 64, + "signed" : false + }, + "id" : 67117057, + "telemetryUpdate" : "on change", + "annotation" : "The number of bytes written" + }, + { + "name" : "DataProducts.dpWriter.NumSuccessfulWrites", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67117058, + "telemetryUpdate" : "on change", + "annotation" : "The number of successful writes" + }, + { + "name" : "DataProducts.dpWriter.NumFailedWrites", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67117059, + "telemetryUpdate" : "on change", + "annotation" : "The number of failed writes" + }, + { + "name" : "DataProducts.dpWriter.NumErrors", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67117060, + "telemetryUpdate" : "on change", + "annotation" : "The number of errors" + }, + { + "name" : "DataProducts.dpBufferManager.TotalBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67121152, + "telemetryUpdate" : "on change", + "annotation" : "The total buffers allocated" + }, + { + "name" : "DataProducts.dpBufferManager.CurrBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67121153, + "telemetryUpdate" : "on change", + "annotation" : "The current number of allocated buffers" + }, + { + "name" : "DataProducts.dpBufferManager.HiBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67121154, + "telemetryUpdate" : "on change", + "annotation" : "The high water mark of allocated buffers" + }, + { + "name" : "DataProducts.dpBufferManager.NoBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67121155, + "telemetryUpdate" : "on change", + "annotation" : "The number of requests that couldn't return a buffer", + "limits" : { + "high" : { + "red" : 1 + } + } + }, + { + "name" : "DataProducts.dpBufferManager.EmptyBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 67121156, + "telemetryUpdate" : "on change", + "annotation" : "The number of empty buffers returned", + "limits" : { + "high" : { + "red" : 1 + } + } + }, + { + "name" : "DpCompression.dpZLibCompressorBufferManager.TotalBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 68165632, + "telemetryUpdate" : "on change", + "annotation" : "The total buffers allocated" + }, + { + "name" : "DpCompression.dpZLibCompressorBufferManager.CurrBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 68165633, + "telemetryUpdate" : "on change", + "annotation" : "The current number of allocated buffers" + }, + { + "name" : "DpCompression.dpZLibCompressorBufferManager.HiBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 68165634, + "telemetryUpdate" : "on change", + "annotation" : "The high water mark of allocated buffers" + }, + { + "name" : "DpCompression.dpZLibCompressorBufferManager.NoBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 68165635, + "telemetryUpdate" : "on change", + "annotation" : "The number of requests that couldn't return a buffer", + "limits" : { + "high" : { + "red" : 1 + } + } + }, + { + "name" : "DpCompression.dpZLibCompressorBufferManager.EmptyBuffs", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 68165636, + "telemetryUpdate" : "on change", + "annotation" : "The number of empty buffers returned", + "limits" : { + "high" : { + "red" : 1 + } + } + }, + { + "name" : "FileHandling.fileUplink.FilesReceived", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 83886080, + "telemetryUpdate" : "always", + "annotation" : "The total number of complete files received" + }, + { + "name" : "FileHandling.fileUplink.PacketsReceived", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 83886081, + "telemetryUpdate" : "always", + "annotation" : "The total number of packets received" + }, + { + "name" : "FileHandling.fileUplink.Warnings", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 83886082, + "telemetryUpdate" : "always", + "annotation" : "The total number of warnings issued" + }, + { + "name" : "FileHandling.fileDownlink.FilesSent", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 83890176, + "telemetryUpdate" : "always", + "annotation" : "The total number of files sent" + }, + { + "name" : "FileHandling.fileDownlink.PacketsSent", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 83890177, + "telemetryUpdate" : "always", + "annotation" : "The total number of packets sent" + }, + { + "name" : "FileHandling.fileDownlink.Warnings", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 83890178, + "telemetryUpdate" : "always", + "annotation" : "The total number of warnings" + }, + { + "name" : "FileHandling.fileManager.CommandsExecuted", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 83894272, + "telemetryUpdate" : "always", + "annotation" : "The total number of commands successfully executed" + }, + { + "name" : "FileHandling.fileManager.Errors", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 83894273, + "telemetryUpdate" : "always", + "annotation" : "The total number of errors" + }, + { + "name" : "Ref.blockDrv.BD_Cycles", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268435456, + "telemetryUpdate" : "always", + "annotation" : "Driver cycle count" + }, + { + "name" : "Ref.rateGroup1Comp.RgMaxTime", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268439552, + "telemetryUpdate" : "on change", + "format" : "{} us", + "annotation" : "Max execution time rate group" + }, + { + "name" : "Ref.rateGroup1Comp.RgCycleSlips", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268439553, + "telemetryUpdate" : "on change", + "annotation" : "Cycle slips for rate group" + }, + { + "name" : "Ref.rateGroup2Comp.RgMaxTime", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268443648, + "telemetryUpdate" : "on change", + "format" : "{} us", + "annotation" : "Max execution time rate group" + }, + { + "name" : "Ref.rateGroup2Comp.RgCycleSlips", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268443649, + "telemetryUpdate" : "on change", + "annotation" : "Cycle slips for rate group" + }, + { + "name" : "Ref.rateGroup3Comp.RgMaxTime", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268447744, + "telemetryUpdate" : "on change", + "format" : "{} us", + "annotation" : "Max execution time rate group" + }, + { + "name" : "Ref.rateGroup3Comp.RgCycleSlips", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268447745, + "telemetryUpdate" : "on change", + "annotation" : "Cycle slips for rate group" + }, + { + "name" : "Ref.pingRcvr.PR_NumPings", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268451840, + "telemetryUpdate" : "always", + "annotation" : "Number of pings received" + }, + { + "name" : "Ref.typeDemo.ChoiceCh", + "type" : { + "name" : "Ref.Choice", + "kind" : "qualifiedIdentifier" + }, + "id" : 268455936, + "telemetryUpdate" : "always", + "annotation" : "Single choice channel" + }, + { + "name" : "Ref.typeDemo.ChoicesCh", + "type" : { + "name" : "Ref.ManyChoices", + "kind" : "qualifiedIdentifier" + }, + "id" : 268455937, + "telemetryUpdate" : "always", + "annotation" : "Multiple choice channel via Array" + }, + { + "name" : "Ref.typeDemo.ExtraChoicesCh", + "type" : { + "name" : "Ref.TooManyChoices", + "kind" : "qualifiedIdentifier" + }, + "id" : 268455938, + "telemetryUpdate" : "always", + "annotation" : "Too many choice channel via Array" + }, + { + "name" : "Ref.typeDemo.ChoicePairCh", + "type" : { + "name" : "Ref.ChoicePair", + "kind" : "qualifiedIdentifier" + }, + "id" : 268455939, + "telemetryUpdate" : "always", + "annotation" : "Multiple choice channel via Structure" + }, + { + "name" : "Ref.typeDemo.ChoiceSlurryCh", + "type" : { + "name" : "Ref.ChoiceSlurry", + "kind" : "qualifiedIdentifier" + }, + "id" : 268455940, + "telemetryUpdate" : "always", + "annotation" : "Multiple choice channel via Complex Structure" + }, + { + "name" : "Ref.typeDemo.Float1Ch", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268455941, + "telemetryUpdate" : "always", + "annotation" : "Float output channel 1" + }, + { + "name" : "Ref.typeDemo.Float2Ch", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268455942, + "telemetryUpdate" : "always", + "annotation" : "Float output channel 2" + }, + { + "name" : "Ref.typeDemo.Float3Ch", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268455943, + "telemetryUpdate" : "always", + "annotation" : "Float output channel 3" + }, + { + "name" : "Ref.typeDemo.FloatSet", + "type" : { + "name" : "Ref.FloatSet", + "kind" : "qualifiedIdentifier" + }, + "id" : 268455944, + "telemetryUpdate" : "always", + "annotation" : "Float set output channel" + }, + { + "name" : "Ref.typeDemo.ScalarStructCh", + "type" : { + "name" : "Ref.ScalarStruct", + "kind" : "qualifiedIdentifier" + }, + "id" : 268455945, + "telemetryUpdate" : "always", + "annotation" : "Scalar struct channel" + }, + { + "name" : "Ref.typeDemo.ScalarU8Ch", + "type" : { + "name" : "U8", + "kind" : "integer", + "size" : 8, + "signed" : false + }, + "id" : 268455946, + "telemetryUpdate" : "always", + "annotation" : "Scalar U8 channel" + }, + { + "name" : "Ref.typeDemo.ScalarU16Ch", + "type" : { + "name" : "U16", + "kind" : "integer", + "size" : 16, + "signed" : false + }, + "id" : 268455947, + "telemetryUpdate" : "always", + "annotation" : "Scalar U16 channel" + }, + { + "name" : "Ref.typeDemo.ScalarU32Ch", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268455948, + "telemetryUpdate" : "always", + "annotation" : "Scalar U32 channel" + }, + { + "name" : "Ref.typeDemo.ScalarU64Ch", + "type" : { + "name" : "U64", + "kind" : "integer", + "size" : 64, + "signed" : false + }, + "id" : 268455949, + "telemetryUpdate" : "always", + "annotation" : "Scalar U64 channel" + }, + { + "name" : "Ref.typeDemo.ScalarI8Ch", + "type" : { + "name" : "I8", + "kind" : "integer", + "size" : 8, + "signed" : true + }, + "id" : 268455950, + "telemetryUpdate" : "always", + "annotation" : "Scalar I8 channel" + }, + { + "name" : "Ref.typeDemo.ScalarI16Ch", + "type" : { + "name" : "I16", + "kind" : "integer", + "size" : 16, + "signed" : true + }, + "id" : 268455951, + "telemetryUpdate" : "always", + "annotation" : "Scalar I16 channel" + }, + { + "name" : "Ref.typeDemo.ScalarI32Ch", + "type" : { + "name" : "I32", + "kind" : "integer", + "size" : 32, + "signed" : true + }, + "id" : 268455952, + "telemetryUpdate" : "always", + "annotation" : "Scalar I32 channel" + }, + { + "name" : "Ref.typeDemo.ScalarI64Ch", + "type" : { + "name" : "I64", + "kind" : "integer", + "size" : 64, + "signed" : true + }, + "id" : 268455953, + "telemetryUpdate" : "always", + "annotation" : "Scalar I64 channel" + }, + { + "name" : "Ref.typeDemo.ScalarF32Ch", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268455954, + "telemetryUpdate" : "always", + "annotation" : "Scalar F32 channel" + }, + { + "name" : "Ref.typeDemo.ScalarF64Ch", + "type" : { + "name" : "F64", + "kind" : "float", + "size" : 64 + }, + "id" : 268455955, + "telemetryUpdate" : "always", + "annotation" : "Scalar F64 channel" + }, + { + "name" : "Ref.cmdSeq.CS_LoadCommands", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268460032, + "telemetryUpdate" : "always", + "annotation" : "The number of Load commands executed" + }, + { + "name" : "Ref.cmdSeq.CS_CancelCommands", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268460033, + "telemetryUpdate" : "always", + "annotation" : "The number of Cancel commands executed" + }, + { + "name" : "Ref.cmdSeq.CS_Errors", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268460034, + "telemetryUpdate" : "always", + "annotation" : "The number of errors that have occurred" + }, + { + "name" : "Ref.cmdSeq.CS_CommandsExecuted", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268460035, + "telemetryUpdate" : "always", + "annotation" : "The number of commands executed across all sequences." + }, + { + "name" : "Ref.cmdSeq.CS_SequencesCompleted", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268460036, + "telemetryUpdate" : "always", + "annotation" : "The number of sequences completed." + }, + { + "name" : "Ref.sendBuffComp.PacketsSent", + "type" : { + "name" : "U64", + "kind" : "integer", + "size" : 64, + "signed" : false + }, + "id" : 268500992, + "telemetryUpdate" : "always", + "annotation" : "Number of packets sent" + }, + { + "name" : "Ref.sendBuffComp.NumErrorsInjected", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268500993, + "telemetryUpdate" : "on change", + "annotation" : "Number of errors injected" + }, + { + "name" : "Ref.sendBuffComp.Parameter3", + "type" : { + "name" : "U8", + "kind" : "integer", + "size" : 8, + "signed" : false + }, + "id" : 268500994, + "telemetryUpdate" : "on change", + "annotation" : "Readback of Parameter3" + }, + { + "name" : "Ref.sendBuffComp.Parameter4", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268500995, + "telemetryUpdate" : "on change", + "annotation" : "Readback of Parameter4" + }, + { + "name" : "Ref.sendBuffComp.SendState", + "type" : { + "name" : "Ref.SendBuff.ActiveState", + "kind" : "qualifiedIdentifier" + }, + "id" : 268500996, + "telemetryUpdate" : "always", + "annotation" : "Readback of Parameter4" + }, + { + "name" : "Ref.SG1.Type", + "type" : { + "name" : "Ref.SignalType", + "kind" : "qualifiedIdentifier" + }, + "id" : 268505088, + "telemetryUpdate" : "always", + "annotation" : "Type of the output signal: SINE, TRIANGLE, etc." + }, + { + "name" : "Ref.SG1.Output", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268505089, + "telemetryUpdate" : "always", + "format" : "{.4f}", + "annotation" : "Single Y value of the output" + }, + { + "name" : "Ref.SG1.PairOutput", + "type" : { + "name" : "Ref.SignalPair", + "kind" : "qualifiedIdentifier" + }, + "id" : 268505090, + "telemetryUpdate" : "always", + "annotation" : "Single (time, value) pair of the signal" + }, + { + "name" : "Ref.SG1.History", + "type" : { + "name" : "Ref.SignalSet", + "kind" : "qualifiedIdentifier" + }, + "id" : 268505091, + "telemetryUpdate" : "always", + "annotation" : "Last 10 Y values of the signal" + }, + { + "name" : "Ref.SG1.PairHistory", + "type" : { + "name" : "Ref.SignalPairSet", + "kind" : "qualifiedIdentifier" + }, + "id" : 268505092, + "telemetryUpdate" : "always", + "annotation" : "Last 10 (time, value) pairs of the signal" + }, + { + "name" : "Ref.SG1.Info", + "type" : { + "name" : "Ref.SignalInfo", + "kind" : "qualifiedIdentifier" + }, + "id" : 268505093, + "telemetryUpdate" : "always", + "annotation" : "Composite field of signal information, containing histories, pairs etc" + }, + { + "name" : "Ref.SG1.DpBytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268505094, + "telemetryUpdate" : "always", + "annotation" : "DP bytes written" + }, + { + "name" : "Ref.SG1.DpRecords", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268505095, + "telemetryUpdate" : "always", + "annotation" : "DP records written" + }, + { + "name" : "Ref.SG2.Type", + "type" : { + "name" : "Ref.SignalType", + "kind" : "qualifiedIdentifier" + }, + "id" : 268509184, + "telemetryUpdate" : "always", + "annotation" : "Type of the output signal: SINE, TRIANGLE, etc." + }, + { + "name" : "Ref.SG2.Output", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268509185, + "telemetryUpdate" : "always", + "format" : "{.4f}", + "annotation" : "Single Y value of the output" + }, + { + "name" : "Ref.SG2.PairOutput", + "type" : { + "name" : "Ref.SignalPair", + "kind" : "qualifiedIdentifier" + }, + "id" : 268509186, + "telemetryUpdate" : "always", + "annotation" : "Single (time, value) pair of the signal" + }, + { + "name" : "Ref.SG2.History", + "type" : { + "name" : "Ref.SignalSet", + "kind" : "qualifiedIdentifier" + }, + "id" : 268509187, + "telemetryUpdate" : "always", + "annotation" : "Last 10 Y values of the signal" + }, + { + "name" : "Ref.SG2.PairHistory", + "type" : { + "name" : "Ref.SignalPairSet", + "kind" : "qualifiedIdentifier" + }, + "id" : 268509188, + "telemetryUpdate" : "always", + "annotation" : "Last 10 (time, value) pairs of the signal" + }, + { + "name" : "Ref.SG2.Info", + "type" : { + "name" : "Ref.SignalInfo", + "kind" : "qualifiedIdentifier" + }, + "id" : 268509189, + "telemetryUpdate" : "always", + "annotation" : "Composite field of signal information, containing histories, pairs etc" + }, + { + "name" : "Ref.SG2.DpBytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268509190, + "telemetryUpdate" : "always", + "annotation" : "DP bytes written" + }, + { + "name" : "Ref.SG2.DpRecords", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268509191, + "telemetryUpdate" : "always", + "annotation" : "DP records written" + }, + { + "name" : "Ref.SG3.Type", + "type" : { + "name" : "Ref.SignalType", + "kind" : "qualifiedIdentifier" + }, + "id" : 268513280, + "telemetryUpdate" : "always", + "annotation" : "Type of the output signal: SINE, TRIANGLE, etc." + }, + { + "name" : "Ref.SG3.Output", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268513281, + "telemetryUpdate" : "always", + "format" : "{.4f}", + "annotation" : "Single Y value of the output" + }, + { + "name" : "Ref.SG3.PairOutput", + "type" : { + "name" : "Ref.SignalPair", + "kind" : "qualifiedIdentifier" + }, + "id" : 268513282, + "telemetryUpdate" : "always", + "annotation" : "Single (time, value) pair of the signal" + }, + { + "name" : "Ref.SG3.History", + "type" : { + "name" : "Ref.SignalSet", + "kind" : "qualifiedIdentifier" + }, + "id" : 268513283, + "telemetryUpdate" : "always", + "annotation" : "Last 10 Y values of the signal" + }, + { + "name" : "Ref.SG3.PairHistory", + "type" : { + "name" : "Ref.SignalPairSet", + "kind" : "qualifiedIdentifier" + }, + "id" : 268513284, + "telemetryUpdate" : "always", + "annotation" : "Last 10 (time, value) pairs of the signal" + }, + { + "name" : "Ref.SG3.Info", + "type" : { + "name" : "Ref.SignalInfo", + "kind" : "qualifiedIdentifier" + }, + "id" : 268513285, + "telemetryUpdate" : "always", + "annotation" : "Composite field of signal information, containing histories, pairs etc" + }, + { + "name" : "Ref.SG3.DpBytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268513286, + "telemetryUpdate" : "always", + "annotation" : "DP bytes written" + }, + { + "name" : "Ref.SG3.DpRecords", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268513287, + "telemetryUpdate" : "always", + "annotation" : "DP records written" + }, + { + "name" : "Ref.SG4.Type", + "type" : { + "name" : "Ref.SignalType", + "kind" : "qualifiedIdentifier" + }, + "id" : 268517376, + "telemetryUpdate" : "always", + "annotation" : "Type of the output signal: SINE, TRIANGLE, etc." + }, + { + "name" : "Ref.SG4.Output", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268517377, + "telemetryUpdate" : "always", + "format" : "{.4f}", + "annotation" : "Single Y value of the output" + }, + { + "name" : "Ref.SG4.PairOutput", + "type" : { + "name" : "Ref.SignalPair", + "kind" : "qualifiedIdentifier" + }, + "id" : 268517378, + "telemetryUpdate" : "always", + "annotation" : "Single (time, value) pair of the signal" + }, + { + "name" : "Ref.SG4.History", + "type" : { + "name" : "Ref.SignalSet", + "kind" : "qualifiedIdentifier" + }, + "id" : 268517379, + "telemetryUpdate" : "always", + "annotation" : "Last 10 Y values of the signal" + }, + { + "name" : "Ref.SG4.PairHistory", + "type" : { + "name" : "Ref.SignalPairSet", + "kind" : "qualifiedIdentifier" + }, + "id" : 268517380, + "telemetryUpdate" : "always", + "annotation" : "Last 10 (time, value) pairs of the signal" + }, + { + "name" : "Ref.SG4.Info", + "type" : { + "name" : "Ref.SignalInfo", + "kind" : "qualifiedIdentifier" + }, + "id" : 268517381, + "telemetryUpdate" : "always", + "annotation" : "Composite field of signal information, containing histories, pairs etc" + }, + { + "name" : "Ref.SG4.DpBytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268517382, + "telemetryUpdate" : "always", + "annotation" : "DP bytes written" + }, + { + "name" : "Ref.SG4.DpRecords", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268517383, + "telemetryUpdate" : "always", + "annotation" : "DP records written" + }, + { + "name" : "Ref.SG5.Type", + "type" : { + "name" : "Ref.SignalType", + "kind" : "qualifiedIdentifier" + }, + "id" : 268521472, + "telemetryUpdate" : "always", + "annotation" : "Type of the output signal: SINE, TRIANGLE, etc." + }, + { + "name" : "Ref.SG5.Output", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268521473, + "telemetryUpdate" : "always", + "format" : "{.4f}", + "annotation" : "Single Y value of the output" + }, + { + "name" : "Ref.SG5.PairOutput", + "type" : { + "name" : "Ref.SignalPair", + "kind" : "qualifiedIdentifier" + }, + "id" : 268521474, + "telemetryUpdate" : "always", + "annotation" : "Single (time, value) pair of the signal" + }, + { + "name" : "Ref.SG5.History", + "type" : { + "name" : "Ref.SignalSet", + "kind" : "qualifiedIdentifier" + }, + "id" : 268521475, + "telemetryUpdate" : "always", + "annotation" : "Last 10 Y values of the signal" + }, + { + "name" : "Ref.SG5.PairHistory", + "type" : { + "name" : "Ref.SignalPairSet", + "kind" : "qualifiedIdentifier" + }, + "id" : 268521476, + "telemetryUpdate" : "always", + "annotation" : "Last 10 (time, value) pairs of the signal" + }, + { + "name" : "Ref.SG5.Info", + "type" : { + "name" : "Ref.SignalInfo", + "kind" : "qualifiedIdentifier" + }, + "id" : 268521477, + "telemetryUpdate" : "always", + "annotation" : "Composite field of signal information, containing histories, pairs etc" + }, + { + "name" : "Ref.SG5.DpBytes", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268521478, + "telemetryUpdate" : "always", + "annotation" : "DP bytes written" + }, + { + "name" : "Ref.SG5.DpRecords", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268521479, + "telemetryUpdate" : "always", + "annotation" : "DP records written" + }, + { + "name" : "Ref.recvBuffComp.PktState", + "type" : { + "name" : "Ref.PacketStat", + "kind" : "qualifiedIdentifier" + }, + "id" : 268574720, + "telemetryUpdate" : "always", + "annotation" : "Packet Statistics" + }, + { + "name" : "Ref.recvBuffComp.Sensor1", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268574721, + "telemetryUpdate" : "always", + "format" : "{.2f}V", + "annotation" : "Value of Sensor1" + }, + { + "name" : "Ref.recvBuffComp.Sensor2", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268574722, + "telemetryUpdate" : "always", + "annotation" : "Value of Sensor3" + }, + { + "name" : "Ref.recvBuffComp.Parameter1", + "type" : { + "name" : "U32", + "kind" : "integer", + "size" : 32, + "signed" : false + }, + "id" : 268574723, + "telemetryUpdate" : "on change", + "annotation" : "Readback of Parameter1" + }, + { + "name" : "Ref.recvBuffComp.Parameter2", + "type" : { + "name" : "I16", + "kind" : "integer", + "size" : 16, + "signed" : true + }, + "id" : 268574724, + "telemetryUpdate" : "on change", + "annotation" : "Readback of Parameter2", + "limits" : { + "high" : { + "red" : 3, + "orange" : 2, + "yellow" : 1 + }, + "low" : { + "red" : -3, + "orange" : -2, + "yellow" : -1 + } + } + }, + { + "name" : "Ref.systemResources.MEMORY_TOTAL", + "type" : { + "name" : "U64", + "kind" : "integer", + "size" : 64, + "signed" : false + }, + "id" : 268578816, + "telemetryUpdate" : "always", + "format" : "{} KB", + "annotation" : "Total system memory in KB" + }, + { + "name" : "Ref.systemResources.MEMORY_USED", + "type" : { + "name" : "U64", + "kind" : "integer", + "size" : 64, + "signed" : false + }, + "id" : 268578817, + "telemetryUpdate" : "always", + "format" : "{} KB", + "annotation" : "System memory used in KB" + }, + { + "name" : "Ref.systemResources.NON_VOLATILE_TOTAL", + "type" : { + "name" : "U64", + "kind" : "integer", + "size" : 64, + "signed" : false + }, + "id" : 268578818, + "telemetryUpdate" : "always", + "format" : "{} KB", + "annotation" : "System non-volatile available in KB" + }, + { + "name" : "Ref.systemResources.NON_VOLATILE_FREE", + "type" : { + "name" : "U64", + "kind" : "integer", + "size" : 64, + "signed" : false + }, + "id" : 268578819, + "telemetryUpdate" : "always", + "format" : "{} KB", + "annotation" : "System non-volatile available in KB" + }, + { + "name" : "Ref.systemResources.CPU", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578820, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_00", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578821, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_01", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578822, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_02", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578823, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_03", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578824, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_04", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578825, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_05", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578826, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_06", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578827, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_07", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578828, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_08", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578829, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_09", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578830, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_10", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578831, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_11", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578832, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_12", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578833, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_13", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578834, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_14", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578835, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + }, + { + "name" : "Ref.systemResources.CPU_15", + "type" : { + "name" : "F32", + "kind" : "float", + "size" : 32 + }, + "id" : 268578836, + "telemetryUpdate" : "always", + "format" : "{.2f} percent", + "annotation" : "System's CPU Percentage" + } + ], + "records" : [ + { + "name" : "Ref.dpDemo.ColorInfoStructRecord", + "type" : { + "name" : "Ref.DpDemo.ColorInfoStruct", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 2576, + "annotation" : "Data product record - struct record" + }, + { + "name" : "Ref.dpDemo.ColorEnumRecord", + "type" : { + "name" : "Ref.DpDemo.ColorEnum", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 2577, + "annotation" : "Data product record - enum" + }, + { + "name" : "Ref.dpDemo.StringRecord", + "type" : { + "name" : "Ref.DpDemo.StringAlias", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 2578, + "annotation" : "Data product record - string" + }, + { + "name" : "Ref.dpDemo.BooleanRecord", + "type" : { + "name" : "Ref.DpDemo.BoolAlias", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 2579, + "annotation" : "Data product record - boolean" + }, + { + "name" : "Ref.dpDemo.I32Record", + "type" : { + "name" : "Ref.DpDemo.I32Alias", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 2580, + "annotation" : "Data product record - I32" + }, + { + "name" : "Ref.dpDemo.F64Record", + "type" : { + "name" : "Ref.DpDemo.F64Alias", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 2581, + "annotation" : "Data product record - F64" + }, + { + "name" : "Ref.dpDemo.U32ArrayRecord", + "type" : { + "name" : "Ref.DpDemo.U32Array", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 2582, + "annotation" : "Data product record - U32 array record" + }, + { + "name" : "Ref.dpDemo.F32ArrayRecord", + "type" : { + "name" : "Ref.DpDemo.F32Array", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 2583, + "annotation" : "Data product record - F32 array record" + }, + { + "name" : "Ref.dpDemo.BooleanArrayRecord", + "type" : { + "name" : "Ref.DpDemo.BooleanArray", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 2584, + "annotation" : "Data product record - boolean array record" + }, + { + "name" : "Ref.dpDemo.EnumArrayRecord", + "type" : { + "name" : "Ref.DpDemo.EnumArray", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 2585, + "annotation" : "Data product record - enum array record" + }, + { + "name" : "Ref.dpDemo.StringArrayRecord", + "type" : { + "name" : "string", + "kind" : "string", + "size" : 80 + }, + "array" : true, + "id" : 2586, + "annotation" : "Data product record - string array record" + }, + { + "name" : "Ref.dpDemo.StructArrayRecord", + "type" : { + "name" : "Ref.DpDemo.StructWithStringMembers", + "kind" : "qualifiedIdentifier" + }, + "array" : true, + "id" : 2587, + "annotation" : "Data product record - array record (structs)" + }, + { + "name" : "Ref.dpDemo.ArrayArrayRecord", + "type" : { + "name" : "Ref.DpDemo.StringArray", + "kind" : "qualifiedIdentifier" + }, + "array" : true, + "id" : 2588, + "annotation" : "Data product record - array record (arrays)" + }, + { + "name" : "Ref.dpDemo.ArrayOfStringArrayRecord", + "type" : { + "name" : "Ref.DpDemo.ArrayOfStringArray", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 2589, + "annotation" : "Data product record - array record (string arrays)" + }, + { + "name" : "Ref.dpDemo.StructWithEverythingRecord", + "type" : { + "name" : "Ref.DpDemo.StructWithEverything", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 2590, + "annotation" : "Data product record - struct record" + }, + { + "name" : "Ref.dpDemo.ArrayOfStructsRecord", + "type" : { + "name" : "Ref.DpDemo.ArrayOfStructs", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 2591, + "annotation" : "Data product record - array of structs" + }, + { + "name" : "DpCompression.dpCompressProc.CompressionRecord", + "type" : { + "name" : "U8", + "kind" : "integer", + "size" : 8, + "signed" : false + }, + "array" : true, + "id" : 68157440, + "annotation" : "Record ID used to mark compressed records in a data product" + }, + { + "name" : "Ref.SG1.DataRecord", + "type" : { + "name" : "Ref.SignalInfo", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 268505088, + "annotation" : "Signal generation data product record" + }, + { + "name" : "Ref.SG2.DataRecord", + "type" : { + "name" : "Ref.SignalInfo", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 268509184, + "annotation" : "Signal generation data product record" + }, + { + "name" : "Ref.SG3.DataRecord", + "type" : { + "name" : "Ref.SignalInfo", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 268513280, + "annotation" : "Signal generation data product record" + }, + { + "name" : "Ref.SG4.DataRecord", + "type" : { + "name" : "Ref.SignalInfo", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 268517376, + "annotation" : "Signal generation data product record" + }, + { + "name" : "Ref.SG5.DataRecord", + "type" : { + "name" : "Ref.SignalInfo", + "kind" : "qualifiedIdentifier" + }, + "array" : false, + "id" : 268521472, + "annotation" : "Signal generation data product record" + } + ], + "containers" : [ + { + "name" : "Ref.dpDemo.DpDemoContainer", + "id" : 2576, + "defaultPriority" : 10, + "annotation" : "Data product container" + }, + { + "name" : "DpCompression.dpCompressProc.Dummy", + "id" : 68157440, + "defaultPriority" : 0, + "annotation" : "Dummy container needed because a Record ID is defined" + }, + { + "name" : "Ref.SG1.DataContainer", + "id" : 268505088, + "defaultPriority" : 10, + "annotation" : "Data product container" + }, + { + "name" : "Ref.SG2.DataContainer", + "id" : 268509184, + "defaultPriority" : 10, + "annotation" : "Data product container" + }, + { + "name" : "Ref.SG3.DataContainer", + "id" : 268513280, + "defaultPriority" : 10, + "annotation" : "Data product container" + }, + { + "name" : "Ref.SG4.DataContainer", + "id" : 268517376, + "defaultPriority" : 10, + "annotation" : "Data product container" + }, + { + "name" : "Ref.SG5.DataContainer", + "id" : 268521472, + "defaultPriority" : 10, + "annotation" : "Data product container" + } + ], + "telemetryPacketSets" : [ + { + "name" : "RefPackets", + "members" : [ + { + "name" : "SystemRes1", + "id" : 5, + "group" : 2, + "members" : [ + "Ref.systemResources.MEMORY_TOTAL", + "Ref.systemResources.MEMORY_USED", + "Ref.systemResources.NON_VOLATILE_TOTAL", + "Ref.systemResources.NON_VOLATILE_FREE" + ] + }, + { + "name" : "SigGen1Info", + "id" : 10, + "group" : 2, + "members" : [ + "Ref.SG1.Info" + ] + }, + { + "name" : "SigGen5Info", + "id" : 14, + "group" : 2, + "members" : [ + "Ref.SG5.Info" + ] + }, + { + "name" : "CDH", + "id" : 1, + "group" : 1, + "members" : [ + "CdhCore.cmdDisp.CommandsDispatched", + "FileHandling.fileUplink.FilesReceived", + "FileHandling.fileUplink.PacketsReceived", + "FileHandling.fileDownlink.FilesSent", + "FileHandling.fileDownlink.PacketsSent", + "FileHandling.fileManager.CommandsExecuted", + "Ref.cmdSeq.CS_LoadCommands", + "Ref.cmdSeq.CS_CancelCommands", + "Ref.cmdSeq.CS_CommandsExecuted", + "Ref.cmdSeq.CS_SequencesCompleted", + "ComCcsds.comQueue.comQueueDepth", + "ComCcsds.comQueue.buffQueueDepth", + "ComCcsds.commsBufferManager.TotalBuffs", + "ComCcsds.commsBufferManager.CurrBuffs", + "ComCcsds.commsBufferManager.HiBuffs", + "Ref.rateGroup1Comp.RgMaxTime", + "Ref.rateGroup2Comp.RgMaxTime", + "Ref.rateGroup3Comp.RgMaxTime" + ] + }, + { + "name" : "SystemRes3", + "id" : 6, + "group" : 2, + "members" : [ + "Ref.systemResources.CPU", + "Ref.systemResources.CPU_00", + "Ref.systemResources.CPU_01", + "Ref.systemResources.CPU_02", + "Ref.systemResources.CPU_03", + "Ref.systemResources.CPU_04", + "Ref.systemResources.CPU_05", + "Ref.systemResources.CPU_06", + "Ref.systemResources.CPU_07", + "Ref.systemResources.CPU_08", + "Ref.systemResources.CPU_09", + "Ref.systemResources.CPU_10", + "Ref.systemResources.CPU_11", + "Ref.systemResources.CPU_12", + "Ref.systemResources.CPU_13", + "Ref.systemResources.CPU_14", + "Ref.systemResources.CPU_15" + ] + }, + { + "name" : "SigGen4Info", + "id" : 13, + "group" : 2, + "members" : [ + "Ref.SG4.Info" + ] + }, + { + "name" : "CDHErrors", + "id" : 2, + "group" : 1, + "members" : [ + "CdhCore.health.PingLateWarnings", + "CdhCore.cmdDisp.CommandsDropped", + "FileHandling.fileUplink.Warnings", + "FileHandling.fileDownlink.Warnings", + "FileHandling.fileManager.Errors", + "Ref.cmdSeq.CS_Errors", + "ComCcsds.commsBufferManager.NoBuffs", + "ComCcsds.commsBufferManager.EmptyBuffs", + "Ref.rateGroup1Comp.RgCycleSlips", + "Ref.rateGroup2Comp.RgCycleSlips", + "Ref.rateGroup3Comp.RgCycleSlips" + ] + }, + { + "name" : "SigGen3Info", + "id" : 12, + "group" : 2, + "members" : [ + "Ref.SG3.Info" + ] + }, + { + "name" : "SigGen4", + "id" : 18, + "group" : 3, + "members" : [ + "Ref.SG4.PairOutput", + "Ref.SG4.History", + "Ref.SG4.PairHistory", + "Ref.SG4.DpBytes", + "Ref.SG4.DpRecords" + ] + }, + { + "name" : "SigGen2Info", + "id" : 11, + "group" : 2, + "members" : [ + "Ref.SG2.Info" + ] + }, + { + "name" : "SigGenSum", + "id" : 4, + "group" : 1, + "members" : [ + "Ref.SG1.Output", + "Ref.SG1.Type", + "Ref.SG2.Output", + "Ref.SG2.Type", + "Ref.SG3.Output", + "Ref.SG3.Type", + "Ref.SG4.Output", + "Ref.SG4.Type", + "Ref.SG5.Output", + "Ref.SG5.Type" + ] + }, + { + "name" : "SigGen1", + "id" : 15, + "group" : 3, + "members" : [ + "Ref.SG1.PairOutput", + "Ref.SG1.History", + "Ref.SG1.PairHistory", + "Ref.SG1.DpBytes", + "Ref.SG1.DpRecords" + ] + }, + { + "name" : "Version_Library2", + "id" : 24, + "group" : 2, + "members" : [ + "CdhCore.version.LibraryVersion03", + "CdhCore.version.LibraryVersion04" + ] + }, + { + "name" : "Version_Custom10", + "id" : 37, + "group" : 2, + "members" : [ + "CdhCore.version.CustomVersion10" + ] + }, + { + "name" : "Version_Library3", + "id" : 25, + "group" : 2, + "members" : [ + "CdhCore.version.LibraryVersion05", + "CdhCore.version.LibraryVersion06" + ] + }, + { + "name" : "TypeDemo", + "id" : 20, + "group" : 3, + "members" : [ + "Ref.typeDemo.ChoiceCh", + "Ref.typeDemo.ChoicesCh", + "Ref.typeDemo.ExtraChoicesCh", + "Ref.typeDemo.ChoicePairCh", + "Ref.typeDemo.ChoiceSlurryCh", + "Ref.typeDemo.Float1Ch", + "Ref.typeDemo.Float2Ch", + "Ref.typeDemo.Float3Ch", + "Ref.typeDemo.FloatSet", + "Ref.typeDemo.ScalarStructCh", + "Ref.typeDemo.ScalarU8Ch", + "Ref.typeDemo.ScalarU16Ch", + "Ref.typeDemo.ScalarU32Ch", + "Ref.typeDemo.ScalarU64Ch", + "Ref.typeDemo.ScalarI8Ch", + "Ref.typeDemo.ScalarI16Ch", + "Ref.typeDemo.ScalarI32Ch", + "Ref.typeDemo.ScalarI64Ch", + "Ref.typeDemo.ScalarF32Ch", + "Ref.typeDemo.ScalarF64Ch" + ] + }, + { + "name" : "Version_Custom2", + "id" : 29, + "group" : 2, + "members" : [ + "CdhCore.version.CustomVersion02" + ] + }, + { + "name" : "DataProducts", + "id" : 21, + "group" : 3, + "members" : [ + "DataProducts.dpCat.CatalogDps", + "DataProducts.dpCat.DpsSent", + "DataProducts.dpMgr.NumSuccessfulAllocations", + "DataProducts.dpMgr.NumFailedAllocations", + "DataProducts.dpMgr.NumDataProducts", + "DataProducts.dpMgr.NumBytes", + "DataProducts.dpWriter.NumBuffersReceived", + "DataProducts.dpWriter.NumBytesWritten", + "DataProducts.dpWriter.NumSuccessfulWrites", + "DataProducts.dpWriter.NumFailedWrites", + "DataProducts.dpWriter.NumErrors", + "DataProducts.dpBufferManager.TotalBuffs", + "DataProducts.dpBufferManager.CurrBuffs", + "DataProducts.dpBufferManager.HiBuffs", + "DataProducts.dpBufferManager.NoBuffs", + "DataProducts.dpBufferManager.EmptyBuffs" + ] + }, + { + "name" : "Version_Custom6", + "id" : 33, + "group" : 2, + "members" : [ + "CdhCore.version.CustomVersion06" + ] + }, + { + "name" : "Version_Custom1", + "id" : 28, + "group" : 2, + "members" : [ + "CdhCore.version.CustomVersion01" + ] + }, + { + "name" : "DpCompression", + "id" : 38, + "group" : 3, + "members" : [ + "DpCompression.dpZLibCompressorBufferManager.TotalBuffs", + "DpCompression.dpZLibCompressorBufferManager.CurrBuffs", + "DpCompression.dpZLibCompressorBufferManager.HiBuffs", + "DpCompression.dpZLibCompressorBufferManager.NoBuffs", + "DpCompression.dpZLibCompressorBufferManager.EmptyBuffs" + ] + }, + { + "name" : "SigGen3", + "id" : 17, + "group" : 3, + "members" : [ + "Ref.SG3.PairOutput", + "Ref.SG3.History", + "Ref.SG3.PairHistory", + "Ref.SG3.DpBytes", + "Ref.SG3.DpRecords" + ] + }, + { + "name" : "Version_Custom5", + "id" : 32, + "group" : 2, + "members" : [ + "CdhCore.version.CustomVersion05" + ] + }, + { + "name" : "Version_Custom7", + "id" : 34, + "group" : 2, + "members" : [ + "CdhCore.version.CustomVersion07" + ] + }, + { + "name" : "Version1", + "id" : 22, + "group" : 2, + "members" : [ + "CdhCore.version.FrameworkVersion", + "CdhCore.version.ProjectVersion" + ] + }, + { + "name" : "Version_Library5", + "id" : 27, + "group" : 2, + "members" : [ + "CdhCore.version.LibraryVersion09", + "CdhCore.version.LibraryVersion10" + ] + }, + { + "name" : "DriveTlm", + "id" : 3, + "group" : 1, + "members" : [ + "Ref.pingRcvr.PR_NumPings", + "Ref.sendBuffComp.PacketsSent", + "Ref.sendBuffComp.NumErrorsInjected", + "Ref.sendBuffComp.Parameter3", + "Ref.sendBuffComp.Parameter4", + "Ref.sendBuffComp.SendState", + "Ref.recvBuffComp.PktState", + "Ref.recvBuffComp.Sensor1", + "Ref.recvBuffComp.Sensor2", + "Ref.recvBuffComp.Parameter1", + "Ref.recvBuffComp.Parameter2", + "Ref.blockDrv.BD_Cycles" + ] + }, + { + "name" : "Version_Custom8", + "id" : 35, + "group" : 2, + "members" : [ + "CdhCore.version.CustomVersion08" + ] + }, + { + "name" : "SigGen2", + "id" : 16, + "group" : 3, + "members" : [ + "Ref.SG2.PairOutput", + "Ref.SG2.History", + "Ref.SG2.PairHistory", + "Ref.SG2.DpBytes", + "Ref.SG2.DpRecords" + ] + }, + { + "name" : "Version_Custom4", + "id" : 31, + "group" : 2, + "members" : [ + "CdhCore.version.CustomVersion04" + ] + }, + { + "name" : "Version_Library4", + "id" : 26, + "group" : 2, + "members" : [ + "CdhCore.version.LibraryVersion07", + "CdhCore.version.LibraryVersion08" + ] + }, + { + "name" : "Version_Library1", + "id" : 23, + "group" : 2, + "members" : [ + "CdhCore.version.LibraryVersion01", + "CdhCore.version.LibraryVersion02" + ] + }, + { + "name" : "Version_Custom9", + "id" : 36, + "group" : 2, + "members" : [ + "CdhCore.version.CustomVersion09" + ] + }, + { + "name" : "Version_Custom3", + "id" : 30, + "group" : 2, + "members" : [ + "CdhCore.version.CustomVersion03" + ] + }, + { + "name" : "SigGen5", + "id" : 19, + "group" : 3, + "members" : [ + "Ref.SG5.PairOutput", + "Ref.SG5.History", + "Ref.SG5.PairHistory", + "Ref.SG5.DpBytes", + "Ref.SG5.DpRecords" + ] + } + ], + "omitted" : [ + "CdhCore.cmdDisp.CommandErrors" + ] + } + ] +}