SequenceEditorファサードグループ設定#

Available

4.0.220329 or later

概要#

SequenceEditorのコマンド選択欄 Commands List では、多くのコマンドが複数のグループに分けられて登録されている。

../../_images/seq_comlist_org.png

Default grouping of commands list on SequneceEditor#

このグループ分けはファサード関数が記述されているファイルの構造をそのまま反映したものであり、例えば上図の例では DR.py というファイルに CopyData , GetDataOfWhite , GetDataOfMonochroEi , GetDataOfMonochroEi2 , … といったファサード関数が含まれているため、このようなツリー構造で配置される。 これまでも、ファサード関数ファイル( Com.pyDR.py など)内部でのファサード関数の並びを変更したり、新たに自作の関数を追加することは可能であった。(参照: SequenceEditorファサード作成入門

しかしながら、登録されたファサード関数が増えてきたため、実際にシーケンスを組む際に必要な関数を探すことが難しくなっている。その解決のために、下図のように任意のグループを作成し、そこにさらに任意のコマンドを複数登録することができるように高度化した。

../../_images/seq_comlist_smp1.png

Example for restructured grouping of commands on SequenceEditor#

本稿ではその設定方法を示す。

なお、このグループ設定をおこなってもあくまで 見た目の変更を行うだけ であり、これまでに保存されたスクリプトも読み込めるし、新たに保存してもグループ設定がないSequenceEditorで開き実行することも問題なくできる。

設定方法#

設定に使用するのは、自作の関数を追加する際に使用するファサード制御ファイル(参照: 「ファサード指定ファイルについて」 )である。これに新たに記述を加えることで実現している。

なお、ファサード制御ファイルとは、 Sequencer_facades.py という名前、もしくは Sequencer_faXXXXXX.py (XXXXXX部分は任意)というファイルのことであり、空蟬の装置コードの facade フォルダや、ユーザーディレクトリ( ${UTSUSEMI_USR_DIR} , 通常は ~/ )にある facade フォルダ内に置かれているものである。

このファサード制御ファイルに対し、以下のような __Structures__ というリストを追記することで、コマンド選択欄の見た目の構造を変えることができるようにした。

設定例:

__Structures__ = [("File",["Cmm.SaveDataToManyoBinary",
                           "Cmm.LoadDataFromManyoBinary",
                           "Cmm.SaveDataToDAVEgrp",
                           "Cmm.SaveDataToDump",
                           "Cmm.LoadDataFromDump"]),
                  ("DataReduct",["Cmm.GetNeunetHist",
                                 "Cmm.GetMultiEi2",
                                 "DR.GetDataOfMonochroEi2",
                                 "DR.GetDataOfMonochroEi3",
                                 "DR.ToPowder",
                                 "DR.MakeRunList"])
                 ]

上記の設定を行ったのちにSequenceEditorを起動すると、以下の図のようにコマンド選択欄が変更される。

../../_images/seq_comlist_smp2.png

Example (2) for restructured grouping of commands on SequenceEditor#

なお、これまで使用していたComやCmmなどは、新たに Original というグループに移動するので利用可能である。また、 __Structures__ リストを追記しない場合は、これまで通りの表示となる。

設定の詳細#

__Structures__ リストの構造を以下に示す。

__Structures__ = [ (<title1>, <list of commands>), (<title2>, <list of commands>), (...) ]

一つのグループは、タイトル(設定例では “File” )とコマンドのリスト( [“Cmm.SaveDataToManyoBinary”,”Cmm.LoadDataFromManyoBinary”, …] )をタプル(括弧で包んだもの)にしたものであり、それらを順番に複数並べてリストとする。

なお、コマンドのリストに記述する場合、設定例にあるように、必ず以前の接頭語(ファサードファイル名由来の “Cmm”や”DR”)をつけた形とすること。

コマンド選択欄での表示はこの __Structures__ で記述した順番で並ぶ。

設定ファイルの場所と優先順位#

この設定を書き込む Sequencer_facades.py は、空蟬のそれぞれの装置コードのフォルダにあるfacadeフォルダに格納されているが、同時に通常個人のファサードファイルを配置するフォルダ(環境変数 ${UTSUSEMI_USR_DIR}/facade で指定)に置くことも可能である。

個人のフォルダに __Structures__ を設定したファイルを作成した場合、個人のフォルダの設定が優先される。

また、個人のフォルダにおくファイル名は必ず、 Sequencer_faXXXXX.py (XXXは任意でユニークなもの)という名前にすること。装置側の設定 ( ${UTSUSEMI_BASE_DIR}/${UTSUSEMI_INST_CODE}/facade/Sequencer_facades.py )の名前と被ると反映されないので注意すること。

使用例#

上記の設定を個人のfacadeフォルダ、すなわち下記の場所のSequencer_facades_xxx.pyファイルに書き込む。

$ gedit ~/facade/Sequencer_facades_hoge.py

すると、上記のようにSequenceEditorのコマンド欄が変化することが確認できるはず。