Repository navigation
Add real cFS SCH app driving the F Prime rate groups at 1 Hz - #3
Open
devin-ai-integration[bot] wants to merge 10 commits into
Open
devin-ai-integration[bot] wants to merge 10 commits into
devin-ai-integration[bot] wants to merge 10 commits into
Conversation
* Add basic integration tests Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov> * Replace inherited cFS bundle CI with F Prime build-and-test workflow Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov> * Remove custom ZMQ transport from integration test workflow Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: michael.d.starch <michael.d.starch@jpl.nasa.gov>
* Add CMake compatibility shim for building against cFE draco-rc5 Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov> * Include cfs_compat.cmake from fprime_cfs instead of local copy Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov> * Set CMAKE_MODULE_PATH to fprime_cfs cmake modules instead of direct include Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov> * Bump fprime to latest nasa/fprime devel and sub-app pins to merged devel Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: michael.d.starch <michael.d.starch@jpl.nasa.gov>
…cross cFE version switches (fprime-community#5)
- 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>
Author
Original prompt from michael.d.starch
|
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
…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>
|
Superseded by fprime-community#9 (same content, targeting the upstream repository). |
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::subscribeCfsCommand(), which subscribes to a cFS command message ID (type + sec-hdr bits) for a given APID. Upstream PR: Add CfsBridge::subscribeCfs for subscribing to cFS command or telemetry messages fprime-community/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-community/fprime_app#6. The submodule URL temporarily points at the PR fork (lestarch-autobot/fprime_app) and should be reverted tofprime-community/fprime_apponce Bump fprime_cfs to latest devel (SDDs, unit tests, CI workflow) fprime-community/fprime_cfs_reference#6 is merged.schadded tocpu1_APPLISTand the cFE startup script (priority 10).Update (latest push): rebased onto the newly merged upstream fixes —
libs/fprimebumped tonasa/fprimedevel head (35d4c0e8).apps/fprime_appSchAppDriver commit rebased ontofprime-community/fprime_appdevel4032403("Migrate rate group configure to ContextArray interface"), so the rate-group configure now uses the ContextArray interface.This branch builds on
devin/1784790000-final-submodule-bump(submodule bump to the CfsRouter architecture), which is included in the diff.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.git submodule updateverified against the new fprime_app URL.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