c2a-core
c2a-core copied to clipboard
common_tlm_cmd_packet.c,Coreで持ちたくない?
概要
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でもてるようにしたら
@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側でどれをビルド対象にするか選択できるようにできます?
「定義があったらビルド対象に入れる」までの自動化は(少なくともビルドシステム側では)絶対にやらない方がいいです. なのでやるとしたら後者で,まあそれはできると思います.
これって CommonTlmCmdPacket
として期待する抽象的な型が(Cでは表現できないけど)あって,それの具体的な実装として SpacePacket
やらなんやらを c2a-core が複数提供する,ということですかね?
で,上のコメント見る限りだとその具体的な実装から CommonTlmCmdPacket
への alias を張るのは user 側でやる,ということだと思うんですが,それなら別に全部をビルド対象にしておいてもなにも衝突しなさそう?(使わない無駄な実装が入る,というのはまあありますが,マトモなコンパイラなら最適化で実際には最終的なバイナリには入らない気がする)