Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Agradecimentos
Alguns códigos de mensagem exigem uma confirmação do destinatário. Nesse caso,
o destinatário deve enviar uma confirmação (ACK) ou
confirmação negativa (NAK, na sigla em inglês) até um segundo após o recebimento da mensagem.
Nome do grupo de mensagens
Valor
Confirmação
0xFF
Nome do código de confirmação
Valor
CONF
0x01
NAK
0x02
Os agradecimentos devem ser enviados logo após o recebimento da mensagem para que o
remetente possa agir de acordo. Uma confirmação deve conter o grupo de mensagens
, o código e o estado atual da mensagem que está referenciando. Por exemplo, se
o provedor recebe uma mensagem com a ação de tocar (0x04010002013C);
ele precisa confirmar a ação enviando de volta 0xFF0100040401013C, em que:
0xFF: evento ACK
0x01: código ACK
0x0004: comprimento de dados adicional
0x0401: o código e o grupo de mensagens de ação
0x013C: o estado atual do grupo de mensagens de ação e do código, tocar à direita e
Tempo limite de 60 segundos
Para um NAK, o motivo também deve ser incluído como o primeiro byte dos
dados. As razões incluem:
0 x 00: incompatível
0x01: dispositivo ocupado
0x02: não permitido devido ao estado atual
0x03: não permitido devido ao código incorreto de autenticação de mensagem
0x04: ação de dispositivo redundante
No exemplo anterior, se o anel fosse NAK devido à
Se o provedor estiver ocupado com outra tarefa, o pacote retornado deverá ser definido como
0xFF02000401040100 em que
0xFF: evento ACK
0x02: código NAK
0x0004: comprimento de dados adicional
0x01: motivo NAK, dispositivo ocupado
0x0401: o código e o grupo de mensagens de ação
0x00: o estado atual do código e do grupo de mensagens de ação, todos os componentes
Parar de tocar
Exemplo:
#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);}
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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,[]]