Jump to main content

# 1.2.8.4.4 SRV_RSERIAL_SerialSetPIB Function

## C

    uint8_t* SRV_RSERIAL_SerialSetPIB (
        DRV_RF215_TRX_ID trxId,
        DRV_RF215_PIB_ATTRIBUTE pibAttr,
        uint8_t pibSize,
        DRV_RF215_PIB_RESULT pibResult,
        size_t* pMsgLen
    );

## Summary

Serializes a response to a set PIB command.

## Description

Takes the result of setting a PIB in RF215 driver as parameters and builds a serialized frame as response to the set 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
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;

    // Process received message from USI
    command = SRV_RSERIAL_GetCommand(pData);

    if (command == SRV_RSERIAL_CMD_PHY_SET_CFG)
    {
        uint8_t *pPibValue;

        pPibValue = SRV_RSERIAL_ParsePIB(pData, &trxId, &pibAttr, &pibSize);

        if (trxId == RF215_TRX_ID_RF09)
        {
            rf215Handle = rf215HandleRF09;
        }
        else
        {
            rf215Handle = rf215HandleRF24;
        }

        // Set PIB to RF215 driver
        pibResult = DRV_RF215_SetPib(rf215Handle, pibAttr, pPibValue);
        pibSize = DRV_RF215_GetPibSize(pibAttr);

        // Serialize PIB set response and send through USI
        pSerialData = SRV_RSERIAL_SerialSetPIB(trxId, pibAttr, pibSize,
                pibResult, &length);
        SRV_USI_Send_Message(srvUSIHandle, SRV_USI_PROT_ID_PHY_RF215,
                pSerialData, length);
    }

## Remarks

None.

Rev: G