Implemented BLE_EVENT_FORCE_STATE.
This commit is contained in:
parent
e0e7fdf1ae
commit
620fefd355
2 changed files with 22 additions and 0 deletions
|
@ -102,6 +102,22 @@ SystemKResult_T BLE_HandleCommonEvents(KEvent_T *event)
|
||||||
}
|
}
|
||||||
result = SYSTEMK_RESULT_SUCCESS;
|
result = SYSTEMK_RESULT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
else if (event_packet->event_ID == BLE_EVENT_FORCE_STATE)
|
||||||
|
{
|
||||||
|
uint32_t requested_state = event_packet->event_data;
|
||||||
|
|
||||||
|
if (requested_state < STATE_IS_OUT_OF_RANGE)
|
||||||
|
{
|
||||||
|
Transition_For_Event(GetContext(), (StateID_T)requested_state, event);
|
||||||
|
KLOG_INFO("BLE", "State %lu forced.", requested_state);
|
||||||
|
result = SYSTEMK_RESULT_SUCCESS;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
KLOG_ERROR("BLE", "Attempted to force unknown state %lu.", requested_state);
|
||||||
|
result = SYSTEMK_RESULT_OVERFLOW;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -400,6 +400,12 @@ void HandleBLEConfigurationPacket(const BLE_ParametersPacket_T *const packet)
|
||||||
BLE_RespondToConfigurationPacket(packet, BLE_ERROR_CHANGING_PARAMETERS);
|
BLE_RespondToConfigurationPacket(packet, BLE_ERROR_CHANGING_PARAMETERS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A parameters request addressed to this device or broadcast will end a BLE Quiet.
|
||||||
|
if (BLE_Unquiet() != SYSTEMK_RESULT_SUCCESS)
|
||||||
|
{
|
||||||
|
KLOG_ERROR(KLOG_TAG, "Couldn't Unquiet to respond to a Parameters request!");
|
||||||
|
}
|
||||||
|
|
||||||
if (xTimerStart(BLEConfigurationResponseTimer, 0) != pdPASS)
|
if (xTimerStart(BLEConfigurationResponseTimer, 0) != pdPASS)
|
||||||
{
|
{
|
||||||
KLOG_ERROR(KLOG_TAG, "Couldn't start the BLEConfigurationResponseTimer!");
|
KLOG_ERROR(KLOG_TAG, "Couldn't start the BLEConfigurationResponseTimer!");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue