diff --git a/Makefile b/Makefile index d89cef053..0f582e07d 100755 --- a/Makefile +++ b/Makefile @@ -67,7 +67,7 @@ build-cryptolib: ## Build CryptoLib Component, ## -DSTANDALONE_TCP=0 if using ud build-fsw: ## Build the flight software (cFS or F') ifeq ($(FLIGHT_SOFTWARE), fprime) - cd fsw/fprime/fprime-nos3 && fprime-util generate && fprime-util build + cd fsw/fprime/fprime-nos3 && fprime-util generate && fprime-util build && fprime-seqgen Sequences/nos3test.seq -d build-artifacts/Linux/deployment/dict/deploymentTopologyDictionary.json else mkdir -p $(FSWBUILDDIR) cd $(FSWBUILDDIR) && cmake $(PREP_OPTS) ../cfe @@ -128,6 +128,7 @@ clean-fsw: ## Clean only flight software build artifacts rm -rf fsw/fprime/fprime-nos3/build-fprime-automatic-native rm -rf fsw/fprime/fprime-nos3/fprime-venv rm -rf fsw/fprime/fprime-nos3/logs + rm -f fsw/fprime/fprime-nos3/Sequences/*.bin clean-sim: ## Clean only simulator build artifacts rm -rf sims/build diff --git a/docs/wiki/NOS3_Flight_Software.md b/docs/wiki/NOS3_Flight_Software.md index 561193472..845b90087 100644 --- a/docs/wiki/NOS3_Flight_Software.md +++ b/docs/wiki/NOS3_Flight_Software.md @@ -342,6 +342,27 @@ TB\_Dont\_Care enum to overwrite time in F-Prime, but this adds a slight delay at the beginning of time synchronization between nos engine and F-Prime. +### F-Prime Sequencing +Creating sequences in Fprime can be done using the following steps: + +1. Use the `Sequences` Tab in the Fprime GDS to construct your preferred sequence. Name it accordingly with a .seq file extension and download it using `Save As`. + +2. Put the sequence file in the `fsw/fprime/fprime-nos3/Sequences/` folder + +3. Enter debug mode (`make debug`) and navigate to `fsw/fprime/fprime-nos3`. Compile the sequence into a .bin file using the below command. + +``` +fprime-seqgen Sequences/[filename].seq -d build-artifacts/Linux/deployment/dict/deploymentTopologyDictionary.json +``` + +Running sequences can be done through a variety of ways: + +* In Fprime GDS, use the CS_RUN command with the file parameter being `Sequences/___.bin` and the preferred blocking option. + +* For startup scripts, modify the docker exec command at the end of `scripts/fsw/fsw_fprime_launch.sh` to run your specific `sequence.bin` file. Alterations can be made in the Makefile's `build-fsw` for sequence compilation. + +* The `fprime-cli` command has the ability to manually run sequences through the `CS_RUN` command similar to how the startup sequence works. + ### F-Prime Documentation links: * F-Prime github Docs: [https://nasa.github.io/fprime/](https://nasa.github.io/fprime/) diff --git a/fsw/fprime/fprime-nos3 b/fsw/fprime/fprime-nos3 index effca1e8a..5d056966f 160000 --- a/fsw/fprime/fprime-nos3 +++ b/fsw/fprime/fprime-nos3 @@ -1 +1 @@ -Subproject commit effca1e8a366318937c2ba2e0b6c56a1a8cfc456 +Subproject commit 5d056966f6dab945708d05986467b5c7d71cc84e diff --git a/scripts/fsw/fsw_fprime_launch.sh b/scripts/fsw/fsw_fprime_launch.sh index 25334552a..c3844f3d9 100755 --- a/scripts/fsw/fsw_fprime_launch.sh +++ b/scripts/fsw/fsw_fprime_launch.sh @@ -165,4 +165,6 @@ then firefox ${urlIP}:5000 & fi +docker exec sc01-fprime sh -c "sleep 15 && cd fsw/fprime/fprime-nos3 && fprime-cli command-send deployment.cmdSeq.CS_RUN --arguments Sequences/nos3test.bin NO_BLOCK" + echo "Docker launch script completed!"