From 0b15ce458f67b6c6576f390ac7ae2fd51baf5793 Mon Sep 17 00:00:00 2001 From: Joe Kearney Date: Sun, 13 Jul 2025 16:55:45 -0500 Subject: [PATCH] Added BLE_UpdateParametersPacket(). --- BLE/BLE_Packets.c | 27 ++++++++++++++------------- BLE/BLE_Packets.h | 6 +++--- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/BLE/BLE_Packets.c b/BLE/BLE_Packets.c index b150e6f..f3f1409 100644 --- a/BLE/BLE_Packets.c +++ b/BLE/BLE_Packets.c @@ -262,7 +262,7 @@ void BLE_UpdateTagPacket(int16_t damage, color_t color, uint8_t target_BD_ADDR[B //! Event number used for all BLE_PACKET_TYPE_PARAMETERS packets. static uint8_t ParametersEventNumber = 0; -void BLE_RespondToConfigurationPacket(const BLE_ParametersPacket_T *const packet, BLE_ConfigurationSubtype_T response) +void BLE_RespondToConfigurationPacket(const BLE_ParametersPacket_T *const packet, BLE_ParametersSubtype_T response) { Advertising_Data.length = BLE_KTAG_PACKET_TOTAL_SIZE; @@ -312,7 +312,7 @@ void BLE_RespondToConfigurationPacket(const BLE_ParametersPacket_T *const packet } } -void BLE_BroadcastCurrentParameterInfoPacket(const BLE_ParameterKey_T key_one, const uint32_t value_one, const BLE_ParameterKey_T key_two, const uint32_t value_two) +void BLE_UpdateParametersPacket(BLE_ParametersSubtype_T subtype, const uint8_t target_BD_ADDR[BD_ADDR_SIZE], const BLE_ParameterKey_T key_one, const uint32_t value_one, const BLE_ParameterKey_T key_two, const uint32_t value_two) { Advertising_Data.length = BLE_KTAG_PACKET_TOTAL_SIZE; @@ -327,13 +327,13 @@ void BLE_BroadcastCurrentParameterInfoPacket(const BLE_ParameterKey_T key_one, c Advertising_Data.data[7] = 'g'; Advertising_Data.data[8] = BLE_PACKET_TYPE_PARAMETERS; Advertising_Data.data[9] = ParametersEventNumber++; - Advertising_Data.data[10] = BLE_BROADCAST_ADDRESS[0]; - Advertising_Data.data[11] = BLE_BROADCAST_ADDRESS[1]; - Advertising_Data.data[12] = BLE_BROADCAST_ADDRESS[2]; - Advertising_Data.data[13] = BLE_BROADCAST_ADDRESS[3]; - Advertising_Data.data[14] = BLE_BROADCAST_ADDRESS[4]; - Advertising_Data.data[15] = BLE_BROADCAST_ADDRESS[5]; - Advertising_Data.data[16] = BLE_CURRENT_PARAMETER_INFORMATION; + Advertising_Data.data[10] = target_BD_ADDR[0]; + Advertising_Data.data[11] = target_BD_ADDR[1]; + Advertising_Data.data[12] = target_BD_ADDR[2]; + Advertising_Data.data[13] = target_BD_ADDR[3]; + Advertising_Data.data[14] = target_BD_ADDR[4]; + Advertising_Data.data[15] = target_BD_ADDR[5]; + Advertising_Data.data[16] = (uint8_t)subtype; Advertising_Data.data[17] = (uint8_t)((key_one >> 0) & 0xFF); Advertising_Data.data[18] = (uint8_t)((key_one >> 8) & 0xFF); Advertising_Data.data[19] = (uint8_t)((value_one >> 0) & 0xFF); @@ -348,15 +348,16 @@ void BLE_BroadcastCurrentParameterInfoPacket(const BLE_ParameterKey_T key_one, c Advertising_Data.data[28] = (uint8_t)((value_two >> 24) & 0xFF); Advertising_Data.data[29] = 0xFF; Advertising_Data.data[30] = 0xFF; - + SystemKResult_T result = BLE_SetAdvertisingData(&Advertising_Data); - + if (result != SYSTEMK_RESULT_SUCCESS) { - KLOG_ERROR(KLOG_TAG, "Error responding to configuration packet!"); - } + KLOG_ERROR(KLOG_TAG, "Error updating parameters packet!"); + } } + void BLE_UpdateHelloPacket() { static uint8_t EventNumber = 0; diff --git a/BLE/BLE_Packets.h b/BLE/BLE_Packets.h index e142b53..21c725f 100644 --- a/BLE/BLE_Packets.h +++ b/BLE/BLE_Packets.h @@ -177,7 +177,7 @@ typedef enum BLE_ACKNOWLEDGE_PARAMETER_CHANGE = 0x03, BLE_ERROR_CHANGING_PARAMETERS = 0x04, BLE_ERROR_RESPONDING_TO_REQUEST = 0xFF -} BLE_ConfigurationSubtype_T; +} BLE_ParametersSubtype_T; typedef enum { @@ -297,8 +297,8 @@ BLE_Packet_T *BLE_DecodeKTagPacket(const uint8_t *received_data, uint8_t receive void BLE_UpdateInstigationPacket(uint32_t Game_Length_in_ms, uint32_t Time_Remaining_Until_Countdown_in_ms); void BLE_UpdateStatusPacket(uint8_t current_state); void BLE_UpdateTagPacket(int16_t damage, color_t color, uint8_t target_BD_ADDR[BD_ADDR_SIZE]); -void BLE_RespondToConfigurationPacket(const BLE_ParametersPacket_T *const packet, BLE_ConfigurationSubtype_T response); -void BLE_BroadcastCurrentParameterInfoPacket(const BLE_ParameterKey_T key_one, const uint32_t value_one, const BLE_ParameterKey_T key_two, const uint32_t value_two); +void BLE_RespondToConfigurationPacket(const BLE_ParametersPacket_T *const packet, BLE_ParametersSubtype_T response); +void BLE_UpdateParametersPacket(BLE_ParametersSubtype_T subtype, const uint8_t target_BD_ADDR[BD_ADDR_SIZE], const BLE_ParameterKey_T key_one, const uint32_t value_one, const BLE_ParameterKey_T key_two, const uint32_t value_two); void BLE_UpdateHelloPacket(); bool BLE_IsBLEPacketForMe(const uint8_t BD_ADDR[BD_ADDR_SIZE]);