Đọc tài liệu SDK camera công nghiệp và chuẩn GenICam
GenICam, SFNC và các tính năng chuẩn hay dùng, cách đọc tài liệu SDK và thiết kế phần mềm ít phụ thuộc hãng.
Nội dung bài viết
Mỗi hãng camera công nghiệp có SDK và tài liệu riêng, nhưng hầu hết đều tuân theo chuẩn GenICam. Hiểu chuẩn này giúp bạn đọc tài liệu của bất kỳ hãng nào nhanh hơn, và viết phần mềm ít phụ thuộc vào một hãng cụ thể.
GenICam là gì?
GenICam (Generic Interface for Cameras) là chuẩn do tổ chức EMVA quản lý, quy định cách phần mềm khám phá và điều khiển các tính năng của camera. Camera tự mô tả các tính năng của nó trong một file XML; phần mềm đọc file này để biết camera có những tham số gì, kiểu dữ liệu, giới hạn ra sao.
- GenApi: cơ chế truy cập tính năng qua file mô tả.
- SFNC (Standard Features Naming Convention): quy ước tên chuẩn cho các tính năng phổ biến, nên tên tham số giống nhau giữa các hãng.
- GenTL: lớp truyền tải chuẩn, cho phép phần mềm dùng chung với nhiều loại giao tiếp (GigE Vision, USB3 Vision...).
Các tính năng SFNC hay dùng
| Tên tính năng | Ý nghĩa |
|---|---|
Width, Height, OffsetX, OffsetY | Kích thước và vị trí vùng đọc ảnh (ROI phần cứng) |
PixelFormat | Định dạng điểm ảnh: Mono8, Mono12, BayerRG8... |
ExposureTime | Thời gian phơi sáng (thường tính bằng µs) |
Gain | Độ khuếch đại tín hiệu |
AcquisitionMode | Chụp liên tục hay một ảnh |
TriggerMode, TriggerSource, TriggerActivation | Bật trigger, nguồn trigger (phần cứng/phần mềm), cạnh lên/xuống |
TriggerDelay | Độ trễ từ lúc nhận trigger tới lúc phơi sáng |
LineSelector, LineMode, LineSource | Cấu hình các chân I/O (vào/ra, tín hiệu xuất ra) |
AcquisitionFrameRate | Giới hạn tốc độ khung hình |
Tên có thể khác đôi chút ở camera đời cũ hoặc tính năng riêng của hãng; tài liệu của hãng luôn liệt kê đầy đủ.
Đọc tài liệu SDK hiệu quả
- Bắt đầu từ ví dụ mẫu đi kèm SDK (thường có C++, C#, Python): chụp một ảnh, chụp liên tục, chụp theo trigger.
- Dùng phần mềm xem camera của hãng để thử thay đổi tham số, quan sát kết quả, rồi mới viết code với đúng các tham số đó.
- Đọc mục "Programming Guide" / "Feature Reference" của dòng camera bạn dùng.
- Đọc phần xử lý lỗi và mất kết nối: camera mất mạng, mất ảnh (frame drop), bộ đệm đầy.
- Đọc phần cấu hình mạng (với GigE): IP tĩnh, jumbo frames, kích thước gói tin, băng thông.
Thiết kế phần mềm ít phụ thuộc hãng
- Tạo một lớp trung gian (interface) như
ICameravới các hàmOpen,SetExposure,Grab,Close; mỗi hãng một lớp cài đặt riêng. - Dùng tên tính năng SFNC trong file cấu hình thay vì tên riêng của hãng khi có thể.
- Ghi lại phiên bản firmware camera và SDK đang dùng trong tài liệu dự án.
Xem thêm: đồng bộ trigger và đèn strobe.


