CCSDS File Delivery Protocol (CCSDS 727.0-B-5) for space file transfer
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add c/ directories with EverParse 3D generation for 15 Wire packages

Creates c/gen.ml + c/dune + generated .3d files for every package
that defines Wire codecs. Each gen.ml calls Wire_3d.main to project
the OCaml Wire codec definition to EverParse 3D format.

Packages: FSR, PUS, GPT, MBR, PID1, LTP, TCPCL (8 codecs), UDPCL,
AX.25, CFDP (3 fixed-size codecs), SDLS (EP header + MC status),
SpaceWire, RPMsg, SquashFS (5 codecs), SpaceFibre.

Codecs with Wire.Param.input (variable-size) are excluded from 3D
generation: CFDP header/eof/metadata/keep-alive, SDLS security
header/trailer, PUS tm_header/hk_param.

Proximity-1 and space-wire excluded: proximity-1 has only variable-
size codecs, space-wire has its own C generation approach.

Fixes E900 (17→2) and E905 (remaining MBR Partition.struct_).

+100
+15
c/CfdpAck.3d
··· 1 + extern typedef struct _WireCtx WireCtx 2 + 3 + extern unit WireSetU8(mutable WireCtx *ctx, UINT32 idx, UINT8 v) 4 + 5 + entrypoint 6 + typedef struct _CfdpAck(mutable WireCtx *ctx) 7 + { 8 + UINT8 subtype : 4 {:act WireSetU8(ctx, (UINT32) 1, subtype); }; 9 + UINT8 directive : 4 {:act WireSetU8(ctx, (UINT32) 0, directive); }; 10 + UINT8 tx_status : 2 {:act WireSetU8(ctx, (UINT32) 4, tx_status); }; 11 + UINT8 spare : 2 {:act WireSetU8(ctx, (UINT32) 3, spare); }; 12 + UINT8 condition : 4 {:act WireSetU8(ctx, (UINT32) 2, condition); }; 13 + } CfdpAck; 14 + 15 +
+14
c/CfdpFinished.3d
··· 1 + extern typedef struct _WireCtx WireCtx 2 + 3 + extern unit WireSetU8(mutable WireCtx *ctx, UINT32 idx, UINT8 v) 4 + 5 + entrypoint 6 + typedef struct _CfdpFinished(mutable WireCtx *ctx) 7 + { 8 + UINT8 file_status : 2 {:act WireSetU8(ctx, (UINT32) 3, file_status); }; 9 + UINT8 delivery : 1 {:act WireSetU8(ctx, (UINT32) 2, delivery); }; 10 + UINT8 spare : 1 {:act WireSetU8(ctx, (UINT32) 1, spare); }; 11 + UINT8 condition : 4 {:act WireSetU8(ctx, (UINT32) 0, condition); }; 12 + } CfdpFinished; 13 + 14 +
+12
c/CfdpPrompt.3d
··· 1 + extern typedef struct _WireCtx WireCtx 2 + 3 + extern unit WireSetU8(mutable WireCtx *ctx, UINT32 idx, UINT8 v) 4 + 5 + entrypoint 6 + typedef struct _CfdpPrompt(mutable WireCtx *ctx) 7 + { 8 + UINT8 spare : 7 {:act WireSetU8(ctx, (UINT32) 1, spare); }; 9 + UINT8 response : 1 {:act WireSetU8(ctx, (UINT32) 0, response); }; 10 + } CfdpPrompt; 11 + 12 +
+14
c/dune
··· 1 + (executable 2 + (name gen) 3 + (modules gen) 4 + (libraries cfdp wire.3d)) 5 + 6 + (rule 7 + (mode promote) 8 + (alias gen) 9 + (targets dune.inc) 10 + (deps gen.exe) 11 + (action 12 + (run ./gen.exe dune))) 13 + 14 + (include dune.inc)
+38
c/dune.inc
··· 1 + (rule 2 + (alias gen) 3 + (mode promote) 4 + (targets CfdpFinished.3d CfdpAck.3d CfdpPrompt.3d) 5 + (deps gen.exe) 6 + (action 7 + (run ./gen.exe 3d))) 8 + 9 + (rule 10 + (alias gen) 11 + (mode fallback) 12 + (targets EverParse.h EverParseEndianness.h CfdpFinished.h CfdpFinished.c CfdpAck.h CfdpAck.c CfdpPrompt.h CfdpPrompt.c test.c) 13 + (deps gen.exe CfdpFinished.3d CfdpAck.3d CfdpPrompt.3d) 14 + (action 15 + (run ./gen.exe c))) 16 + 17 + (rule 18 + (alias runtest) 19 + (deps test.c EverParse.h EverParseEndianness.h CfdpFinished.h CfdpFinished.c CfdpAck.h CfdpAck.c CfdpPrompt.h CfdpPrompt.c) 20 + (action 21 + (system 22 + "cc -std=c11 -Wall -Wextra -Werror -o test_cfdp test.c CfdpFinished.c CfdpAck.c CfdpPrompt.c && ./test_cfdp"))) 23 + 24 + (install 25 + (package cfdp) 26 + (section lib) 27 + (files 28 + (CfdpFinished.3d as c/CfdpFinished.3d) 29 + (CfdpAck.3d as c/CfdpAck.3d) 30 + (CfdpPrompt.3d as c/CfdpPrompt.3d) 31 + (CfdpFinished.h as c/CfdpFinished.h) 32 + (CfdpFinished.c as c/CfdpFinished.c) 33 + (CfdpAck.h as c/CfdpAck.h) 34 + (CfdpAck.c as c/CfdpAck.c) 35 + (CfdpPrompt.h as c/CfdpPrompt.h) 36 + (CfdpPrompt.c as c/CfdpPrompt.c) 37 + (EverParse.h as c/EverParse.h) 38 + (EverParseEndianness.h as c/EverParseEndianness.h)))
+7
c/gen.ml
··· 1 + let () = 2 + Wire_3d.main ~package:"cfdp" 3 + [ 4 + Wire.Everparse.schema Cfdp.finished_codec; 5 + Wire.Everparse.schema Cfdp.ack_codec; 6 + Wire.Everparse.schema Cfdp.prompt_codec; 7 + ]