如何在ch573 Peripheral在主機(jī)連接從機(jī)時獲取主機(jī)mac地址
需求:就是主機(jī)連接從機(jī)時,從機(jī)先判斷主機(jī)mac地址,再讓主機(jī)連接從機(jī)
請問要在例程的哪里改?謝謝
如何在ch573 Peripheral在主機(jī)連接從機(jī)時獲取主機(jī)mac地址
需求:就是主機(jī)連接從機(jī)時,從機(jī)先判斷主機(jī)mac地址,再讓主機(jī)連接從機(jī)
請問要在例程的哪里改?謝謝
您好,可以在下圖函數(shù)中的結(jié)構(gòu)體里獲取到主機(jī)的地址類型和地址,
若要斷開連接可調(diào)用此函數(shù):
GAPRole_TerminateLink(peripheralConnList.connHandle);
執(zhí)行到這個函數(shù)是已經(jīng)被主機(jī)連上了嗎?
/*********************************************************************
?* @fn? ? ? Peripheral_LinkEstablished
?*
?* @brief? ?Process link established.
?*
?* @param? ?pEvent - event to process
?*
?* @return? none
?*/
static void Peripheral_LinkEstablished(gapRoleEvent_t *pEvent)
{
? ? gapEstLinkReqEvent_t *event = (gapEstLinkReqEvent_t *)pEvent;
? ? // See if already connected
? ? if(peripheralConnList.connHandle != GAP_CONNHANDLE_INIT)
? ? {
? ? ? ? GAPRole_TerminateLink(pEvent->linkCmpl.connectionHandle);
? ? ? ? PRINT("Connection max...\n");
? ? }
? ? else
? ? {
? ? ? ? peripheralConnList.connHandle = event->connectionHandle;
? ? ? ? peripheralConnList.connInterval = event->connInterval;
? ? ? ? peripheralConnList.connSlaveLatency = event->connLatency;
? ? ? ? peripheralConnList.connTimeout = event->connTimeout;
? ? ? ? peripheralMTU = ATT_MTU_SIZE;
? ? ? ? // Set timer for periodic event
? ? ? ? tmos_start_task(Peripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD);
? ? ? ? // Set timer for param update event
? ? ? ? tmos_start_task(Peripheral_TaskID, SBP_PARAM_UPDATE_EVT, SBP_PARAM_UPDATE_DELAY);
? ? ? ? // Start read rssi
? ? ? ? tmos_start_task(Peripheral_TaskID, SBP_READ_RSSI_EVT, SBP_READ_RSSI_EVT_PERIOD);
? ? ? ? PRINT("Conn %x - Int %x \n", event->connectionHandle, event->connInterval);
? ? }
}
如果是,那有沒有還沒連上時,可以拒絕主機(jī)連的?
您好,沒有還沒連上的狀態(tài)回調(diào)的,需要在這個已連接回調(diào)里去處理,可以根據(jù)自己的需求去選擇是否斷開連接。
GAPRole_TerminateLink(peripheralConnList.connHandle);//斷開連接后,還會不會再次持續(xù)發(fā)廣播?
默認(rèn)的例程在斷開連接后,會重新開啟廣播,也就是有advertising的日志信息。