স্বীকৃতি
কিছু বার্তা কোড গ্রহণকারীর কাছ থেকে একটি স্বীকৃতি প্রয়োজন। এই ক্ষেত্রে, মেসেজ পাওয়ার 1 সেকেন্ডের মধ্যে রিসিভারকে একটি স্বীকৃতি (ACK) বা নেতিবাচক-স্বীকৃতি (NAK) পাঠাতে হবে।
| বার্তা গ্রুপের নাম | মান | 
|---|---|
| স্বীকৃতি | 0xFF | 
| স্বীকৃতি কোডের নাম | মান | 
|---|---|
| ACK | 0x01 | 
| NAK | 0x02 | 
 বার্তা প্রাপ্তির পরে স্বীকৃতিগুলি সরাসরি পাঠানো উচিত যাতে প্রেরক সেই অনুযায়ী কাজ করতে পারে। একটি স্বীকৃতিতে বার্তা গ্রুপ , কোড এবং বার্তাটির বর্তমান অবস্থা থাকা উচিত যা এটি উল্লেখ করছে৷ উদাহরণস্বরূপ, যদি প্রদানকারী রিং অ্যাকশন ( 0x04010002013C ) সম্বলিত একটি বার্তা পায়, তাহলে তাকে 0xFF0100040401013C ফেরত পাঠানোর মাধ্যমে অ্যাকশনটি স্বীকার করা উচিত যেখানে:
- 0xFF: ACK ইভেন্ট
- 0x01: ACK কোড
- 0x0004: অতিরিক্ত ডেটা দৈর্ঘ্য
- 0x0401: অ্যাকশন মেসেজ গ্রুপ এবং কোড
- 0x013C: অ্যাকশন মেসেজ গ্রুপের বর্তমান অবস্থা এবং কোড, ডানে রিং এবং 60 সেকেন্ডের সময়সীমা
একটি NAK-এর জন্য, কারণটি অতিরিক্ত ডেটার প্রথম বাইট হিসাবে অন্তর্ভুক্ত করা উচিত। কারণ অন্তর্ভুক্ত:
- 0x00: সমর্থিত নয়
- 0x01: ডিভাইস ব্যস্ত
- 0x02: বর্তমান অবস্থার কারণে অনুমোদিত নয়
- 0x03: ভুল বার্তা প্রমাণীকরণ কোডের কারণে অনুমোদিত নয়
- 0x04: অপ্রয়োজনীয় ডিভাইস কর্ম
 পূর্ববর্তী উদাহরণ থেকে, যদি প্রদানকারী অন্য কাজে ব্যস্ত থাকার কারণে রিংটি NAK'ed করা হয়, তবে ফেরত প্যাকেটটি 0xFF02000401040100 সেট করা উচিত যেখানে
- 0xFF: ACK ইভেন্ট
- 0x02: NAK কোড
- 0x0004: অতিরিক্ত ডেটা দৈর্ঘ্য
- 0x01: NAK কারণ, ডিভাইস ব্যস্ত
- 0x0401: অ্যাকশন মেসেজ গ্রুপ এবং কোড
- 0x00: অ্যাকশন বার্তা গ্রুপ এবং কোডের বর্তমান অবস্থা, সমস্ত উপাদান বাজানো বন্ধ করে
উদাহরণ:
#define FP_MSG_ACK                                  0x01
#define FP_MSG_NAK                                  0x02
#define FP_MSG_GROUP_ACK                            0xFF
static void fp_msg_send_ack(uint8_t msgGroup, uint8_t msgCode)
{
    FP_MESSAGE_STREAM  req = {FP_MSG_GROUP_ACK, FP_MSG_ACK, 0, 2};
    req.data[0] = msgGroup;
    req.data[1] = msgCode;
   fp_send((uint8_t *)&req);
}
static void fp_msg_send_nak(uint8_t reason, uint8_t msgGroup, uint8_t msgCode)
{
//reason= 0x00: Not supported, 0x01: Device busy, or 0x02: Not allowed due to current state
    FP_MESSAGE_STREAM  req = {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);
}