BLE fixes.
This commit is contained in:
parent
ba23026d13
commit
747e336cc1
4 changed files with 83 additions and 11 deletions
|
@ -259,10 +259,11 @@ 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)
|
||||
{
|
||||
static uint8_t EventNumber = 0;
|
||||
|
||||
Advertising_Data.length = BLE_KTAG_PACKET_TOTAL_SIZE;
|
||||
|
||||
// Manufacturer Specific Data
|
||||
|
@ -275,7 +276,7 @@ void BLE_RespondToConfigurationPacket(const BLE_ParametersPacket_T *const packet
|
|||
Advertising_Data.data[6] = 'a';
|
||||
Advertising_Data.data[7] = 'g';
|
||||
Advertising_Data.data[8] = BLE_PACKET_TYPE_PARAMETERS;
|
||||
Advertising_Data.data[9] = EventNumber++;
|
||||
Advertising_Data.data[9] = ParametersEventNumber++;
|
||||
Advertising_Data.data[10] = packet->BD_ADDR[0];
|
||||
Advertising_Data.data[11] = packet->BD_ADDR[1];
|
||||
Advertising_Data.data[12] = packet->BD_ADDR[2];
|
||||
|
@ -306,6 +307,51 @@ 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)
|
||||
{
|
||||
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_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[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);
|
||||
Advertising_Data.data[20] = (uint8_t)((value_one >> 8) & 0xFF);
|
||||
Advertising_Data.data[21] = (uint8_t)((value_one >> 16) & 0xFF);
|
||||
Advertising_Data.data[22] = (uint8_t)((value_one >> 24) & 0xFF);
|
||||
Advertising_Data.data[23] = (uint8_t)((key_two >> 0) & 0xFF);
|
||||
Advertising_Data.data[24] = (uint8_t)((key_two >> 8) & 0xFF);
|
||||
Advertising_Data.data[25] = (uint8_t)((value_two >> 0) & 0xFF);
|
||||
Advertising_Data.data[26] = (uint8_t)((value_two >> 8) & 0xFF);
|
||||
Advertising_Data.data[27] = (uint8_t)((value_two >> 16) & 0xFF);
|
||||
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!");
|
||||
}
|
||||
}
|
||||
|
||||
void BLE_UpdateHelloPacket()
|
||||
{
|
||||
static uint8_t EventNumber = 0;
|
||||
|
@ -399,12 +445,12 @@ bool BLE_IsBLEPacketForMe(const uint8_t BD_ADDR[6])
|
|||
}
|
||||
|
||||
// Is this the broadcast address?
|
||||
if ((BD_ADDR[0] == 0xFF) &&
|
||||
(BD_ADDR[1] == 0xFF) &&
|
||||
(BD_ADDR[2] == 0xFF) &&
|
||||
(BD_ADDR[3] == 0xFF) &&
|
||||
(BD_ADDR[4] == 0xFF) &&
|
||||
(BD_ADDR[5] == 0xFF))
|
||||
if ((BD_ADDR[0] == BLE_BROADCAST_ADDRESS[0]) &&
|
||||
(BD_ADDR[1] == BLE_BROADCAST_ADDRESS[1]) &&
|
||||
(BD_ADDR[2] == BLE_BROADCAST_ADDRESS[2]) &&
|
||||
(BD_ADDR[3] == BLE_BROADCAST_ADDRESS[3]) &&
|
||||
(BD_ADDR[4] == BLE_BROADCAST_ADDRESS[4]) &&
|
||||
(BD_ADDR[5] == BLE_BROADCAST_ADDRESS[5]))
|
||||
{
|
||||
for_me = true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue