Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C2A User 開発者のための簡易なドキュメントを追加 #328

Merged
merged 15 commits into from
Apr 11, 2024
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ option(C2A_USE_SPACE_PACKET_AS_COMMON_PACKET "Use C2A-core Space Packet as Comm
option(C2A_MOBC_FEATURES "Enable some features for MOBC" OFF)

## C2A CCSDS select
# See alse; /docs/core/ccsds.md
# See also; /docs/core/ccsds.md
option(C2A_USE_CORE_CCSDS_AOS_SPACE_DATA_LINK_PROTOCOL "Use C2A-core CCSDS AOS SPACE DATA LINK PROTOCOL implementation" OFF)
option(C2A_USE_CORE_CCSDS_TC_SPACE_DATA_LINK_PROTOCOL "Use C2A-core CCSDS TC SPACE DATA LINK PROTOCOL implementation" OFF)

Expand Down
2 changes: 2 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ C2A に関する説明の棲み分けは,次のようになっています.
1. [Overview](./general/overview.md)
1. [Requirements](./general/requirements.md)
1. [Release](./general/release.md)
1. [Architecture](./general/architecture.md)
1. [CMake](./general/cmake.md)
1. [Coding Rule](./general/coding_rule.md)
1. [Coding Acronyms](./general/coding_acronyms.md)
1. Application Layer
Expand Down
13 changes: 13 additions & 0 deletions docs/application/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,16 @@

## テレメトリ
- アプリケーションの内部状態を送信するデータを規定する.


## c2a-core Application の利用
次のコンパイルオプションを `ON` とすることで,c2a-core の Application を利用できる.
https://github.com/arkedge/c2a-core/blob/4472ef1a5670c2674f10b6b72b088d616367bd86/CMakeLists.txt#L18-L20

#### `C2A_USE_ALL_CORE_APPS`
test app 以外の全ての [c2a-core Application](/applications/) をビルドする.
`OFF` の場合, `/src_user/applications/CMakeLists.txt` にビルドしたい c2a-core Application を適宜追加すること.
https://github.com/arkedge/c2a-core/blob/459dbbf84d9587730f248ccbadb5a5745b28903d/examples/subobc/src/src_user/applications/CMakeLists.txt#L9-L13

#### `C2A_USE_ALL_CORE_TEST_APPS`
全ての [c2a-core Test Application](/applications/test_app/) をビルドする.
6 changes: 5 additions & 1 deletion docs/core/ccsds.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,8 @@ AOS Space Data Link Protocol や TC Space Data Link Protocol は,様々な設
(今後,適切にリファクタリングする予定.)

また,本コードをコンパイル対象に加えると,少なくない RAM を static に確保してしまうため,デフォルトではコンパイル対象には含まれない.
コンパイル対象に含める場合は, FIXME: で設定すること.


## ビルドオプション
AOS Space Data Link Protocol と TC Space Data Link Protocol の各実装をコンパイル対象に含める場合は,以下の `C2A_USE_CORE_CCSDS_AOS_SPACE_DATA_LINK_PROTOCOL`, `C2A_USE_CORE_CCSDS_TC_SPACE_DATA_LINK_PROTOCOL` オプションをそれぞれ `ON` に設定すること.
https://github.com/arkedge/c2a-core/blob/4472ef1a5670c2674f10b6b72b088d616367bd86/CMakeLists.txt#L26-L29
3 changes: 3 additions & 0 deletions docs/core/communication.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ C2A 内部を流れるパケットは以下の 3 つである.
C2A 標準として, Space Packet が Core 内で定義されており,基本的にはこれを用いることを想定している.
ただし,C2A 標準 Space Packet は後述する通り,Secondary Header が独自定義されている.

Common Packet の実装として,c2a-core が提供する Space Packet のデフォルト実装を用いる場合は,以下の `C2A_USE_SPACE_PACKET_AS_COMMON_PACKET` オプションを `ON` に設定すること.
https://github.com/arkedge/c2a-core/blob/12c6b614e15e3e5a24f416d640b8b024abca5965/CMakeLists.txt#L22


## C2A 標準 Space Packet 定義
C2A 標準 Space Packet は,CCSDS (Consultative Committee for Space Data Systems.宇宙データシステムの標準化を進めている機関) の Space Packet に準拠したものである(参考: [CCSDS SPACE PACKET PROTOCOL](https://public.ccsds.org/Pubs/133x0b2e1.pdf)).
Expand Down
12 changes: 12 additions & 0 deletions docs/general/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Architecture

## 概要
C2A が想定する,アーキテクチャについてまとめる (TBW).


## OBC
通信機と接続され衛星の全体を司る MOBC (Main On-Board Computer) と,MOBC の配下に接続される sub OBC (AOCS OBC など) が存在する.
そして,コンポーネントの中心に MOBC があり, sub OBC を含む各コンポーネントは MOBC と接続される.

デフォルトは sub OBC 向けの実装となっており, MOBC を開発するときは,`C2A_MOBC_FEATURES` を `ON` にし有効化する.
https://github.com/arkedge/c2a-core/blob/4472ef1a5670c2674f10b6b72b088d616367bd86/CMakeLists.txt#L24
10 changes: 10 additions & 0 deletions docs/general/cmake.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# CMake
## CMake Options
C2A User から利用するビルドオプションは, [`/CMakeLists.txt`](/CMakeLists.txt) で定義される.
https://github.com/arkedge/c2a-core/blob/4472ef1a5670c2674f10b6b72b088d616367bd86/CMakeLists.txt#L5-L31


### `stdint.h`
C89 ターゲットでビルドする際に `C2A_USE_STDINT_WRAPPER` を `ON` にすることで,コンパイラが提供するものではなく,ユーザ定義の `stdint.h` を使うことができる.
その場合, `src_user/library/stdint_impl.h` にユーザー定義の `stdint.h` を配置すること.
https://github.com/arkedge/c2a-core/blob/4472ef1a5670c2674f10b6b72b088d616367bd86/CMakeLists.txt#L14
Loading