Cómo modificar el paquete de transmisión ble de mtk
****demo: SimpleBLEPeripheral
*** Modifiqué dos lugares, uno es modificar dinámicamente los datos de transmisión, que necesitan se llamará GAP_UpdateAdvertisingData, la otra es agregar la clave para modificar publicidadData, de la siguiente manera:
1. periférico.c, función GAPRole_SetParameter parte GAPROLE_ADVERT_DATA
if (len lt; = B_MAX_ADV_LEN )
{
VOID osal_memset( gapRole_AdvertData, 0, B_MAX_ADV_LEN);
VOID osal_memcpy( gapRole_AdvertData, pValue, len
); gapRole_ AdvertDataLen = len
GAP_UpdateAdvertisingData( gapRole_TaskID, TRUE, gapRole_AdvertDataLen, gapRole_AdvertData
}
2, simpleBLEPeripheral.
advertData); [5]= recuento;
advertData[6]=recuento;
advertData[7]=recuento;
GAPRole_SetParameter( GAPROLE_ADVERT_DATA, sizeof( advertData ), advertData );
Fenómeno de prueba:
Después de que el programa se enciende y se ejecuta, se inicia y transmite normalmente y muestra la transmisión en la pantalla LCD. Packetsniffer captura paquetes y transmite los datos originales.
Luego active el botón para modificar dinámicamente advertData, se produce un error GAPROLE_ERROR y la pantalla LCD imprime ERROR, pero este error no afecta otros comportamientos. Packetsniffer captura paquetes para ver que los datos de transmisión se han modificado correctamente. Además, SimpleBLEPeripheral aún puede conectarse y comunicarse normalmente, pero se produce un error GAPROLE_ERROR cada vez que se modifica el contenido de la transmisión.