[piece] input/output rules

Wiring

Wiring rules

  • pieceにinputもしくはoutputのどちらかがない場合の接続ルール
    • outputがなく、かつ、inputがない場合は接続
    • outputがなく、かつ、inputがある場合は接続しない
    • outputがあり、かつ、inputがない場合は接続
    • outputがあり、かつ、inputがある場合は、更に細かく判定を行う
  • output/inputが共に存在している場合の判定方法
    • typenumberstringbooleanの場合の判定方法
      • typeが一致している
      • formatが一致している
      • outputformatがあり、かつ、inputformatがない場合は接続
      • outputformatがなく、かつ、inputformatがある場合は接続しない
      • x-unitが一致している
      • outputx-unitがあり、かつ、inputx-unitがない場合は接続
      • outputx-unitがなく、かつ、inputx-unitがある場合は接続しない
  • typearrayの場合の判定方法
    • input/output内に、さらにitemsフィールドを定義し、その中に配列に格納する値のtypeformatx-unitを定義する
    • itemsフィールドの各データの比較方法は上記と同じであり、合致した場合のみ接続可能である
    • さらに配列のサイズでの比較も行う
      配列のサイズを指定するには、input/output内に
      minItemsmaxItemsを追加で定義する
    • maxItemsの指定がない場合は、 INT_MAX が指定される
    • minitemsの指定がない場合は、1が指定される
    • 配列のサイズを固定にする場合は、 maxItems = minItemsとする

配列サイズの比較では、以下の条件を満たす場合のみ接続可能とする

  • inputminItems <= outputminItems
  • inputmaxItems >= outputmaxItems
    "input": {
        "type": "object",
        "x-title": {
            "ja": "array型input"
        },
        "x-description": {
            "ja": "array型inputの例"
        },
        "properties": {
            "inputArray": {
                "type": "array",
                "x-title": {
                    "ja": "配列に格納するデータ例"
                },
                "minItems": 2,
                "maxItems": 4,
                "items": {   <ここに配列に格納するデータのtypeなどを記述する>
                    "type": "number",
                    "x-unit": "m"
                }
            }
        }
    }
  • typeobjectの場合の判定方法
    • input/output内に、さらにpropertiesフィールドを定義し、その中に任意のobjectの型を定義する
      propertiesフィールド以下を文字列化させ、文字列比較を行い完全一致となった場合のみ接続が可能となる
      よって、接続するpieceは基本的に1対1の関係となる

      "input": {
          "type": "object",
          "x-title": {
              "ja": "type object"
          },
          "x-description": {
              "ja": "typeがobjectの場合の例"
          },
          "properties": {
              "inputObject": {
                  "type": "object",
                  "x-title": {
                      "ja": "object型input"
                  },
                  "properties": {} <ここに任意のobjectを定義 // 文字列化させて完全一致させる為、空白の有無や値の順序が異なると接続が出来ない>
              }
          }
      }

Relation of x-unit – type/format

  • pieceのinput/outputで単位を持つ数値を扱う場合、下記の例に従うこと
数値種類 x-unit type/format
速度 m/s number
角度 degree number
長さ/距離 mm number
m number
km number
重量 g number
kg number
時間(秒) s number
時間(分) min number
時間(時) hour number
圧力/気圧 hPa number
金額 yen number
doll number
脈拍 bpm number
面積 mm2 number
体積 cm3 number
音量 db number
歩数 step number
熱量 kcal number
光強度 mW/m2 number
紫外線強度 (UV index) index number
百分率 percent number
百万分率 ppm number
温度(摂氏) C number
温度(華氏) F number
-->