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

satconfigの構造について #121

Open
kobkaz opened this issue Mar 27, 2024 · 0 comments
Open

satconfigの構造について #121

kobkaz opened this issue Mar 27, 2024 · 0 comments
Assignees

Comments

@kobkaz
Copy link
Contributor

kobkaz commented Mar 27, 2024

現状の問題

satconfigの、特にcommand prefix部分について、以下のような問題がある

構造が現在のメンタルモデルとそぐわない

現在satconfigのcmd_prefix_mapの構造は、旧コマンド送信画面におけるコマンドの構文のそれに直接対応したものになっている。
一方opslangでは、execution_type=TL, destination_type=MEのものについて(すなわちMOBCでキューイングされたあとdestinationに配送されるものについて)、@TL.MOBC @@AOBC のような表記を採用している。
この構造は既存のsatconfigのものと一致せず、現在のopslangの実装は

  • "MOBC"という文字列をインタプリタに直接埋め込み、これ以外にキューイングしようとするもの(@TL.AOBC @@AOBC等)をエラーにする
  • 一旦 cmd_prefix_map.TL.MOBCを参照してから、これとexecution typeが一致してdestination typeがTO_MEになりコンポーネントがAOBCとなるものを検索して、これにcommand prefixを書き換える

というアドホックな実装になっている。(https://github.com/arkedge/gaia/blob/8a1bf555818d538ad406ed2dfd29c67c08a2aeec/devtools-frontend/src/components/CommandView.tsx#L38C3-L73C7)

メンタルモデルからしても、RT TLといったexecution typeの下にコンポーネントがあるのではなく、コンポーネントごとに利用可能なexecution typeが定まるべきである。

TIの種類についての情報がない

現状TIについては has_time_indicator : bool があるのみで、TL/BL/UTLによる解釈の情報がない。
opslangではDateTime型を利用してTIを指定することができるが、これはUTLに対してのみ利用可能とすべきで、この情報はsatconfigに含まれているべきである。

望ましいsatconfigの構造

以上を解決するには、satconfigのコマンド情報部分は

"MOBC": {
    "transferrable" : ["AOBC"], // MOBCでキューイングしてからAOBCに配送することが可能なことを表す
    "types" : {
        "TL" : {
            "execution_type" : 1,
            "ti_type" : "TL",
        }
    }
}

のような構造を持つことが望ましい

@kobkaz kobkaz changed the title satconfigno satconfigの構造について Mar 27, 2024
@kobkaz kobkaz self-assigned this Mar 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant