13.1.4. Chạy tập lệnh#
Nút bắt đầu -- mũi tên xanh lá bên dưới nút kết nối, hoặc Ctrl+R -- gửi tập lệnh trong tab trình soạn thảo hiện tại đến camera đã kết nối và chạy nó. Trong khi tập lệnh đang chạy, nút bắt đầu chuyển thành nút dừng để dừng tập lệnh. Hai nút đó là vòng lặp cốt lõi của toàn bộ quá trình phát triển trên camera: chỉnh sửa, chạy, quan sát, dừng, rồi chỉnh sửa lại.
Hai chi tiết của vòng lặp đó quan trọng. Thứ nhất, tập lệnh được gửi đến RAM của camera và thực thi ở đó -- khởi động một tập lệnh không ghi gì vào bộ nhớ của camera, và tập lệnh biến mất sau khi đặt lại. Thứ hai, thứ chạy là tab trình soạn thảo hiện tại, chính xác như hiển thị, đã lưu hay chưa. Không có bước tải lên riêng và không có bản sao cũ trên camera để lệch khỏi trình soạn thảo của bạn. Điều tự do duy nhất IDE làm là loại bỏ các chú thích khỏi bản sao nó gửi: mã nguồn của tập lệnh nằm trong RAM của camera trong khi biên dịch, và các ví dụ nhiều chú thích nhỏ hơn khi không có chúng. Các dòng không bao giờ bị xóa, chỉ bị làm trống, nên số dòng trong traceback vẫn khớp với trình soạn thảo của bạn.
Trong khi tập lệnh chạy, đầu ra print() của nó truyền vào terminal nối tiếp và mọi khung hình nó chụp xuất hiện trong trình xem bộ đệm khung hình, và bất cứ thứ gì nó công bố dưới dạng kênh xuất hiện trong chế độ xem Kênh. Khi tập lệnh phát sinh ngoại lệ không được xử lý, traceback được in ra terminal nối tiếp, IDE nhảy trình soạn thảo đến dòng gây lỗi và đánh dấu nó bằng màu đỏ với lỗi bên cạnh -- với ứng dụng nhiều tệp, trước tiên nó mở tệp được nêu tên từ ổ đĩa của camera. Dấu này xóa đi khi bạn chỉnh sửa tệp, chạy lại hoặc ngắt kết nối. Khi tập lệnh dừng, bằng Stop hay do bị sập, chế độ xem Kênh giữ các giá trị cuối cùng nó công bố trên màn hình cho đến khi tập lệnh tiếp theo bắt đầu.
13.1.4.1. Đặt tập lệnh thường trú#
Để camera chạy tập lệnh mà không cần IDE -- khi bật nguồn, độc lập, ngoài thực địa -- hãy lưu tập lệnh trên camera với tên main.py. Tools → Save open script to OpenMV Cam (as main.py) ghi tab trình soạn thảo hiện tại vào ổ đĩa của camera với tên đó, và trong quá trình đó cho phép bạn chọn loại bỏ chú thích và nén khoảng trắng -- giúp thu nhỏ tệp nhưng tạo ra bản sao không thể đọc được -- và Tools → Reset OpenMV Cam khởi động lại camera để nó khởi động với tập lệnh đã lưu. Cùng nhau, chúng tạo thành bước triển khai: từ đó camera chạy tập lệnh của bạn bất cứ khi nào có nguồn điện, dù có IDE hay không.
Trong khi camera đã đặt lại đang chạy main.py đã lưu của nó, IDE vẫn có thể kết nối với nó -- khi Stop Script on Connect/Disconnect được bật (mặc định), việc kết nối sẽ dừng tập lệnh đã lưu và trả quyền kiểm soát lại cho trình soạn thảo.
Xem thêm
Đóng băng tập lệnh vào firmware để biết main.py có nghĩa gì trong chuỗi khởi động của camera, và để chuyển một ứng dụng đã hoàn thiện ra khỏi bộ nhớ có thể chỉnh sửa hoàn toàn.
13.1.4.2. Ổ đĩa của camera#
Hệ thống tệp flash của camera (và thẻ SD, khi được lắp) được gắn trên máy chủ như một USB flash drive. Tools → Open OpenMV Cam Drive folder mở nó trong trình quản lý tệp của bạn. Đây là nơi bạn sao chép các mô-đun thư viện, tệp mô hình (ML), và các tài nguyên mà tập lệnh nhập hoặc tải, và nơi bạn lấy lại các ảnh và nhật ký mà nó đã lưu. Đường dẫn ổ đĩa cũng hiển thị trên thanh trạng thái.
Các tệp mà tập lệnh tạo ra không hiển thị ngay trên máy chủ: máy chủ lưu vào bộ nhớ đệm hệ thống tệp từ thời điểm ổ đĩa được gắn, vì vậy một ảnh chụp được lưu bởi tập lệnh đang chạy vẫn không hiển thị cho đến khi ổ đĩa được gắn lại. Tools → Reset OpenMV Cam gắn lại nó -- cách nhanh nhất để truy cập những gì tập lệnh vừa ghi.
Một lưu ý: camera và máy chủ dùng chung hệ thống tệp đó, và việc ghi đồng thời từ cả hai phía có thể làm hỏng nó. Sao chép tệp khi không có tập lệnh nào đang ghi vào bộ nhớ, và eject đúng cách trước khi rút thẻ.