All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Threshold data model field variable names
- Spectrum data model to include number of bits
- Spectrum packing class function types and
- Controller class template not including message_id and socket members for control packets
- PayloadFormat bits updated to 64
- Set
not_v49d0
bit to true whenspectrum
bit is true for data packets
SNRNoise::noise
functions using incorrect subfield
- CentOS 7 CI
- Getter/setter functions for
action_mode
andtiming_control
in command packets
- Error setter functions in ack packets not setting cam.ack_er appropriately
- CIF2 UUID fields (
controllee_uuid
andcontroller_uuid
) being generated asuint32_t
- 'any' type for timestamp fields
- Adds additional getter/setter functions for tsi/tsf
- Removes explicit matching on tsi/tsf
- Difi example yamls and generated project
- Generated CMake files use FetchContent
reset_cif_2()
declaration not being generated
- Setters/getters for CAM bits SchX and AckP
- DIFI yaml files in examples
- rocky9 to CI pipeline
- Ack packet match function.
- Moved from base ack class to AckVX and AckS subclasses
- Pack CAM into packet's data buffer during construction when ack_* value is required
- CMake target alias
- pkg-config file install
- CMake integration instructions in README
- Random inbox string generator
- Check for empty message in NATS client
- Removed uuid.h dependency from NATS client
- udp send_packet updated to use latest packet structure and tuple argument
- Bug in packet match function not incrementing
curr_pos
correctly - Controllee base class calling the correct send function for udp socket type
- Controller nats include path in template
req_s
packet check in controllee base template- AckS typo in controller tempalte
- New
--cmd-socket
option forvrtpktgen
: 'nats'- Enables the use of NATS request-reply for command socket interactions between controller and controllee
- NATS header files to interact with the nats.c library
- Adds a dependency on this library as well as the external libraries it depends on
- Template code to support new
vrtgen::nats::client
type as the transport - Example application using NATS
- Destructor bug in packet classes
- Packaging pipeline for centos 7
- Version => 0.6.3
- Updated Changelog
- Template bug for reset_cif functions
- Template bug for query ack enable getter function
- CMake configuration file install
- Pad data payloads to be on word boundaries
- Example project controllee
- User-defined stream id and trailer classes via YAML
- Discrete IO user-defined fields
- Doxygen support
- Increased test coverage driven by VITA 49.2-2017 specification rules
- The schema for YAML files has changed.
Individual trailer fields have been removed.
- Only user-defined bits are settable in YAML.
- The packet class structure has changed.
Generated packet classes no longer use the
helper
construct.- The packet helper
pack
function was replaced with internal data management and thedata
function. - The packet helper
unpack
function was replaced with a new constructor that unpacks from astd::span
of bytes. - Packet members that are a class type (e.g.
vrtgen::packing::Gain
) can be updated with a reference getter function. The internal data however will not be updated until thedata
function is called which will sync the internal management of these classes.
- The packet helper
- Template for creating a UDP command socket.
- Setting number of bits for
PayloadFormat
model class version_build_code
field type- Setting number of bits
ControlIdentifier
model class
cpp
backend as default installation
- The schema for YAML files has changed. Mappings are now marked with specific YAML tags for ingest by the new loader.
- Migrated the backend parser model classes to Python
dataclass
. - Changed parser loader to utilize built-in
SafeLoader
from PyYAML - Removed generation of backend library. Now available as source in
include/vrtgen
- Updated templates.
- Support for including other YAML files containing packet definitions
- Support for Information Class YAML configurations
- Generation of Controllee and Controller classes from Information Class specification
- Socket classes to libvrtgen
- Example packets and demo application
- The schema for YAML files has changed. All mappings in YAML configurations are now lowercase separated with dashes. See doc/yaml-guide.md for details. Existing YAML files must be updated to work with version 0.4.
- Fixed copy and move semantics for C++
vrtgen::optional<T>
class. - Minor whitespace fixes in generated C++ code.
- The schema for YAML files has changed. Instead of requiring a top-level "type" key, each packet definition must contain a single-key mapping with the packet type and a mapping of its fields. The "payload" key in context and command packets has also been removed; all packet fields should be under the type mapping. Existing YAML files must be updated to work with version 0.3.
- User-defined Discrete I/O fields, including indicators.
- Python struct classes support unpacking from bytes.
- Data packets may specificy spectrum mode, context and data may specify "Not a V49.0 packet" flag.
- The packet type "command" was removed.
- Using struct fields in packets works again in C++.
- Support for defining Control/Acknowledge packets.
- C++ code generation of Control/Acknowledge packets.
- Command line syntax of
vrtpktgen
changed to require generator name as a positional argument. - Fixed a bug in replacing existing values in packed binary fields.
- Addressed warnings in generated C++ code.
- The packet type "command" is deprecated.
- Support CentOS 7
setuptools
RPM for installation. - C++ build does not depend on installed location of
vrtpktgen
.
- Updated source headers to reference LGPL.
- Python data model for describing VITA 49.2 packets.
- YAML parser for packet defintions.
- Basic support for common CIF0/CIF1 fields.
- Initial C++ code generation backend.