【伺か】エマージェンシーモードを活用する。【yaya】

ukagaka

前回

【コピペで作る】伺か 起動時に一緒に天気予報も教えてもらう。【yaya】 — 異風堂々

緊急フォールバック機能を活用する。

2021/06頃に実装された機能で、エラーが出た際にyaya_emerg.txtをyaya.txtの代わりに読み込んでくれる機能。
Release YAYA Tc555-1 · YAYA-shiori/yaya-shiori · GitHub

実装前のエラー復帰

以前はエラーが出た際、エラー警告が出てゴーストが表示されない状態になった。
復帰までは下記の手順で戻していた。

  1. windowsのタスクバーからゴーストを終了orSSPを一度終了させる。
  2. エラーを修復する。
  3. 他のゴーストを呼ぶorSSP再起動。
  4. エラーが消えるまでループ。

現在のエラー復帰

エラーが出ても別の辞書が読み込まれて落ちない。

  1. ゴースト切り替えから呼び出し直す。これをループするだけ。

緊急フォールバック機能を実装する

【コピペで作る】うちの子を伺かのゴーストにする方法【yaya】 — 異風堂々から始めた人には導入済みです。

ファイル構成

他の辞書ファイル群のフォルダに二つのファイルを追加する。

  • yaya_emerg.txt
  • yaya_emerg.uka
└─ghost 
   └─master 
       ├─dll 
       ├─profile 
       ├─system 
       ├─ ... 
       ├─yaya_emerg.txt 
       └─yaya_emerg.uka 

yaya_emerg.txt

yaya.txtファイルと書き方は同じ。
今回はエラー時にsystemフォルダとyaya_emerg.ukaのみを読み込んで起動するようにする。

charset.dic, UTF-8 
charset.cfg, UTF-8 
charset.output, UTF-8 
charset.file, UTF-8 
charset.save, UTF-8 
charset.save.old, UTF-8 
charset.extension, UTF-8 


dicdir, system 
dic, yaya_emerg.uka 

yaya_emerg.uka

Don/nikolat氏のコードを参考にさせてもらった。
ショートカットキーによるリロードが大変快適である。

OnBoot { 
    '\0\s[0]\1\s[-1]\0エラー\e' 
} 


OnMouseDoubleClick { 
    OnBoot() 
} 


OnKeyPress { 
    if ISFUNC('key.' + reference[0]) { 
        EVAL('key.' + reference[0]) 
    } 
} 

//Ghostにフォーカスがある状態でr keyでリロードする。 
key.r { 
    '\![reload,shiori]\0\s[0]\_qReloaded.\_q\e' 
} 

reload,shioriは辞書を読み込みなおすコマンドなので、
エラーメッセージの再出力で問題があるか把握することはできるが、OnBootなどは自動的に呼ばれない。

次回

自分用のメンテナンスモードを実装して、変数などを確認しながらデバッグできる環境を整えたいと思います。
【伺か】メンテナンスモードを作ってみる。【YAYA】