cuốn sách gpt4 ai đã làm

Cách xử lý các tùy chọn Coap tùy chỉnh (không chuẩn)

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 09:27:00 29 4
mua khóa gpt4 Nike

Tôi đang phát triển liên kết openHAB2 cho loạt thiết bị Shelly. Giao diện http đang chạy tốt nhưng tôi không thể đăng ký để nhận sự kiện COAP.

Có ai có kinh nghiệm sử dụng khung Californium không? Shelly sử dụng các tùy chọn Coap không chuẩn (dựa trên thông số kỹ thuật CoIoT của nó:https://shelly-api-docs.shelly.cloud/images/CoIoT%20for%20Shelly%20devices%20(rev%201.0)%20.pdf).

Tôi đang sử dụng khung công tác Java Californium.

Khi tôi đăng ký người quan sát, lệnh gọi lại không được thực thi. Nếu tôi gửi lệnh, tôi thấy ACK trong nhật ký nhưng chúng báo cáo tùy chọn không xác định 3332, tùy chọn mà Shelly mô tả trong tài liệu của nó. Tôi không tìm được cách đăng ký/đưa các tùy chọn tùy chỉnh vào khung Californium để người quan sát có thể đọc chúng. Bất kỳ trợ giúp sẽ được đánh giá rất cao.

    khách hàng CoapClient;
Quan hệ CoapObserveRelation;

bắt đầu khoảng trống công khai () {
client = new CoapClient("coap://192.168.1.1:5683/cit/d");
client.get(new CoapHandler() {
@Ghi đè
public void onLoad(Phản hồi CoapResponse) {
Nội dung chuỗi = reply.getResponseText();
logger.debug("PHẢN HỒI 3: " + nội dung);
}

@Ghi đè
khoảng trống công khai trênError() {
logger.warn("THẤT BẠI");
}
});

quan hệ = client.obser(
CoapHandler mới () {
@Ghi đè
public void onLoad(Phản hồi CoapResponse) {
Nội dung chuỗi = reply.getResponseText();
logger.debug("THÔNG BÁO: " + nội dung);
}

@Ghi đè
khoảng trống công khai trênError() {
logger.warn("Quan sát THẤT BẠI (nhấn enter để thoát)");
}
});

Những gì tôi thấy trong nhật ký gỡ lỗi:

Ngày 19 tháng 8 năm 2019 4:15:39 chiều org.eclipse.californium.core.network.Matcher getResponse
THÔNG TIN: Bỏ qua phản hồi dựa trên heo không thể so sánh được từ /192.168.6.81:5683: ACK-2.05 MID= 5718, Token=, OptionSet={"Unknown (3332)":0x534853572d3231233535394635352331}, "{"blk":[{"I":0,"D://Rela".. 420 byte
  • Rõ ràng thiết bị đang phản hồi (ip:port, uri)
  • Gói được giải mã
  • Dữ liệu nhìn chung có vẻ tốt (như đã nêu trong thông số kỹ thuật)
  • Nhưng nó hiển thị "OptionSet={"Unknown (3332)"..."

Tôi không biết cách đăng ký các tùy chọn tùy chỉnh với Californium. Có vẻ như các gói này bị bỏ qua và do đó ứng dụng không thể lấy được bất kỳ dữ liệu nào.

Có ý tưởng gì không?

câu trả lời hay nhất

Sẽ thật tuyệt nếu bạn cung cấp nhật ký cho máy khách và máy chủ, các yêu cầu và phản hồi. Tuy nhiên, tôi thấy rằng phản hồi ACK không chứa mã thông báo (phải giống với mã thông báo trong yêu cầu), đó rõ ràng là lý do tại sao Californium không thể khớp mã thông báo đó với yêu cầu tương ứng.

Californium sẽ hoạt động tốt với các tùy chọn tùy chỉnh.

Hãy thử liên hệ với họ sau khi giải được đáp án toán. Mọi thứ sẽ trông như thế này:

phản hồi.getOptions().getOthers()

Thông báo "Không xác định..." đơn giản là do trình định dạng tin nhắn Californium không biết cách ghi nhật ký chính xác. Dù sao, bạn sẽ có thể lấy nó từ các tùy chọn.

Về java - cách xử lý các tùy chọn Coap tùy chỉnh (không chuẩn), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/57558648/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress