WIP: More new BLE

This commit is contained in:
Joe Kearney 2025-02-15 16:13:58 -06:00
parent a9212c5a3a
commit 58f379dc18
10 changed files with 301 additions and 22 deletions

View file

@ -257,6 +257,53 @@ void BLE_UpdateTagPacket(int16_t damage, color_t color, uint8_t target_BD_ADDR[B
}
}
void BLE_RespondToConfigurationPacket(const BLE_ConfigurationPacket_T *const packet, BLE_ConfigurationSubtype_T response)
{
static uint8_t EventNumber = 0;
Advertising_Data.length = BLE_KTAG_PACKET_TOTAL_SIZE;
// Manufacturer Specific Data
Advertising_Data.data[0] = 0x1E;
Advertising_Data.data[1] = 0xFF;
Advertising_Data.data[2] = 0xFF;
Advertising_Data.data[3] = 0xFF;
Advertising_Data.data[4] = 'K';
Advertising_Data.data[5] = 'T';
Advertising_Data.data[6] = 'a';
Advertising_Data.data[7] = 'g';
Advertising_Data.data[8] = BLE_PACKET_TYPE_CONFIGURATION;
Advertising_Data.data[9] = EventNumber++;
Advertising_Data.data[10] = packet->BD_ADDR[0];
Advertising_Data.data[11] = packet->BD_ADDR[1];
Advertising_Data.data[12] = packet->BD_ADDR[2];
Advertising_Data.data[13] = packet->BD_ADDR[3];
Advertising_Data.data[14] = packet->BD_ADDR[4];
Advertising_Data.data[15] = packet->BD_ADDR[5];
Advertising_Data.data[16] = (uint8_t)response;
Advertising_Data.data[17] = (uint8_t)((packet->key_one >> 0) & 0xFF);
Advertising_Data.data[18] = (uint8_t)((packet->key_one >> 8) & 0xFF);
Advertising_Data.data[19] = (uint8_t)((packet->value_one >> 0) & 0xFF);
Advertising_Data.data[20] = (uint8_t)((packet->value_one >> 8) & 0xFF);
Advertising_Data.data[21] = (uint8_t)((packet->value_one >> 16) & 0xFF);
Advertising_Data.data[22] = (uint8_t)((packet->value_one >> 24) & 0xFF);
Advertising_Data.data[23] = (uint8_t)((packet->key_two >> 0) & 0xFF);
Advertising_Data.data[24] = (uint8_t)((packet->key_two >> 8) & 0xFF);
Advertising_Data.data[25] = (uint8_t)((packet->value_two >> 0) & 0xFF);
Advertising_Data.data[26] = (uint8_t)((packet->value_two >> 8) & 0xFF);
Advertising_Data.data[27] = (uint8_t)((packet->value_two >> 16) & 0xFF);
Advertising_Data.data[28] = (uint8_t)((packet->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!");
}
}
void BLE_UpdateHelloPacket()
{
static uint8_t EventNumber = 0;