Skip to content

satconfigの構造について #121

@kobkaz

Description

@kobkaz

現状の問題

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",
        }
    }
}

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions