Gói LoRa lớn bao gồm các tiêu đề PHY
Tôi giả sử bạn có nghĩa là tiêu đề MAC? Sau khi một số chip LoRa đã giải điều chế các tín hiệu vô tuyến LoRa cho bạn, nó sẽ cung cấp cho bạn tải trọng LoRa PHY. Đối với đường lên LoRaWAN, tải trọng PHY như vậy giữ tiêu đề MAC, tải trọng MAC và MIC.
Đối với 1.0.x, quy tắc ngón tay cái dường như là gói LoRaWAN lớn hơn ít nhất 13 byte so với tải trọng của ứng dụng:
Tôi nghĩ thường ít nhất 13 [MHDR (1) + DevAddr (4) + FCtrl (1) + FCnt (2) + Fport (1) + MIC (4)] trong một gói không có tùy chọn
Tải trọng ứng dụng tối đa phụ thuộc vào tốc độ dữ liệu được chọn. Nếu một nút có thể hoạt động trong điều kiện tồi tệ nhất, thì người ta sẽ giả sử tốc độ dữ liệu tồi tệ nhất, SF12, trong đó nút không được gửi nhiều hơn khoảng 51 byte. (Trong điều kiện tốt nhất, SF7, có thể là 222 byte.) Tất cả điều đó cũng phụ thuộc vào khu vực, tôi nghĩ vậy. (Và mọi thứ có thể tốt hơn khi nút LoRaWAN không sử dụng LoRa, nhưng FSK.)
Vì vậy, đối với trường hợp sử dụng của bạn, tôi sẽ cố gắng không phụ thuộc vào độ dài tối đa thông qua USB. Thay thế:
Bạn có thể dễ dàng chuyển đổi gói LoRaWAN nhị phân thành văn bản thuần bằng Base64 . Sau đó bạn có thể gửi văn bản như vậy thông qua USB và kết thúc nó với một dòng mới hoặc một NULL ký tự là để cho người nhận bí quyết của bạn khi được thông báo USB là hoàn tất. Bạn thậm chí có thể gửi dữ liệu meta bổ sung trong dòng văn bản đó nếu bạn chọn một dấu phân cách không có trong bộ ký tự Base64.
Ví dụ: giao thức SemDP UDP giữa các cổng và máy chủ sử dụng tin nhắn văn bản JSON, cũng cho phép bạn truyền dữ liệu meta bổ sung. Trong văn bản JSON, gói LoRaWAN nhị phân cũng được mã hóa bằng Base64. Nếu văn bản JSON có định dạng đẹp để bao gồm các dòng mới, thì bạn vẫn có thể chấm dứt tin nhắn văn bản đó bằng NULL -character và người nhận của bạn sẽ không bị nhầm lẫn.