How danieldeer/hdp works
HDP is a command-line utility that turns raw binary input and a JSON packet specification into a generated binary packet. The CLI reads both inputs, invokes packet generation, and writes the result. Packet assembly handles field layout, input embedding, padding, length fields, and CRCs using the declared field and length-encoding types. The tree also contains CCSDS packet and transfer-frame specifications; their runtime use is not shown in the excerpts, so no connection to them is asserted.
Main entry points: Generator.java Generator CLI · PacketGenerator.java Packet generator · PacketSpecification.java Packet specification · FieldType.java Field types
Components 11
CLI and files
- Raw input
- JSON spec file
- Generator CLI
src/main/java/com/hirschdaniel/hdp/Generator.java - Binary output
Packet model
- Packet specification
src/main/java/com/hirschdaniel/hdp/PacketSpecification.java - Field types
src/main/java/com/hirschdaniel/hdp/FieldType.java - Length encodings
src/main/java/com/hirschdaniel/hdp/LengthEncoding.java
Packet assembly
- Packet generator
src/main/java/com/hirschdaniel/hdp/PacketGenerator.java
CCSDS specifications
- TM packet spec
src/main/resources/specs/ccsds-tm-space-packet.json - TM frame spec
src/main/resources/specs/ccsds-tm-transfer-frame.json
Other components
- CLI user
Connections 9
- CLI user → Generator CLI: invokes
src/main/java/com/hirschdaniel/hdp/Generator.java - Generator CLI → Raw input: reads bytes
src/main/java/com/hirschdaniel/hdp/Generator.java - Generator CLI → JSON spec file: loads JSON
src/main/java/com/hirschdaniel/hdp/Generator.java - Generator CLI → Packet specification: deserializes as
src/main/java/com/hirschdaniel/hdp/Generator.java - Generator CLI → Packet generator: constructs and runs
src/main/java/com/hirschdaniel/hdp/Generator.java - Packet generator → Packet specification: uses fields
src/main/java/com/hirschdaniel/hdp/PacketGenerator.java - Packet generator → Field types: dispatches by
src/main/java/com/hirschdaniel/hdp/PacketGenerator.java - Packet generator → Length encodings: encodes lengths
src/main/java/com/hirschdaniel/hdp/PacketGenerator.java - Generator CLI → Binary output: writes packet
src/main/java/com/hirschdaniel/hdp/Generator.java