c2a-core icon indicating copy to clipboard operation
c2a-core copied to clipboard

common_tlm_cmd_packet.c,Coreで持ちたくない?

Open meltingrabbit opened this issue 1 year ago • 3 comments

概要

common_tlm_cmd_packet.c,Coreで持ちたくない?

詳細

  • https://github.com/ut-issl/c2a-core/blob/develop/TlmCmd/common_tlm_cmd_packet.h の定義は,ユーザー定義(つまりCTCPの実体がSpace Packetかどうかはユーザー定義
  • で,今はSpace Packetが基本なので,すべてのuserで https://github.com/ut-issl/c2a-core/blob/develop/Examples/minimum_user/src/src_user/TlmCmd/common_tlm_cmd_packet.c をもっている
  • 全userで持つのがだるすぎるので,例えば,
    • common_tlm_cmd_packet_impl_for_space_packet.c
    • common_tlm_cmd_packet_impl_for_hoge.c ...
    • などをcoreでもちたい

close条件

Coreでもてるようにしたら

meltingrabbit avatar Apr 10 '23 15:04 meltingrabbit

@sksat 雑な相談です

  • https://github.com/ut-issl/c2a-core/blob/8075472c7f63b564dc1edaeb8903c5c4cb381b58/Examples/minimum_user/src/src_user/Settings/TlmCmd/common_tlm_cmd_packet_define.h#L10-L11 のような定義があったら,core の common_tlm_cmd_packet_impl_for_space_packet.c をビルド対象にいれる,みたいなことってできます?
  • それか, common_tlm_cmd_packet_impl_for_hoge.c などが Core に並列でできるようになるので,user側でどれをビルド対象にするか選択できるようにできます?

meltingrabbit avatar Apr 10 '23 15:04 meltingrabbit

「定義があったらビルド対象に入れる」までの自動化は(少なくともビルドシステム側では)絶対にやらない方がいいです. なのでやるとしたら後者で,まあそれはできると思います.

sksat avatar Apr 11 '23 06:04 sksat

これって CommonTlmCmdPacket として期待する抽象的な型が(Cでは表現できないけど)あって,それの具体的な実装として SpacePacket やらなんやらを c2a-core が複数提供する,ということですかね? で,上のコメント見る限りだとその具体的な実装から CommonTlmCmdPacket への alias を張るのは user 側でやる,ということだと思うんですが,それなら別に全部をビルド対象にしておいてもなにも衝突しなさそう?(使わない無駄な実装が入る,というのはまあありますが,マトモなコンパイラなら最適化で実際には最終的なバイナリには入らない気がする)

sksat avatar Apr 11 '23 06:04 sksat