Skip to content

Commit 7fd8e4b

Browse files
committed
[#84] fprime selection for configure, added fprime.sh script to cp to docker_launch when fprime selected
1 parent b0b374d commit 7fd8e4b

File tree

5 files changed

+146
-90
lines changed

5 files changed

+146
-90
lines changed

scripts/configure.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,13 @@
2626
fsw_identified = 1
2727
os.system('cp ./scripts/fsw_fprime_build.sh ./cfg/build/fsw_build.sh')
2828
os.system('cp ./scripts/fsw_fprime_launch.sh ./cfg/build/fsw_launch.sh')
29+
os.system('cp ./scripts/fprime.sh ./scripts/docker_launch.sh')
2930

3031
if (fsw_cfg == 'cfs'):
3132
fsw_identified = 1
33+
# os.system('cp ./scripts/fsw_fprime_build.sh ./cfg/build/fsw_build.sh')
34+
# os.system('cp ./scripts/fsw_fprime_launch.sh ./cfg/build/fsw_launch.sh')
35+
os.system('cp ./scripts/cfs_cosmos.sh ./scripts/docker_launch.sh')
3236

3337
if (fsw_identified == 0):
3438
print('Invalid FSW in configuration file!')

scripts/docker_checkout.sh

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -5,61 +5,3 @@
55
# https://github.com/nasa-itc/deployment
66
#
77

8-
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[1]}" )/scripts" &> /dev/null && pwd )
9-
source $SCRIPT_DIR/env.sh
10-
11-
export SC_NUM="sc_1"
12-
export SC_NETNAME="nos3_"$SC_NUM
13-
# export SC_NETNAME="host"
14-
export SC_CFG_FILE="-f nos3-simulator.xml" #"-f sc_"$i"_nos3_simulator.xml"
15-
16-
echo "Create spacecraft network..."
17-
$DNETWORK create $SC_NETNAME 2> /dev/null
18-
echo ""
19-
20-
# Debugging
21-
# Replace `--tab` with `--window-with-profile=KeepOpen` once you've created this gnome-terminal profile manually
22-
23-
#echo "42..."
24-
#rm -rf $USER_NOS3_DIR/42/NOS3InOut
25-
#cp -r $BASE_DIR/cfg/build/InOut $USER_NOS3_DIR/42/NOS3InOut
26-
#xhost +local:*
27-
#gnome-terminal --tab --title=$SC_NUM" - 42" -- $DFLAGS -e DISPLAY=$DISPLAY -v $USER_NOS3_DIR:$USER_NOS3_DIR -v /tmp/.X11-unix:/tmp/.X11-unix:ro --name $SC_NUM"_fortytwo" -h fortytwo --network=$SC_NETNAME -w $USER_NOS3_DIR/42 -t $DBOX $USER_NOS3_DIR/42/42 NOS3InOut
28-
#echo ""
29-
30-
echo "NOS Core..."
31-
gnome-terminal --tab --title="NOS Engine Server" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_nos_engine_server" -h nos_engine_server --network=$SC_NETNAME -w $SIM_BIN $DBOX /usr/bin/nos_engine_server_standalone -f $SIM_BIN/nos_engine_server_config.json
32-
gnome-terminal --tab --title="NOS Time Driver" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name nos_time_driver --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE time
33-
gnome-terminal --tab --title="NOS Terminal" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name "nos_terminal" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE stdio-terminal
34-
35-
echo "Checkout..."
36-
# Rename for your simulator under test to allow checkout
37-
gnome-terminal --tab --title="Sample Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_sample_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE sample_sim
38-
39-
#testing star tracker
40-
gnome-terminal --tab --title="Generic Star Tracker" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_generic_star_tracker_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic_star_tracker_sim
41-
#testing generic mag
42-
# gnome-terminal --tab --title="Generic Mag" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_generic_mag_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic_mag_sim
43-
# Example manual build for sample checkout:
44-
# cd ./components/sample/support
45-
# mkdir build
46-
# cd build
47-
# cmake .. -DTGTNAME=cpu1
48-
# make
49-
50-
# Rename for your checkout under test to allow checkout
51-
gnome-terminal --tab --title="FPrime" -- $DFLAGS -v $BASE_DIR:$BASE_DIR --name $SC_NUM"_sample_checkout" --network=$SC_NETNAME -w $BASE_DIR $DBOX ./scripts/fsw_fprime_launch.sh
52-
#gnome-terminal --title="Sample Checkout" -- $DFLAGS -v $BASE_DIR:$BASE_DIR --name $SC_NUM"_sample_checkout" --network=$SC_NETNAME -w $BASE_DIR $DBOX ./components/sample/support/build/sample_checkout
53-
54-
echo ""
55-
56-
sleep 1
57-
58-
urlIP=$(docker container inspect sc_1_sample_checkout | grep -i IPAddress | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b")
59-
60-
sleep 10
61-
62-
firefox ${urlIP}:5000
63-
64-
echo ""
65-

scripts/docker_launch.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ do
9494

9595
echo $SC_NUM " - Flight Software..."
9696
cd $FSW_DIR
97-
# gnome-terminal --title=$SC_NUM" - NOS3 Flight Software" -- $DFLAGS -v $BASE_DIR:$BASE_DIR --name $SC_NUM"_nos_fsw" -h nos_fsw --network=$SC_NETNAME -w $FSW_DIR --sysctl fs.mqueue.msg_max=10000 --ulimit rtprio=99 --cap-add=sys_nice $DBOX $SCRIPT_DIR/fsw_respawn.sh &
9897
gnome-terminal --tab --title="FPrime" -- $DFLAGS -v $BASE_DIR:$BASE_DIR --name $SC_NUM"_sample_checkout" --network=$SC_NETNAME -w $BASE_DIR $DBOX ./scripts/fsw_fprime_launch.sh
9998

10099

scripts/fprime.sh

Lines changed: 141 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,43 +8,154 @@
88
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
99
source $SCRIPT_DIR/env.sh
1010

11-
export SC_NUM="sc_1"
12-
export SC_NETNAME="nos3_"$SC_NUM
13-
# export SC_NETNAME="host"
14-
export SC_CFG_FILE="-f nos3-simulator.xml" #"-f sc_"$i"_nos3_simulator.xml"
11+
# Check that local NOS3 directory exists
12+
if [ ! -d $USER_NOS3_DIR ]; then
13+
echo ""
14+
echo " Need to run make prep first!"
15+
echo ""
16+
exit 1
17+
fi
1518

16-
echo "Create spacecraft network..."
17-
$DNETWORK create $SC_NETNAME 2> /dev/null
19+
# Check that configure build directory exists
20+
if [ ! -d $BASE_DIR/cfg/build ]; then
21+
echo ""
22+
echo " Need to run make config first!"
23+
echo ""
24+
exit 1
25+
fi
26+
27+
echo "Make data folders..."
28+
# FSW Side
29+
mkdir $FSW_DIR/data 2> /dev/null
30+
mkdir $FSW_DIR/data/cam 2> /dev/null
31+
mkdir $FSW_DIR/data/evs 2> /dev/null
32+
mkdir $FSW_DIR/data/hk 2> /dev/null
33+
mkdir $FSW_DIR/data/inst 2> /dev/null
34+
# GSW Side
35+
mkdir /tmp/nos3 2> /dev/null
36+
mkdir /tmp/nos3/data 2> /dev/null
37+
mkdir /tmp/nos3/data/cam 2> /dev/null
38+
mkdir /tmp/nos3/data/evs 2> /dev/null
39+
mkdir /tmp/nos3/data/hk 2> /dev/null
40+
mkdir /tmp/nos3/data/inst 2> /dev/null
41+
mkdir /tmp/nos3/uplink 2> /dev/null
42+
cp $BASE_DIR/fsw/build/exe/cpu1/cf/cfe_es_startup.scr /tmp/nos3/uplink/tmp0.so 2> /dev/null
43+
cp $BASE_DIR/fsw/build/exe/cpu1/cf/sample.so /tmp/nos3/uplink/tmp1.so 2> /dev/null
44+
45+
echo "Create ground networks..."
46+
$DNETWORK create \
47+
--driver=bridge \
48+
--subnet=192.168.41.0/24 \
49+
--gateway=192.168.41.1 \
50+
nos3_core
51+
echo ""
52+
53+
#echo "Launch GSW..."
54+
$BASE_DIR/cfg/build/gsw_launch.sh
55+
echo ""
56+
57+
echo "Create NOS interfaces..."
58+
export GND_CFG_FILE="-f nos3-simulator.xml"
59+
gnome-terminal --tab --title="NOS Terminal" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name "nos_terminal" --network=nos3_core -w $SIM_BIN $DBOX ./nos3-single-simulator $GND_CFG_FILE stdio-terminal
60+
gnome-terminal --tab --title="NOS UDP Terminal" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name "nos_udp_terminal" --network=nos3_core -w $SIM_BIN $DBOX ./nos3-single-simulator $GND_CFG_FILE udp-terminal
1861
echo ""
1962

20-
# Debugging
21-
# Replace `--tab` with `--window-with-profile=KeepOpen` once you've created this gnome-terminal profile manually
63+
# Note only currently working with a single spacecraft
64+
export SATNUM=1
65+
66+
#
67+
# Spacecraft Loop
68+
#
69+
for (( i=1; i<=$SATNUM; i++ ))
70+
do
71+
export SC_NUM="sc_"$i
72+
export SC_NETNAME="nos3_"$SC_NUM
73+
export SC_CFG_FILE="-f nos3-simulator.xml" #"-f sc_"$i"_nos3_simulator.xml"
74+
75+
# Debugging
76+
#echo "Spacecraft number = " $SC_NUM
77+
#echo "Spacecraft network = " $SC_NETNAME
78+
#echo "Spacecraft configuration = " $SC_CFG_FILE
79+
80+
echo $SC_NUM " - Create spacecraft network..."
81+
$DNETWORK create $SC_NETNAME 2> /dev/null
82+
echo ""
2283

23-
#echo "42..."
24-
#cd /opt/nos3/42/
25-
#rm -rf NOS3InOut
26-
#cp -r $BASE_DIR/sims/cfg/InOut /opt/nos3/42/NOS3InOut
27-
#xhost +local:*
28-
#gnome-terminal --window-with-profile=KeepOpen --title="42" -- $DFLAGS -e DISPLAY=$DISPLAY -v /opt/nos3/42/NOS3InOut:/opt/nos3/42/NOS3InOut -v /tmp/.X11-unix:/tmp/.X11-unix:ro --name $SC_NUM"_fortytwo" -h fortytwo --network=$SC_NETNAME -w /opt/nos3/42 -t $DBOX /opt/nos3/42/42 NOS3InOut
29-
#echo ""
84+
# echo $SC_NUM " - Connect COSMOS to spacecraft network..."
85+
# $DNETWORK connect $SC_NETNAME cosmos_openc3-operator_1 --alias cosmos
86+
# echo ""
3087

31-
echo "NOS Core..."
32-
gnome-terminal --tab --title="NOS Engine Server" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_nos_engine_server" -h nos_engine_server --network=$SC_NETNAME -w $SIM_BIN $DBOX /usr/bin/nos_engine_server_standalone -f $SIM_BIN/nos_engine_server_config.json
33-
gnome-terminal --tab --title="NOS Time Driver" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name nos_time_driver --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE time
34-
gnome-terminal --tab --title="NOS Terminal" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name "nos_terminal" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE stdio-terminal
88+
echo $SC_NUM " - 42..."
89+
rm -rf $USER_NOS3_DIR/42/NOS3InOut
90+
cp -r $BASE_DIR/cfg/build/InOut $USER_NOS3_DIR/42/NOS3InOut
91+
xhost +local:*
92+
gnome-terminal --tab --title=$SC_NUM" - 42" -- $DFLAGS -e DISPLAY=$DISPLAY -v $USER_NOS3_DIR:$USER_NOS3_DIR -v /tmp/.X11-unix:/tmp/.X11-unix:ro --name $SC_NUM"_fortytwo" -h fortytwo --network=$SC_NETNAME -w $USER_NOS3_DIR/42 -t $DBOX $USER_NOS3_DIR/42/42 NOS3InOut
93+
echo ""
3594

36-
echo "Checkout..."
37-
# Rename for your simulator under test to allow checkout
38-
gnome-terminal --tab --title="Sample Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_sample_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE sample_sim
95+
echo $SC_NUM " - Flight Software..."
96+
cd $FSW_DIR
97+
gnome-terminal --tab --title="FPrime" -- $DFLAGS -v $BASE_DIR:$BASE_DIR --name $SC_NUM"_sample_checkout" --network=$SC_NETNAME -w $BASE_DIR $DBOX ./scripts/fsw_fprime_launch.sh
3998

40-
# Example manual build for sample checkout:
41-
# cd ./components/sample/support
42-
# mkdir build
43-
# cd build
44-
# cmake .. -DTGTNAME=cpu1
45-
# make
4699

47-
# Rename for your checkout under test to allow checkout
48-
# gnome-terminal --window-with-profile=KeepOpen --title="Sample f' test" -- $DFLAGS -v $BASE_DIR:$BASE_DIR --name $SC_NUM"_sample_checkout" --network=$SC_NETNAME -w $BASE_DIR $DBOX ./components/sample/fprime/build/sample_checkout
100+
echo ""
101+
#gnome-terminal --window-with-profile=KeepOpen --title=$SC_NUM" - NOS3 Flight Software" -- $DFLAGS -v $BASE_DIR:$BASE_DIR --name $SC_NUM"_nos_fsw" -h nos_fsw --network=$SC_NETNAME -w $FSW_DIR --sysctl fs.mqueue.msg_max=10000 --ulimit rtprio=99 --cap-add=sys_nice $DBOX $FSW_DIR/core-cpu1 -R PO &
102+
echo ""
49103

104+
# Debugging
105+
# Replace `--tab` with `--window-with-profile=KeepOpen` once you've created this gnome-terminal profile manually
106+
107+
echo $SC_NUM " - CryptoLib..."
108+
gnome-terminal --tab --title=$SC_NUM" - CryptoLib" -- $DFLAGS -v $BASE_DIR:$BASE_DIR --name $SC_NUM"_cryptolib" --network=$SC_NETNAME --network-alias=cryptolib -w $BASE_DIR/gsw/build $DBOX ./support/standalone
109+
echo ""
110+
111+
echo $SC_NUM " - Simulators..."
112+
cd $SIM_BIN
113+
gnome-terminal --tab --title=$SC_NUM" - NOS Engine Server" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_nos_engine_server" -h nos_engine_server --network=$SC_NETNAME -w $SIM_BIN $DBOX /usr/bin/nos_engine_server_standalone -f $SIM_BIN/nos_engine_server_config.json
114+
gnome-terminal --tab --title=$SC_NUM" - 42 Truth Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_truth42sim" -h truth42sim --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE truth42sim
115+
116+
$DNETWORK connect $SC_NETNAME nos_terminal
117+
$DNETWORK connect $SC_NETNAME nos_udp_terminal
118+
119+
# Component simulators
120+
gnome-terminal --tab --title=$SC_NUM" - CAM Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_cam_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE camsim
121+
gnome-terminal --tab --title=$SC_NUM" - CSS Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_css_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic_css_sim
122+
gnome-terminal --tab --title=$SC_NUM" - EPS Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_eps_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic_eps_sim
123+
gnome-terminal --tab --title=$SC_NUM" - FSS Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_fss_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic_fss_sim
124+
gnome-terminal --tab --title=$SC_NUM" - GPS Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_gps_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE gps
125+
gnome-terminal --tab --title=$SC_NUM" - IMU Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_imu_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic_imu_sim
126+
gnome-terminal --tab --title=$SC_NUM" - MAG Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_mag_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic_mag_sim
127+
gnome-terminal --tab --title=$SC_NUM" - RW 0 Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_rw_sim0" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic-reactionwheel-sim0
128+
gnome-terminal --tab --title=$SC_NUM" - RW 1 Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_rw_sim1" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic-reactionwheel-sim1
129+
gnome-terminal --tab --title=$SC_NUM" - RW 2 Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_rw_sim2" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic-reactionwheel-sim2
130+
131+
gnome-terminal --tab --title=$SC_NUM" - Radio Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_radio_sim" -h radio_sim --network=$SC_NETNAME --network-alias=radio_sim -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic_radio_sim
132+
133+
gnome-terminal --tab --title=$SC_NUM" - Sample Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_sample_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE sample_sim
134+
gnome-terminal --tab --title=$SC_NUM" - StarTrk Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_startrk_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic_star_tracker_sim
135+
gnome-terminal --tab --title=$SC_NUM" - Torquer Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"_torquer_sim" --network=$SC_NETNAME -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic_torquer_sim
136+
echo ""
137+
done
138+
139+
echo "NOS Time Driver..."
140+
sleep 8
141+
gnome-terminal --tab --title="NOS Time Driver" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name nos_time_driver --network=nos3_core -w $SIM_BIN $DBOX ./nos3-single-simulator $GND_CFG_FILE time
142+
sleep 1
143+
for (( i=1; i<=$SATNUM; i++ ))
144+
do
145+
export SC_NUM="sc_"$i
146+
export SC_NETNAME="nos3_"$SC_NUM
147+
export TIMENAME=$SC_NUM"_nos_time_driver"
148+
$DNETWORK connect --alias nos_time_driver $SC_NETNAME nos_time_driver
149+
done
50150
echo ""
151+
152+
153+
sleep 1
154+
155+
urlIP=$(docker container inspect sc_1_sample_checkout | grep -i IPAddress | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b")
156+
157+
sleep 10
158+
159+
firefox ${urlIP}:5000
160+
161+
echo "Docker launch script completed!"

0 commit comments

Comments
 (0)