Repository navigation
Add real cFS SCH app driving the F Prime rate groups at 1 Hz - #9
Closed
lestarch-autobot wants to merge 8 commits into
Closed
lestarch-autobot wants to merge 8 commits into
lestarch-autobot wants to merge 8 commits into
Conversation
- libs/fprime -> fb215957d6 (configurable ComCcsds router, nasa/fprime#5486) - libs/fprime_cfs -> ea0a8f8 (CfsRouter with Svc.Router interface + FILE route, fprime-community#10) - apps/fprime_app -> 1e3d751 (core SpacePacketFraming + CfsRouter via config override, #3/#4) - apps/fprime_gds -> 1d9f7c9 (whole space packet passthrough, #3) Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov>
- Vendor nasa/SCH (2.2.1) under apps/sch, ported to current cFE APIs - SCH schedule table sends a 1 Hz tick (MID 0x1890) to fprime_app - fprime_app pin: PollingTimer replaced by FPrimeCfs.SchAppDriver - fprime_cfs pin: adds CfsBridge::subscribeCfsCommand - Add sch to cpu1 APPLIST and cFE startup script Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov>
…fprime_app#6) Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov>
Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov>
Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov>
…community#6) Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov>
This was referenced Jul 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Describe the contribution
Adds the real cFS Scheduler (SCH) application to the reference and uses it to drive the F Prime rate groups at 1 Hz, replacing the
Svc.PollingTimer.Easy summary of the changes, layer by layer:
apps/sch(new, vendored) — the realnasa/SCHapp (v2.2.1), ported to current cFE APIs (boolean->bool,CFE_SB_MsgPtr_t->CFE_MSG_Message_t*,CFE_SB_CMD_HDR_SIZE->sizeof(CFE_MSG_CommandHeader_t),CFE_PLATFORM_SB_HIGHEST_VALID_MSGID). Its tables are built withadd_cfe_tablesand loaded from/cf/.0x1890(command type bit + secondary-header flag + APID0x090, function code 0). The schedule table sends it once per second (slot 0, frequency 1).libs/fprime_cfspin — addsCfsBridge::subscribeCfs(apid, COMMAND|TELEMETRY)for subscribing to cFS command/telemetry message IDs. Upstream PR: Add CfsBridge::subscribeCfs for subscribing to cFS command or telemetry messages fprime_cfs#11.apps/fprime_apppin — swapsSvc.PollingTimerforFPrimeCfs.SchAppDriver: the SCH tick arrives via CfsBridge -> SpacePacketDeframer -> CfsRouter (newCFS_COMMANDroute for APID0x090) ->schAppDriver.cfsCommandIn, which emits the rate-group cycle. The main loop no longer polls a timer. Upstream PR: Drive rate groups from cFS scheduler (SCH) ticks via FPrimeCfs.SchAppDriver fprime_app#6.schadded tocpu1_APPLISTand the cFE startup script (priority 10).Also bumps
libs/fprimeto the nasa/fprime devel head (35d4c0e8). Thelibs/fprime_cfsandapps/fprime_apppins point at the heads of their respective upstream PRs (#11 and #6); once those merge, the pins can be moved to devel.Supersedes JPL-Devin#3 (same content, now targeting fprime-community).
Testing performed
make SIMULATION=native prep && make && make install./core-cpu1+fprime-gds --ip-client --ip-port 15010— SCH initializes, fprime_app subscribes to0x1890, and one tick per second reaches the SchAppDriver.pytest test/int— all 5 GDS integration tests pass (commands, events, telemetry through GDS -> fprime_app).ComCcsds.comQueue.comQueueDepthupdates once per second;rateGroup1.RgMaxTimereported)../go-draco draco-rc5and./go-draco v7.0.1— all tests pass on both.Expected behavior changes
System(s) tested on
Additional context
SCH free-wheels on its 10 ms minor-frame timer (no external major frame sync), so occasional "Slots skipped" events are normal in the native sim.
Contributor Info
Devin AI, on behalf of Michael Starch (NASA JPL)
Link to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/6fed9a7881e24ac18ea71733c54508fa