1.1.1.4.22 DRV_PLC_PHY_EXCEPTION_CALLBACK Typedef

C

typedef void ( *DRV_PLC_PHY_EXCEPTION_CALLBACK )( DRV_PLC_PHY_EXCEPTION exception, uintptr_t context );

Summary

Pointer to a PLC Driver Exceptions Event handler function.

Description

This data type defines the required function signature for the PLC driver exceptions event handling callback function. A client must register a pointer using the callback register function whose function signature (parameter and return value types) match the types specified by this function pointer in order to receive transfer related event calls back from the driver.

Parameters

ParamDescription
exceptionValue (of type DRV_PLC_PHY_EXCEPTION Enum) identifying the exception code which occurs during SPI transfer
contextValue identifying the context of the application that registered the event handling function

Returns

None.

Example

void APP_MyExceptionEventHandler( DRV_PLC_PHY_EXCEPTION exception, uintptr_t context )
{
    MY_APP_DATA_STRUCT* pAppData = (MY_APP_DATA_STRUCT*) context;

    switch (exception) 
    {
        case DRV_PLC_PHY_EXCEPTION_UNEXPECTED_KEY:
            // SPI has detected an unexpected status, reset is recommended
            break;

        case DRV_PLC_PHY_EXCEPTION_CRITICAL_ERROR:
            // SPI critical error in last transfer. Bootloader task has failured.
            break;

        case DRV_PLC_PHY_EXCEPTION_DEBUG:
            // PLC transceiver has been reset by Debugging tool
            break;

        case DRV_PLC_PHY_EXCEPTION_RESET:
            // PLC transceiver has been reset
            break;

        default:
            // SPI has detected an unexpected status, reset is recommended
    }

    pAppData->plcException = true;
}

Remarks

The context parameter contains a handle to the client context, provided at the time the event handling function was registered using the DRV_PLC_PHY_ExceptionCallbackRegister function. This context handle value is passed back to the client as the context parameter. It can be any value necessary to identify the client context or instance (such as a pointer to the client's data) of the client that made the transfer add request.