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

TlmCmd DB v3 のリリース #26

Open
2 of 3 tasks
meltingrabbit opened this issue Nov 21, 2023 · 16 comments
Open
2 of 3 tasks

TlmCmd DB v3 のリリース #26

meltingrabbit opened this issue Nov 21, 2023 · 16 comments
Assignees

Comments

@meltingrabbit
Copy link
Member

meltingrabbit commented Nov 21, 2023

詳細

TlmCmd DB v3 をだす

背景については, TBW

close条件

@meltingrabbit
Copy link
Member Author

code generator ,奇跡的に互換性破壊しないことを発見.(じつはWINGSも互換性保たれるような...)

@meltingrabbit
Copy link
Member Author

@sksat そういえば,これモノリポにすると,tlm cmd のバージョンはc2a coreのバージョンと一緒になる,ということよね.
最新の tlm cmd db と c2a user example でつかってるバージョンは常に一致してないとだめ,ということになります?

(過渡期,どうしようかなぁ~~となっていた.Gaia側の対応なども待たないとCI動かない,とか)

@sksat
Copy link
Member

sksat commented Nov 28, 2023

@meltingrabbit リポジトリ管理は1つにするけど,TlmCmdDB のバージョンは別途切る,でもよいと思っていましたが,そこらへんの整理付いてないならそもそもリポジトリ併合するかどうかも込みでちゃんと整理したいです.

@meltingrabbit
Copy link
Member Author

TlmCmdDB のバージョンは別途切る

これができるとこちらの方が嬉しいんだけど,できますか?(やり方が分かってない)

あと,enum loader や code generator は core とバージョン揃えるべき(=独自バージョンもたないべき)だとおもっていて,そういうのの整理ってどうすればいいですか?(ぱっとみて,tlm cmd db だけ独自バージョンもつようなモノリポが,どういうふうに見えるか,わかってない / tlm cmd db が c2a core とバージョンが独立であることを,他の user はどうやって気づくようにできるのか,など)

@sksat
Copy link
Member

sksat commented Dec 21, 2023

これは arkedge/c2a-tlmcmddb で行う

@sksat sksat transferred this issue from arkedge/c2a-core Dec 21, 2023
@meltingrabbit
Copy link
Member Author

@KOBA789 @kobkaz
v3 では

Display Info  // devtools (などの)GS SW の front で使われる情報
  - label   // テレメ名のラベル(UFT-8で可能.空欄の場合 tlm field name が表示される)
  - unit    // 工学値における単位
  - format  // 表示形式.16進数とか,0埋めするか,とか,小数点以下の桁数とか

が新設されます
詳細は書きかけの readme https://github.com/ut-issl/tlm-cmd-db/blob/e6749f5306a7b297ae56d101587d54f194476a6c/README.md

この fromat なんですが,形式どうしましょう?
C言語のフォーマット指定子(or そのサブセット)だとdevtools側はつらいですか?

@kobkaz
Copy link
Contributor

kobkaz commented Dec 22, 2023

どんな形式であってもサニタイズをする必要はあるので、devtools側としてはC形式でも大きな問題は無いと思います

ただ、devtoolsの以外のどこかで誰かが非安全な使い方をしてバグを生むのではないか、という懸念は感じます
GS SW をC言語で作って雑なコード生成をする、等しなければ問題は起きないはずなので大丈夫とは思います

@KOBA789
Copy link
Member

KOBA789 commented Dec 22, 2023

@meltingrabbit Display Info は devtools "専用" にするって話じゃなかったでしたっけ?
なので、devtools 側で扱いやすいフォーマット指定子を定義すればいいかなぁと思っていたんですが、いかがでしょう。

@meltingrabbit
Copy link
Member Author

devtools "専用" にするって話じゃなかったでしたっけ?

はい,その想定です.ただし,devtools以外もここを参照してもよい,というつもりでした.
なので

devtools (などの)GS SW

って書いてましたけど,紛らわしかったですね

devtools 側で扱いやすいフォーマット指定子

ってまったく勘所ないんですが,どういうのがありますか?

@sksat
Copy link
Member

sksat commented Dec 22, 2023

(一応)Cの書式指定はちゃんと考えると結構面倒なので,もし使うとしてもサブセットであることを明示して限定的に使うべきです.

@KOBA789
Copy link
Member

KOBA789 commented Dec 22, 2023

devtools 側で扱いやすいフォーマット指定子

ってまったく勘所ないんですが,どういうのがありますか?

たとえば Rust の std::fmt 互換の https://crates.io/crates/interpolator とかですかね。

(一応)Cの書式指定はちゃんと考えると結構面倒なので,もし使うとしてもサブセットであることを明示して限定的に使うべきです.

これはマジでそう。

なので、TlmCmd DB v3 としては format の仕様を一切定義せず、「GS の実装依存」とだけしておくでいいと思います。
それぞれの C2A user の開発者が、使う GS に合わせて書いてもらえばいい。
で、DevTools は interpolator crate なりのよさそうなやつに乗っかればいい。

@meltingrabbit
Copy link
Member Author

TlmCmd DB v3 としては format の仕様を一切定義せず、「GS の実装依存」とだけしておくでいいと思います。

OKです.
そしたら,ひとまず c2a core でどうするか,は @kobkaz さんらで devtools 側でし易いものを選んでもらう,というので進めますかね.

@KOBA789
Copy link
Member

KOBA789 commented Dec 22, 2023

よさそう。
"c2a-core では GS のリファレンス実装として C2A DevTools を用います" みたいなことを書いておくととてもおさまりが良い。

@meltingrabbit
Copy link
Member Author

承知.

@meltingrabbit
Copy link
Member Author

のとおり, format は rustのinterpolator をつかう,で整理しますか.

@meltingrabbit
Copy link
Member Author

meltingrabbit commented Jul 4, 2024

TODO:

  • csv の末に可変長 blob をいれる
  • tlm generator用のcode generatorではblobがあったら落とす
  • バージョン番号を埋め込む < v3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Todo
Development

No branches or pull requests

4 participants