Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
193 commits
Select commit Hold shift + click to select a range
08642d9
Added CfdpManager skeleton
Brian-Campuzano Dec 12, 2025
ea5d914
Copy PDU packet layer as-is
Brian-Campuzano Dec 12, 2025
a9ae2ee
Bring in other header dependencies
Brian-Campuzano Dec 15, 2025
af4bba4
Updates to get the packet layer to compile
Brian-Campuzano Dec 16, 2025
c68049b
Bring in CFDP engine files
Brian-Campuzano Dec 16, 2025
f5adc02
Bring in addititional CF depedencies and refactor CF asserts into FW_…
Brian-Campuzano Dec 16, 2025
6c8830f
c -> c++ updates
Brian-Campuzano Dec 16, 2025
7b4c040
c to c++ conversion checkpoint
Brian-Campuzano Dec 17, 2025
4fe1df5
Os directory checkpoint
Brian-Campuzano Dec 17, 2025
374e23e
Add custom timer soloution to replace CFE timer implementation
Brian-Campuzano Dec 18, 2025
c768054
Os File stub completion
Brian-Campuzano Dec 18, 2025
4160024
Update CRC
Brian-Campuzano Dec 18, 2025
a895665
Added buffer management and removed pipes/semaphores
Brian-Campuzano Dec 19, 2025
1096d12
Beggining of buffer refactor
Brian-Campuzano Dec 19, 2025
b2e5c97
Buffer management checkpoint
Brian-Campuzano Dec 19, 2025
c7d498b
Brought in cf_utils for list traversals
Brian-Campuzano Dec 19, 2025
b1f854e
Convert CfdpEngine into a class
Brian-Campuzano Dec 22, 2025
043556d
Revert "Convert CfdpEngine into a class"
Brian-Campuzano Dec 22, 2025
fce129c
Additional CFE OS stubs
Brian-Campuzano Dec 22, 2025
07351c8
Fixed container pointer arithmatic for C++
Brian-Campuzano Dec 23, 2025
eedc31f
Completed refactor of cf_utils
Brian-Campuzano Dec 23, 2025
3354801
Beginning of adding parameters
Brian-Campuzano Dec 23, 2025
88b87fd
Refactor CF_CFDP_S_CheckAndRespondNak to separate out error logic and…
Brian-Campuzano Dec 26, 2025
7bab13d
CFDP send checkpoint
Brian-Campuzano Dec 26, 2025
3cd9aad
Completed CFDP send updates
Brian-Campuzano Dec 26, 2025
c5b8c23
Completed CFDP receive refactor
Brian-Campuzano Dec 29, 2025
da5cd2e
CFDP refactor checkpoint
Brian-Campuzano Dec 30, 2025
ee34335
Playback directory checkpoint
Brian-Campuzano Dec 30, 2025
72580c9
CfdpManager compiles!
Brian-Campuzano Dec 31, 2025
03fa112
Added PDU receive data paths/hooks
Brian-Campuzano Jan 2, 2026
3a7ca63
CF -> CFDP file rename
Brian-Campuzano Jan 2, 2026
5c8741f
CF -> CFDP file rename complete
Brian-Campuzano Jan 2, 2026
05031be
Remove header comments
Brian-Campuzano Jan 2, 2026
1fa41a4
Refactor CFDP variable size types
Brian-Campuzano Jan 5, 2026
7cff5b0
Refactor default_cf_extern_typedefs.hpp into CfdpTypes.fpp and CfdpTy…
Brian-Campuzano Jan 5, 2026
889d37e
Refactor default_cf_interface_cfg.hpp to CfdpCfg.hpp
Brian-Campuzano Jan 5, 2026
2c11255
Revert history init
Brian-Campuzano Jan 5, 2026
f9cc12a
Move CFDP types and configs
Brian-Campuzano Jan 5, 2026
cf57b30
UT skeleton
Brian-Campuzano Jan 5, 2026
2fc051a
Split parameters to separate include file
Brian-Campuzano Jan 5, 2026
19f6194
Implemented the SendFile command
Brian-Campuzano Jan 6, 2026
b86087e
Added CFDP playback directory command
Brian-Campuzano Jan 6, 2026
5b10063
Added freeze/thaw command
Brian-Campuzano Jan 6, 2026
db19901
Add buffer return for failure to send case
Brian-Campuzano Jan 6, 2026
7cfa88b
Added polling directory commands
Brian-Campuzano Jan 6, 2026
1fc86f0
Fixed comment offsets
Brian-Campuzano Jan 6, 2026
d013c2a
Converted CF_WrappedOpenCreate calls to Os::File::open
Brian-Campuzano Jan 6, 2026
ad76015
Convert CF_WrappedWrite to Os::File::write
Brian-Campuzano Jan 6, 2026
185c00c
Replaced CF_WrappedRead with Os::File::Read
Brian-Campuzano Jan 6, 2026
e697d7b
Replaced CF_WrappedClose with Os::File::close
Brian-Campuzano Jan 6, 2026
a36b26b
Replaced OS_ObjectIdDefined with Os::File::isOpen
Brian-Campuzano Jan 6, 2026
0c545b9
Replaced CF_WrappedLseek with Os::File::seek
Brian-Campuzano Jan 7, 2026
9049456
Refactor CF_CFDP_MoveFile to Os::FileSystem::moveFile + string refact…
Brian-Campuzano Jan 7, 2026
e81b66a
Refactored OS_remove to Os::FileSystem::removeFile
Brian-Campuzano Jan 7, 2026
12eb0a0
Refactored OS_mv to Os::FileSystem::moveFile
Brian-Campuzano Jan 7, 2026
553394c
Replaced OS_DirectoryOpen with Os::Directory::open
Brian-Campuzano Jan 7, 2026
7272f82
Replaced OS_DirectoryRead with Os::Directory::read
Brian-Campuzano Jan 7, 2026
7397306
Replaced OS_DirectoryClose with Os::Directory::close
Brian-Campuzano Jan 7, 2026
ddc1e64
Deleted CfeStubs
Brian-Campuzano Jan 8, 2026
d759976
Remove CfeStubs.hpp includes and add CfdpMaxPduSize constants
Brian-Campuzano Jan 15, 2026
a073bec
Data pointer refactor to remove void*
Brian-Campuzano Jan 16, 2026
2aaa44f
Rework receive init to use Fw::String
Brian-Campuzano Jan 16, 2026
029759d
Fix compilation errors
Brian-Campuzano Jan 16, 2026
bc56e63
Made include paths absolute and moved file size type def to config
Brian-Campuzano Jan 21, 2026
70be54c
Added separate metadata serailizable
Brian-Campuzano Jan 21, 2026
9123bc0
Rework enums that did not need to serializables
Brian-Campuzano Jan 22, 2026
c7fdb29
Completed metadata UT
Brian-Campuzano Jan 22, 2026
336c00b
Split PDUs to separate whitespace
Brian-Campuzano Jan 22, 2026
2c44b47
Added FileData PDU and UTs
Brian-Campuzano Jan 22, 2026
74cfc6b
Added file data PDU test
Brian-Campuzano Jan 22, 2026
a2640f9
Added end-of-file PDU and UTs
Brian-Campuzano Jan 22, 2026
48983b2
Added missing file
Brian-Campuzano Jan 22, 2026
f4f237b
Added end of file PDU UT to CfdpManager
Brian-Campuzano Jan 22, 2026
0acc30a
Refactor UTs to separate out validation functions
Brian-Campuzano Jan 22, 2026
00421d8
Implemented FinPdu class and UTs
Brian-Campuzano Jan 22, 2026
85fdf45
Added CfdpManager FinPdu UT
Brian-Campuzano Jan 22, 2026
1a08fa6
Added AckPdu implementation and UTs
Brian-Campuzano Jan 22, 2026
f0eebb8
Added AckPdu UT for CfdpManager
Brian-Campuzano Jan 22, 2026
0ee84cf
Added missing CRC check
Brian-Campuzano Jan 22, 2026
46157cc
Added NakPdu implementaiton and UTs
Brian-Campuzano Jan 22, 2026
5fa7545
Added CfdpManager NackPdu UT
Brian-Campuzano Jan 22, 2026
ce5cd0f
Refactor PDU tests to a new file
Brian-Campuzano Jan 22, 2026
147c84f
Refactored test helpers to deserialize and validate PDUs
Brian-Campuzano Jan 22, 2026
93dd97c
Added class 1 TX transaction text
Brian-Campuzano Jan 23, 2026
7927dcc
Added output PDU throttling
Brian-Campuzano Jan 23, 2026
1711673
Started a class 2 TX UT and added helper functions for uplinking PDUs
Brian-Campuzano Jan 23, 2026
0a231d6
Code cleanup
Brian-Campuzano Jan 23, 2026
3b53392
Debugging failed chunk allocation for class 2 transactions
Brian-Campuzano Jan 26, 2026
1013ceb
Updated class 1 transaction UT to expire the inactivity timer. Also s…
Brian-Campuzano Jan 26, 2026
e3cfd5c
Updated class 2 TX UT to have correct PDU ordering
Brian-Campuzano Jan 26, 2026
d946d5e
Added CFDP subtopology
Brian-Campuzano Jan 26, 2026
963a9bf
Completed TX class 2 transaction UT
Brian-Campuzano Jan 26, 2026
8bd76b5
Added class 2 transaction UT with a nack
Brian-Campuzano Jan 26, 2026
cab0120
Refactor UTs to make them more readable
Brian-Campuzano Jan 26, 2026
4c4ade5
Added a class 1 RX unit test
Brian-Campuzano Jan 26, 2026
fdd3893
Added class 2 RX transaction UT
Brian-Campuzano Jan 27, 2026
641d07c
Add RX transaction UT with NAck
Brian-Campuzano Jan 27, 2026
d2700d2
Refactored CfdpEngine into child-class of CfdpManager
Brian-Campuzano Jan 27, 2026
2a997a4
Created CfdpChannel class
Brian-Campuzano Jan 28, 2026
ae89b7d
Refactor CfdpEngineData to be CfdpEngine member variables
Brian-Campuzano Jan 28, 2026
ace7fec
Moved CF_Channel_t data into CfdpChannel member variables. There is s…
Brian-Campuzano Jan 28, 2026
a1f9bd2
Fixed testMetaDataPdu UT
Brian-Campuzano Jan 28, 2026
04380aa
Updated remaining PDU tests
Brian-Campuzano Jan 28, 2026
86a633b
Removed lingering CF_Channel_t references and functions
Brian-Campuzano Jan 28, 2026
f73da3d
Created new CfdpTransaction class and skeletons
Brian-Campuzano Jan 28, 2026
0c125a2
Ported TX functions to new class
Brian-Campuzano Jan 29, 2026
2190ab3
Ported RX functions to new Transaciton class
Brian-Campuzano Jan 29, 2026
2c0446f
Additional transaction class rework
Brian-Campuzano Jan 29, 2026
d04f945
Refactor CfdpTransaction as stepping stone toward struct removal
Brian-Campuzano Jan 29, 2026
824ee3f
Moved CF dispatch functions into the CfdpTransaction class
Brian-Campuzano Jan 29, 2026
c38215b
Completed CfdpTransaction refactor
Brian-Campuzano Jan 29, 2026
00e4a2d
Rework memory initialization for better encapsulation
Brian-Campuzano Jan 29, 2026
f6204c6
Friend class cleanup
Brian-Campuzano Jan 29, 2026
bfa38ed
Refactored CfdpChunk into a C++ class
Brian-Campuzano Jan 29, 2026
a603876
Additional C++ refactor cleanup
Brian-Campuzano Jan 29, 2026
a66f98a
Moved CFDP types and renames Pdu folder to Types folder
Brian-Campuzano Jan 29, 2026
fe93785
Removed internal buffer test pool
Brian-Campuzano Jan 30, 2026
c3e0aec
Refactored Tx functions to use Pdu classes instead of the CF codec fu…
Brian-Campuzano Jan 30, 2026
7446483
Refactored Rx functions to use Pdu classes
Brian-Campuzano Jan 30, 2026
9c5a293
Completed deprecated codec removal and fixed UTs
Brian-Campuzano Jan 30, 2026
d41cf13
Added TLV support and refactor cleanup
Brian-Campuzano Jan 30, 2026
a9e9752
Added CF attribution file
Brian-Campuzano Jan 30, 2026
cf0d4e6
Removed PDU union wrapper in-favor of PDU class inheritance. Updated …
Brian-Campuzano Feb 3, 2026
972ec4c
Cleanup post class refactor
Brian-Campuzano Feb 3, 2026
a531756
Code cleanup and file size type updates
Brian-Campuzano Feb 5, 2026
1bdeb81
Start of CF -> CFDP rename/refactor
Brian-Campuzano Feb 5, 2026
246bde6
Remove last vestigages of CF types
Brian-Campuzano Feb 5, 2026
e4bed53
Updated UTs post CF -> CFDP rename
Brian-Campuzano Feb 5, 2026
764966a
Start of CFDP class addition, starting removal of deprecated CF types
Brian-Campuzano Feb 9, 2026
76472d5
Completed Cfdp namespace addition
Brian-Campuzano Feb 9, 2026
da350b8
Consolidate Cfdp types to a single file
Brian-Campuzano Feb 9, 2026
387393e
Renamed transaction files so they will sort correctly
Brian-Campuzano Feb 9, 2026
cf3554d
Cleanup some todos and make comment style consistent
Brian-Campuzano Feb 9, 2026
98a91cc
Added CFDP overview SDD section
Brian-Campuzano Feb 9, 2026
5b0e37b
Added port based file transfer requests similar to FileDownlink
Brian-Campuzano Feb 9, 2026
f174cf5
Added Tx port based file transfer UT
Brian-Campuzano Feb 9, 2026
5e3a818
Added additional UTs
Brian-Campuzano Feb 9, 2026
9c8fe59
Added ping port and fixed issues from fprime sync
Brian-Campuzano Feb 9, 2026
b973441
Added CfdpManager class diagram
Brian-Campuzano Feb 9, 2026
35092fb
Fixed component class diagram
Brian-Campuzano Feb 9, 2026
a87caad
Reworked class diagram
Brian-Campuzano Feb 9, 2026
2821f9d
Added CfdpManager usage diagram and updated port naming to be consistent
Brian-Campuzano Feb 9, 2026
038513f
Playing with color themes
Brian-Campuzano Feb 9, 2026
eb656da
Another theme iteration
Brian-Campuzano Feb 10, 2026
1b41287
Added component design section
Brian-Campuzano Feb 10, 2026
61192a2
Added TX transaction sequence diagrams
Brian-Campuzano Feb 10, 2026
5de6b51
Added class 2 RX sequence diagram
Brian-Campuzano Feb 10, 2026
e642997
Fixed bug in file deletion
Brian-Campuzano Feb 10, 2026
8f46580
Added command and telemetry section
Brian-Campuzano Feb 10, 2026
9916864
Added proposed telemetry
Brian-Campuzano Feb 10, 2026
b6f40b6
Populated requirements section
Brian-Campuzano Feb 10, 2026
48a2936
SDD rework and added section numbers
Brian-Campuzano Feb 10, 2026
4e8ea56
Add configuration section to the SDD and took a pass at cleaning up t…
Brian-Campuzano Feb 10, 2026
96cf21f
First pass a getting the spell check to pass
Brian-Campuzano Feb 10, 2026
c9898f4
Added new CFDP terms
Brian-Campuzano Feb 10, 2026
345a822
Another spelling iteration. EVS will be removed with F' events are im…
Brian-Campuzano Feb 10, 2026
f043248
Fix spelling goofs
Brian-Campuzano Feb 10, 2026
981fdec
Removed duplicate spelling exceptions
Brian-Campuzano Feb 13, 2026
a1d7da4
Replace commented out cFE Events with F' Events
pepepr08 Feb 13, 2026
965034d
Directly use Cfdp.Class for events
pepepr08 Feb 16, 2026
93f5eee
Remove recvAck()
pepepr08 Feb 17, 2026
96cd9e3
Added TX/RX throttling SDD section and made class, keep, and priority…
Brian-Campuzano Feb 12, 2026
bb37c95
Updated class 2 sequence diagrams to make timer values explicit. Also…
Brian-Campuzano Feb 19, 2026
0968a50
Added transaction management commands
Brian-Campuzano Feb 19, 2026
110fbc3
Move tmp_dir and fail_dir from global parameters to per-channel param…
Brian-Campuzano Feb 12, 2026
720a903
Purge the terms configuration table and wakeup which were CF terminology
Brian-Campuzano Feb 12, 2026
4795190
Added Deep Space Timer Configuration section to account for light spe…
Brian-Campuzano Feb 12, 2026
90255e6
Added documentation on NAK behavior during file data transmission
Brian-Campuzano Feb 12, 2026
48ad02b
Remove AI slop
Brian-Campuzano Feb 12, 2026
2324f08
Rewording to make spell checker happy
Brian-Campuzano Feb 19, 2026
00715a6
Swap SUSPEND and RESUME enum
pepepr08 Mar 26, 2026
01106cc
Clarify success criteria doesn't care about current state
pepepr08 Mar 26, 2026
46a2921
Update transaction canceled comment
pepepr08 Mar 26, 2026
223f371
Implement CfdpManager telemetry
pepepr08 Feb 26, 2026
15afb73
Send events when transaction completes successfully
pepepr08 Mar 5, 2026
e8c4b4d
Add size to TxFileTransferStarted event
pepepr08 Mar 6, 2026
097d3e1
Update cached_pos right after successful file read
pepepr08 Mar 6, 2026
81ea4f8
Rename channel current transaction variable
pepepr08 Mar 12, 2026
9aa257c
Fix issue when reaching max_outgoing_pdus_per_cycle
pepepr08 Mar 12, 2026
a9a3238
Strip packet type descriptor before reading PDU
pepepr08 Apr 1, 2026
5b53836
Reset timer during CRC calculation period
pepepr08 Apr 6, 2026
9809139
Fix spelling check CI pipeline
pepepr08 Apr 7, 2026
05406c6
Connect CfdpManager directly to ComQueue
pepepr08 Apr 10, 2026
79dd4f9
Remove duplicate words
pepepr08 Apr 16, 2026
12e08fb
Update defaults to speed up transactions
pepepr08 Apr 30, 2026
0490f12
Add README to clarify the CFDP/Checksum usage
pepepr08 May 1, 2026
604dea7
Updating Documentation (port type)
pepepr08 May 1, 2026
cbb0967
Spelling check update
pepepr08 May 1, 2026
8ad7e9c
Increase PDU buffer size to include Descriptor
pepepr08 May 4, 2026
6101725
Add helper function for sending PDUs
pepepr08 May 4, 2026
6a159f9
Move PDU Type Enum to FPP
pepepr08 May 5, 2026
036e159
Assert to nullptr instead of just NULL
pepepr08 May 8, 2026
a0a1b0a
Removed spelling duplicates and sorted
Brian-Campuzano May 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 43 additions & 6 deletions .github/actions/spelling/expect.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Aadil
AArray
acknak
AClass
ACTIVERATEGROUP
ACTIVERATEGROUPCFG
Expand Down Expand Up @@ -44,7 +45,6 @@ Bies
binaryfile
BINDIR
bitfield
Bitfield
bitmaps
bitshifts
bitwidth
Expand Down Expand Up @@ -77,13 +77,16 @@ CBLOCK
CCACHE
CCB
CComponent
CCs
ccsds
ccsparc
cdh
CDHCORE
CDHCORESUBTOPOLOGY
cerrno
CFDP
cfdp
CFDPMANAGER
CFDPTIMER
cff
cflag
cfsetispeed
Expand All @@ -93,7 +96,9 @@ Chieu
CHIPINFO
CHK
CHNG
chunklist
CIRCULARSTATE
clist
CLOSEFILE
cloudbees
CMDDISP
Expand Down Expand Up @@ -169,12 +174,14 @@ deployables
DEPRECATEDLIST
deser
Deserial
destq
DEVICESM
DHTML
diafile
diffs
diles
dinkel
diropen
dnf
dnp
docbook
Expand Down Expand Up @@ -212,6 +219,7 @@ eay
ECLIPSEHELP
EEnum
EHAs
eid
eip
Elts
emptydir
Expand All @@ -220,7 +228,7 @@ endfunction
endmacro
endraw
enduml
EPP
eod
epp
ERRORCHECK
errornum
Expand All @@ -237,6 +245,8 @@ exploitability
externalproject
FAKELOGGER
fbuild
fdir
fdirective
FDISP
fdp
featherm
Expand All @@ -254,18 +264,24 @@ FILEDISPATCHERCFG
FILEDOWNLINK
FILEDOWNLINKCFG
FILEHANDLING
FILEHANDLINGCFDP
FILEHANDLINGCFDPSUBTOPOLOGY
FILEHANDLINGSUBTOPOLOGY
FILEID
FILEMANAGERCONFIG
FILEOPENERROR
filestore
FILETESTER
FILEWORKER
FILEWORKERTYPES
FILEWRITEERROR
finack
fio
fle
fnames
FNDELAY
fne
foffs
fontcolor
FONTPATH
foodoodie
Expand All @@ -289,6 +305,7 @@ freeram
Fregoso
frsize
fsblkcnt
fsize
fsw
FWCASSERT
gcda
Expand All @@ -315,6 +332,7 @@ Graphviz
grayscales
GROUNDINTERFACERULES
GSE
GSW
gtags
gtest
gtimeout
Expand Down Expand Up @@ -391,9 +409,9 @@ jobrestrictions
jpl
jplffs
jre
kermit
kessler
kevin
kermit
kubiak
Lammert
lammertbies
Expand Down Expand Up @@ -426,6 +444,7 @@ lseek
LTK
lvar
LVL
LVs
lxml
MACROFILE
MACROSTART
Expand Down Expand Up @@ -469,6 +488,7 @@ Mutexed
muxed
mycompany
myos
NAKs
nasafprime
nbits
ncsl
Expand Down Expand Up @@ -548,6 +568,7 @@ PKTS
plainnat
plantuml
PNGs
polldir
pollfd
POLLIN
POLYDB
Expand Down Expand Up @@ -579,8 +600,10 @@ projectnumber
propget
propput
protothreading
psn
ptbool
ptf
PTFO
pthread
ptrt
pvn
Expand All @@ -589,6 +612,7 @@ qhelpgenerator
QHG
qhp
qsf
queueidx
racheljt
RAII
randtbl
Expand Down Expand Up @@ -624,11 +648,14 @@ ROOTDIR
rowspan
rpi
rptr
rsp
RSubstate
SAlias
sanitizers
sats
SBF
SBINDIR
sbintf
sbom
scid
scm
Expand Down Expand Up @@ -681,7 +708,9 @@ sqa
srandom
SRCS
sreddy
sret
sss
SSubstate
STAMEM
startuml
stdbool
Expand Down Expand Up @@ -714,6 +743,8 @@ tabdnp
tabkermit
tagfile
tbase
tbd
tbl
tcanham
tcflush
tcgetattr
Expand All @@ -734,11 +765,11 @@ tfvn
thisdirdoesnotexist
thisfiledoesnotexist
Thu
timcanham
timebase
timerfd
timetag
timeval
timcanham
Tinternal
tions
tjh
Expand All @@ -752,16 +783,20 @@ TLMPACKET
TLMPACKETIZER
TLMPACKETIZERCOMPONENTIMPLCFG
TLMPACKETIZERTYPES
tlv
TODOLIST
TOKENBUCKETTESTER
topologydefs
totalram
tparam
TPP
trinomials
tsn
tts
Tumbar
tumbar
txa
txm
txw
typedef
typedef'ed
uart
Expand All @@ -771,6 +806,7 @@ uge
uitofp
UML
umod
unack
unconfigured
UNEXP
unistd
Expand Down Expand Up @@ -803,6 +839,7 @@ WORKDIR
wrs
wxgui
wxy
XACT
Xapian
XBee
xdf
Expand Down
3 changes: 3 additions & 0 deletions .github/actions/spelling/patterns.txt
Original file line number Diff line number Diff line change
Expand Up @@ -146,3 +146,6 @@ TeX/AMS
# .get...() .set...() autocoded functions
\.get\w+\(
\.set\w+\(

# CCSDS specification version numbers (e.g., CCSDS 727.0-B-5)
\bCCSDS\s+\d+\.\d+-[A-Z]-\d+(?:\s+section\s+\d+(?:\.\d+)?)?(?:,\s+section\s+\d+(?:\.\d+)?(?:,\s+table\s+[-\d]+)?)?
25 changes: 25 additions & 0 deletions CFDP/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# CFDP Utilities

## Overview

This directory contains CFDP utility classes used by the F' Framework.

## Contents

- **Checksum/**: CCSDS CFDP-compliant 32-bit checksum implementation

## Where is CfdpManager?

The main CFDP protocol implementation is located at:

**`Svc/Ccsds/CfdpManager/`**

If you're looking for the CFDP file transfer component, you'll find it there.

## Why is Checksum here?

The Checksum utility is used by the F' Framework's FilePacket class (`Fw/FilePacket/FilePacket.hpp`), which predates the CfdpManager component and supports legacy file transfer components (FileUplink, FileDownlink). To maintain framework independence, Checksum cannot be moved into CfdpManager.

## Future

A long-term solution would be to relocate Checksum to a framework utilities directory (e.g., `Fw/Utils/`), further clarifying the architectural separation.
22 changes: 11 additions & 11 deletions Os/File.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,28 +28,28 @@ struct FileHandle {};
class FileInterface {
public:
enum Mode {
OPEN_NO_MODE, //!< File mode not yet selected
OPEN_READ, //!< Open file for reading
OPEN_NO_MODE, //!< File mode not yet selected
OPEN_READ, //!< Open file for reading
OPEN_CREATE, //!< Open file for writing and truncates file if it exists, ie same flags as creat()
OPEN_WRITE, //!< Open file for writing
OPEN_SYNC_WRITE, //!< Open file for writing; writes don't return until data is on disk
OPEN_WRITE, //!< Open file for writing
OPEN_SYNC_WRITE, //!< Open file for writing; writes don't return until data is on disk
OPEN_APPEND, //!< Open file for appending
MAX_OPEN_MODE //!< Maximum value of mode
};

enum Status {
OP_OK, //!< Operation was successful
DOESNT_EXIST, //!< File doesn't exist (for read)
NO_SPACE, //!< No space left
NO_PERMISSION, //!< No permission to read/write file
BAD_SIZE, //!< Invalid size parameter
NOT_OPENED, //!< file hasn't been opened yet
OP_OK, //!< Operation was successful
DOESNT_EXIST, //!< File doesn't exist (for read)
NO_SPACE, //!< No space left
NO_PERMISSION, //!< No permission to read/write file
BAD_SIZE, //!< Invalid size parameter
NOT_OPENED, //!< file hasn't been opened yet
FILE_EXISTS, //!< file already exist (for CREATE with O_EXCL enabled)
NOT_SUPPORTED, //!< Kernel or file system does not support operation
INVALID_MODE, //!< Mode for file access is invalid for current operation
INVALID_ARGUMENT, //!< Invalid argument passed in
NO_MORE_RESOURCES, //!< No more available resources
OTHER_ERROR, //!< A catch-all for other errors. Have to look in implementation-specific code
OTHER_ERROR, //!< A catch-all for other errors. Have to look in implementation-specific code
MAX_STATUS //!< Maximum value of status
};

Expand Down
1 change: 1 addition & 0 deletions Svc/Ccsds/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/TmFramer/")
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/AosFramer/")
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/AosDeframer/")
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/ApidManager/")
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/CfdpManager/")
Loading
Loading