SPI main loop and initialization @Returns: @Returns: @waitForEvent: @Returns: @Returns: @s: @err: @Returns: @err: @Returns: @err: @Returns: @err: @Returns: @type: @source: @ev: @code: @desc: @SPI_EXCEPTION_UNSPECIFIED: @SPI_EXCEPTION_DISCONNECT: @SPI_EXCEPTION_NO_IMPL: @SPI_EXCEPTION_IO: @SPI_EXCEPTION_BAD_DATA: @SPI_EXCEPTION_SOURCE_UNSPECIFIED: @SPI_EXCEPTION_SOURCE_ACCESSIBLE: @SPI_EXCEPTION_SOURCE_REGISTRY: @SPI_EXCEPTION_SOURCE_DEVICE: @err: @is_fatal: @Returns: @r: @s: @Returns: @handler: @Returns: @Returns: