Los datos son enviados como un tren de bits escritos en hexadecimal desde el dispositivo.
Por ejemplo, un mensaje a transmitir conformado por 4 datos numéricos en hexadecimal desde el dispositivo son:
static void prepareTxFrame( uint8_t port ){
appDataSize = 4;//AppDataSize max value is 64
appData[0] = 0x00;
appData[1] = 0x01;
appData[2] = 0x02;
appData[3] = 0x03;
}
Se leen en un mensaje mqtt como:
application/1/device/3532363324003700/event/up {
"applicationID":"1",
"applicationName":"GirniAppPrueba01",
"deviceName":"GirniDispositivo01",
"devEUI":"3532363324003700",
"txInfo":{"frequency":902700000,"dr":0},
"adr":true,
"fCnt":0,
"fPort":2,
"data":"AAECAw=="
}
por lo que el mensaje recibido por el gateway es:
"data":"AAECAw=="
que para leerlo nuevamente en hexadecimal requiere ser traducido desde "base64" por ejemplo en la consola de Rasberry OS como:
pi@GWHTM01:~ $ echo -n AAECAw== | base64 --decode | hexdump -C 00000000 00 01 02 03 |....| 00000004
que es el mensaje original enviado desde el dispositivo
