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

CCSDS周りのコードをcoreで管理する? #51

Closed
Tracked by #191 ...
meltingrabbit opened this issue Nov 27, 2021 · 13 comments
Closed
Tracked by #191 ...

CCSDS周りのコードをcoreで管理する? #51

meltingrabbit opened this issue Nov 27, 2021 · 13 comments
Assignees
Labels
help wanted Extra attention is needed priority::medium priority medium

Comments

@meltingrabbit
Copy link
Collaborator

meltingrabbit commented Nov 27, 2021

概要

CCSDS周りのコードをcoreで管理する?

詳細

TCPacketまわりを各種OBCで管理するのがだるくなってきたので.
2nd OBCなどは,ビルド対象に含めなければいいだけなので.

close条件

方針が決まったら

関連

@meltingrabbit meltingrabbit changed the title CCSDS周りのコードをcoreで管理する? CCSDS周りのコードをcoreで管理する? Nov 27, 2021
@meltingrabbit meltingrabbit self-assigned this Nov 27, 2021
@meltingrabbit meltingrabbit added the priority::medium priority medium label Nov 27, 2021
@meltingrabbit
Copy link
Collaborator Author

meltingrabbit commented Nov 27, 2021

CCSDS周りの整理

今,結構ぐちゃってるので(だいぶまともにはなってきたが),core移植を前に,整理したい.

鈴本がCCSDSわからんので,通信系のレビューがほしい.

CCSDS周りはこれをみながら書いている:

space packetは

現 TCP

tlm cmd packetという意味でC2A初期から使われてそう.

C2Aの抽象化パケットCTCP (common tlm cmd packet) の実体.

space packetと同義なので, space_packet.c/h 構造体名も SpacePacket に変更したい.
接頭辞は SP_.

データ長や,2nd headerはユーザー定義だが,ISSL標準として,策定したい.パラメタは,

  • 2ndヘッダに8byte絶対時刻を含めるか含めないか
  • 最大パケット長(CCSDSとして使うものは432だろうけれど,非MOBCはメモリ効率から小さくしたいのでユーザー定義に)

テレメもコマンドもこれを使っていいんですよね?(2ndヘッダは異なるが.)

現 M_PDU

テレメトリ.

Multiplexing Protocol Data Unit?

であれば, multiplexing_protocol_data_unit.c/h 構造体名も MultiplexingProtocolDataUnit にしたい.
接頭辞は M_PDU.

現 TcpToMPdu

発破解体したい.が,優先度低

現 VCDU

テレメトリ.

virtual_channel_data_ U_unit.c/h にし,構造体名もVirtualChannelDataUnit にしたい.
接頭辞は VCDU_.

これの定義は, https://sma.jaxa.jp/TechDoc/Docs/JAXA-JERG-2-402.pdf にはないが,何を見ればい?
これだと, M_PDU は VCDUではなく, AOS TransferFrameに入っているように見える

現 TC Segment

コマンド.

https://sma.jaxa.jp/TechDoc/Docs/JAXA-JERG-2-401.pdf だと,ただの segment

TCつけとく?

だとすると,

tc_segment.c/h にし,構造体名も TcSegment としたい.
接頭辞は TCS_.

現 TC Frame

コマンド. TCはテレコマではなく,テレコマンド?(TC,ややこしい...)

tc_transfer_frame.c/h にし,構造体名も TcTransferFrame としたい.
接頭辞は TCTF_.

@meltingrabbit
Copy link
Collaborator Author

ISSLのあつかう複数のOBCにとって,この機能はcoreだが,OSSとしては,CCSDSの機能はそこまでcoreではないというのが難しいところ.CCSDS非準拠の衛星もおおい.

@meltingrabbit meltingrabbit added the help wanted Extra attention is needed label Nov 27, 2021
@meltingrabbit
Copy link
Collaborator Author

meltingrabbit commented Dec 7, 2021

@yngyu @yanagida-kanta これ,以下の理由から進めたいんですが,やっぱ微妙ですかね?

なので,coreにいれつつ,使わない人はビルド対象から外してもらう,という運用で,どうでしょう?

core実装の仮定としては,

で,coreに移したら,ドキュメント化します.

@meltingrabbit
Copy link
Collaborator Author

ついでに,exec typeなどで macro cmdの表記が残ってるので,BLCになおしたい.

@yngyu
Copy link
Contributor

yngyu commented Dec 7, 2021

common_tlm_cmd_packet なのに TCP がデフォルトなのは違和感がありますが、coreに移すのは良いと思います

@meltingrabbit
Copy link
Collaborator Author

common_tlm_cmd_packet なのに TCP がデフォルトなのは違和感があります

あれ?これなんで?(TCPはSpacePacketにrenameされます)

@yngyu
Copy link
Contributor

yngyu commented Dec 7, 2021

なんか語感的に common って付いてる方がデフォルトっぽい... って思ったからです。良くわかってなかったんですが TCP と CTCP の使い分けってなんでしたっけ...? なんかそこら辺の定義ちゃんとしたい、みたいな issue があったのは覚えてるんですが

@yngyu
Copy link
Contributor

yngyu commented Dec 7, 2021

あれでも common って付いてるってことは TCP の中にCTCP とか specific TCP とかあるって感じなんですかね... すいません言っててわからなくなってきました

@meltingrabbit
Copy link
Collaborator Author

CTCPはCCSDS関係なく,C2A内部でとびかうcmd, tlmの構造体定義.

で,TCPはCCSDSで規定された,コマンドテレメ定義.

んで,今は,C2A内部のテレコマもTCPでいいじゃんって使ってる感じ.でも2nd OBCにとっては特にTCP使う必要もないし,CCSDSの規定はユーザー定義領域もあるので,TCP自体はuser依存(現在もMOBCとAOBCで違う定義).

CTCPは,そういったTCPとか,その他のパケット定義を抽象化したもので,C2AではこのCTCPというものに対してデータ操作を行う,って感じ.

user側,具体的には,

https://github.com/ut-issl/c2a-core/blob/develop/Examples/minimum_user_for_s2e/src/src_user/CmdTlm/common_tlm_cmd_packet.c

でTCPをCTCPとしてアクセスするIFを定義してあげてる(つまりこれはuser依存.CTCPとしてたとえばHogePacketを使うなら,ここにHogePacketへのアクセスを書く)

@yngyu
Copy link
Contributor

yngyu commented Dec 7, 2021

なるほど、理解しました。ありがとうございます

@meltingrabbit
Copy link
Collaborator Author

手始めに,一旦TCPだけcore移植するか.その仮定でexec typeなども整理しよう. #64 もあるし.

とはいえ,TCPのAPIDなどはどうしてもuser依存なので,そのあたりの切り出しはやらねばならん.ヘッダファイルのみならず,関数実装(TCPとCTCPのexec type変換とか)もあるので,.c側もuser/core分離せねばならんなぁ.

@meltingrabbit
Copy link
Collaborator Author

ひとまずTCPは移動しよう

#205

@meltingrabbit
Copy link
Collaborator Author

arkedge/c2a-core#196 で続きはやる

@meltingrabbit meltingrabbit closed this as not planned Won't fix, can't repro, duplicate, stale Nov 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed priority::medium priority medium
Projects
Status: Done
Development

No branches or pull requests

2 participants