### JSONの仕様
このページは`えるいーだー`がインポート出来るJONファイルの仕様を解説します
<!-- このファイルは他のファイルからインクルードされます
独立したページにならないようにEXCLUDEに追加しておいてください -->
#### 仕様
JSONファイルは以下のような構成になっています
ただ、仕様を見ても大抵の人は「なんのこっちゃ」としかならないと思うので[サンプル](#json_Sample)を見てください
---
##### 1. 全体データ{#json_overview}
全体的なデータを示します
| 項目 | 内容 | 備考 |
| :--- | :-------- |:--- |
| **ID** | 数値 | 人間が管理するための識別子です。自分の管理しやすい番号を付けてください |
| **タイトル** | 文字列 | マクロのタイトルです。`えるいーだー`のアプリ上で表示されます <br />わかりやすい名前を付けてください|
| **シーケンスデータ** | - | [シーケンスデータ](#json_sequence)参照 |
---
##### 2. シーケンスデータ{#json_sequence}
シーケンスデータの基本部分です
| 項目 | 設定値 | 備考 |
| :--- | :--- | :--- |
| **シーケンス個数** | 0-255 | 何回分のシーケンスがあるか記載します<br />人間がわかりやすくするためにあるだけです。プログラムは無視します |
| **繰り返し処理** | 0 or 1 | `0`=1回だけで終了 `1`=繰返し |
| **シーケンス内容** | 配列 | [シーケンス内容](#json_sequence_detail)参照 |
---
##### 3. シーケンス内容{#json_sequence_detail}
シーケンス内容の詳細部分です。ここでLEDをどのように点灯させるかを指定します
| 項目 | 設定値 | 備考 |
| :--- | :--- | :--- |
| **LED個数** | 1-8 | このシーケンスで点灯させるLEDの数です<br />人間にわかりやすいように付けているだけです。プログラムは無視します |
| **シーケンス保持時間** | 10-4200000000 | このシーケンスを何ミリ秒保持するかを指定します<br />10ミリ秒単位で指定します(1ms単位の数値は10msに切り上げられます<br /> [※1](#ss_one) |
| **LED動作情報** | 配列 | [LED動作情報](#json_led_action)参照 |
---
##### 4. LED動作情報{#json_led_action}
LED動作情報の詳細部分です。ここでLEDの明度を指定します
| 項目 | 設定値 | 備考 |
| :--- | :--- | :--- |
| **LED番号** | 1-8 | どのLEDを操作するかを指定します<br />1が一番左、8が一番右です |
| **明度** | 0-100 | LEDの明度を指定します<br />0が消灯、100が最大点灯です |
---
###### ※1{#ss_one}
32ビットの符号なし整数(約42日)で保持しているのですが、実際のところ試したわけではないので<br/>そんなデカい数値を入れて正常に動作するかわかりません
##### サンプル{#json_Sample}
このJSONファイルのサンプルはLEDを順番に1個ずつ点灯させていくパターンです<br />
```json
{
"ID": 2,
"タイトル": "流れるような動き1",
"シーケンスデータ": {
"シーケンス個数": 8,
"繰り返し処理": 1,
"シーケンス内容": [
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 1, "明度": 100 }, { "LED番号": 8, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 2, "明度": 100 }, { "LED番号": 1, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 3, "明度": 100 }, { "LED番号": 2, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 4, "明度": 100 }, { "LED番号": 3, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 5, "明度": 100 }, { "LED番号": 4, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 6, "明度": 100 }, { "LED番号": 5, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 7, "明度": 100 }, { "LED番号": 6, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 8, "明度": 100 }, { "LED番号": 7, "明度": 0 } ]
}
]
}
}
```
上記のサンプルはLEDを以下のような順番で点灯・消灯させます。消灯も忘れないでください<br />
各シーケンスでのLEDの明度(0〜100)を示します。<br />
「-」は、そのシーケンスで明度の指定がないことを意味します。
| シーケンス番号 | 保持時間 (ms) | LED1 | LED2 | LED3 | LED4 | LED5 | LED6 | LED7 | LED8 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| **1** | 300 | 100 | - | - | - | - | - | - | 0 |
| **2** | 300 | 0 | 100 | - | - | - | - | - | - |
| **3** | 300 | - | 0 | 100 | - | - | - | - | - |
| **4** | 300 | - | - | 0 | 100 | - | - | - | - |
| **5** | 300 | - | - | - | 0 | 100 | - | - | - |
| **6** | 300 | - | - | - | - | 0 | 100 | - | - |
| **7** | 300 | - | - | - | - | - | 0 | 100 | - |
| **8** | 300 | - | - | - | - | - | - | 0 | 100 |
### サンプルの一覧です
このページは`えるいーだー`で使用するJSONのサンプルを紹介します
<!-- このファイルは他のファイルからインクルードされます
独立したページにならないようにEXCLUDEに追加しておいてください -->
#### 01.点灯→消灯
1回だけ点灯して終了する基本的なパターンです
@htmlonly
<iframe width="560" height="315" src="https://www.youtube.com/embed/R5Ppo5ftUdw?si=RWcqBgZ-ZliiWY64" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
@endhtmlonly
```json
{
"ID": 1,
"タイトル": "見本",
"シーケンスデータ": {
"シーケンス個数": 2,
"繰り返し処理": 0,
"シーケンス内容": [
{
"LED個数": 1,
"シーケンス保持時間": 1000,
"LED動作情報": [{ "LED番号": 1, "明度": 100}]
},
{
"LED個数": 1,
"シーケンス保持時間": 1000,
"LED動作情報": [{ "LED番号": 1, "明度": 0}]
}
]
}
}
```
---
#### 02.点灯→消灯 繰り返し
先ほどは1回点滅したらそのまま終了しましたが、繰り返し処理を指定するとずっと繰り返します
`繰り返し処理`を`1`に変更しただけです
@htmlonly
<iframe width="560" height="315" src="https://www.youtube.com/embed/2TiLC0h-4zk?si=-kntW1feje3QG5bm" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
@endhtmlonly
```json
{
"ID": 2,
"タイトル": "見本_繰返し",
"シーケンスデータ": {
"シーケンス個数": 2,
"繰り返し処理": 1,
"シーケンス内容": [
{
"LED個数": 1,
"シーケンス保持時間": 1000,
"LED動作情報": [{ "LED番号": 1, "明度": 100}]
},
{
"LED個数": 1,
"シーケンス保持時間": 1000,
"LED動作情報": [{ "LED番号": 1, "明度": 0}]
}
]
}
}
```
---
#### 03.LED2個
今度は2個のLEDを交互に点灯させます
@htmlonly
<iframe width="560" height="315" src="https://www.youtube.com/embed/hIjdL7TYg6Y?si=cnF_QMR4m5I8ZUpE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
@endhtmlonly
```json
{
"ID": 3,
"タイトル": "LED2個",
"シーケンスデータ": {
"シーケンス個数": 2,
"繰り返し処理": 1,
"シーケンス内容": [
{
"LED個数": 2,
"シーケンス保持時間": 1000,
"LED動作情報": [{"LED番号": 1,"明度": 100},{"LED番号": 2,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 500,
"LED動作情報": [{"LED番号": 1,"明度": 0},{"LED番号": 2,"明度": 100}]
}
]
}
}
```
---
#### 04.回転させてから全点灯させて暗くなる
1-6のLEDをくるくる回らせてから、全点灯させて徐々に暗くするパターンです<br />
1-3と4-6が対になっているので、わざわざこんなふうにしないで1-3だけ設定して、LEDは2個を二股にしてもいいかも
@htmlonly
<iframe width="560" height="315" src="https://www.youtube.com/embed/Z_5Q9LCa9kY?si=oGiqxX6871tEke9g" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
@endhtmlonly
@note このサンプルで1-6までしか指定していませんが、7,8を個別に発光する機能を使って独立してスマホから制御出来ます
```json
{
"ID": 0,
"タイトル": "回転からぱっ",
"シーケンスデータ": {
"シーケンス個数": 15,
"繰り返し処理": 1,
"シーケンス内容": [
{
"LED個数": 2,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 1,"明度": 100},{"LED番号": 4,"明度": 100}]
},
{
"LED個数": 4,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 1,"明度": 0},{"LED番号": 4,"明度": 0},{"LED番号": 2,"明度": 100},{"LED番号": 5,"明度": 100}]
},
{
"LED個数": 4,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 2,"明度": 0},{"LED番号": 5,"明度": 0},{"LED番号": 3,"明度": 100},{"LED番号": 6,"明度": 100}]
},
{
"LED個数": 4,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 3,"明度": 0},{"LED番号": 6,"明度": 0},{"LED番号": 1,"明度": 100},{"LED番号": 4,"明度": 100}]
},
{
"LED個数": 4,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 1,"明度": 0},{"LED番号": 4,"明度": 0},{"LED番号": 2,"明度": 100},{"LED番号": 5,"明度": 100}]
},
{
"LED個数": 4,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 2,"明度": 0},{"LED番号": 5,"明度": 0},{"LED番号": 3,"明度": 100},{"LED番号": 6,"明度": 100}]
},
{
"LED個数": 6,
"シーケンス保持時間": 100,
"LED動作情報": [{"LED番号": 1,"明度": 0},{"LED番号": 2,"明度": 0},{"LED番号": 3,"明度": 0},{"LED番号": 4,"明度": 0},{"LED番号": 5,"明度": 0},{"LED番号": 6,"明度": 0}]
},
{
"LED個数": 6,
"シーケンス保持時間": 100,
"LED動作情報": [{"LED番号": 1,"明度": 100},{"LED番号": 2,"明度": 100},{"LED番号": 3,"明度": 100},{"LED番号": 4,"明度": 100},{"LED番号": 5,"明度": 100},{"LED番号": 6,"明度": 100}]
},
{
"LED個数": 6,
"シーケンス保持時間": 100,
"LED動作情報": [{"LED番号": 1,"明度": 80},{"LED番号": 2,"明度": 80},{"LED番号": 3,"明度": 80},{"LED番号": 4,"明度": 80},{"LED番号": 5,"明度": 80},{"LED番号": 6,"明度": 80}]
},
{
"LED個数": 6,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 1,"明度": 70},{"LED番号": 2,"明度": 70},{"LED番号": 3,"明度": 70},{"LED番号": 4,"明度": 70},{"LED番号": 5,"明度": 70},{"LED番号": 6,"明度": 70}]
},
{
"LED個数": 6,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 1,"明度": 50},{"LED番号": 2,"明度": 50},{"LED番号": 3,"明度": 50},{"LED番号": 4,"明度": 50},{"LED番号": 5,"明度": 50},{"LED番号": 6,"明度": 50}]
},
{
"LED個数": 6,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 1,"明度": 40},{"LED番号": 2,"明度": 40},{"LED番号": 3,"明度": 40},{"LED番号": 4,"明度": 40},{"LED番号": 5,"明度": 40},{"LED番号": 6,"明度": 40}]
},
{
"LED個数": 6,
"シーケンス保持時間": 100,
"LED動作情報": [{"LED番号": 1,"明度": 30},{"LED番号": 2,"明度": 30},{"LED番号": 3,"明度": 30},{"LED番号": 4,"明度": 30},{"LED番号": 5,"明度": 30},{"LED番号": 6,"明度": 30}]
},
{
"LED個数": 6,
"シーケンス保持時間": 100,
"LED動作情報": [{"LED番号": 1,"明度": 15},{"LED番号": 2,"明度": 15},{"LED番号": 3,"明度": 15},{"LED番号": 4,"明度": 15},{"LED番号": 5,"明度": 15},{"LED番号": 6,"明度": 15}]
},
{
"LED個数": 6,
"シーケンス保持時間": 500,
"LED動作情報": [{"LED番号": 1,"明度": 0},{"LED番号": 2,"明度": 0},{"LED番号": 3,"明度": 0},{"LED番号": 4,"明度": 0},{"LED番号": 5,"明度": 0},{"LED番号": 6,"明度": 0}]
}
]
}
}
```
---
#### 05.流れるような動き
1から8のLEDを順番に点灯させていくパターンです<br />
ついでに、徐々に明るさを落としていきます
@htmlonly
<iframe width="560" height="315" src="https://www.youtube.com/embed/HykvvnIysHU?si=SFKk87VADtNERMg0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
@endhtmlonly
```json
{
"ID": 2,
"タイトル": "流れるような動き",
"シーケンスデータ": {
"シーケンス個数": 8,
"繰り返し処理": 1,
"シーケンス内容": [
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 1,"明度": 100},{"LED番号": 8,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 2,"明度": 90},{"LED番号": 1,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 3,"明度": 80},{"LED番号": 2,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 4,"明度": 70},{"LED番号": 3,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 5,"明度": 60},{"LED番号": 4,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 6,"明度": 50},{"LED番号": 5,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 7,"明度": 40},{"LED番号": 6,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 8,"明度": 30},{"LED番号": 7,"明度": 0}]
}
]
}
}
```