Đọc và ghi thuộc tính

Một phần của tài liệu Ứng dụng công nghệ zigbee cho hệ thống điều khiển chiếu sáng trong nhà (Trang 62 - 67)

Cấu trúc của một mạng ZLL đƣợc xác định bởi Touchlink feature. Một nút đƣợc thêm vào mạng bằng cách sử dụng một nút đặc biệt gọi là nút khở tạo và thƣờng là thiết bị điều khiển từ xa.

Khi cài đặt một nút mới thêm vào, nút khởi tạo sẽ cần những thông tin từ nút mới đó, gồm:

- Số thiết bị của của ứng dụng ZLL. - Loại thiết bị.

54 - Địa chỉ mạng.

- Địa chỉ IEEE/MAC.

Thiết bị khởi tạo sẽ cất giữ những thông tin đó và bảng thiết bị đầu cuối cho ứng dụng.

2.2.4.1. Đọc thuộc tính.

Các thuộc tính có thể đƣợc đọc bằng sử dụng một chức năng chung của ZCL hoặc một chức năng ZLL hoặc ZCL một cách rõ rang từ nhóm đích.

Trên nút nguồn.

- Chức năng eZCL_SendReadAttributesRequest() đƣợc dùng để gửi đi một yêu cầu đọc một hoặc nhiều thuộc tính trên một nhóm hoặc nút từ xa. Thông tin đƣợc yêu cầu bởi chức năng này bao gồm:

+ Thiết bi nguồn (nơi mà yêu cầu đọc đƣợc gửi đi). + Địa chỉ của nút đích nơi nhận yêu cầu đọc.

+ Thiết bị đích.

+ Xác định các thuộc tính của nhóm. + Số thuộc tính cần đọc.

+ Sắp xếp mảng thuộc tính cần đọc.

Trên nút đích.

- Khi nhận đƣợc yêu cầu về đọc thuộc tính, phần mềm ZCL trên nút đích sẽ thực hiện những bƣớc sau:

+ Tạo ra một sự kiện E_ZCL_CBET_READ_REQUEST cho thiết bị đích, nếu cần thiết, có thể cập nhật cấu trúc thiết bị chia sẻ chứa đựng thuộc tính cần đọc trƣớc khi việc đọc diễn ra.

+ Tạo ra một sự kiện E_ZCL_CBET_LOCK_MUTEX cho thiết bị đích.

+ Đọc giá trị thuộc tính liên quan từ cấu trúc thiết bị chia sẻ và tạo ra một thông điệp đáp ứng về đọc giá trị chứa đựng giá trị cần đọc.

+ Tạo ra một sự kiện E_ZCL_CBET_UNLOCK_MUTEX cho thiết bị đích. + Gửi đáp ứng về đọc thuộc tính tới nút nguồn đã gửi yêu cầu.

55

Trên nút nguồn.

- Khi nhận đƣợc đáp ứng về đọc thuộc tính, phần mềm ZCL trên nút nguồn sẽ thực hiện các bƣớc sau:

1. Đối với mỗi thuộc tính đƣợc liệt kê ra trong đáp ứng, nó sẽ tạo ra một tin nhắn E_ZCL_CBET_READ_INDIVIDUAL_ATTRIBUTE_RESPONSE cho thiết bị nguồncó thể thực hiện hoặc không thực hiện hoạt động trên thông điệp đó.

2. Sau khi hoàn thành phân tích các đáp ứng về đọc thuộc tính, nó sẽ tạo ra một thông điệp duy nhất E_ZCL_CBET_READ_ATTRIBUTES_RESPONSE cho thiết bị nguồn, có thể thực hiện hoặc không thực hiện hành động trên thông điệp đó.

Hình 2.14. Quá trình yêu cầu và trả lại đáp ứng về việc đọc thuộc tính.

2.2.4.2. Ghi thuộc tính

Khả năng ghi các giá trị thuộc tính tới một nhóm từ xa đƣợc thực hiện bởi thiết bị điều khiển ZLL. Thông thƣờng, một yêu cầu ghi giá trị thuộc tính đƣợc gửi từ nhóm trạm tới một nhóm chủ, nơi mà những thuộc tính cần thiết trong cấu trúc thiết bị chia sẻ đƣợc cập nhật.

Ba chức năng ghi thuộc tính đƣợc cung cấp trong ZCL:

1. eZCL_SendWriteAttributesRequest(): chức năng này sẽ gửi một yêu cầu ghi thuộc tính tới một thiết bị từ xa. Thiết bị từ xa sẽ tạo ra một đáp ứng về ghi thuộc tính tới nút nguồn.

56

2. eZCL_SendWriteAttributesNoResponseRequest(): Chức năng này sẽ gửi một yêu cầu về ghi thuộc tính tới một thiết bị từ xa. Tuy nhiên thiết bị từ xa không tạo ra một đáp ứng về ghi thuộc tính cho dù có lỗi hay không.

3. eZCL_SendWriteAttributesUndividedRequest(): Chức năng này sẽ gửi một yêu cầu về ghi thuộc tính tới một thiết bị từ xa và tiến hành kiểm tra tất cả các thuộc tính đƣợc ghi mà không có lỗi.

+ Nếu tất cả các thuộc tính đƣợc ghi mà không có lỗi thì tất cả các thuộc tính đó đƣợc cập nhật cho thiết bị đích.

+ Nếu bất kỳ thuộc tính nào có lỗi, thì tất cả các thuộc tính đƣợc sếp bên trái những thuộc tính hiện có.

- Thiết bị từ xa tạo ra một đáp ứng về ghi thuộc tính tới thiết bị nguồn và cho thấy đã ghi thành công hoặc danh sách mã lỗi đối với những thuộc tính bị lỗi.

Trên thiết bị nguồn:

- Để gửi một yêu cầu về ghi thuộc tính, ứng dụng trên nút nguồn gọi một trong những chức năng ghi thuộc tính của ZCL ở trên để gửi yêu cầu những thuộc tính cần cập nhật trên một nhóm hay nút ở xa. Những thông tin yêu cầu bởi chức năng này bao gồm:

+ Thiết bi nguồn (nơi mà yêu cầu ghi đƣợc gửi đi). + Địa chỉ của nút đích nơi nhận yêu cầu ghi.

+ Thiết bị đích.

+ Xác định các thuộc tính của nhóm. + Số thuộc tính cần ghi.

+ Sắp xếp mảng thuộc tính cần ghi.

Trên thiết bị đích.

- Khi nhận đƣợc một yêu cầu về ghi thuộc tính, phần mềm ZCL trên nút đích thực hiện những bƣớc sau:

+ Đối với mỗi thuộc tính trong yêu cầu về ghi thuộc tính, tạo ra một sự kiện

E_ZCL_CBET_CHECK_ATTRIBUTE_RANGE cho nút đích. Nếu có yêu cầu, chức năng gọi lại thực hiện một hoặc cả hai hoạt động sau:

57

- Kiểm tra giá trị thuộc tính mới trong dải đúng, nếu ngoài dải đó chức năng sẽ cài đặt một sự kiện E_ZCL_ERR_ATTRIBUTE RANGE.

- Chặn lại việc ghi bằng cách thiết lập sự kiện

E_ZCL_DENY_ATTRIBUTE_ACCESS.

+ Tạo ra một sự kiện E_ZCL_CBET_LOCK_MUTEX cho nút đích.

+ Ghi giá trị thuộc tính liên quan tới cấu trúc thiết bị chia sẻ, một sự kiện

E_ZCL_CBET_WRITE_INDIVIDUAL_ATTRIBUTE cho từng giá trị thuộc tính. + Tạo ra một sự kiện E_ZCL_CBET_WRITE_ATTRIBUTES để cho biết các thuộc tính đã đƣợc xử lý và nếu cần thiết tạo ra một tin nhắn đáp ứng về ghi thuộc tính cho nút nguồn.

+ Tạo ra một sự kiện E_ZCL_CBET_UNLOCK_MUTEX cho thiết bị cuối.

+ Nếu đƣợc yêu cầu, gửi một đáp ứng về ghi giá trị tới nút nút nguỗn đã gửi yêu cầu.

Trên nút nguồn.

- Khi nhận đƣợc đáp ứng tùy chọn về ghi thuộc tính, phần mềm ZCL của nút nguồn sẽ thực hiện những bƣớc sau:

1. Với mỗi thuộc tính đƣợc liệt ra trong đáp ứng, nó tạo ra một tin nhắn

E_ZCL_CBET_WRITE_INDIVIDUAL_ATTRIBUTE_RESPONSE cho thiết bị nguồn

2. Sau khi hoàn thành phân tích các đáp ứng về ghi thuộc tính, nó sẽ tạo ra một thông điệp duy nhất E_ZCL_CBET_WRITE_ATTRIBUTES_RESPONSE cho thiết bị nguồn.

58

Hình 2.15. Quá trình yêu cầu và trả lại đáp ứng ghi thuộc tính.

Một phần của tài liệu Ứng dụng công nghệ zigbee cho hệ thống điều khiển chiếu sáng trong nhà (Trang 62 - 67)

Tải bản đầy đủ (PDF)

(107 trang)