Skip to content

Integrate CFDP with OpenC3 (DEBUG and RADIO interfaces) - #877

Open
jennifer-opalko wants to merge 31 commits into
devfrom
839-openc3-cfdp
Open

Integrate CFDP with OpenC3 (DEBUG and RADIO interfaces)#877
jennifer-opalko wants to merge 31 commits into
devfrom
839-openc3-cfdp

Conversation

@jennifer-opalko

@jennifer-opalko jennifer-opalko commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary of PR goals.

Integrates Aerospace's CFDP (CCSDS File Delivery Protocol) package into NOS3, supporting file transfer over both the DEBUG interface (the original scope of issue #839) and the RADIO interface (routed through cryptolib, simulating a real RF uplink/downlink).

How to test?

  • git pull
  • git checkout 839-openc3-cfdp
  • git submodule sync
  • git submodule update --init --recursive
  • make launch (or make start-gsw if fsw/sim are already running)

Part 1: DEBUG Interface Testing

  • Once OpenC3 is fully loaded, go to CmdTlmServer and confirm all 4 interfaces (DEBUG, RADIO, SIM_42_TRUTH_INT, SIM_BRIDGE_INT) show CONNECTED
  • Create a test file: in the fsw directory cf/ or simply use an existing file like syn.so as shown below.
  • Go to Script Runner and paste the entire block below into the editor as a single script, and click Start:

Testing file transfer

cmd("CFS_RADIO TO_ENABLE_OUTPUT with DEST_IP 'radio-sim', DEST_PORT 5011")
wait(5)
cmd("CFDP_DEBUG DOWNLOAD_FROM_SATELLITE_CC with CCSDS_STREAMID 6234, CCSDS_SEQUENCE 49152, CCSDS_LENGTH 129, CCSDS_FC 29, CCSDS_CHECKSUM 0, DESTINATION 'testing_TX.txt', SOURCE '/cf/syn.so'")

wait for the following EVS messages in FSW:
EVS Port1 EVS Port1 42/1/CFDP 42: CFDP: Reached EOF
EVS Port1 EVS Port1 42/1/CFDP 42: CFDP: Successfully sent telemetry packet
EVS Port1 EVS Port1 42/1/CFDP 42: CFDP: File send complete

Then verify the file is transfered in .nos3/openc3/received_files/

Part 2: RADIO Interface Testing

  • Repeat the same steps as Part 1, substituting CFDP_RADIO for CFDP_DEBUG
  • Verify success the same way
  • When finished testing, run make stop

Submodule PRs and actions prior to closing this:

Closes #839

@codecov-commenter

codecov-commenter commented Jul 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.85%. Comparing base (6f2e4a2) to head (194ee46).
⚠️ Report is 156 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev     #877      +/-   ##
==========================================
- Coverage   72.75%   71.85%   -0.90%     
==========================================
  Files         761      764       +3     
  Lines       90262    91389    +1127     
  Branches     7137     7325     +188     
==========================================
  Hits        65668    65668              
- Misses      24594    25721    +1127     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@zlynch2

zlynch2 commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

note: want to put test.txt file in the cfs directory on board the spacecraft for example here: /home/jstar/dev/testing/nos3/fsw/build/exe/cpu1

@zlynch2

zlynch2 commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

@jennifer-opalko updated instructions for file transfer with downlink command

@Donnie-Ice

Copy link
Copy Markdown
Contributor

My last few commits were only for DEBUG, radio requires more work

@zlynch2

zlynch2 commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

@Donnie-Ice
Tested, works and confirmed i only see pdus on cfdp_debug interface my radio interface receives no packets even with to enabled. looking into it, we can discuss but posting here for awareness. I can send the command from the radio link just cant receive a packet yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants