1.2.8.4.3 SRV_RSERIAL_SerialGetPIB Function
C
uint8_t* SRV_RSERIAL_ParsePIB (
uint8_t* pDataSrc,
DRV_RF215_TRX_ID* pTrxId,
DRV_RF215_PIB_ATTRIBUTE* pPibAttr,
uint8_t* pPibSize
);Summary
Serializes a response to a get PIB command.
Description
Takes the result of getting a PIB from RF215 driver as parameters and builds a serialized frame as response to the get PIB command.
Precondition
None.
Parameters
| Param | Description |
|---|---|
| trxId | TRX identifier (Sub-1GHz, 2.4GHz) |
| pibAttr | PIB attribute |
| pibSize | PIB size in bytes |
| pibResult | PIB get result |
| pPibData | Pointer to PIB data get from RF215 driver |
| pMsgLen | Pointer to sniffer message length in bytes (output) |
Returns
Pointer to sniffer message to be sent through serial interface.
Example
uint8_t* pSerialData;
size_t length;
SRV_USI_HANDLE srvUSIHandle; // returned from SRV_USI_Open
DRV_HANDLE rf215HandleRF09, rf215HandleRF24; // returned from DRV_RF215_Open
DRV_HANDLE rf215Handle;
SRV_RSERIAL_COMMAND command;
DRV_RF215_TRX_ID trxId;
DRV_RF215_PIB_ATTRIBUTE pibAttr;
DRV_RF215_PIB_RESULT pibResult;
uint8_t pibSize;
uint8_t rfDataPIBBuffer[sizeof(DRV_RF215_PHY_CFG_OBJ)];
// Process received message from USI
command = SRV_RSERIAL_GetCommand(pData);
if (command == SRV_RSERIAL_CMD_PHY_GET_CFG)
{
SRV_RSERIAL_ParsePIB(pData, &trxId, &pibAttr, &pibSize);
if (trxId == RF215_TRX_ID_RF09)
{
rf215Handle = rf215HandleRF09;
}
else
{
rf215Handle = rf215HandleRF24;
}
// Get PIB from RF215 Driver
pibResult = DRV_RF215_GetPib(rf215Handle, pibAttr, rfDataPIBBuffer);
pibSize = DRV_RF215_GetPibSize(pibAttr);
// Serialize PIB get response and send through USI
pSerialData = SRV_RSERIAL_SerialGetPIB(trxId, pibAttr, pibSize,
pibResult, rfDataPIBBuffer, &length);
SRV_USI_Send_Message(srvUSIHandle, SRV_USI_PROT_ID_PHY_RF215,
pSerialData, length);
}Remarks
None.
