Skip to content

Commit

Permalink
Open source release version 1.03.00
Browse files Browse the repository at this point in the history
  • Loading branch information
jlucas9 committed Aug 3, 2018
0 parents commit fb1cd54
Show file tree
Hide file tree
Showing 5,667 changed files with 1,641,133 additions and 0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#
# Metadata
#
.vagrant
.vscode

#
# Build Files
#
build
*.o
support/nos3_install.log
54 changes: 54 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
cmake_minimum_required(VERSION 2.8)

project(mission)

include(CMakeParseArguments)

SET(FORCE_32 ON)
SET(BUILD_FLIGHT "NO" CACHE BOOL "Specifies whether to build the AVR flight target")
SET(BUILD_SIMULATOR "NO" CACHE BOOL "Specifies whether to build the NOS3 Simulator")
SET(BUILD_TESTS "NO" CACHE BOOL "Flag to enable building unit tests")
SET(SKIP_VERSION "NO" CACHE BOOL "Specifies whether to skip generating the CFE version.h file (which can be a slow process)")
SET(WIRING_PI "NO" CACHE BOOL "Specifies whether or not to include the wiringPi library")

# test endianess
include(TestBigEndian)
test_big_endian(BYTE_ORDER_BE)
if(BYTE_ORDER_BE)
add_definitions(-DBYTE_ORDER_BE)
else()
add_definitions(-DBYTE_ORDER_LE)
endif()

# find itc cmake module path
find_path(_ITC_CMAKE_MODULES_
NAMES FindITC_Common.cmake
PATHS ${ITC_CMAKE_MODULES}
${ITC_DEV_ROOT}/cmake/modules
$ENV{ITC_DEV_ROOT}/cmake/modules
/usr/local/cmake/modules
/usr/cmake/modules)
if(NOT _ITC_CMAKE_MODULES_)
message(WARNING "Unable to find ITC CMake Modules")
endif()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${_ITC_CMAKE_MODULES_})

set(CMAKE_CXX_FLAGS "-m32")
set(CMAKE_SHARED_LINKER_FLAGS "-m32")

set(ENV{CFS_APP_PATH} "components:$ENV{CFS_APP_PATH}")
set(MISSION_SOURCE_DIR ${CMAKE_SOURCE_DIR})
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR})

include(nasa_defs/mission.cmake)

add_subdirectory(cfe)

if (BUILD_SIMULATOR)
# add gtest to build
if (NOT WIRING_PI)
include(SetupGTest)
endif (NOT WIRING_PI)
add_subdirectory(sims)
endif (BUILD_SIMULATOR)

105 changes: 105 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# NASA Operational Simulator for Small Satellites

## Getting Started
This repository allows the user to generate a VM in which to develop and test utilizing Vagrant and Virtual Box enabling every user to have an identical environment.

Various open source packages have been utilized and will be installed, these are explained minimally below:
* 42 - Spacecraft dynamics and visualization, NASA GSFC
* cFS - core Flight System, NASA GSFC
* COSMOS - Ball Aerospace
* ITC Common - Loggers and developer tools, NASA IV&V ITC
* NOS Engine - Middleware bus simulator, NASA IV&V ITC

### Prerequisites
Each of the applications listed below are required prior to performing the installation procedure:
* [Git 1.8+](https://git-scm.com/)
* [Vagrant 1.9+](https://www.vagrantup.com/)
* [VirtualBox 5.1+](https://www.virtualbox.org/)

### Installing
1. Open a terminal
2. Navigate to the desired location for the repository
3. Clone the repository
4. Navigate to `/nos3/support`
5. Run `vagrant up` and wait to return to a prompt
6. Run `vagrant reload` and wait for the VM to restart
7. Login to the nos3 user using the password `nos3123!` and get to work!

### Running
In both CentOS and Ubuntu, scripts are located on the desktop that enable the user to easily work:
* `nos3-build.sh` - Build FSW and simulators
* `nos3-run.sh` - Launch the ground station, FSW, and simulators
* `nos3-stop.sh` - Safely stop all components

### Directory Layout
* `~/nos3/` contains the repository at the time of the build locally in the VM.
* /apps - the open source cFS apps
* /build - the unarchived build directory
* /cfe - the core flight system (cFS) source files
* /docs - documentation related to cFS
* /osal - operating system abstraction layer (OSAL), enables building for linux and flight OS
* /psp - platform support package (PSP), enables use on multiple types of boards
* /support - all the files needed for ground stations, ION, and installation
* /cosmos - COSMOS database files
* /installers - installation scripts
* /packages - installation packages
* /VirtualMachine - files directly releated to the VM, such as desktop scripts and launchers
* `Vagrantfile` - main provisioner file used to generate the VM
* /tools - standard cFS provided tools
* `.gitignore` - list of files and directories to be ommitted from git
* `.gitmodules` - list of git submodules utilized
* `CMakeLists.txt` - top level cmake file to be used from inside the build directory
* `README.md` - this file

## Development
Work occurs inside the VM, via shared folders, or on the host. This repository is copied into the `~/nos3` directory on installation, but can be moved / shared to a different location. Note that changing this directory will cause the scripts provided on the desktop to malfunction.

### Git Flow
The following flow for development should be adhered to when possible:

* Master
* Tested and verified using the approved test bed
* Always demonstration ready and proven
* Tagged releases should be from this branch

* Development
* Always builds and runs
* The head of the project with the most features
* Commits direct to this branch are only to be hot fixes and are not desired

* Feature Branch
* Have a Gitlab issue describing the end goal and path forward
* Based out of development and merged back in after testing

### Example Flow
Note that the git command line may be substitued for a GUI tool without issue.

1. Create GitLab issue describing the goal and the path forward
2. Open a terminal
2. Navigate to the top level directory of the working tree.
4. Checkout the development branch
- `git checkout development`
5. Create a new branch for development
- `git checkout -b ##-Example-Issue`
6. Stage and commit work
- `git add *`
- `git commit -m "Detailed commit message explaining what changed"`
7. Commit as many times as needed
8. Checkout the development branch
- `git checkout development`
9. Pull latest development branch
- `git pull`
10. Merge feature branch into development
- `git merge ##-Example-Issue`

### Versioning
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the tags on this repository.

## Support
If this project interests you or if you have any questions, please feel free to contact any developer directly or email `[email protected]`.

### License
This project is licensed under the NOSA (NASA Open Source Agreement) License.

### Acknowledgments
* Special thanks to all the developers involved!
4 changes: 4 additions & 0 deletions apps/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

inc/CFS_TST_ci_types\.h

inc/CFS_TST_to_types\.h
22 changes: 22 additions & 0 deletions apps/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Applications to operate with cFE release 6.6.0
Started from the tag: apps-rel-6.5.0

Apps from apps-rel-6.5.0 that did not build for cFS 6.6.0 are listed below followed by the fix
ci_lab - copied from ci_lab-for-cfe-660 branch
sch - copied from sch-for-cfe-660 branch
- added HTONS to table to compile for linux in sample defs
cf - copied from cf-for-cfe-660 branch
- updated CMake to build the PRI objects as static lib
cs - copied from cs-for-cfe-660 branch
hs - copied from hs-for-cfe-660 branch
lc - copied from lc-for-cfe-660 branch
ds - added include to ds_verify.h
hk - added include to hs_verify.h
sc - payload->parameter struct fixed in sc_cmds.c
ci - updated CMake to build properly
to - updated CMake to build properly
io_lib - updated CMake to build properly

Generic Fixes:
- Some applications still used the old location for tables "cf/apps/<tbl>.tbl", this is changed to "cf/<tbl>.tbl in all relevant locations
- Added the cfe table build macros to CMakeLists where needed
13 changes: 13 additions & 0 deletions apps/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
This is the preliminary documentation for the JSC SBN application. The
application relies on a library one or more back-end networking modules
loaded at runtime by the SBN application.

In order to build using the CMake system, ensure:

1) copy sbn/fsw/src/SbnModuleData.dat to your defs folder as
cpu<n>_SbnModuleData.dat, and edit as appropriate
2) copy sbn/fsw/src/SbnPeerData.dat to your defs folder as
cpu<n>_SbnPeerData.dat and edit as appropriate
3) edit targets.cmake:
a) TGT<n>_APPLIST to contain something like "sbn_lib sbn ipv4"
b) TGT<n>_FILELIST to also contain "SbnModuleData.dat SbnPeerData.dat"
23 changes: 23 additions & 0 deletions apps/cf/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
cmake_minimum_required(VERSION 2.6.4)
project(CFS_CF C)

include_directories(fsw/mission_inc)
include_directories(fsw/platform_inc)
include_directories(fsw/src/PUB)

# include_directories(${cfs_lib_MISSION_DIR}/fsw/public_inc)

aux_source_directory(fsw/src APP_SRC_FILES)
aux_source_directory(fsw/src/PRI PRI_SRC_FILES)

add_library(cfdp ${PRI_SRC_FILES})

# Create the app module
add_cfe_app(cf ${APP_SRC_FILES})
target_link_libraries(cf cfdp)

# Create table object files
include_directories(fsw/src)

# Add the tables
add_cfe_tables(cf fsw/tables/cf_cfgtable.c)
Binary file added apps/cf/Core Flight System (CFS) NOSA.pdf
Binary file not shown.
Empty file.
Binary file not shown.
Binary file not shown.
Loading

0 comments on commit fb1cd54

Please sign in to comment.