تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
شكر وتقدير
تتطلّب بعض رموز الرسائل تأكيدًا من المستلِم. وفي هذه الحالة،
أن يرسل المستلِم إقرارًا (ACK) أو
إقرار سلبي (NAK) خلال ثانية واحدة من استلام الرسالة.
اسم مجموعة الرسائل
القيمة
إقرار
0xFF
اسم رمز الإقرار
القيمة
الإقرار
0x01
NAK
0x02
يجب إرسال الإقرارات مباشرةً بعد استلام الرسالة حتى لا
يمكن للمرسل التصرف وفقًا لذلك. يجب أن يحتوي الإقرار على مجموعة الرسائل
، الرمز الحالي والحالة الحالية للرسالة التي تشير إليها. على سبيل المثال، إذا
يتلقى موفّر الخدمة رسالة تحتوي على إجراء الرنين (0x04010002013C)
يجب أن تُقر الشركة بالإجراء من خلال إعادة إرسال 0xFF0100040401013C حيث:
0xFF: حدث ACK
0x01: رمز ACK
0x0004: طول البيانات الإضافية
0x0401: مجموعة رسالة الإجراء ورمزها
0x013C: الحالة الحالية لمجموعة رسالة الإجراء ورمزها، الرنين لليمين و
مهلة 60 ثانية
بالنسبة إلى NAK، ينبغي أيضًا تضمين السبب باعتباره البايت الأول من
البيانات. تشمل الأسباب ما يلي:
0x00: غير متاح
0x01: الجهاز مشغول
0x02: غير مسموح به بسبب الحالة الحالية
0x03: غير مسموح به بسبب وجود رمز غير صحيح لمصادقة الرسالة
0x04: إجراء متكرر على الجهاز
من المثال السابق، إذا كان من المفترض أن تكون الخاتم NAK بدلاً من ذلك بسبب
الموفر مشغول بمهمة أخرى، يجب تعيين الحزمة التي تم إرجاعها على
مكان 0xFF02000401040100
0xFF: حدث ACK
0x02: رمز NAK
0x0004: طول البيانات الإضافية
0x01: السبب غير معروف، الجهاز مشغول
0x0401: مجموعة رسالة الإجراء ورمزها
0x00: الحالة الحالية لمجموعة رسائل الإجراء ورمزها، وجميع المكوّنات
إيقاف الرنين
مثال:
#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);}
تاريخ التعديل الأخير: 2024-08-22 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2024-08-22 (حسب التوقيت العالمي المتفَّق عليه)"],[[["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"]]