📄 ag_inquire.c
字号:
#include "ag_private.h"
#include "ag.h"
#include <message.h>
#include <print.h>
#include <stdlib.h>
#include <string.h>
#include <vm.h>
/*
inquiryReqAction
Start an inquiry.
*/
void inquiryReqAction(uint8 num_responses, uint16 timeout, uint32 CoD_filter, uint16 rnr_en)
{
if (agIdleQuery())
{
MAKE_MSG(CM_INQUIRY_REQ);
msg->max_responses = num_responses;
msg->inq_timeout = D_SEC(timeout);
msg->class_of_device = CoD_filter;
msg->remote_name_request_enabled = rnr_en;
agPutCmMsg(msg);
agSetCurrentState(AgInquiring);
}
else
{
agSendErrorToClient(AgErrorInquiryRequestWhenNotIdle, 0);
}
}
/*
agInquiryCompleteCfm
Confirmation that the inquiry has completed including a status
flag indicating its outcome.
*/
void agInquiryCompleteCfm(const CM_INQUIRY_COMPLETE_CFM_T *cfm)
{
ag_inquiry_status_t inq_status = AgInquiryError;
agSetCurrentState(AgIdle);
/* Let the interface layer do anything it wants to with this */
switch(cfm->status)
{
case CmInquiryComplete:
inq_status = AgInquiryComplete;
break;
case CmInquiryCancelled:
inq_status = AgInquiryCancelled;
break;
case CmInquiryMaxResponsesReached:
inq_status = AgMaxResponsesReached;
break;
default:
PRINT(("ag_inquire: Unknown inquiry complete return type 0x%x\n", cfm->status));
inq_status = AgInquiryError;
break;
}
handleInquiryCompleteCfm(inq_status);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -