Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_p2pServer_ota/STM32_WPAN/App/app_ble.c')
-rw-r--r--Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_p2pServer_ota/STM32_WPAN/App/app_ble.c148
1 files changed, 108 insertions, 40 deletions
diff --git a/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_p2pServer_ota/STM32_WPAN/App/app_ble.c b/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_p2pServer_ota/STM32_WPAN/App/app_ble.c
index a23874290..27a3dcc39 100644
--- a/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_p2pServer_ota/STM32_WPAN/App/app_ble.c
+++ b/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_p2pServer_ota/STM32_WPAN/App/app_ble.c
@@ -230,7 +230,7 @@ P2PS_APP_ConnHandle_Not_evt_t handleNotification;
#if L2CAP_REQUEST_NEW_CONN_PARAM != 0
#define SIZE_TAB_CONN_INT 2
-float tab_conn_interval[SIZE_TAB_CONN_INT] = { 50, 1000} ; /* in ms */
+float tab_conn_interval[SIZE_TAB_CONN_INT] = {50, 1000} ; /* ms */
uint8_t index_con_int, mutex;
#endif
@@ -353,6 +353,7 @@ uint8_t manuf_data[14] = {
0x00, /* BLE MAC stop */
};
#endif
+
/* USER CODE BEGIN PV */
/* USER CODE END PV */
@@ -496,6 +497,9 @@ SVCCTL_UserEvtFlowStatus_t SVCCTL_App_Notification( void *pckt )
hci_event_pckt *event_pckt;
evt_le_meta_event *meta_evt;
evt_blue_aci *blue_evt;
+ hci_le_phy_update_complete_event_rp0 *evt_le_phy_update_complete;
+ uint8_t TX_PHY, RX_PHY;
+ tBleStatus ret = BLE_STATUS_INVALID_PARAMS;
event_pckt = (hci_event_pckt*) ((hci_uart_pckt *) pckt)->data;
@@ -510,9 +514,8 @@ SVCCTL_UserEvtFlowStatus_t SVCCTL_App_Notification( void *pckt )
{
BleApplicationContext.BleApplicationContext_legacy.connectionHandle = 0;
BleApplicationContext.Device_Connection_Status = APP_BLE_IDLE;
-#if(CFG_DEBUG_APP_TRACE != 0)
+
APP_DBG_MSG("\r\n\r** DISCONNECTION EVENT WITH CLIENT \n");
-#endif
}
/* restart advertising */
@@ -520,11 +523,14 @@ SVCCTL_UserEvtFlowStatus_t SVCCTL_App_Notification( void *pckt )
/*
* SPECIFIC to P2P Server APP
*/
- handleNotification.P2P_Evt_Opcode = PEER_DISCON_HANDLE_EVT;
- handleNotification.ConnectionHandle = BleApplicationContext.BleApplicationContext_legacy.connectionHandle;
- P2PS_APP_Notification(&handleNotification);
+ handleNotification.P2P_Evt_Opcode = PEER_DISCON_HANDLE_EVT;
+ handleNotification.ConnectionHandle = BleApplicationContext.BleApplicationContext_legacy.connectionHandle;
+ P2PS_APP_Notification(&handleNotification);
-}
+ /* USER CODE BEGIN EVT_DISCONN_COMPLETE */
+
+ /* USER CODE END EVT_DISCONN_COMPLETE */
+ }
break; /* EVT_DISCONN_COMPLETE */
@@ -537,13 +543,44 @@ SVCCTL_UserEvtFlowStatus_t SVCCTL_App_Notification( void *pckt )
switch (meta_evt->subevent)
{
case EVT_LE_CONN_UPDATE_COMPLETE:
-#if(CFG_DEBUG_APP_TRACE != 0)
APP_DBG_MSG("\r\n\r** CONNECTION UPDATE EVENT WITH CLIENT \n");
-#endif
+
/* USER CODE BEGIN EVT_LE_CONN_UPDATE_COMPLETE */
/* USER CODE END EVT_LE_CONN_UPDATE_COMPLETE */
break;
+ case EVT_LE_PHY_UPDATE_COMPLETE:
+ APP_DBG_MSG("EVT_UPDATE_PHY_COMPLETE \n");
+ evt_le_phy_update_complete = (hci_le_phy_update_complete_event_rp0*)meta_evt->data;
+ if (evt_le_phy_update_complete->Status == 0)
+ {
+ APP_DBG_MSG("EVT_UPDATE_PHY_COMPLETE, status ok \n");
+ }
+ else
+ {
+ APP_DBG_MSG("EVT_UPDATE_PHY_COMPLETE, status nok \n");
+ }
+ ret = hci_le_read_phy(BleApplicationContext.BleApplicationContext_legacy.connectionHandle,&TX_PHY,&RX_PHY);
+ if (ret == BLE_STATUS_SUCCESS)
+ {
+ APP_DBG_MSG("Read_PHY success \n");
+ if ((TX_PHY == TX_2M) && (RX_PHY == RX_2M))
+ {
+ APP_DBG_MSG("PHY Param TX= %d, RX= %d \n", TX_PHY, RX_PHY);
+ }
+ else
+ {
+ APP_DBG_MSG("PHY Param TX= %d, RX= %d \n", TX_PHY, RX_PHY);
+ }
+ }
+ else
+ {
+ APP_DBG_MSG("Read conf not succeess \n");
+ }
+ /* USER CODE BEGIN EVT_LE_PHY_UPDATE_COMPLETE */
+
+ /* USER CODE END EVT_LE_PHY_UPDATE_COMPLETE */
+ break;
case EVT_LE_CONN_COMPLETE:
{
hci_le_connection_complete_event_rp0 *connection_complete_event;
@@ -555,10 +592,8 @@ SVCCTL_UserEvtFlowStatus_t SVCCTL_App_Notification( void *pckt )
HW_TS_Stop(BleApplicationContext.Advertising_mgr_timer_Id);
-#if(CFG_DEBUG_APP_TRACE != 0)
APP_DBG_MSG("EVT_LE_CONN_COMPLETE for connection handle 0x%x\n",
connection_complete_event->Connection_Handle);
-#endif
if (BleApplicationContext.Device_Connection_Status == APP_BLE_LP_CONNECTING)
{
/* Connection as client */
@@ -606,7 +641,63 @@ SVCCTL_UserEvtFlowStatus_t SVCCTL_App_Notification( void *pckt )
switch (blue_evt->ecode)
{
/* USER CODE BEGIN ecode */
+ aci_gap_pairing_complete_event_rp0 *pairing_complete;
+ case EVT_BLUE_GAP_LIMITED_DISCOVERABLE:
+ APP_DBG_MSG("\r\n\r** EVT_BLUE_GAP_LIMITED_DISCOVERABLE \n");
+ break; /* EVT_BLUE_GAP_LIMITED_DISCOVERABLE */
+ case EVT_BLUE_GAP_PASS_KEY_REQUEST:
+ APP_DBG_MSG("\r\n\r** EVT_BLUE_GAP_PASS_KEY_REQUEST \n");
+/*
+ aci_gap_pass_key_resp(BleApplicationContext.BleApplicationContext_legacy.connectionHandle,123456);
+*/
+ APP_DBG_MSG("\r\n\r** aci_gap_pass_key_resp \n");
+ break; /* EVT_BLUE_GAP_PASS_KEY_REQUEST */
+ case EVT_BLUE_GAP_AUTHORIZATION_REQUEST:
+ APP_DBG_MSG("\r\n\r** EVT_BLUE_GAP_AUTHORIZATION_REQUEST \n");
+ break; /* EVT_BLUE_GAP_AUTHORIZATION_REQUEST */
+ case EVT_BLUE_GAP_SLAVE_SECURITY_INITIATED:
+ APP_DBG_MSG("\r\n\r** EVT_BLUE_GAP_SLAVE_SECURITY_INITIATED \n");
+ break; /* EVT_BLUE_GAP_SLAVE_SECURITY_INITIATED */
+ case EVT_BLUE_GAP_BOND_LOST:
+ APP_DBG_MSG("\r\n\r** EVT_BLUE_GAP_BOND_LOST \n");
+ aci_gap_allow_rebond(BleApplicationContext.BleApplicationContext_legacy.connectionHandle);
+ APP_DBG_MSG("\r\n\r** Send allow rebond \n");
+ break; /* EVT_BLUE_GAP_BOND_LOST */
+ case EVT_BLUE_GAP_DEVICE_FOUND:
+ APP_DBG_MSG("\r\n\r** EVT_BLUE_GAP_DEVICE_FOUND \n");
+ break; /* EVT_BLUE_GAP_DEVICE_FOUND */
+ case EVT_BLUE_GAP_ADDR_NOT_RESOLVED:
+ APP_DBG_MSG("\r\n\r** EVT_BLUE_GAP_DEVICE_FOUND \n");
+ break; /* EVT_BLUE_GAP_DEVICE_FOUND */
+ case (EVT_BLUE_GAP_KEYPRESS_NOTIFICATION):
+ APP_DBG_MSG("\r\n\r** EVT_BLUE_GAP_KEYPRESS_NOTIFICATION \n");
+ break; /* EVT_BLUE_GAP_KEY_PRESS_NOTIFICATION */
+ case (EVT_BLUE_GAP_NUMERIC_COMPARISON_VALUE):
+ APP_DBG_MSG("numeric_value = %ld\n",
+ ((aci_gap_numeric_comparison_value_event_rp0 *)(blue_evt->data))->Numeric_Value);
+
+ APP_DBG_MSG("Hex_value = %lx\n",
+ ((aci_gap_numeric_comparison_value_event_rp0 *)(blue_evt->data))->Numeric_Value);
+
+ aci_gap_numeric_comparison_value_confirm_yesno(BleApplicationContext.BleApplicationContext_legacy.connectionHandle, 1); /* CONFIRM_YES = 1 */
+
+ APP_DBG_MSG("\r\n\r** aci_gap_numeric_comparison_value_confirm_yesno-->YES \n");
+ break;
+ case (EVT_BLUE_GAP_PAIRING_CMPLT):
+ {
+ pairing_complete = (aci_gap_pairing_complete_event_rp0*)blue_evt->data;
+ APP_DBG_MSG("BLE_CTRL_App_Notification: EVT_BLUE_GAP_PAIRING_CMPLT, pairing_complete->Status = %d\n",pairing_complete->Status);
+ if (pairing_complete->Status == 0)
+ {
+ APP_DBG_MSG("\r\n\r** Pairing OK \n");
+ }
+ else
+ {
+ APP_DBG_MSG("\r\n\r** Pairing KO \n");
+ }
+ }
+ break;
/* USER CODE END ecode */
/*
* SPECIFIC to P2P Server APP
@@ -620,9 +711,7 @@ SVCCTL_UserEvtFlowStatus_t SVCCTL_App_Notification( void *pckt )
/* USER CODE END EVT_BLUE_L2CAP_CONNECTION_UPDATE_RESP */
break;
case EVT_BLUE_GAP_PROCEDURE_COMPLETE:
-#if(CFG_DEBUG_APP_TRACE != 0)
APP_DBG_MSG("\r\n\r** EVT_BLUE_GAP_PROCEDURE_COMPLETE \n");
-#endif
/* USER CODE BEGIN EVT_BLUE_GAP_PROCEDURE_COMPLETE */
/* USER CODE END EVT_BLUE_GAP_PROCEDURE_COMPLETE */
@@ -816,7 +905,7 @@ static void Ble_Tl_Init( void )
aci_gap_set_authentication_requirement(BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.bonding_mode,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.mitm_mode,
- 0,
+ 1,
0,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMin,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMax,
@@ -856,10 +945,7 @@ static void Adv_Request(APP_BLE_ConnStatus_t New_Status)
*/
HW_TS_Stop(BleApplicationContext.Advertising_mgr_timer_Id);
-#if(CFG_DEBUG_APP_TRACE != 0)
- APP_DBG_MSG("First index in %d state \n",
- BleApplicationContext.Device_Connection_Status);
-#endif
+ APP_DBG_MSG("First index in %d state \n", BleApplicationContext.Device_Connection_Status);
if ((New_Status == APP_BLE_LP_ADV)
&& ((BleApplicationContext.Device_Connection_Status == APP_BLE_FAST_ADV)
|| (BleApplicationContext.Device_Connection_Status == APP_BLE_LP_ADV)))
@@ -868,16 +954,12 @@ static void Adv_Request(APP_BLE_ConnStatus_t New_Status)
ret = aci_gap_set_non_discoverable();
if (ret == BLE_STATUS_SUCCESS)
{
-#if(CFG_DEBUG_APP_TRACE != 0)
- APP_DBG_MSG("Successfully Stopped Advertising\n");
-#endif
+ APP_DBG_MSG("Successfully Stopped Advertising \n");
}
else
{
-#if(CFG_DEBUG_APP_TRACE != 0)
APP_DBG_MSG("Stop Advertising Failed , result: %d \n", ret);
-#endif
- }
+ }
}
BleApplicationContext.Device_Connection_Status = New_Status;
@@ -901,30 +983,24 @@ static void Adv_Request(APP_BLE_ConnStatus_t New_Status)
{
if (New_Status == APP_BLE_FAST_ADV)
{
- APP_DBG_MSG("Successfully Start Fast Advertising\n" );
+ APP_DBG_MSG("Successfully Start Fast Advertising \n" );
/* Start Timer to STOP ADV - TIMEOUT */
HW_TS_Start(BleApplicationContext.Advertising_mgr_timer_Id, INITIAL_ADV_TIMEOUT);
}
else
{
-#if(CFG_DEBUG_APP_TRACE != 0)
- APP_DBG_MSG("Successfully Start Low Power Advertising\n");
-#endif
+ APP_DBG_MSG("Successfully Start Low Power Advertising \n");
}
}
else
{
if (New_Status == APP_BLE_FAST_ADV)
{
-#if(CFG_DEBUG_APP_TRACE != 0)
APP_DBG_MSG("Start Fast Advertising Failed , result: %d \n", ret);
-#endif
}
else
{
-#if(CFG_DEBUG_APP_TRACE != 0)
APP_DBG_MSG("Start Low Power Advertising Failed , result: %d \n", ret);
-#endif
}
}
@@ -998,15 +1074,11 @@ static void Adv_Cancel( void )
BleApplicationContext.Device_Connection_Status = APP_BLE_IDLE;
if (result == BLE_STATUS_SUCCESS)
{
-#if(CFG_DEBUG_APP_TRACE != 0)
APP_DBG_MSG(" \r\n\r");APP_DBG_MSG("** STOP ADVERTISING ** \r\n\r");
-#endif
}
else
{
-#if(CFG_DEBUG_APP_TRACE != 0)
APP_DBG_MSG("** STOP ADVERTISING ** Failed \r\n\r");
-#endif
}
}
@@ -1055,15 +1127,11 @@ void BLE_SVC_L2CAP_Conn_Update(uint16_t Connection_Handle)
slave_latency, timeout_multiplier);
if( result == BLE_STATUS_SUCCESS )
{
-#if(CFG_DEBUG_APP_TRACE != 0)
APP_DBG_MSG("BLE_SVC_L2CAP_Conn_Update(), Successfully \r\n\r");
-#endif
}
else
{
-#if(CFG_DEBUG_APP_TRACE != 0)
APP_DBG_MSG("BLE_SVC_L2CAP_Conn_Update(), Failed \r\n\r");
-#endif
}
}
/* USER CODE BEGIN BLE_SVC_L2CAP_Conn_Update_2 */