つじるの忘れんぼ鉄道

DCC自動運転で秋葉原にあった交通博物館のジオラマを目指すブログ

DSair2 アクセサリ/Mapデータのバックアップ

※本内容はDesktopStationさん非公式の内容となりますのでご注意ください※

 

概要

DSair2 で設定したはずのアクセサリやレイアウトMapデータが表示されないよぉ。

とお困りのかたへ。

 

DSair2のデータ保存先

DSair2では、ユーザ側による各種設定の保存先として、以下があります。

  • Flashair のストレージ
  • ローカルストレージ(Webアプリを操作している端末内)

前者は、MP3サウンドファイルやDSbasicのBASファイルが格納されます。Webサーバ側であるFlashair内に保存されるので、どの端末のどのブラウザからアクセスしても、共通のデータを参照することができます。

一方、後者のローカルストレージは、保存操作をした端末のブラウザデータとして保存されます。そのため、異なる端末や、また同じ端末内でも異なるブラウザ(edge、chromeなど)でアクセスすると、設定したものが反映されていない状態となります。

具体的には以下が該当します。

  • キャブタブの車両スロットのアドレス(4つ分)
  • アクセサリータブ内の全設定
  • レイアウトタブ内の全設定
  • コンフィグタブ内の一部設定(Etc内のSpeed値、Protocol選択)
  • DSbasicタブ内で「Save to Memory」を選択して保存したコード

では、これらのデータが具体的にどこに保存されているかというと、ブラウザが実装している「ローカルストレージ」という領域です。HTML5で実装された機能ですね。

このローカルストレージのデータにアクセスするには、各ブラウザ側に実装されている開発ツールを使います。

Windowschromeの場合、「F12」キーを押すと起動します。

f:id:tsujiru:20190630150929p:plain

画面右側に開発ツールが表示されるので、上部メニューで「Application」を選択し、左メニューの「Storage」 ⇒「Local Storage」を選択すると DSair2 の保存データが表示されます。

各項目と値は下表の通りです。

項目名(Key) 値(Value
UNIQUEID 固定値なのでいじらない。
LOCADDR キャブタブ内スロット4つの車両アドレス
ACCTYPEIMAGES アクセサリタブ内のアクセサリイメージ設定データ(ポイント/信号機)
MAPDAT-ACCADDR レイアウトタブ内のアクセサリアドレスの設定データ
MAPDAT-WIDTH レイアウトタブ内のヨコ幅マス目数。※変更すると、登録済みのMAPDAT-ACCADDR、MAPDAT-IMAGE に影響が出るので注意。
MAPDAT-HEIGHT レイアウトタブ内のタテ幅マス目数。※変更すると、登録済みのMAPDAT-ACCADDR、MAPDAT-IMAGE に影響が出るので注意。
MAPDAT-IMAGE レイアウトタブ内のイメージ設定データ(線路レイアウト)
MAXSPEED_LOC コンフィグタブ内で設定するCabタブ内速度メータの最大速度表示設定データ
BASIC_SAVEDVAL Dsbasicタブ内で「Save to Memory」で保存したデータ。


ということで、必要なデータについて、Value値をTXTファイルやExcelシート等にコピペして保存しておけば、別の環境への引越しや、万が一のリストアに役立ちそうです。

なお「ACCTYPEIMAGES」、「MAPDAT-ACCADDR」、「MAPDAT-IMAGE」の3つのデータは、非常にながーいデータなので、最後の1文字まで漏れずにコピペできているか再確認してみてください。

 

Edgeでも同様にF12キーで開発ツールが起動し、下図のように表示/編集できます。

f:id:tsujiru:20190630171744p:plain

 

補足

本記事はDSair2 ファームウェア r2m13 におけるものです。今後のバージョンアップ等で、データ保存の仕様変更等が生じていくと思われます。その場合は、/SD_WLAN/js/ フォルダ内の「storage.js」に、下記のような保存処理が記述されているので参照してみてください。

function STORE_Save_MapDatas()
{
STORE_Save();

localStorage.setItem("MAPDAT-ACCADDR", Map_AccAddr);
localStorage.setItem("MAPDAT-IMAGE", Map_Image);
localStorage.setItem("MAPDAT-WIDTH", Map_Width);
localStorage.setItem("MAPDAT-HEIGHT", Map_Height);
}

 

 おわり