Skip to content

Drive F Prime rate groups with the standard cFS sch_lab scheduler app - #13

Merged
LeStarch merged 1 commit into
fprime-community:develfrom
JPL-Devin:devin/1785446697-sch-lab
Jul 30, 2026
Merged

LeStarch merged 1 commit into
fprime-community:develfrom
JPL-Devin:devin/1785446697-sch-lab

Conversation

@lestarch-autobot

Copy link
Copy Markdown
Contributor

Describe the contribution
Replaces the plan of vendoring the 7-year-old SCH app (#9) with the standard, maintained cFS sch_lab scheduler:

  1. apps/sch_lab (new submodule) — nasa/sch_lab at v7.0.1-4-gbfc82af, added like the other cFS submodules
  2. Schedule table override — fprime_cfs_reference_defs/tables/cpu1_sch_lab_table.c publishes the F Prime tick (command MID 0x1890 = APID 0x090, function code 0) once per second (TickRate 100, PacketRate 100), using the cFS-recommended mission-level table override mechanism
  3. Glue — sch_lab added to MISSION_GLOBAL_APPLIST and the cpu1 startup script (cFE name SCH_LAB, required to match the table name SCH_LAB.Schedule)
  4. README — documents the sch_lab tick source

No changes to fprime_app are needed: its CfsBridge already subscribes to the 0x1890 tick and routes it to the SchAppDriver.

Supersedes #9 (old vendored SCH app) and the SCH-prerequisite README callout of #12.

Testing performed

  1. make SIMULATION=native prep && make && make install — clean build; table override confirmed selected by the build system
  2. ./core-cpu1 — SCH Lab v7.0.1 initializes, loads the table, and the F Prime rate groups cycle at 1 Hz
  3. pytest test/int — all 5 GDS integration tests pass (commands, events, telemetry through GDS)

Expected behavior changes

  • The F Prime rate group tree is now clocked by sch_lab; previously no app in the repo published the tick, so rate groups never cycled on devel.
  • No API changes.

System(s) tested on

  • Hardware: PC (x86_64)
  • OS: Ubuntu 22.04 (SIMULATION=native)
  • Versions: cFE 7.0.0 (Draco), sch_lab v7.0.1, pinned fprime/fprime_cfs/fprime_app/fprime_gds submodules

Additional context
sch_lab is the actively maintained scheduler pattern shipped with the cFS bundle; the SCH app of #9 is v2.2.1 (~7 years old) and required manual porting to current cFE APIs.

Contributor Info
Michael Starch, NASA JPL (via Devin)

Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov>
@LeStarch
LeStarch merged commit b96f8ca into fprime-community:devel Jul 30, 2026
1 check failed
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.

2 participants