メインコンテンツまでスキップ
Version: 2.2.0

ランプ

Light of cube

キューブは底面にランプを 1 つ持っています(参考:各部の名前)。 このランプは以下の特性(characteristic)を使うことで色を指定して点灯や消灯ができます。

プロパティ
Characteristic UUID10B20103-5B3B-4571-9508-CF3EFCD7BBAE
PropertiesWrite
DescriptorLight Control

書き込み操作#

点灯・消灯#

以下に示す構成のデータを書き込むことでランプを点灯・消灯できます。 例はランプを赤色で 160 ミリ秒点灯した後に消灯します。

データ位置タイプ内容
0UInt8制御の種類0x03(点灯・消灯)
1UInt8ランプを制御する時間0x10(160 ミリ秒)
2UInt8制御するランプの数0x01
3UInt8制御するランプの ID0x01
4UInt8ランプの Red の値0xFF
5UInt8ランプの Green の値0x00
6UInt8ランプの Blue の値0x00

ランプを制御する時間#

ランプを制御する時間を0以上255以下の範囲で指定します。0は「時間制限無し」を意味し、次の書き込み操作が行われるまで点灯・消灯し続けます。1以上255以下の範囲では x10 ミリ秒点灯・消灯した後に消灯します。

制御するランプの数・制御するランプの ID#

制御するランプの数や ID を指定します。制御可能なランプは 1 つのみで、どちらも1を指定します。

ランプの Red/Green/Blue の値#

ランプの色をそれぞれ0以上255以下の範囲で指定します。全て0で指定すると消灯します。

連続的な点灯・消灯#

以下に示す構成のデータを書き込むことでランプを連続的に点灯・消灯できます。 例はランプを緑色と青色で 300 ミリ秒ごと点滅させつづけます。

データ位置タイプ内容
0UInt8制御の種類0x04(連続的な点灯・消灯)
1UInt8繰り返し回数0x00(無限)
2UInt8Operation の数0x02(Operation 2 つ)
3UInt8ランプを制御する時間0x1E(300 ミリ秒)
4UInt8制御するランプの数0x01
5UInt8制御するランプの ID0x01
6UInt8ランプの Red の値0x00
7UInt8ランプの Green の値0xFF
8UInt8ランプの Blue の値0x00
9UInt8ランプを制御する時間0x1E(300 ミリ秒)
10UInt8制御するランプの数0x01
11UInt8制御するランプの ID0x01
12UInt8ランプの Red の値0x00
13UInt8ランプの Green の値0x00
14UInt8ランプの Blue の値0xFF

データ構造と Operation#

この書き込み操作のデータは以下の図のような長さが可変な構造になっています。

Light Scenario Data Structure

Operation とは点灯・消灯で書き込んだ以下の 6 つをまとめたものを表します。

  • ランプを制御する時間
  • 制御するランプの数
  • 制御するランプの ID
  • ランプの Red の値
  • ランプの Green の値
  • ランプの Blue の値

繰り返し回数#

Operation の繰り返し回数を0以上255以下の範囲で指定します。0は「無限回」を意味し、次の書き込み操作が行われるまで Operation の繰り返しが終わりません。1以上255以下の範囲では指定した回数繰り返した後に消灯します。

Operation の数#

Operation の数を1以上29以下の範囲で指定します。ここで指定する値が続く Operation の数より小さい場合はここで指定した値の数の Operation だけが繰り返されます。ここで指定する値が続く Operation の数より大きい場合はエラーとなり書き込み操作が破棄されます。

ランプを制御する時間#

ランプを制御する時間を1以上255の範囲で指定します。1以上255以下の範囲では x10 ミリ秒点灯・消灯します。

全てのランプを消灯#

以下に示す構成のデータを書き込むことで全てのランプを消灯できます。

データ位置タイプ内容
0UInt8制御の種類0x01(全てのランプを消灯)

特定のランプを消灯#

以下に示す構成のデータを書き込むことで特定のランプを消灯できます。

データ位置タイプ内容
0UInt8制御の種類0x02(特定のランプを消灯)
1UInt8制御するランプの数0x01
2UInt8制御するランプの ID0x01