Skip to content

Commit 983897d

Browse files
author
John P. Lucas
authored
Merge pull request #302 from nasa/dev
Release Candidate 1.7.0
2 parents d9a2d9f + 88ad478 commit 983897d

File tree

132 files changed

+5393
-1280
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+5393
-1280
lines changed

.gitattributes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@
33

44
# Declare files that will always have LF line endings on checkout.
55
*.sh text eol=lf
6+
7+
# Handle PNGs as binary
8+
*.png binary

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ build
1111
*.o
1212
support/nos3_install.log
1313
tmp
14+
core.*

.gitmodules

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
[submodule "gsw/cosmos"]
5050
path = gsw/cosmos
5151
url = https://github.com/nasa-itc/gsw-cosmos.git
52+
branch = main
5253
[submodule "sims/truth_42_sim"]
5354
path = sims/truth_42_sim
5455
url = https://github.com/nasa-itc/truth_42_sim.git
@@ -123,3 +124,10 @@
123124
[submodule "components/generic_adcs"]
124125
path = components/generic_adcs
125126
url = https://github.com/nasa-itc/generic_adcs.git
127+
[submodule "components/generic_star_tracker"]
128+
path = components/generic_star_tracker
129+
url = https://github.com/nasa-itc/generic_star_tracker.git
130+
[submodule "components/syn"]
131+
path = components/syn
132+
url = https://github.com/nasa-itc/syn.git
133+
branch = main

Makefile

Lines changed: 47 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@
44
BUILDTYPE ?= debug
55
INSTALLPREFIX ?= exe
66
FSWBUILDDIR ?= $(CURDIR)/fsw/build
7+
GSWBUILDDIR ?= $(CURDIR)/gsw/build
78
SIMBUILDDIR ?= $(CURDIR)/sims/build
89

910
export CFS_APP_PATH = ../components
11+
export MISSION_DEFS = ../cfg/build/
12+
export MISSIONCONFIG = ../cfg/build/nos3
1013

1114
# The "prep" step requires extra options that are specified via enviroment variables.
1215
# Certain special ones should be passed via cache (-D) options to CMake.
@@ -27,94 +30,93 @@ endif
2730

2831
# The "LOCALTGTS" defines the top-level targets that are implemented in this makefile
2932
# Any other target may also be given, in that case it will simply be passed through.
30-
LOCALTGTS := all fsw fsw-prep pack sim sim-prep clean clean-fsw clean-sim checkout gsw gsm-prep launch log real-clean stop sc-launch
33+
LOCALTGTS := all checkout clean clean-fsw clean-sim clean-gsw config debug fsw gsw launch log prep real-clean sim stop stop-gsw
3134
OTHERTGTS := $(filter-out $(LOCALTGTS),$(MAKECMDGOALS))
3235

3336
# As this makefile does not build any real files, treat everything as a PHONY target
3437
# This ensures that the rule gets executed even if a file by that name does exist
3538
.PHONY: $(LOCALTGTS) $(OTHERTGTS)
3639

3740
#
38-
# Generic Commands
41+
# Commands
3942
#
4043
all:
44+
$(MAKE) config
4145
$(MAKE) fsw
4246
$(MAKE) sim
4347
$(MAKE) gsw
4448

45-
#
46-
# FSW
47-
#
48-
fsw:
49-
$(MAKE) fsw-prep
50-
$(MAKE) --no-print-directory -C $(FSWBUILDDIR) mission-install
49+
build-cryptolib:
50+
mkdir -p $(GSWBUILDDIR)
51+
cd $(GSWBUILDDIR) && cmake $(PREP_OPTS) -DSUPPORT=1 ../../components/cryptolib
52+
$(MAKE) --no-print-directory -C $(GSWBUILDDIR)
5153

52-
fsw-prep:
54+
build-fsw:
5355
mkdir -p $(FSWBUILDDIR)
5456
cd $(FSWBUILDDIR) && cmake $(PREP_OPTS) ../cfe
57+
$(MAKE) --no-print-directory -C $(FSWBUILDDIR) mission-install
5558

56-
#
57-
# Sims
58-
#
59-
sim:
60-
$(MAKE) sim-prep
61-
$(MAKE) --no-print-directory -C $(SIMBUILDDIR) install
62-
63-
sim-prep:
59+
build-sim:
6460
mkdir -p $(SIMBUILDDIR)
6561
cd $(SIMBUILDDIR) && cmake -DCMAKE_INSTALL_PREFIX=$(SIMBUILDDIR) ..
62+
$(MAKE) --no-print-directory -C $(SIMBUILDDIR) install
6663

67-
#
68-
# GSW
69-
#
70-
gsw:
71-
$(MAKE) gsw-prep
72-
./gsw/scripts/create_cosmos_gem.sh
73-
74-
gsw-prep:
75-
mkdir -p ./gsw/cosmos/build
64+
checkout:
65+
./scripts/docker_checkout.sh
7666

77-
#
78-
# Clean
79-
#
8067
clean:
8168
$(MAKE) clean-fsw
8269
$(MAKE) clean-sim
8370
$(MAKE) clean-gsw
71+
rm -rf cfg/build
8472

8573
clean-fsw:
74+
rm -rf cfg/build/nos3_defs
8675
rm -rf fsw/build
8776

8877
clean-sim:
8978
rm -rf sims/build
9079

9180
clean-gsw:
81+
rm -rf gsw/build
9282
rm -rf gsw/cosmos/build
83+
rm -rf /tmp/nos3
9384

94-
#
95-
# Script Calls
96-
#
97-
checkout:
98-
./gsw/scripts/checkout.sh
85+
config:
86+
./scripts/config.sh
9987

100-
gsw-launch:
101-
./gsw/scripts/gsw.sh
88+
debug:
89+
./scripts/docker_debug.sh
10290

103-
launch:
104-
./gsw/scripts/launch.sh
91+
fsw:
92+
./scripts/docker_build_fsw.sh
10593

106-
reboot:
107-
./gsw/scripts/reboot.sh
94+
gsw:
95+
./scripts/docker_build_cryptolib.sh
96+
./cfg/build/gsw_build.sh
97+
98+
launch:
99+
./scripts/docker_launch.sh
108100

109101
log:
110-
./gsw/scripts/log.sh
102+
./scripts/log.sh
103+
104+
prep:
105+
./scripts/prepare.sh
111106

112107
real-clean:
113108
$(MAKE) clean
114-
./gsw/scripts/real_clean.sh
109+
./scripts/real_clean.sh
115110

116-
sc-launch:
117-
./gsw/scripts/sc_launch.sh
111+
sim:
112+
./scripts/docker_build_sim.sh
118113

119114
stop:
120-
./gsw/scripts/stop.sh
115+
./scripts/docker_stop.sh
116+
./scripts/stop.sh
117+
118+
stop-gsw:
119+
./scripts/stop_gsw.sh
120+
121+
igniter:
122+
./scripts/igniter_launch.sh

README.md

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,48 +7,67 @@ The best source of documentation can be found at [the wiki](https://github.com/n
77

88
### Prerequisites
99
Each of the applications listed below are required prior to performing the installation procedure:
10-
* [Git 2.36+](https://git-scm.com/)
11-
* [Vagrant 2.3.4+](https://www.vagrantup.com/)
12-
* [VirtualBox 7.0+](https://www.virtualbox.org/)
10+
* Option A, you already use Linux
11+
* [Git 2.36+](https://git-scm.com/)
12+
* Linux with docker and docker compose installed
13+
* Option B, deployment of a virtual machine (VM)
14+
* [Git 2.36+](https://git-scm.com/)
15+
* [Vagrant 2.3.4+](https://www.vagrantup.com/)
16+
* [VirtualBox 7.0+](https://www.virtualbox.org/)
1317

1418
### Installing
19+
Option B only.
20+
Will provision a VM with all required packages installed to be used immediately.
1521
1. Clone the repository `git clone https://github.com/nasa/nos3.git`
1622
2. `cd nos3`
1723
3. Clone the submodules `git submodule update --init --recursive`
1824
4. Run `vagrant up` and wait to return to a prompt
1925
- This can take anywhere from a few minutes to hours depending on internet speeds and host PC specs
20-
5. Login to the nos3 user using the password `nos3123!` and get to work!
21-
6. Try building and running following the instructions below
26+
_It may also be wise at around this stage to shutdown the VM once it starts and to allocate it more resources if possible, preferably at least 4 cores and 8 GB of RAM, preferably 8 cores and 16 GB of RAM._
27+
5. In VirtualBox `Devices > Upgrade Guest Additions...`
28+
- Wait for this to complete
29+
6. Run `vagrant reload` to finish the upgrade
30+
7. Login to the jstar user using the password `jstar123!` and get to work!
31+
8. Try building and running following the instructions below
2232

2333
### Getting started
24-
By default the nos3 repository is shared into the virtual machine at `/home/nos3/Desktop/github-nos3`
34+
By default the nos3 repository is shared into the virtual machine at `/home/jstar/Desktop/github-nos3`
2535
1. Open a terminal
2636
2. Navigate to the nos3 repository
27-
- `cd /home/nos3/Desktop/github-nos3`
28-
2. To build use the `make` command from the nos3 repo
29-
3. To run nos3 use the `make launch` command from the nos3 repo
30-
4. To halt nos3 use the `make stop` command from the nos3 repo
37+
- `cd /home/jstar/Desktop/github-nos3`
38+
3. Prepare the environment with COSMOS and docker containers
39+
- `make prep`
40+
4. Build FSW, GSW, and SIMS
41+
- `make`
42+
5. Run NOS3 including FSW, GSW, and SIMS
43+
- `make launch`
44+
6. Stop NOS3
45+
- `make stop`
46+
- Note that COSMOS will remaining running in the background until `make stop-gsw` is done
3147

3248
### Directory Layout
33-
* `components` contains the repositories for the hardware component apps; each repository contains the app, an associated sim, and COSMOS command and telemetry tables
49+
* `components` contains the repositories for the hardware component apps
50+
- /fsw - cFS application
51+
- /gsw - OpenC3 (or Ball Aerospace) COSMOS database
52+
- /sim - NOS3 simulator
53+
- /support - Optional folder containing a standalone checkout application
3454
* `fsw` contains the repositories needed to build cFS FSW
3555
- /apps - the open source cFS apps
3656
- /cfe - the core flight system (cFS) source files
3757
- /nos3_defs - cFS definitions to configure cFS for NOS3
38-
- /osal - operating system abstraction layer (OSAL), enables building for linux and flight OS
58+
- /osal - operating system abstraction layer (OSAL), enables building for Linux and flight OS
3959
- /psp - platform support package (PSP), enables use on multiple types of boards
4060
- /tools - standard cFS provided tools
4161
* `gsw` contains the nos3 ground station files, and other ground based tools
42-
- /ait - Ammos Instrument Toolkit (Untested for 1.05.0)
43-
- /cosmos - COSMOS files
62+
- /cosmos - OpenC3 (or Ball Aerospace) COSMOS files
4463
- /OrbitInviewPowerPrediction - OIPP tool for operators
4564
- /scripts - convenience scripts
4665
* `sims` contains the nos3 simulators and configuration files
4766
- /cfg - 42 configuration files and NOS3 top level configuration files
48-
- /nos_time_driver - time syncronization for all components
67+
- /nos_time_driver - time synchronization for all components
4968
- /sim_common - common files used by component simulators including the files that define the simulator plugin architecture
5069
- /sim_terminal - terminal for testing on NOS Engine busses
51-
- /truth_42_sim - interface between 42 and COSMOS to provide dynamics truth data to COSMOS
70+
- /truth_42_sim - interface between 42 and OpenC3 COSMOS to provide dynamics truth data
5271

5372
### Versioning
5473
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the tags on this repository.
@@ -59,5 +78,12 @@ This project is licensed under the NOSA (NASA Open Source Agreement) License.
5978
# Issues and Features
6079
Please report issues and request features on the GitHub tracking system - [NOS3 Issues](https://www.github.com/nasa/nos3/issues).
6180

81+
## Contributions
82+
If you would like to contribute to the repository, please complete this [NASA Form][def] and submit it to gsfc-softwarerequest@mail.nasa.gov with John.P.Lucas@nasa.gov CC'ed.
83+
Next, please create an issue describing the work to be performed noting that you intend to work it, create a related branch, and submit a pull request when ready. When complete, we will review and work to get it integrated.
84+
6285
## Support
6386
If this project interests you or if you have any questions, please feel free to contact any developer directly or email `support@nos3.org`.
87+
88+
89+
[def]: https://github.com/nasa/nos3/files/14578604/NOS3_Invd_CLA.pdf "NOS3 NASA Contributor Form PDF"

Vagrantfile

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,30 @@
11
Vagrant.configure("2") do |config|
2+
###
3+
### Notes:
4+
### Using the provided base boxes is not required to use the software
5+
### Base boxes are provisioned from the following location
6+
### * https://github.com/nasa-itc/deployment
7+
### Links to which commit was used is captured in the box release notes
8+
###
9+
210
### Uncomment one of the following to select configuration
3-
#config.vm.box = "nos3/rocky"
11+
#config.vm.box = "nos3/rocky" # Not yet updated to support
412
config.vm.box = "nos3/ubuntu"
513

614
### Specify version
7-
config.vm.box_version = "20230731"
15+
config.vm.box_version = "20231101"
816

917
### Share host NOS3 repository into VM
10-
config.vm.synced_folder ".", "/home/nos3/Desktop/github-nos3",
11-
owner: 'root', group:'vboxsf', automount:'true',
18+
config.vm.synced_folder ".", "/home/jstar/Desktop/github-nos3",
19+
owner: 'jstar', group:'vboxsf', automount:'true',
1220
mount_options: ["dmode=0770", "fmode=0770"]
1321

1422
### General configuration
1523
config.vm.provider "virtualbox" do |vbox|
16-
vbox.name = "nos3_20230731"
24+
vbox.name = "nos3_20231101"
1725
vbox.gui = true
1826
### Enable additional configuration as needed
19-
vbox.cpus = 6
20-
vbox.memory = "6144"
27+
vbox.cpus = 4
28+
vbox.memory = "8192"
2129
end
2230
end
Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
<<<<<<<<<<<<<<<<< 42: Command Script File >>>>>>>>>>>>>>>>>
2-
0.0 SC[0] Cmd Angles = [0.0 0.0 0.0] deg, Seq = 123 wrt L Frame
32
EOF
43

4+
0.0 SC[0] qrl = [0.0 0.0 0.0 1.0]
5+
1000.0 SC[0] qrl = [0.0 1.0 0.0 0.0]
6+
2000.0 Point SC[0].B[0] Primary Vector [0.0 0.0 1.0] at VELOCITY
7+
2000.0 Point SC[0].B[0] Secondary Vector [1.0 0.0 0.0] at SUN
8+
59
##############################################################
610
# All lines after EOF are ignored
711
# Comment lines begin with #, %, or //
@@ -19,11 +23,14 @@ EOF
1923

2024
# Sim-related commands
2125
%lf DTSIM = %lf
22-
%lf SC[%ld].RotDOF %s
26+
%lf SC[%ld].DynMethod %s
2327
%lf SC[%ld].G[%ld].RotLocked[%ld] %s
2428
%lf SC[%ld].G[%ld].TrnLocked[%ld] %s
2529
%lf Impart Impulsive Delta-V of [%lf %lf %lf] m/s in Frame %c to Orb[%ld]
2630
%c can be N or L
31+
%lf SC[%ld].LoopGain = %lf
32+
%lf SC[%ld].LoopDelay = %lf
33+
%lf SC[%ld].GainAndDelayActive = %s
2734

2835
# GUI-related commands
2936
%lf POV.Host.SC %ld
@@ -33,7 +40,7 @@ EOF
3340
%lf Banner = "Banner in Quotes"
3441
%lf GL Output Step = %lf
3542
%lf POV CmdRange = %lf
36-
%lf POV CmdSeq = %li
43+
%lf POV CmdSeq = %ld
3744
%lf POV CmdAngle = [%lf %lf %lf] deg
3845
%lf POV CmdPermute = [%lf %lf %lf; %lf %lf %lf; %lf %lf %lf]
3946
%lf POV TimeToGo = %lf
@@ -66,8 +73,6 @@ EOF
6673
%lf Align SC[%ld].B[%ld] %s Vector [%lf %lf %lf] with %c-frame Vector [%lf %lf %lf]
6774
# %c-frame can be H, N, or L
6875
%lf Align SC[%ld].B[%ld] %s Vector [%lf %lf %lf] with SC[%ld].B[%ld] vector [%lf %lf %lf]
69-
%lf SC[%ld].Thr[%ld] %s
70-
%s is OFF or ON
7176
Event Eclipse Entry SC[%ld] qrl = [%lf %lf %lf %lf]
7277
Event Eclipse Exit SC[%ld] qrl = [%lf %lf %lf %lf]
7378
Event Eclipse Entry SC[%ld] Cmd Angles = [%lf %lf %lf] deg, Seq = %ld wrt %c Frame

0 commit comments

Comments
 (0)