開発用の SILS runtime.
これにより,フライトソフトウェアである C2A を,マイコン実機環境ではなく,PC 上で動作させることが可能となる.
Development Environment を参照.
Development Environment の環境をセットアップする.
必要なツールセットをインストールする (TBA)
sudo apt install gcc-multilib protobuf-compiler libclang-dev cmake g++ g++-multilib
/examples/mobc/
や /examples/subobc/
で次を実行する.
nvm install
corepack enable
pnpm install
様々なパターンが存在するため,いくつかの例を示す.
/examples/mobc/
や /examples/subobc/
で
を実行するだけ.
C2A DevTools によって,c2a-sils-runtime によって実行されている SILS に対して,テレコマ通信が可能である.
使い方の詳細は,上記リンク先を参照のこと.
C2A そのもの + C2A DevTools の実行
MOBC 環境 (/examples/mobc/
) を例にする.
1 つ目のターミナルで /examples/mobc/
に移動し,次を実行する.
ブラウザで http://localhost:8900/devtools/
を開くと,テレコマ通信が可能となる.
C2A そのもの + C2A DevTools の実行 (VS Code を用いたデバッグ)
MOBC 環境 (/examples/mobc/
) を例にする.
この手順によって,ブレークポイント等を用いた開発が可能となる.
1 つ目のターミナルで /examples/mobc/
に移動し,次を実行する.
VS Code のデバッガで Debug executable 'c2a-example-mobc
を実行する.
ブラウザで http://localhost:8900/devtools/
を開くと,テレコマ通信が可能となる.
以下を参照のこと.
pnpm run *
コマンドについては,以下のファイルなどを参照すること.
{
"name" : " c2a-example-mobc" ,
"scripts" : {
"build:tlmcmddb" : " tlmcmddb-cli bundle --pretty tlm-cmd-db/TLM_DB/calced_data tlm-cmd-db/CMD_DB tlmcmddb.json" ,
"run:c2a" : " cargo run" ,
"run:gaia" : " tmtc-c2a --satconfig satconfig.json --tlmcmddb tlmcmddb.json" ,
"run:kble" : " bash -c 'while :; do kble -s <(jrsonnet spaghetti.jsonnet); sleep 1; done'" ,
"run-all" : " run-p run:*" ,
"run-devtools" : " run-p run:gaia run:kble" ,
"devtools:sils" : " run-s build:* run-all" ,
"devtools:debug" : " run-s build:* run-devtools" ,
"build:tlmcmddb-sub" : " tlmcmddb-cli bundle --pretty ../subobc/tlm-cmd-db/TLM_DB/calced_data ../subobc/tlm-cmd-db/CMD_DB tlmcmddb-subobc.json" ,
"tlmcmddb-merge" : " tlmcmddb-cli merge --pretty --output tlmcmddb.json tlmcmddb.json tlmcmddb-subobc.json" ,
"run-subobc:c2a-subobc" : " env UART_KBLE_PORT=9697 cargo run --manifest-path ../subobc/Cargo.toml" ,
"run-subobc:c2a" : " run-s run:c2a" ,
"run-subobc:gaia" : " tmtc-c2a --satconfig satconfig.json --tlmcmddb tlmcmddb.json" ,
"run-subobc:kble" : " bash -c 'while :; do kble -s <(jrsonnet spaghetti.subobc.jsonnet); sleep 1; done'" ,
"run-subobc-all" : " run-p run-subobc:*" ,
"devtools:sils-subobc" : " run-s build:* tlmcmddb-merge run-subobc-all"
},
"devDependencies" : {
"npm-run-all" : " 4.1.5" ,
"tools" : " file:./tools"
}
}