📄 meta.h
字号:
* Initial revision.
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*==============================================================================
*******************************************************************************/
#ifndef META_DLL_H
#define META_DLL_H
#include "brom.h"
#ifdef __cplusplus
extern "C" {
#endif
//--------------------------------------------------------------------------//
// META General //
//--------------------------------------------------------------------------//
//-----------------------------------------------------//
// META General: data structure definition //
//-----------------------------------------------------//
typedef enum
{
// META_DLL received a corrupted frame
META_CNF_FRAME_ERROR = 0,
// META_DLL received a confirm or indication from target,
// but there is not corresponding call back function
// installed for this confirm or indication.
META_CNF_NO_CALLBACK = 1,
// META_DLL received a corrupted primitive.
META_CNF_PRIMITIVE_ERROR = 2,
// META_DLL received a confirm or indication from
// target, but there is no sufficient memory to process.
META_CNF_NO_MEMORY = 3,
// META_DLL retrieved a callback function, however,
// the user input arguments are invalid.
META_CNF_CALLBACK_PARAMETER_ERROR = 4,
// META_DLL received a confirm with peer msg, however,
// the peer msg is corrupted.
META_CNF_PEER_MSG_ERROR = 5,
// META_DLL received a confirm and successfully executed
// the callback function.
META_CNF_OK = 6
} META_CNF_ERR_CODE;
typedef enum
{
META_SUCCESS = 0
,META_FAILED
,META_COMM_FAIL
,META_NORESPONSE
,META_BUFFER_LEN
,META_FILE_BAD
,META_LID_INVALID
,META_INTERNAL_DB_ERR
,META_NO_MEMORY
,META_INVALID_ARGUMENTS
,META_TIMEOUT
,META_BUSY
,META_INVALID_HANDLE
,META_FAT_ERROR
,META_FAT_DISK_FULL
,META_FAT_ROOT_DIR_FULL
,META_FAT_INVALID_FILENAME
,META_FAT_INVALID_FILE_HANDLE
,META_FAT_FILE_NOT_FOUND
,META_FAT_DRIVE_NOT_FOUND
,META_FAT_PATH_NOT_FOUND
,META_FAT_ACCESS_DENIED
,META_FAT_TOO_MANY_FILES
,META_INCORRECT_TARGET_VER
,META_COM_ERROR
,META_BROM_CMD_ERROR
,META_INCORRECT_BBCHIP_TYPE
,META_BROM_ERROR
,META_STOP_BOOTUP_PROCEDURE
,META_CANCEL
,META_CCT_NOT_IMPORT_PROFILE
,META_CCT_INVALID_SENSOR_ID
,META_CCT_TGT_NO_MEM_FOR_SINGLE_SHOT
,META_CCT_TGT_NO_MEM_FOR_MULTI_SHOT
,META_FUNC_NOT_IMPLEMENT_YET
,META_CCT_NOT_IMPLEMENT_YET = META_FUNC_NOT_IMPLEMENT_YET
,META_CCT_PREVIEW_ALREADY_STARTED
,META_CCT_PREVIEW_ALREADY_STOPPED
,META_CCT_READ_REG_NO_CNF
,META_CCT_WRITE_REG_NO_CNF
,META_CCT_TGT_ABORT_IMAGE_SENDING
,META_CCT_READ_ONLY_REGISTER
,META_CCT_LOAD_FROM_NVRAM_FAIL
,META_CCT_SAVE_TO_NVRAM_FAIL
,META_CCT_AE_INVALID_EC_LEVEL
,META_CCT_AE_INVALID_EC_STEP
,META_CCT_AE_ALREADY_ENABLED
,META_CCT_AE_ALREADY_DISABLED
,META_CCT_WB_INVALID_INDEX
,META_CCT_NO_TGT_SENSOR_MATCH_IN_PROFILE
,META_CCT_IMAGE_SENDING_FAME_NUM_ERROR
,META_CCT_AE_IS_NOT_DISABLED
,META_FAT_APP_QUOTA_FULL
,META_IMEI_CD_ERROR
,META_RFID_MISMATCH
,META_NVRAM_DB_IS_NOT_LOADED_YET
,META_CCT_ERR_CAPTURE_WIDTH_HEIGHT_TOO_SMALL
,META_WAIT_FOR_TARGET_READY_TIMEOUT
,META_CCT_ERR_SENSOR_ENG_SET_INVALID_VALUE
,META_CCT_ERR_SENSOR_ENG_GROUP_NOT_EXIST
,META_CCT_NO_TGT_ISP_MATCH_IN_PROFILE
,META_CCT_TGT_ISP_SUPPORT_NOT_DEFINED
,META_CCT_ERR_SENSOR_ENG_ITEM_NOT_EXIST
,META_CCT_ERR_INVALID_COMPENSATION_MODE
,META_CCT_ERR_USB_COM_NOT_READY
,META_CCT_DEFECTPIXEL_CAL_UNDER_PROCESSING
,META_CCT_ERR_DEFECTPIXEL_CAL_NO_MEM
,META_CCT_ERR_TOO_MANY_DEFECT_PIXEL
,META_LAST_RESULT
} META_RESULT;
typedef enum {
META_BAUD2400 = 0,
META_BAUD4800,
META_BAUD9600,
META_BAUD14400,
META_BAUD19200,
META_BAUD57600,
META_BAUD115200,
META_BAUD230400,
META_BAUD460800,
META_BAUD921600,
META_BAUD_END = 0xFF
} META_COMM_BAUDRATE;
typedef enum {
META_HW_FLOWCTRL = 0, // enable H/W flow control
META_SW_FLOWCTRL // enable S/W flow control
} META_FLOWCTRL;
typedef struct {
char BB_CHIP[64]; // BaseBand chip version
char ECO_VER[4]; // ECO version
char DSP_FW[64]; // DSP firmware version
char DSP_PATCH[64]; // DSP patch version
char SW_VER[64]; // S/W version
char HW_VER[64]; // H/W board version
char MELODY_VER[64]; // Melody version
} VerInfo_Cnf;
typedef struct {
int com_port;
BBCHIP_TYPE bbchip; // [BootROM] Target's baseband chip type. If you assign to UNKNOWN_BBCHIP_TYPE, it will auto-detect bbchip.
EXT_CLOCK ext_clock; // [BootROM] Target's external clock. If bbchip is UNKNOWN_BBCHIP_TYPE, it will auto-detect ext_clock.
META_COMM_BAUDRATE baudrate[11]; // [META] META stage baudrate polling array, it must end with META_BAUD_END.
META_FLOWCTRL flowctrl; // [META] META stage uart flow control type.
unsigned int ms_connect_timeout; // [META] META stage sync timeout value (after BootROM negotiation pass)
unsigned int ms_boot_timeout; // [BootROM] BootROM negotiation timeout value. If you want to disable timeout during BootROM stage,
// please set to META_BOOT_INFINITE.
BOOT_META_ARG boot_meta_arg; // [BootROM] please refer to brom.h
} META_Connect_Req;
typedef struct {
META_COMM_BAUDRATE final_baudrate; // [META] Detected META stage baudrate.
unsigned int meta_ver_required_by_target; // [META] Target required META_DLL version.
BBCHIP_TYPE final_bbchip; // [BootROM] Detected target's baseband chip type.
EXT_CLOCK final_ext_clock; // [BootROM] Detected target's external clock rate.
} META_Connect_Report;
typedef struct {
int com_port;
META_COMM_BAUDRATE baudrate[11]; // [META] META stage baudrate polling array, it must end with META_BAUD_END.
META_FLOWCTRL flowctrl; // [META] META stage uart flow control type.
unsigned int ms_connect_timeout; // [META] META stage sync timeout value (after BootROM negotiation pass)
} META_ConnectInMETA_Req;
typedef struct {
META_COMM_BAUDRATE final_baudrate; // [META] Detected META stage baudrate.
unsigned int meta_ver_required_by_target; // [META] Target required META_DLL version.
} META_ConnectInMETA_Report;
//-----------------------------------------------------//
// META General: callback function definition //
//-----------------------------------------------------//
typedef void (__stdcall *META_Error_CallBack)(const META_CNF_ERR_CODE mr);
typedef void (__stdcall *META_SysTrace_CallBack)(const char *sys_trace);
typedef void (__stdcall *META_GET_VERSION_INFO_CNF)(const VerInfo_Cnf *cnf, const short token, void *usrData);
//-----------------------------------------------------//
// META for CTI //
//-----------------------------------------------------//
typedef enum {
CTI_OK = 0
,CTI_MISSING_HEADER
,CTI_CORRUPTED_FAME
,CTI_EXCEED_LEN
} CTI_RET_ENUM;
typedef void (__stdcall *META_CTI_CallBack)(CTI_RET_ENUM ret, const int size, const unsigned char *data, void *param);
META_RESULT __stdcall META_CTI_SendPacketCmd(const unsigned char *pPayLoadBuffer, int nPayloadLength);
META_RESULT __stdcall META_CTI_SendPacketCmd_r(const int meta_handle, const unsigned char *pPayLoadBuffer, int nPayloadLength);
META_RESULT __stdcall META_CTI_SetPacketCallback(META_CTI_CallBack pCBFunc, void* param);
META_RESULT __stdcall META_CTI_SetPacketCallback_r(const int meta_handle, META_CTI_CallBack pCBFunc, void* param);
//-----------------------------------------------------//
// META Debug: exported debug function definition //
//-----------------------------------------------------//
META_RESULT __stdcall META_DebugOn();
META_RESULT __stdcall META_DebugOff();
META_RESULT __stdcall META_DebugClear();
//-----------------------------------------------------//
// META UnitTest //
//-----------------------------------------------------//
typedef struct {
unsigned int m_TestCaseID;
const char * m_pDescription;
} META_UT_TestCaseID_T;
void __stdcall META_QueryTestCase(META_UT_TestCaseID_T **ppTestCase, unsigned int *pTestCaseCount);
void __stdcall META_UnitTest(const unsigned int *p_TestCaseID_Array, unsigned int TestCaseCount);
//-----------------------------------------------------//
// META General: exported function definition //
//-----------------------------------------------------//
// General
void __stdcall META_GetVersion(unsigned int *ver);
void __stdcall META_Cancel(const short token);
void __stdcall META_Cancel_r(const int meta_handle, const short token);
void __stdcall META_CancelAllBlockingCall(void);
void __stdcall META_CancelAllBlockingCall_r(const int meta_handle);
META_RESULT __stdcall META_QueryIfFunctionSupportedByTarget(unsigned int ms_timeout, const char *query_func_name);
META_RESULT __stdcall META_QueryIfFunctionSupportedByTarget_r(const int meta_handle, unsigned int ms_timeout, const char *query_func_name);
META_RESULT __stdcall META_QueryIfTargetSupportISP(unsigned int ms_timeout);
META_RESULT __stdcall META_QueryIfTargetSupportISP_r(const int meta_handle, unsigned int ms_timeout);
const char * __stdcall META_GetErrorString(META_RESULT ErrCode);
const char * __stdcall META_BaudrateEnumToName(META_COMM_BAUDRATE baudrate);
// Initialization
META_RESULT __stdcall META_GetAvailableHandle(int *p_meta_handle);
META_RESULT __stdcall META_Init(const META_Error_CallBack cb);
META_RESULT __stdcall META_Init_r(const int meta_handle, const META_Error_CallBack cb);
META_RESULT __stdcall META_SetSysTraceCallback(const META_SysTrace_CallBack sys_cb);
META_RESULT __stdcall META_SetSysTraceCallback_r(const int meta_handle, const META_SysTrace_CallBack sys_cb);
void __stdcall META_Deinit(void);
void __stdcall META_Deinit_r(int *p_meta_handle);
// connect with target
META_RESULT __stdcall META_ConnectWithTarget(const META_Connect_Req *req, int *p_bootstop, META_Connect_Report *p_report);
META_RESULT __stdcall META_ConnectWithTarget_r(const int meta_handle, const META_Connect_Req *req, int *p_bootstop, META_Connect_Report *p_report);
// dsiconnect and shutdown target
META_RESULT __stdcall META_DisconnectWithTarget(void);
META_RESULT __stdcall META_DisconnectWithTarget_r(const int meta_handle);
// connect with target when target already in meta mode
META_RESULT __stdcall META_ConnectInMetaMode(const META_ConnectInMETA_Req *req, int *p_bootstop, META_ConnectInMETA_Report *p_report);
META_RESULT __stdcall META_ConnectInMetaMode_r(const int meta_handle, const META_ConnectInMETA_Req *req, int *p_bootstop, META_ConnectInMETA_Report *p_report);
// dsiconnect without shutdown target
META_RESULT __stdcall META_DisconnectInMetaMode(void);
META_RESULT __stdcall META_DisconnectInMetaMode_r(const int meta_handle);
// Get target S/W, H/W and Melody version
META_RESULT __stdcall META_GetTargetVerInfo(const META_GET_VERSION_INFO_CNF cb, short *token, void *usrData);
META_RESULT __stdcall META_GetTargetVerInfo_r(const int meta_handle, const META_GET_VERSION_INFO_CNF cb, short *token, void *usrData);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -