Closed meltingrabbit closed 12 months ago
今,結構ぐちゃってるので(だいぶまともにはなってきたが),core移植を前に,整理したい.
鈴本がCCSDSわからんので,通信系のレビューがほしい.
CCSDS周りはこれをみながら書いている:
space packetは
tlm cmd packetという意味でC2A初期から使われてそう.
C2Aの抽象化パケットCTCP (common tlm cmd packet) の実体.
space packetと同義なので, spacepacket.c/h 構造体名も SpacePacket に変更したい.
接頭辞は SP.
データ長や,2nd headerはユーザー定義だが,ISSL標準として,策定したい.パラメタは,
テレメもコマンドもこれを使っていいんですよね?(2ndヘッダは異なるが.)
テレメトリ.
Multiplexing Protocol Data Unit?
であれば, multiplexing_protocol_data_unit.c/h 構造体名も MultiplexingProtocolDataUnit にしたい.
接頭辞は M_PDU.
発破解体したい.が,優先度低
テレメトリ.
virtual_channeldata Uunit.c/h にし,構造体名もVirtualChannelDataUnit にしたい.
接頭辞は VCDU.
これの定義は, https://sma.jaxa.jp/TechDoc/Docs/JAXA-JERG-2-402.pdf にはないが,何を見ればい?
これだと, M_PDU は VCDUではなく, AOS TransferFrameに入っているように見える
コマンド.
https://sma.jaxa.jp/TechDoc/Docs/JAXA-JERG-2-401.pdf だと,ただの segment
TCつけとく?
だとすると,
tcsegment.c/h にし,構造体名も TcSegment としたい.
接頭辞は TCS.
コマンド. TCはテレコマではなく,テレコマンド?(TC,ややこしい...)
tc_transferframe.c/h にし,構造体名も TcTransferFrame としたい.
接頭辞は TCTF.
ISSLのあつかう複数のOBCにとって,この機能はcoreだが,OSSとしては,CCSDSの機能はそこまでcoreではないというのが難しいところ.CCSDS非準拠の衛星もおおい.
@yngyu @yanagida-kanta これ,以下の理由から進めたいんですが,やっぱ微妙ですかね?
なので,coreにいれつつ,使わない人はビルド対象から外してもらう,という運用で,どうでしょう?
core実装の仮定としては,
で,coreに移したら,ドキュメント化します.
ついでに,exec typeなどで macro cmdの表記が残ってるので,BLCになおしたい.
common_tlm_cmd_packet なのに TCP がデフォルトなのは違和感がありますが、coreに移すのは良いと思います
common_tlm_cmd_packet なのに TCP がデフォルトなのは違和感があります
あれ?これなんで?(TCPはSpacePacketにrenameされます)
なんか語感的に common って付いてる方がデフォルトっぽい... って思ったからです。良くわかってなかったんですが TCP と CTCP の使い分けってなんでしたっけ...? なんかそこら辺の定義ちゃんとしたい、みたいな issue があったのは覚えてるんですが
あれでも common って付いてるってことは TCP の中にCTCP とか specific TCP とかあるって感じなんですかね... すいません言っててわからなくなってきました
CTCPはCCSDS関係なく,C2A内部でとびかうcmd, tlmの構造体定義.
で,TCPはCCSDSで規定された,コマンドテレメ定義.
んで,今は,C2A内部のテレコマもTCPでいいじゃんって使ってる感じ.でも2nd OBCにとっては特にTCP使う必要もないし,CCSDSの規定はユーザー定義領域もあるので,TCP自体はuser依存(現在もMOBCとAOBCで違う定義).
CTCPは,そういったTCPとか,その他のパケット定義を抽象化したもので,C2AではこのCTCPというものに対してデータ操作を行う,って感じ.
user側,具体的には,
でTCPをCTCPとしてアクセスするIFを定義してあげてる(つまりこれはuser依存.CTCPとしてたとえばHogePacketを使うなら,ここにHogePacketへのアクセスを書く)
なるほど、理解しました。ありがとうございます
手始めに,一旦TCPだけcore移植するか.その仮定でexec typeなども整理しよう. https://github.com/ut-issl/c2a-core/issues/64 もあるし.
とはいえ,TCPのAPIDなどはどうしてもuser依存なので,そのあたりの切り出しはやらねばならん.ヘッダファイルのみならず,関数実装(TCPとCTCPのexec type変換とか)もあるので,.c側もuser/core分離せねばならんなぁ.
ひとまずTCPは移動しよう
概要
CCSDS周りのコードをcoreで管理する?
詳細
TCPacketまわりを各種OBCで管理するのがだるくなってきたので.
2nd OBCなどは,ビルド対象に含めなければいいだけなので.
close条件
方針が決まったら
関連