J'essaie d'analyser les données contenues dans une publicité Bluetooth basse énergie, ceci est mon code jusqu'à présent.Extraire les données de publicité bluetooth basse énergie en C++
HRESULT BLEWatcher::OnAdvertisementReceived(IBluetoothLEAdvertisementWatcher* watcher, IBluetoothLEAdvertisementReceivedEventArgs* args)
{
IBluetoothLEAdvertisement** advertisement;
args->get_Advertisement(advertisement);
__FIVector_1_Windows__CDevices__CBluetooth__CAdvertisement__CBluetoothLEAdvertisementDataSection** dataSections;
(*advertisement)->get_DataSections(dataSections);
IBluetoothLEAdvertisementDataSection** dataSection;
(*dataSections)->GetAt(2, dataSection);
ABI::Windows::Storage::Streams::IBuffer** buffer;
(*dataSection)->get_Data(buffer);
ComPtr<ABI::Windows::Storage::Streams::IDataReader> reader;
UINT32 *length;
(*buffer)->get_Length(length);
return S_OK;
}
Je ne trouve pas comment extraire les données de IBuffer, de préférence en tant que tableau d'octets. S'il y a un meilleur moyen d'extraire les données, ou si quelqu'un sait comment convertir le IBuffer en tableau d'octets, votre aide serait grandement appréciée.
Aussi, je n'ai aucun moyen de vérifier que mon code est correct à ce jour, donc si des erreurs ont été commises, n'hésitez pas à me le faire savoir.
Ceci aide: https://stackoverflow.com/questions/11853838/getting-an-array-of-bytes-out-of-windowsstoragestreamsibuffer –