Skip to content

Commit

Permalink
Fix wrong manufacturer data in release mode
Browse files Browse the repository at this point in the history
  • Loading branch information
fotiDim committed Mar 16, 2024
1 parent 8108f9d commit 0b10f09
Showing 1 changed file with 15 additions and 20 deletions.
35 changes: 15 additions & 20 deletions windows/src/universal_ble_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -474,27 +474,22 @@ namespace universal_ble

/// Helper Methods

std::vector<uint8_t> parseManufacturerDataHead(BluetoothLEAdvertisement advertisement, std::string deviceId)
{
try
{
if (advertisement.ManufacturerData().Size() == 0)
{
std::vector<uint8_t> parseManufacturerDataHead(BluetoothLEAdvertisement advertisement, std::string deviceId) {
try {
if (advertisement.ManufacturerData().Size() == 0) {
return std::vector<uint8_t>();
}
auto manufacturerData = advertisement.ManufacturerData().GetAt(0);
uint16_t companyId = manufacturerData.CompanyId();
uint16_t_union companyIdUnion;
companyIdUnion.uint16 = companyId; // Ensure proper endianness if needed
auto result = std::vector<uint8_t>{companyIdUnion.bytes, companyIdUnion.bytes + sizeof(companyIdUnion.bytes)};
auto data = to_bytevc(manufacturerData.Data());
result.insert(result.end(), data.begin(), data.end());
return result;
} catch (...) {
std::cout << "Error in parsing manufacturer data: " << deviceId << std::endl;
return std::vector<uint8_t>();
}
auto manufacturerData = advertisement.ManufacturerData().GetAt(0);
// FIXME Compat with REG_DWORD_BIG_ENDIAN
uint8_t *prefix = uint16_t_union{manufacturerData.CompanyId()}.bytes;
auto result = std::vector<uint8_t>{prefix, prefix + sizeof(uint16_t_union)};

auto data = to_bytevc(manufacturerData.Data());
result.insert(result.end(), data.begin(), data.end());
return result;
}
catch (...)
{
std::cout << "Error in parsing manufacturer data: " << deviceId << std::endl;
return std::vector<uint8_t>();
}
}

Expand Down

0 comments on commit 0b10f09

Please sign in to comment.