Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Podziękowania
Niektóre kody wiadomości wymagają potwierdzenia przez odbiorcę. W tym przypadku
odbiorca powinien wysłać potwierdzenie (ACK) lub
Negatywne potwierdzenie (NAK) w ciągu 1 sekundy od otrzymania wiadomości.
Nazwa grupy wiadomości
Wartość
Potwierdzenie
0xFF
Nazwa kodu potwierdzenia
Wartość
POTWIERDŹ
0x01
NAK
0x02
Potwierdzenia należy wysyłać bezpośrednio po otrzymaniu wiadomości, aby
może podjąć odpowiednie działania. Potwierdzenie powinno zawierać grupę wiadomości
, kod oraz bieżący stan wiadomości, do której się odnosi. Na przykład, jeśli
Dostawca otrzyma wiadomość z dzwonieniem (0x04010002013C),
powinien potwierdzić działanie, odsyłając 0xFF0100040401013C, gdzie:
0xFF: zdarzenie potwierdzenia
0x01: kod potwierdzenia
0x0004: dodatkowa długość danych
0x0401: grupa wiadomości i kod działania
0x013C: bieżący stan grupy wiadomości i kodu działania, zadzwoń po prawej
Limit czasu wynosi 60 sekund
W przypadku NAK przyczynę należy również podać jako pierwszy bajt dodatkowych
i skalowalnych danych. Możliwe przyczyny:
0x00: nieobsługiwane
0x01: Urządzenie jest zajęte
0x02: niedozwolone ze względu na bieżący stan
0x03: niedozwolone z powodu nieprawidłowego kodu uwierzytelniania wiadomości
0x04: Nadmiarowe działanie urządzenia
Z poprzedniego przykładu, gdyby pierścień zostałby zamknięty ze względu na
Dostawca jest zajęty innym zadaniem, zwrócony pakiet powinien mieć wartość
0xFF02000401040100, gdzie
0xFF: zdarzenie potwierdzenia
0x02: kod NAK
0x0004: dodatkowa długość danych
0x01: powód NAK, Urządzenie jest zajęte
0x0401: grupa wiadomości i kod działania
0x00: bieżący stan grupy wiadomości i kodu działania, wszystkie komponenty
Przestań dzwonić
Przykład:
#define FP_MSG_ACK 0x01#define FP_MSG_NAK 0x02#define FP_MSG_GROUP_ACK 0xFFstaticvoidfp_msg_send_ack(uint8_tmsgGroup,uint8_tmsgCode){FP_MESSAGE_STREAMreq={FP_MSG_GROUP_ACK,FP_MSG_ACK,0,2};req.data[0]=msgGroup;req.data[1]=msgCode;fp_send((uint8_t*)&req);}staticvoidfp_msg_send_nak(uint8_treason,uint8_tmsgGroup,uint8_tmsgCode){//reason= 0x00: Not supported, 0x01: Device busy, or 0x02: Not allowed due to current stateFP_MESSAGE_STREAMreq={FP_MSG_GROUP_ACK,FP_MSG_NAK,0,3};req.data[0]=reason;req.data[1]=msgGroup;req.data[2]=msgCode;fp_send((uint8_t*)&req);}
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-08-13 UTC."],[[["\u003cp\u003eSome message codes require an acknowledgement (ACK) or negative-acknowledgement (NAK) response within 1 second, sent only when specified.\u003c/p\u003e\n"],["\u003cp\u003eAcknowledgements (ACKs) use the code \u003ccode\u003e0xFF01\u003c/code\u003e and should include the referenced message's group, code, and current state.\u003c/p\u003e\n"],["\u003cp\u003eNegative-acknowledgements (NAKs) use the code \u003ccode\u003e0xFF02\u003c/code\u003e and provide a reason code (e.g., \u003ccode\u003e0x01\u003c/code\u003e for Device busy) along with the message's group and code.\u003c/p\u003e\n"],["\u003cp\u003eThe acknowledgement structure includes the event (ACK/NAK), code, additional data length, and relevant message details.\u003c/p\u003e\n"],["\u003cp\u003eExample code snippets demonstrate sending ACKs and NAKs using pre-defined message group and code values.\u003c/p\u003e\n"]]],["Receivers must send an acknowledgement (ACK) or negative-acknowledgement (NAK) within one second for specific message codes. ACKs (0x01) and NAKs (0x02) belong to the 0xFF message group. Responses include the message group, code, and current state of the action, and for NAKs, a reason. Example reasons: Not supported (0x00), Device busy (0x01), Not allowed (0x02), Incorrect message code (0x03) or Redundant action (0x04). Example for ring action: `0xFF0100040401013C` or NAK :`0xFF02000401040100`.\n"],null,[]]