12. Giao thức Host

Mỗi cam OpenMV đều có kèm một ngăn xếp giao thức để hiển thị camera như một tập hợp các kênh dữ liệu được đặt tên cho chương trình host. Chương trình host có thể là một tập lệnh Python trên laptop của nhà phát triển, một GUI máy tính để bàn, một cam khác ở đầu kia của UART, hoặc một dịch vụ chạy trên máy trạm theo dõi một nhóm camera. Cam không quan tâm điều nào -- cùng một cơ chế đóng khung, cùng một cơ chế độ tin cậy, cùng một trừu tượng hóa kênh đều hoạt động cho tất cả.

Đây là câu trả lời cho hai câu hỏi thường xuyên xuất hiện khi một dự án cam rời khỏi IDE:

  • "Làm thế nào tôi có thể hiển thị chế độ xem trực tiếp những gì cam thấy vào một GUI tùy chỉnh trên laptop của tôi?"

  • "Làm thế nào tôi cho phép người vận hành thay đổi ngưỡng hoặc chọn vùng quan tâm tại thời điểm chạy, mà không cần nạp lại firmware?"

Module protocol ở phía cam và gói openmv-python ở phía host trả lời cả hai câu hỏi, bằng cách cho phép một lớp Python trên cam hiển thị một kênh mà một lớp Python trên host có thể đọc, ghi và phản ứng với các sự kiện, tất cả qua một kết nối USB hoặc serial duy nhất.

A host PC connects to a cam over USB; the cam exposes three channels -- a frame channel for image data, a config channel for control values, and the built-in stdout channel for prints -- and the host script reads or writes each.

Chương này hướng dẫn cả hai phía. Mã phía cam cho thấy cách đăng ký kênh và cung cấp dữ liệu; mã phía host cho thấy cách kết nối, liệt kê các kênh, lấy dữ liệu và đẩy lệnh trở lại. Các công cụ thực tế được cung cấp trong thư mục openmv-projects/tools/ sử dụng chính xác các mẫu được trình bày ở đây.

Tổng kết