iOS Bluetooth Guide 1: Tổng quan về Core Bluetooth framework
Core Bluetooth framework cung cấp các lớp cần thiết cho ứng dụng iOS và MacOS có thể giao tiếp với các thiết bị có công nghệ bluetooth bên trong. Core Bluetooth trừu tượng hóa các đặc điểm kĩ thuật bên trong Bluetooth 4.0. Nó che giấu những việc cần thực hiện ở low-level và cung cấp cho chúng ta ...
Core Bluetooth framework cung cấp các lớp cần thiết cho ứng dụng iOS và MacOS có thể giao tiếp với các thiết bị có công nghệ bluetooth bên trong. Core Bluetooth trừu tượng hóa các đặc điểm kĩ thuật bên trong Bluetooth 4.0. Nó che giấu những việc cần thực hiện ở low-level và cung cấp cho chúng ta những giải pháp dễ dàng hơn để xây dựng ứng dụng tương tác với các thiết bị bluetooth. Bởi vì framework xây dựng dựa trên các đặc tả kỹ thuật của Bluetooth, nên sẽ có một vài khái niệm và mô hình mà bạn cần nắm được. Phần này sẽ giới thiệu cho bạn những key word chính.
Chú ý: nếu app chạy trên iOS 10.0, bạn cần phải đưa vào file Info.plist những key mô tả việc sử dụng cho kiểu dữ liệu bạn cần truy cập nếu không app của bạn sẽ crash. Để truy cập dữ liệu Bluetooth, bạn cần phải đưa vào key: NSBluetoothPeripheralUsageDescription, bạn có thể nhập value cho nó hoặc cứ để một string rỗng.
Central, Peripheral Devices và vai trò của chúng trong việc giao tiếp giữa các thiết bị bluetooth
Có hai đối tượng chính trong quá trình giao tiếp Bluetooth: central và peripheral. Có một chút hơi hướng dựa trên kiến trúc client-server:
- Một peripheral thường là một đối tượng có chứa dữ liệu, và các thiết bị khác sẽ cần sử dụng dữ liệu đó.
- Một central thường là một đối tượng mà sử dụng thông tin được cung cấp bởi peripheral để thực hiện một nhiệm vụ nào đó.
Hình dưới cung cấp một ví dụ đơn giản thường thấy về peripheral và central. Một chiếc máy đo nhịp tim (peripheral) chứa những thông tin hữu ích mà các ứng dụng trên điện thoại và máy tính (central) cần để hiển thị nhịp tim của người sử dụng theo một cách dễ hình dung trên màn hình.
Central phát hiện và kết nối tới các Peripheral đang advertising
- Peripheral phát tán một vài dữ liệu của chúng ở dạng advertising packet. Một advertising packet là như một gói dữ liệu nhỏ chứa những thông tin mà peripheral phải cung cấp để nhận dạng, ví dụ như tên của peripheral và chức năng chính của nó. Ví dụ, một máy điều hòa nhiệt độ phải advertise rằng chúng cung cấp nhiệt độ hiện tại của căn phòng. Trong công nghệ Bluetooth, advertising là cách chính để peripheral thể hiện sự có mặt của nó.
- Một central, mặt khác, sẽ quét và lắng nghe bất cứ thiết bị peripheral nào đang advertising thông tin mà nó muốn, sau đó có thể yêu cầu quyền truy cập tới thiết bị đó.
Dữ liệu của một Peripheral được cấu trúc như thế nào ?
Mục đích của việc kết nối tới peripheral là dò xét và tương tác với với dữ liệu mà nó cung cấp, và trước khi làm vậy, sẽ tốt hơn nếu bạn hiểu dữ liệu của peripheral được cấu trúc ra sao.
- Peripheral có thể bao gồm một hoặc nhiều service hoặc cung cấp thông tin hữu ích về cường độ tín hiệu kết nối. Một service là một tập dữ liệu và hành vi đi kèm để thực hiện một chức năng hay một tính năng của thiết bị. Ví dụ, một service của máy đo nhịp tim là đưa ra dữ liệu nhịp tim từ bộ cảm biến.
- Service được tạo nên từ các characteristic hoặc từ việc sử dụng các service khác. Một characteristic cung cấp những thông tin chi tiết hơn về một service của peripheral. Ví dụ, service nhịp tim vừa mô tả ở trên có thể bao gồm một characteristic mô tả vị trí hướng cơ thể của bộ cảm biến và một characteristic khác trao đổi dữ liệu tính toán nhịp tim. Hình dưới đây cung cấp một cấu trúc có thể có về service và characteristic của một máy đo nhịp tim.
Central dò xét và tương tác với dữ liệu của Peripheral
Sau khi central thiết lập kết nối thành công tới peripheral, nó có thể thấy được toàn bộ service và characteristic mà peripheral cung cấp (dữ liệu lúc advertising có thể chỉ là một phần của những service hiện có). Một central có thể tương tác với service của peripheral bằng việc đọc và ghi các characteristic của service đó. Ví dụ, ứng dụng của bạn có thể yêu cầu thông tin về nhiệt độ phòng từ một máy điều hòa nhiệt độ hoặc cung cấp cho máy điều hòa nhiệt độ một giá trị để thiết lập nhiệt độ phòng.
Central, Peripheral và dữ liệu của Peripheral được thể hiện như thế nào ?
Các đối tượng chính và dữ liệu có liên quan trong việc truyền thông giữa các thiết bị Bluetooth được ánh xạ vào trong Core Bluetooth framework một cách đơn giản và minh bạch.
Chú thích: khi nói local central và remote peripheral, hàm ý rằng bạn đang xử lý trên central, và đối tượng được điều khiển là peripheral. Ngược lại khi nói local peripheral và remote central.
Khi thiết bị của bạn đóng vai trò là Central
Phần lớn các hoạt động khi xử lý với Bluetooth của bạn nằm ở phía central. Chapter 2 và 5 sẽ nói về việc thực thi vai trò của central trong ứng dụng.
Local Central và Remote Peripheral
Ở phía central, một thiết bị local central được thể hiện bởi một đối tượng CBCentralManager. Đối tượng này được sử dụng để quản lý việc phát hiện và kết nối tới thiết bị remote peripheral (thể hiện bởi đối tượng CBPeripheral), bao gồm việc quét, phát hiện, và kết nối tới peripheral đang advertising.
Dữ liệu của Peripheral được thể hiện bởi các đối tượng CBService và CBCharacteristic
Khi bạn tương tác với dữ liệu trên remote peripheral (thể hiện bởi đối tượng CBPeripheral), có nghĩa là bạn đang làm việc với các service và characteristic của nó. Trong Core Bluetooth framework, service của một remote peripheral được thể hiện bởi đối tượng CBService. Tương tự, characteristic của một service được thể hiện bởi đối tượng CBCharacteristic.
Khi thiết bị của bạn đóng vai trò là Peripheral
Máy Mac sử dụng MacOS 10.9 trở lên, thiết bị iOS sử dụng iOS 6.0 trở lên có chứa các tính năng để tương tác như một peripheral, cung cấp dữ liệu cho các thiết bị khác, bao gồm các máy Mac, iPhone và iPad khác. Khi thiết lập thiết bị của bạn để thực thi trong vai trò peripheral, bạn đang thực hiện những hoạt động ở phía peripheral trong việc giao tiếp giữa các thiết bị Bluetooth.
Local Peripheral và Remote Central
Ở phía peripheral, một thiết bị local peripheral được thể hiện bởi đối tượng CBPeripheralManager. Đối tượng này được sử dụng để quản lý các service công khai bên trong cơ sở dữ liệu về service và characteristic của thiết bị local peripheral, và có nhiệm vụ advertising các service này tới các thiết bị remote central (thể hiện bởi đối tượng CBCentral). Đối tượng peripheral manager còn được sử dụng để trả lời các yêu cầu đọc và ghi từ remote central.
Dữ liệu của Local Peripheral được thể hiện bởi đối tượng CBMutableService và CBMutableCharacteristic
Khi bạn thiết lập và tương tác với dữ liệu ở local peripheral (thể hiện bởi đối tượng CBPeripheralManager), có nghĩa là bạn đang làm việc với các phiên bản của các service và characteristic của nó. Trong Core Bluetooth framework, service của local peripheral được thể hiện bởi đối tượng CBMutableService, tương tự như vậy, characteristic của service được thể hiện bởi đối tượng CBMutableCharacteristic. Chapter 3 và 6 sẽ nói cụ thể về việc thực thi với vai trò peripheral trong ứng dụng.
Chapter này cho bạn một cái nhìn tổng quan về các hoạt động của trong truyền thông giữa các thiết bị Bluetooth, central - peripheral là một mối quan hệ có tính tương đồng với mô hình client - server, cấu trúc dữ liệu của peripheral. Và cuối cùng là sự thể hiện của các đối tượng trên trong Core Bluetooth framework. Bài viết tiếp theo sẽ đi vào hướng dẫn cách thực thi ứng dụng với vai trò của Central.
Dịch và chỉnh sửa từ Core Bluetooth Programming Guide