LoginSignup
1
0

More than 5 years have passed since last update.

kintone 電子回路シミュレータ ToolBoxカスタマイズ

Last updated at Posted at 2017-01-07

SimcirJS のToolBox をカスタマイズ

kintone 電子回路シミュレータ の続きです。

kintone アプリで、ToolBox をカスタマイズして、部品を追加できるようにしてみた。
とりあえず、簡単に部品登録・流用が可能になったと思われる。

ToolBox の表示

SimcirJS で、toolbox オプションを指定しないで表示すると、下記の規定ToolBox が表示される。

2017-01-07_10h21_24.png

ToolBox の定義

「CTL+クリック」で設定内容をJSON形式で表示すると、既定の設定内容を確認できる。

{
  "width":800,
  "height":400,
  "showToolbox":true,
  "toolbox":[
    {"type":"In"},
    {"type":"Out"},
    {"type":"Joint"},
    {"type":"DC"},
    {"type":"LED"},
    {"type":"PushOff"},
    {"type":"PushOn"},
    {"type":"Toggle"},
    {"type":"BUF"},
    {"type":"NOT"},
    {"type":"AND"},
    {"type":"NAND"},
    {"type":"OR"},
    {"type":"NOR"},
    {"type":"EOR"},
    {"type":"ENOR"},
    {"type":"OSC"},
    {"type":"7seg"},
    {"type":"16seg"},
    {"type":"4bit7seg"},
    {"type":"RotaryEncoder"},
    {"type":"BusIn"},
    {"type":"BusOut"},
    {"type":"RS-FF"},
    {"type":"JK-FF"},
    {"type":"T-FF"},
    {"type":"D-FF"},
    {"type":"8bitCounter"},
    {"type":"HalfAdder"},
    {"type":"FullAdder"},
    {"type":"4bitAdder"},
    {"type":"2to4BinaryDecoder"},
    {"type":"3to8BinaryDecoder"},
    {"type":"4to16BinaryDecoder"}
  ],
  "devices":[
  ],
  "connectors":[
  ]
}

ToolBox の設定

simcir.js にある registerDevice で、部品を登録

  var registerDevice = function(type, factory, deprecated) {
    if (typeof factory == 'object') {
      factory = createDeviceRefFactory(factory);
    }
    factories[type] = factory;
    if (!deprecated) {
      defaultToolbox.push({type: type});
    }
  };

ToolBox に追加は、simcir 表示時のパラメータで指定。

        data['toolbox'] = getInitToolBox();
...
        data['toolbox'].push( { "type":pasrtsname });         
...
        $('.simcir').each(function() {
          var $placeHolder = $(this);
          simcir.setupSimcir($placeHolder, data );
        });

規定部品の設定処理

部品の設定は、部品タイプによって、3ヶ所に分かれている。

simcir.js では、端子部品を設定

  • In
  • Out
  • Joint

simcir-basicset.js では、基本部品を設定

部品の動作と描画を行っている。
部品の組合せで実現できないものは、ここにロジックと描画処理を登録する。

  • DC
  • LED
  • PushOff
  • PushOn
  • Toggle
  • BUF
  • NOT
  • AND
  • NAND
  • OR
  • NOR
  • EOR
  • ENOR
  • OSC
  • 7seg
  • 16seg
  • 4bit7seg
  • RotaryEncoder
  • BusIn
  • BusOut

simcir-library.js では、部品を組合せた部品を設定

基本部品および既に登録された部品を組合せることができる

  • RS-FF
  • JK-FF
  • T-FF
  • D-FF
  • 8bitCounter
  • HalfAdder
  • FullAdder
  • 4bitAdder
  • 2to4BinaryDecoder
  • 3to8BinaryDecoder
  • 4to16BinaryDecoder

ToolBox カスタマイズのしくみ

simcir-library.js で、設定されている部品を、置き換え・追加してカスタマイズする。

  • 部品グループアプリに、必要な部品を登録する。

electoric1.png

  • 電子回路アプリで、部品グループを指定するとその部品データを読み込み、ToolBox に登録する。
  • ToolBox に追加された部品が表示され、使用可能になる。

2017-01-07_22h06_36.png

※部品が複雑になれば、それだけjson データ量が増えるが、どの程度まで実用範囲になるかは、未検証。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0