メインコンテンツまでスキップ
バージョン: 2.3.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