FIxes for BLE_Quiet on PSoC6.

This commit is contained in:
Joe Kearney 2025-08-16 11:28:26 -05:00
parent bb915121e8
commit 88c81dc405
2 changed files with 16 additions and 9 deletions

View file

@ -107,11 +107,21 @@ static void Configuring_Do(StateMachineContext_T *context)
portBASE_TYPE xStatus;
static KEvent_T Event;
// For the first hundred milliseconds, keep updating the Hello packet, since on some platforms (PSoC6), one call is not enough.
// TODO: Fix the Hello packet hack on PSoC6.
if ((xTaskGetTickCount() - context->Time_At_State_Entry_In_Ticks) < (100 / portTICK_PERIOD_MS))
// Update the Hello packet every 250ms for the first second, since on some platforms (PSoC6), the BLE is not initialized before
// the `Configuring_Do` gets going.
// TODO: Fix the Hello packet hack needed for PSoC6. Maybe we need a `BLE_Initialized` event?
{
BLE_UpdateHelloPacket();
TickType_t now = xTaskGetTickCount();
if ((now - context->Time_At_State_Entry_In_Ticks) < (1000 / portTICK_PERIOD_MS))
{
static TickType_t Time_At_Last_Hello_Update = 0;
if ((now - Time_At_Last_Hello_Update) > (250 / portTICK_PERIOD_MS))
{
BLE_UpdateHelloPacket();
Time_At_Last_Hello_Update = now;
}
}
}
xStatus = Receive_KEvent(&Event);
@ -414,11 +424,6 @@ void HandleBLEConfigurationPacket(const BLE_ParametersPacket_T *const packet)
}
}
}
else
{
// Once configuration has begun, stop advertising the HELLO packet to free up bandwidth.
BLE_StopAdvertising();
}
BLE_FreePacketBuffer((BLE_GenericPacketType_T *)packet);
}