Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Ucapan terima kasih
Beberapa kode pesan memerlukan konfirmasi dari penerima. Dalam kasus ini,
penerima harus mengirim
konfirmasi (ACK) atau
konfirmasi negatif (NAK) dalam waktu 1 detik setelah menerima pesan.
Nama Grup Pesan
Nilai
Persetujuan
0xFF
Nama Kode Konfirmasi
Nilai
ACK
0x01
NAK
0x02
Pengakuan harus dikirim langsung setelah pesan diterima sehingga
pengirim dapat bertindak dengan sesuai. Sebuah {i>acknowledgment<i} harus berisi grup pesan
, kode, dan status saat ini untuk pesan yang dirujuknya. Misalnya, jika
Penyedia akan menerima pesan yang berisi tindakan dering (0x04010002013C),
aplikasi harus mengonfirmasi tindakan dengan mengirimkan kembali 0xFF0100040401013C, dengan:
0xFF: Peristiwa ACK
0x01: Kode ACK
0x0004: Panjang data tambahan
0x0401: Grup dan kode pesan tindakan
0x013C: Status saat ini dari grup dan kode pesan tindakan, berdering kanan dan
Waktu tunggu 60 detik
Untuk NAK, alasannya juga harus
dimasukkan sebagai byte pertama dari
layanan otomatis dan data skalabel. Alasannya meliputi:
0x00: Tidak didukung
0x01: Perangkat sibuk
0x02: Tidak diizinkan karena status saat ini
0x03: Tidak diizinkan karena kode autentikasi pesan salah
0x04: Tindakan perangkat yang redundan
Dari contoh sebelumnya, jika cincin itu akan NAK, bukan karena
Penyedia sedang sibuk dengan tugas lain, paket yang dikembalikan harus diatur ke
0xFF02000401040100 di mana
0xFF: Peristiwa ACK
0x02: Kode NAK
0x0004: Panjang data tambahan
0x01: Alasan NAK, Perangkat sibuk
0x0401: Grup dan kode pesan tindakan
0x00: Status saat ini untuk grup pesan tindakan dan kode, semua komponen
berhenti berdering
Contoh:
#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);}
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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,[]]