Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Teşekkür
Bazı mesaj kodları için alıcının onayı gerekir. Böyle durumlarda
alıcı bir onay (ACK) göndermeli
bir negatif onay (NAK) alır.
Mesaj Grubu Adı
Değer
Onay
0xFF
Onay Kodu Adı
Değer
Onayla
0x01
NAK
0x02
Onaylar, ileti alındıktan hemen sonra gönderilmelidir.
buna göre hareket edebilir. Onay, mesaj grubunu içermelidir
, kodu ve geçerli durumu için de uygun olacaktır. Örneğin,
Sağlayıcı, zil işlemini (0x04010002013C) içeren bir mesaj alır.
Aşağıdaki durumlarda 0xFF0100040401013C geri göndererek işlemi onaylamalıdır:
0xFF: ACK etkinliği
0x01: ACK kodu
0x0004: Ek veri uzunluğu
0x0401: İşlem mesajı grubu ve kodu
0x013C: İşlem mesajı grubunun ve kodunun geçerli durumu, sağı çaldır ve
60 saniye zaman aşımı
Bir NAK için neden,
dışı verilerdir. Nedenler arasında şunlar yer alır:
0x00: Desteklenmiyor
0x01: Cihaz meşgul
0x02: Geçerli durum nedeniyle izin verilmiyor
0x03: Yanlış mesaj kimlik doğrulama kodu nedeniyle izin verilmiyor
0x04: Gereksiz cihaz işlemi
Önceki örnekten devam edersek halka
Sağlayıcı başka bir görevle meşgul. Döndürülen paket
0xFF02000401040100 burada:
0xFF: ACK etkinliği
0x02: NAK kodu
0x0004: Ek veri uzunluğu
0x01: NAK nedeni, Cihaz meşgul
0x0401: İşlem mesajı grubu ve kodu
0x00: İşlem mesajı grubunun ve kodunun mevcut durumu, tüm bileşenler
çalmayı kes
Örnek:
#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);}
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2024-08-22 UTC."],[[["Some message codes require an acknowledgement (ACK) or negative-acknowledgement (NAK) response within 1 second, sent only when specified."],["Acknowledgements (ACKs) use the code `0xFF01` and should include the referenced message's group, code, and current state."],["Negative-acknowledgements (NAKs) use the code `0xFF02` and provide a reason code (e.g., `0x01` for Device busy) along with the message's group and code."],["The acknowledgement structure includes the event (ACK/NAK), code, additional data length, and relevant message details."],["Example code snippets demonstrate sending ACKs and NAKs using pre-defined message group and code values."]]],["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"]]