Jump to main content

# 1.1.3.4.9 DRV_RF215_SetChannelCallbackRegister Function

## C

    void DRV_RF215_SetChannelCallbackRegister (
        DRV_HANDLE drvHandle,
        const DRV_RF215_SET_CHANNEL_CALLBACK callback,
        uintptr_t context
    );

## Summary

Allows a client to set an event handling function for the driver to call back when frequency channel is updated.

## Description

This function allows a client to register a an event handling function for the driver to call back when frequency channel is updated(confirmation of DRV_RF215_SetChannelRequest).

The callback should be registered immediately after opening the driver.

## Precondition

DRV_RF215_Open must have been called to obtain a valid opened driver handle.

## Parameters

Param | Description
--- | ---
drvHandle | A valid open-instance handle, returned from the driver's open routine.
callback | Pointer to the callback function.
context | The value of this parameter will be passed back to the client unchanged, when the callback function is called.

## Returns

None.

## Example

    static void APP_SetChannelCb(DRV_RF215_TX_RESULT result, uintptr_t ctxt)
    {
        // The context handle was set to an application specific object
        // It is now retrievable easily in the event handler
        MY_APP_OBJ myAppObj = (MY_APP_OBJ *) ctxt;

        // Set channel handling here.
    }

    SYS_MODULE_OBJ sysObjDrvRf215; // Returned from DRV_RF215_Initialize
    SYS_STATUS drvRf215Status;
    DRV_HANDLE drvRf215Handle;
    MY_APP_OBJ myAppObj; // Application specific data object

    drvRf215Status = DRV_RF215_Status(sysObjDrvRf215);
    if (drvRf215Status == SYS_STATUS_READY)
    {
        // This means now the driver can be opened using DRV_RF215_Open routine
        drvRf215Handle = DRV_RF215_Open(DRV_RF215_INDEX_0, RF215_TRX_ID_RF09);
        if (drvRf215Handle != DRV_HANDLE_INVALID)
        {
            // Driver opened successfully. Register callback
            DRV_RF215_SetChannelCallbackRegister(drvRf215Handle,
                APP_SetChannelCb, (uintptr_t) myAppObj);
        }
    }

## Remarks

The callback once set, persists until the client closes the driver or sets another callback (which could be a NULL pointer to indicate no callback).

This function is only available if "Frequency hopping support" is enabled through MCC.

Rev: G