Apple Notification Center Service with an External Display
외부 디스플레이를 갖춘 Apple 알림 센터 서비스
The Apple Notification Center Service (ANCS) function in iOS is the source of notifications displayed as a banner message along the top of the active screen (or in place of the entire active screen) for timely alerts (e.g., when you receive a text message, miss a call, or for a variety of other applications).
iOS의 Apple 알림 센터 서비스 (ANCS) 기능은 적절한 경고 (예: 문자 메시지를 받았을 때, 전화를 놓쳤을 때 또는 다양한 다른 애플리케이션에 대한 경고)를 위해 활성 화면의 맨 위에 배너 메시지로 표시되는 알림 (또는 전체 활성 화면 대신)입니다.
For example, when you receive an incoming call, the ANCS temporarily replaces the active screen with the screen shown in Figure 9-5.
예를 들어 수신 전화를 받으면 ANCS는 일시적으로 활성 화면을 그림 9-5에 표시된 화면으로 바꿉니다.
When iOS 7 was introduced, Apple included a BLE interface to the ANCS to route similar alerts to BLE connected accessories—for example, a BLE-enabled watch.
iOS 7이 출시되었을 때 Apple은 유사한 경고를 BLE 지원 시계와 같은 BLE 연결 액세서리로 라우팅하기 위해 ANCS에 BLE 인터페이스를 포함시켰습니다.
In the ANCS context, the iOS device always acts as a GATT server, and the device that displays the notifications acts as a GATT client.
ANCS 컨텍스트에서 iOS 장치는 항상 GATT 서버 역할을 하며 알림을 표시하는 장치는 GATT 클라이언트 역할을 합니다.
For efficiency, describing how the ANCS works requires some terminology.
효율성을 위해 ANCS 작동 방식을 설명하려면 몇 가지 용어가 필요합니다.
For the purposes of this discussion, we will refer to the iOS device that sends the ANCS notifications as the notification provider (NP) and the accessory waiting to receive notifications (e.g., the BLEenabled watch) as the notification consumer (NC).
논의의 목적을 위해 ANCS 알림을 보내는 iOS 기기를 알림 제공자 (NP)라고 하고, 알림 수신을 기다리는 액세서리 (예: BLE 지원 시계)를 알림 소비자 (NC)라고 합니다.
Notifications displayed on the iOS device are also known as iOS notifications, whereas notifications sent via BLE GATT characteristic are known as GATT notifications.
iOS 장치에 표시되는 알림은 iOS 알림이라고도 하며, BLE GATT 특성을 통해 전송되는 알림은 GATT 알림이라고 합니다.
Using ANCS does not require programming an app on the iPhone.
ANCS를 사용하면 iPhone에서 앱을 프로그래밍할 필요가 없습니다.
Instead, the accessory advertises its request to receive notifications via an advertising packet, which includes the service UUID of the ANCS (7905F431-B5CE-4E99-A40F-4B1E122D00D0).
대신 액세서리는 ANCS의 서비스 UUID (7905F431-B5CE-4E99-A40F-4B1E122D00D0)를 포함하는 광고 패킷을 통해 알림 수신 요청을 광고합니다.
Figure 9-6 shows the structure of the packet.
그림 9-6은 패킷의 구조를 보여줍니다.
When the NP iOS device scans an advertising packet with the ANCS UUID from the NC, it connects to the NC accessory device.
NP iOS 장치는 NC에서 ANCS UUID로 광고 패킷을 스캔하면 NC 액세서리 장치에 연결됩니다.
Now, a curious role reversal takes place (at least in the way we might normally think of the data flow between the central and peripheral).
이제 흥미로운 역할 전환이 발생합니다 (적어도 중앙과 주변 장치 사이의 데이터 흐름에 대해 일반적으로 생각할 수 있는 방식에서).
The NC (peripheral) becomes a GATT client, subscribing to services on the NP (ANCS services) and receiving notifications and data from the NP (central) iOS device.
NC (주변 장치)는 GATT 클라이언트가 되어 NP (ANCS 서비스)의 서비스를 구독하고 NP (중앙) iOS 장치로부터 알림과 데이터를 수신합니다.
This is completely normal, because, as mentioned in “Roles” on page 51, the GAP and GATT roles are independent from each other.
이는 "역할" 51페이지에서 언급된 대로 GAP 및 GATT 역할이 서로 독립적이기 때문에 완전히 정상적인 현상입니다.
Apple Notification Center Service with an External Display
외부 디스플레이가 포함된 Apple 알림 센터 서비스
On the NP (iOS central device), the Apple Notification Center Service UUID is 7905F431-B5CE-4E99-A40F-4B1E122D00D0, with the following associated characteristics/UUIDs:
NP (iOS 중앙 장치)에서 Apple 알림 센터 서비스 UUID는 7905F431-B5CE-4E99-입니다. A40F-4B1E122D00D0 (다음과 관련된 특성/UUID 포함):
UUID 9FBF120D-6301-42D9-8C58-25E699A21DBD (notifiable)
UUID 9FBF120D-6301-42D9-8C58-25E699A21DBD (통보가능)
UUID 69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9 (writeable with response)
UUID 69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9 (응답으로 쓰기 가능)
UUID 69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9 (notifiable)
UUID 69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9 (통보가능)
The Notification Source is a mandatory characteristic, while the others are optional.
알림 소스는 필수 특성이고 나머지는 선택 사항입니다.
Normally, the accessory (the NC) will subscribe to the Service Changed characteristic of the GATT service to receive notifications of changes in the ANCS automatically from the Notification Source.
일반적으로 액세서리(NC)는 알림 소스로부터 자동으로 ANCS 변경 알림을 받기 위해 GATT 서비스의 서비스 변경 특성에 가입합니다.
Upon receiving notification of a new GATT notifications from ANCS, the NC can request more information.
ANCS로부터 새로운 GATT 통지를 받으면 NC는 추가 정보를 요청할 수 있습니다.
To find out more, the NC sends (writes) a message to the Control Point, including the notification ID of interest and a list of associated attributes the NC wishes to receive.
자세한 내용을 알아보기 위해 NC는 관심 있는 알림 ID와 NC가 수신하려는 관련 속성 목록을 포함하여 제어 지점에 메시지를 보냅니다 (쓰기).
Those are then provided in response from the Data Source.
그런 다음 데이터 소스의 응답으로 제공됩니다.
The NC (peripheral) firmware must perform the following steps:
NC (주변 장치) 펌웨어는 다음 단계를 수행해야 합니다:
Start advertising (typically, once per second), including the ANCS UUID in the advertising packet to alert any NP in range.
범위 내의 모든 NP에게 경고하기 위해 광고 패킷에 ANCS UUID를 포함하여 광고를 시작합니다 (일반적으로 초당 한 번).
When the NP (iOS device) connects, pair (if not already bonded) or enable encryption with the NC device.
NP (iOS 장치)가 연결되면 NC 장치와 페어링 (아직 결합되지 않은 경우)하거나 암호화를 활성화합니다.
Enumerate the iOS ANCS services.
iOS ANCS 서비스를 열거합니다.
Set the client for the notification source.
알림 소스에 대한 클라이언트를 설정합니다.
On notification, write a message to ANCS Control Point if more information is desired.
더 많은 정보가 필요하면 알림 시 ANCS 제어점에 메시지를 작성하세요.
Receive response from the Data Source (containing notification ID and data).
데이터 소스 (알림 ID 및 데이터 포함)으로부터 응답을 받습니다.
Pairing of the NC (given local name BOB in this example) with the iOS device is straightforward.
NC (이 예에서는 로컬 이름 BOB 제공)와 iOS 장치의 페어링은 간단합니다.
After the NC (remote peripheral) starts advertising, you must open Settings→Bluetooth on the NP (central) iPhone to trigger a scan for BLE devices and then manually pair the device (as shown in Figure 9-7).
NC (원격 주변 장치)가 광고를 시작한 후 NP(중앙) iPhone에서 설정→Bluetooth를 열어 BLE 장치 검색을 시작한 다음 장치를 수동으로 페어링해야 합니다 (그림 9-7 참조).
No PIN is required.
PIN이 필요하지 않습니다.
Figure 9-8 shows the notification received on a terminal emulation screen connected to the NC (peripheral).
그림 9-8은 NC (주변기기)에 연결된 터미널 에뮬레이션 화면에서 수신된 알림을 보여줍니다.
In this case, the NP (an iPhone 5) sent three notifications: an incoming call, a missed a call, and a new voicemail message.
이 경우 NP (iPhone 5)는 전화 수신, 부재중 전화, 새 음성 메일 메시지 등 세 가지 알림을 보냈습니다.
The first line, CALL (notification type), followed by the line ns, denotes the notification string received by the NC and written to the NC UART for display on the terminal emulator.
첫 번째 줄인 CALL (알림 유형)과 그 뒤에 오는 ns 줄은 NC에서 수신하고 터미널 에뮬레이터에 표시하기 위해 NC UART에 작성된 알림 문자열을 나타냅니다.
The string done indicates that the connection for the notification is complete.
done 문자열은 알림 연결이 완료되었음을 나타냅니다.
Then the software scans the data sent along with the notification.
그런 다음 소프트웨어는 알림과 함께 전송된 데이터를 검사합니다.
The next pieces of data are a UID (all zeros) and a text string with the name of the caller (caller ID): Davidson Ro.
다음 데이터 조각은 UID (모두 0)와 발신자 이름 (발신자 ID)이 포함된 텍스트 문자열: Davidson Ro입니다.
The next line, MISSED, is the beginning of a second notification event (for a missed call).
다음 줄인 MISSED는 두 번째 알림 이벤트 (부재중 전화에 대한)의 시작입니다.
The third notification (for a new voicemail message) begins with the line VMAIL.
새 음성 메일 메시지에 대한 3번째 알림은 VMAIL 줄로 시작됩니다.