Chuyển đến nội dung

Danh sách kiểm tra production

Chạy hết danh sách này trước khi cho hệ thống RFID ghi số liệu tồn kho thật. Người rà thường là trưởng nhóm tích hợp, cùng người phụ trách hiện trường cho các mục về sóng và thiết bị; mục nào chưa đạt thì ghi lại, phân người xử lý và hẹn ngày rà lại. Khi mọi mục đã tick, hai bên ký nghiệm thu, và từ thời điểm đó số liệu đầu đọc đẩy về được tin là thật.

Danh sách xếp theo đúng hành trình đưa hệ thống vào đời:

SDK và luồng đọc

Nhóm này bảo đảm phần code của bạn đứng vững trước những chuyện chắc chắn sẽ xảy ra: rút cáp, khởi động lại, dữ liệu về dồn dập.

  • Ghi lại model và phiên bản firmware của từng đầu đọc vào hồ sơ triển khai.
  • Ghim phiên bản package SDK trong dependency; đừng để bản mới tự trôi vào production.
  • Đưa phần tích hợp vào kiểm thử tự động chạy ở CI, thay vì chỉ thử tay với đầu đọc thật.
  • Chạy thử đủ một vòng: bắt đầu kiểm kê, nhận thẻ trong callback, dừng sạch, rồi chạy lại được ngay.
  • Nếu bạn tự viết receive loop bằng Go, Rust hoặc C++, kiểm thử nó với dữ liệu về dồn cục và bị cắt giữa chừng theo phụ lục receive loop.
  • Đặt timeout, chính sách retry và ánh xạ lỗi cho từng lệnh; đưa mọi thông báo lỗi ra hệ thống giám sát thay vì nuốt trong log.
  • Chỉ đổi trạng thái phía ứng dụng sau khi đầu đọc xác nhận lệnh thành công.
  • Làm cho lệnh dừng và ngắt kết nối xử lý nốt dữ liệu còn chờ, và gọi hai lần liên tiếp vẫn an toàn.

Transport và runtime

Đường serial là chỗ mọi sự cố vật lý đổ về, nên nhóm này toàn các tình huống "ai đó rút nhầm dây".

  • Cài driver CP210x trên mọi máy sẽ nối đầu đọc, và đưa nó vào image triển khai.
  • Xử lý và kiểm thử việc tự kết nối lại sau khi rút cáp hoặc đầu đọc khởi động lại.
  • Với Web Serial: chạy trong secure context, xin cổng từ một user gesture, và giải phóng lock của reader lẫn writer khi dọn dẹp.
  • Đặt backpressure và giới hạn buffer để bộ nhớ không phình lên khi mật độ đọc cao.
  • Cho đúng một thành phần sở hữu serial port, và tuần tự hóa mọi lệnh ghi qua nó.
  • Dọn sạch thread, listener, interval và abort handler khi tắt; với bản Python, join inventory thread trước khi thoát.

RF và quy định

Sóng vô tuyến bị pháp luật ràng buộc theo từng quốc gia, và hiện trường thật khác phòng lab. Nhóm này cần người phụ trách hiện trường cùng rà.

  • Kiểm chứng quy định hiện hành của quốc gia triển khai về tần số, hopping, công suất và duty cycle, xem thuật ngữ.
  • Đặt RF band và danh sách kênh một cách chủ động; đừng để nguyên mặc định của nhà máy.
  • Ghi log kết quả query_rfid_ability và xác nhận công suất cấu hình nằm trong dải thiết bị báo về.
  • Khảo sát tại hiện trường: cổng ăng-ten, suy hao cáp, phân cực và vùng đọc thật.
  • Bắt đầu ở công suất thấp và chỉ tăng đến khi phủ đủ vùng cần đọc, không hơn.
  • Phối hợp các đầu đọc lân cận và thử hẳn tình huống đọc lấn sang vùng bên cạnh.
  • Đo hiệu năng với sản phẩm, bao bì, mật độ và chuyển động thật, không đo bằng thẻ trần trên bàn.

Xử lý dữ liệu thẻ

Nhóm này giữ cho dòng sự kiện thẻ sạch trước khi nó chạm vào sổ kho, theo đúng ba lớp trong Đọc thẻ và chống trùng.

  • Chuẩn hóa và kiểm tra EPC hex trước khi cho vào logic nghiệp vụ.
  • Tự loại trùng bản đọc theo EPC trong một khoảng thời gian bạn quy định rõ trong thiết kế.
  • Chỉnh filter phía đầu đọc (set_filter_settings) theo sự kiện nghiệp vụ, không theo tốc độ đọc tối đa.
  • Giữ lại id đầu đọc, id ăng-ten, RSSI, tần số và thời điểm nhận ở phía máy chủ cho từng sự kiện.
  • Làm cho logic ứng dụng idempotent: nhận lại cùng một bản đọc không tạo thêm biến động tồn kho.
  • Đưa EPC lạ hoặc chưa cấp phát vào diện chờ xử lý; đừng lặng lẽ chấp nhận chúng.
  • Ghi mốc thời gian sự kiện theo đồng hồ máy chủ tại thời điểm nhận, và nêu rõ quy ước đó trong thiết kế.

Encode và ghi thẻ

Ghi thẻ là thao tác một đi không trở lại trên phần cứng, nên mọi mục ở đây đều hướng về một chữ: chắc.

  • Lấy GS1 Company Prefix, scheme và partition từ nguồn có thẩm quyền, xem mã hóa EPC.
  • Cho bộ encode và decode chạy qua vector chuẩn GS1 và kiểm thử round-trip.
  • Chạy validate_epc_hex hoặc một bước kiểm tra tương đương trước mọi lần ghi.
  • Singulation thẻ đích trước khi ghi; chỉ blind write ở nơi chắc chắn chỉ có một thẻ trong vùng đọc.
  • Đọc lại và so sánh sau mọi lần ghi, bằng check_write_epc hoặc cách kiểm tra riêng của bạn.
  • Bọc lệnh kill bằng phê duyệt của quản lý và một bước xác nhận, vì hành động này không hoàn tác được.

Bảo mật và vận hành

Hệ thống chạy tốt tuần đầu chưa nói lên gì; nhóm này lo cho tháng thứ sáu.

  • Giới hạn quyền cấu hình thiết bị và bật audit cho các thay đổi.
  • Tắt log mức debug ở production: log debug ghi cả dữ liệu thẻ thô, nghĩa là lộ EPC ra file log.
  • Che thông tin đăng nhập, mật khẩu và định danh nhạy cảm của hàng hóa hoặc khách hàng trong log.
  • Phiên bản SDK, firmware và cấu hình phải triển khai và rollback được cùng nhau như một khối.
  • Giám sát đủ các chỉ số: tình trạng kết nối, lỗi truyền nhận, độ trễ lệnh, tốc độ đọc, số EPC duy nhất và sự kiện bị rơi.
  • Viết sẵn quy trình xử lý cho các tình huống: đầu đọc mất kết nối, đọc chập chờn, trùng lặp tăng vọt, sai vùng tần số và ghi thẻ sai.
  • Tách đầu đọc thử, kho thử và thẻ thử khỏi tồn kho production.

Bộ kiểm thử tự động tối thiểu

Trước khi nghiệm thu, bộ kiểm thử của phần tích hợp nên phủ được các tình huống sau; bộ vector kiểm thử đi kèm repository của SDK trong sdk/nation/testdata/:

  • Mở port, ghi, nhận dữ liệu, đóng port, và rút cáp ngay giữa lúc đang đọc.
  • Dữ liệu từ đầu đọc về bị cắt giữa chừng, và nhiều thông báo dồn trong một lần đọc.
  • Dữ liệu lỗi, lệnh không được trả lời cho tới timeout, và thông báo lỗi từ đầu đọc.
  • Start và stop gọi lặp vẫn an toàn, và các lệnh chạy đồng thời được tuần tự hóa.
  • Nhận trùng EPC và sự kiện đến sai thứ tự.
  • Giá trị biên của EPC: số 0 ở đầu, partition không hợp lệ và tràn số.
  • Kiểm thử tích hợp chạy với từng phiên bản firmware mà bạn hỗ trợ.

Đọc tiếp

Tài liệu vận hành Easy Inventory và tích hợp RFID