#ifndef _iqi_blob_fw_example_h
#define _iqi_blob_fw_example_h

#include "iqi_define.h"

//#define TEST_BLOB_DATA 1
//#define TEST_FIRMWARE_UPDATE 1

/**
 * \brief The example is base on read, write and validate BLOB data
 *		  Blob ID is see define READ_BLOB_ID/WRITE_BLOB_ID
 *		  Example expects identical length for reading and writing
 *
 * \param[in]   uiPortNo      COM or virtual ethernet port number of iqInterface
 * \param[out]  cpErrMsg      an error message (minimum 256 symbols!)
 *
 * \return error code
 */
int16 blob_fw_example_StartBlobTest(uint16 uiPortNo, char08* cpErrMsg);

/**
 * \brief The example is base on read (non cached), write(cached) BLOB data
 *		  Blob ID defined in defines: READ_BLOB_ID/WRITE_BLOB_ID
 *		  Example expects identical length for reading and writing
 *		  To compare defference between Cached and Non cached writing, define BLOB_WRITE_PERFORMANCE_TEST should be defined
 *
 * \param[in]   uiPortNo      COM or virtual ethernet port number of iqInterface
 * \param[out]  cpErrMsg      an error message (minimum 256 symbols!)
 *
 * \return error code
 */
int16 blob_fw_example_WriteBlobDataCached(
    uint16 uiPortNo,
    char08* cpErrMsg);

/**
 * \brief Execute firmware update
 *
 * \param[in]   uiPortNo      COM or virtual ethernet port number of iqInterface
 * \param[out]  cpErrMsg      an error message (minimum 256 symbols!)
 *
 * \return error code
 */
int16 blob_fw_example_StartFwUpdateTest(uint16 uiPortNo, unsigned char is_cached, char08* cpErrMsg);

#endif //_iqi_blob_fw_example_h
