二つのBluetoothサービスおよび機能は、契約物品がBLE4.0チュートリアル価値分析から抜粋された - アサム - ブログhttps://www.cnblogs.com/asam/p/8676369.htmlパークは、のみ参照するには自分自身の学習のために、あなたがブログを見たい場合は詳細は、元のブロガーがよく書かれたこの記事のためにブログを開くことができます。
固有値上のサービスの1説明
Bluetooth接続処理の前に言えば、その後Bluetooth接続は、まだ特定のデータを渡す方法です。ここではいくつかの簡単な説明を行います。
ブルートゥース4.0は、データ伝送のためのパラメータに基づいており、そのサーバーが良いつのパラメータとなり、クライアントはこの引数、書き込みを読むことができ、他の操作を通知し、この事は、我々は呼んで(固有値を特性)、
しかし、我々は、このような特性値として、パラメータを使用していない私たちの電力の値が、デバイスの温度値のもう一つの特徴が読み込まれています。
さて、今回は、より多くの特徴値があるでしょう、と我々は呼んで、クラスの外に、その分類になりますサービス(サービス)。
デバイスは、複数のサービスを有していてもよく、各サービスは、特徴複数の値を含むことができます。以下に示すような動作を容易にするために、各特徴量は、そのような長さ(サイズ)、許可(許可)として彼の属性、値(値)、記述(記述)を有しています。
2.ATT与GATT
私達はちょうど、特にどのように我々はそれを達成しようとしている価値サービスや機能を導入しました。
:Bluetoothバージョン4.0は、低消費電力仕様を導入した2つのコアプロトコル導入ATT(項目プロトコル)とガット(項目汎用プロトコル)を本契約の主な目的はBLE 2であるだけでなく、従来のブルートゥース(BR /上で実行することができます。 EDR)。
ATTは、主に、「プロパティ」の定義を提供するために、GATTは、これらの私たちは上記のサービスの話としてパッケージ「属性」、およびその他の値特性を吸いました。
それは我々がそれを私たちのサービスを構築する方法ですか?
おそらくそれは物事を構築するための一つの特性ずつ、のように要約することができます。次の図は、各プロパティには、ユーザーを教えてくれること私は何を、私はあなたがその説明、価値、権利、私のために何ができるかと思いますどのような
いいえ。 |
説明 |
技量 |
値 |
項目1 |
私はのサービスを始めていました |
リードオンリー |
サービス番号0001 |
2つのプロパティ |
私は固有値1を始めていました |
リードオンリー |
値1は、属性3内に配置されています 特性値の型1 前記値権 |
3つのプロパティ |
私は1の特性値よ |
/ |
0 |
4つのプロパティ |
私は特別な操作固有値午前1 |
読み取りと書き込み |
近いです |
属性5 |
私は、固有値を始めていた2 |
リードオンリー |
... |
6つのプロパティ |
私は、特性値2よ |
/ |
... |
7つのプロパティ |
私は特別な操作2の特性値よ |
読み取りと書き込み |
... |
プロパティ8 |
私は、サービスのBを始めていました |
リードオンリー |
サービス番号0002 |
この図は、単純な表現、下記の実際の属性テーブルです。
扱う |
タイプ |
許可 |
値 |
... |
... |
... |
... |
39 |
0x2800 (GATTプライマリサービスのUUID) |
読む |
E0:FF(2バイト) (0xFFE0 =シンプルなキーサービスカスタムUUID) |
40 |
0x2803 (ガット特性宣言UUID) |
読む |
10:29:00:E1:FF(5バイト) (0xFFE1はシンプルなキー値のカスタムUUIDを=) (0x0029 = 41に対応) (0×10 =特性:通知のみ) |
41 |
0xFFE1 (簡単なキーの状態) |
(無し) |
00(1バイト) (値は、キーの状態を示します) |
42 |
0x2902 (GATTクライアントの特徴的構成のUUID) |
読み書き |
0時00分(2バイト) (value indicates whether notifications or indications are enabled) |
43 |
0x2800 (GATT Primary Service UUID) |
Read |
A1:DD(2 byte) (0xDDA1 = Other Service custom UUID) |
属性的定义是这样的
Handle |
Type |
Permission |
Value |
Handle: 其实上面那张属性表,在程序里只是一个数组而已,所以Handle这个值其实我们是不需要专门去存的,他只是一个索引而已。
Type:属性的类型,也即UUID ,蓝牙标准组织已经对UUID进行了分类。
如上表中,服务的Type就是0X2800,所以每到一个服务,就会有一个Type类型为0x2800的属性出现。
而特征值Declaration 的Type就是0x2803。至于特征值Value的Type可以是用户自定义的。
Permission:属性的访问权限,一般有Read、Write、 notifications、 indications
Value:属性的值 最长可达512字节