Getting started with Bluetooth Low Energy - 4.5. 고급 속성 개념

목록

Advanced Attribute Concepts

고급 속성 개념

This section introduces additional concepts related to working with attributes that are also worth mentioning because their understanding is frequently required for many types of BLE applications.

이 섹션에서는 속성 작업과 관련된 추가 개념을 소개합니다. 이 개념은 많은 유형의 BLE 애플리케이션에 대한 이해가 자주 필요하기 때문에 언급할 가치가 있습니다.

Attribute Caching

속성 캐싱

“Attributes” on page 53 discusses how attribute handles allow a client to individually address all available attributes on a server.

53페이지의 "속성"에서는 속성 핸들을 통해 클라이언트가 서버에서 사용 가능한 모든 속성을 개별적으로 처리할 수 있는 방법에 대해 설명합니다.

Discovering the list of available handles and the contents of their respective attributes can be a time-consuming (and power consuming) process detailed further in “Service and Characteristic Discovery” on page 69.

사용 가능한 핸들 목록과 해당 속성의 내용을 검색하는 것은 69페이지의 "서비스 및 특성 검색"에 자세히 설명되어 있는 시간 소모적 (그리고 전력 소모적) 프로세스일 수 있습니다.

But for now, this section describes what a client can do to avoid performing the discovery procedure every time it reconnects to a server, and under what circumstances it can do so.

그러니 지금은 이 섹션에서는 클라이언트가 서버에 다시 연결할 때마다 검색 절차를 수행하지 않기 위해 수행할 수 있는 작업과 이를 수행할 수 있는 상황에 대해 설명합니다.

Servers typically tend to maintain a stable set of attributes, and their basic structure does not, in most cases, change over the lifetime of a server device.

서버는 일반적으로 안정적인 속성 집합을 유지하는 경향이 있으며, 대부분의 경우 서버 장치의 수명 동안 기본 구조가 변경되지 않습니다.

But the implementation imposes no rigid restrictions in this regard, and a server is indeed free to completely overhaul its attributes and even replace them with a radically new set at any time (through a firmware update or perhaps with the installation of applications on the server device, for example).

하지만 구현 과정에서 이와 관련된 엄격한 제한은 없으며, 서버는 언제든지 속성을 완전히 수정하고 완전히 새로운 세트로 교체할 수도 있습니다 (예를 들어, 펌웨어 업데이트를 통해 또는 서버 장치에 애플리케이션을 설치하여).

Certain rules and constraints are therefore required, so that a client can rely on the validity of previously discovered handles without risk of them having changed on the server and thus no longer being valid.

따라서 클라이언트가 서버에서 핸들이 변경되어 더 이상 유효하지 않을 위험 없이 이전에 발견된 핸들의 유효성에 의존할 수 있도록 특정 규칙과 제약 조건이 필요합니다.

As a general rule, the specification recommends that clients cache (i.e., store for subsequent transactions and even connections) the handles of the attributes they are interested in.

일반적으로 사양에서는 클라이언트가 관심 있는 속성의 핸들을 캐시 (즉, 후속 트랜잭션 및 연결을 위해 저장)하도록 권장합니다.

Attribute values, especially in the cases where they correspond to actual user data, are highly volatile, so it usually makes little sense to store them locally in the client for future use.

특히 실제 사용자 데이터에 해당하는 경우 속성 값은 매우 휘발성이므로 나중에 사용하기 위해 클라이언트에 로컬로 저장하는 것은 일반적으로 거의 의미가 없습니다.

The specification provides the Service Changed characteristic (discussed in more detail in “GATT Service” on page 73) for servers to communicate to the client any potential changes in the contents of its attribute information.

사양은 서버가 속성 정보 내용의 잠재적 변경 사항을 클라이언트에 전달할 수 있도록 서비스 변경 특성 (73페이지의 "GATT 서비스"에서 자세히 설명)을 제공합니다.

This is an optional characteristic, so its mere presence on the server already acts as an alert regarding the actual possibility of structural attribute changes.

이는 선택적인 특성이므로 서버에 존재하는 것만으로도 이미 구조적 속성 변경의 실제 가능성에 대한 경고 역할을 합니다.

Clients can ascertain if the result of discovery can be cached for future use by observing the following conditions:

클라이언트는 다음 조건을 관찰하여 나중에 사용할 수 있도록 검색 결과를 캐시할 수 있는지 확인할 수 있습니다:

No Service Changed characteristic present on the server

서버에 변경된 서비스 특성이 없습니다

Clients can freely and permanently cache all handles found with no restrictions.

클라이언트는 발견된 모든 핸들을 제한 없이 자유롭고 영구적으로 캐시할 수 있습니다.

The server guarantees they will not change during the lifetime of the device.

서버는 장치 수명 동안 변경되지 않음을 보장합니다.

Service Changed characteristic present on the server

서버에 존재하는 서비스 변경 특성

In this case, a client needs to subscribe to the server-initiated updates by writing into the corresponding CCCD enclosed within the Service Changed characteristic (see “Characteristic Descriptors” on page 61).

이 경우, 클라이언트는 서비스 변경 특성 내에 포함된 해당 CCCD에 기록하여 서버에서 시작한 업데이트를 구독해야 합니다 (61페이지의 "특성 설명자" 참조).

This will allow the server to alert the client of any structural changes.

이를 통해 서버는 클라이언트에게 구조적 변경 사항을 경고할 수 있습니다.

If the client and the server are bonded as described in “Security Modes and Procedures” on page 46, the client can cache attribute handles across connections and expect them to remain identical.

클라이언트와 서버가 46페이지의 "보안 모드 및 절차"에 설명된 대로 결합된 경우 클라이언트는 연결 전반에 걸쳐 속성 핸들을 캐시하고 동일하게 유지될 것으로 기대할 수 있습니다.

If the devices are not bonded, the client will need to perform discovery every time it reconnects to the server.

장치가 결합되지 않은 경우 클라이언트는 서버에 다시 연결할 때마다 검색을 수행해야 합니다.

“GATT Service” on page 73 provides more details about using the Service Changed characteristic.

73페이지의 "GATT 서비스"는 서비스 변경 특성 사용에 대한 자세한 내용을 제공합니다.

GATT Attribute Data in Advertising Packets

광고 패킷의 GATT 속성 데이터

Although GATT primarily relies on established connections between a central and a peripheral (as described in “Roles” on page 36), it is also possible to include portions of the attribute information hosted by the server inside advertising packets, rendering one or more server attributes available to any observer or central while scanning.

GATT는 주로 중앙 장치와 주변 장치 간의 확립된 연결에 의존하지만 (36페이지의 "역할"에서 설명한 대로) 광고 패킷 내부에 서버에서 호스팅하는 속성 정보의 일부를 포함하여 스캐닝하는 동안 하나 이상의 서버 속성을 모든 관찰자 또는 중앙 장치에서 사용할 수 있도록 할 수도 있습니다.

Table 3-3 discusses the Service Data AD Type, but that section does not describe the format it uses to enclose server attributes inside an advertising packet.

표 3-3에서는 서비스 데이터 AD 유형을 설명하지만 해당 섹션에서는 광고 패킷 내에 서버 속성을 포함하는 데 사용하는 형식을 설명하지 않습니다.

The Core Advanced Attribute Concepts Specification Supplement in the Specification Adopted Documents page specifies the fields that the GATT server must insert in the payload of an advertising packet to make a particular service’s data available to scanners.

사양 채택 문서 페이지의 핵심 고급 속성 개념 사양 보충 자료는 특정 서비스의 데이터를 스캐너에서 사용할 수 있도록 하기 위해 GATT 서버가 광고 패킷의 페이로드에 삽입해야 하는 필드를 지정합니다.

As shown in Table 4-7, to be able to broadcast service data, a GATT server must include two different fields in the advertising packet’s Service Data section.

표 4-7에 표시된 대로 서비스 데이터를 브로드캐스트하려면 GATT 서버가 광고 패킷의 서비스 데이터 섹션에 두 개의 서로 다른 필드를 포함해야 합니다.

The contents of the Service Data field can correspond to the complete or partial value of a particular characteristic or descriptor within the corresponding service.

서비스 데이터 필드의 내용은 해당 서비스 내의 특정 특성 또는 설명의 전체 또는 부분 값에 해당할 수 있습니다.

It is up to each profile specification to define which, because only the profile has sufficient knowledge about the data to decide which pieces of information are the most relevant to be broadcasted.

어느 정보를 정의하는 것은 각 프로필 사양에 달려 있습니다. 왜냐하면 프로필만이 방송하기에 가장 관련성이 높은 정보를 결정하기 위한 데이터에 대한 충분한 지식을 갖고 있기 때문입니다.