Moved FPC BM-Lite SDK to a reparate folder Checking result of execution of every command on BM-Lite Change-Id: Ib0e441fac2a0f276d4adead0e588ac656276d20e
347 lines
9.5 KiB
C
347 lines
9.5 KiB
C
#ifndef BMLITE_IF_H
|
|
#define BMLITE_IF_H
|
|
|
|
#include "hcp_tiny.h"
|
|
#include "bmlite_if_callbacks.h"
|
|
|
|
/**
|
|
* @brief Build and send command to FPC BM-Lite and receive answer
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[in] cmd - BM-Lite command
|
|
* @param[in] arg_type - Argument without parameters
|
|
* set to ARG_NONE if the command has no argument
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bmlite_send_cmd(HCP_comm_t *chain, uint16_t cmd, uint16_t arg_type);
|
|
|
|
/**
|
|
* @brief Build and send command with additiona argument with parameters
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[in] cmd - BM-Lite command
|
|
* @param[in] arg1_type - argument 1 without parameters
|
|
* set to ARG_NONE if the command has no argument without paramener
|
|
* @param[in] arg2_type - argument 2
|
|
* @param[in] arg2_data - data pointer for argument 2
|
|
* set to 0 if argument 2 has no parameter
|
|
* @param[in] arg2_length - length of data for argument 2
|
|
* set to 0 if argument 2 has no parameter
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bmlite_send_cmd_arg(HCP_comm_t *chain, uint16_t cmd, uint16_t arg1_type, uint16_t arg2_type, void *arg2_data, uint16_t arg2_length);
|
|
|
|
/**
|
|
* @brief Wait for finger present on sensor"
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[in] timeout - timeout (msec). Maximum timeout 65535 msec
|
|
* set to 0 for waiting indefinitely
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t sensor_wait_finger_present(HCP_comm_t *chain, uint16_t timeout);
|
|
|
|
/**
|
|
* @brief Wait for finger not present on sensor"
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[in] timeout - timeout (msec). Maximum timeout 65535 msec
|
|
* set to 0 for waiting indefinitely
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t sensor_wait_finger_not_present(HCP_comm_t *chain, uint16_t timeout);
|
|
|
|
/**
|
|
* @brief Wait for finger present on sensor and capture image"
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[in] timeout - timeout (msec). Maximum timeout 65535 msec
|
|
* set to 0 for waiting indefinitely
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_capture(HCP_comm_t *chain, uint16_t timeout);
|
|
|
|
/**
|
|
* @brief Get size of captured image
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @param[out] size
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_image_get_size(HCP_comm_t *chain, uint32_t *size);
|
|
|
|
/**
|
|
* @brief Allocates image buffer on FPC BM-LIte
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t image_create(HCP_comm_t *chain);
|
|
|
|
/**
|
|
* @brief Deletes image buffer on FPC BM-LIte
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t image_delete(HCP_comm_t *chain);
|
|
|
|
/**
|
|
* @brief Pull captured image from FPC BM-Lite
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @param[in] data - pointer to image buffer
|
|
* @param[in] size - size of the image buffer
|
|
* if buffer size is not enough the image
|
|
* will be truncated
|
|
* chain->arg.size will contain real size of the image
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_image_get(HCP_comm_t *chain, uint8_t *data, uint32_t size);
|
|
|
|
/**
|
|
* @brief Push image to FPC BM-Lite
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @param[in] data - pointer to image buffer
|
|
* @param[in] size - size of the image buffer
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_image_put(HCP_comm_t *chain, uint8_t *data, uint32_t size);
|
|
|
|
/**
|
|
* @brief Extract image features to prepare image for enrolling or matching
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_image_extract(HCP_comm_t *chain);
|
|
|
|
/**
|
|
* @brief Identify prepared image against existing templates in Flash storage
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_identify(HCP_comm_t *chain);
|
|
|
|
/**
|
|
* @brief Enroll finger. Created template must be saved to FLASH storage
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_enroll_finger(HCP_comm_t *chain);
|
|
|
|
/**
|
|
* @brief Capture and identify finger against existing templates in Flash storage
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[in] timeout - timeout (msec). Maximum timeout 65535 msec
|
|
* set to 0 for waiting indefinitely
|
|
*
|
|
* @param[out] template_id - pointer for matched template ID
|
|
* @param[out] match - pointer to match result
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_identify_finger(HCP_comm_t *chain, uint32_t timeout,
|
|
uint16_t *template_id, bool *match);
|
|
|
|
/**
|
|
* @brief Save template after enroll is finished to FLASH storage
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[out] template_id - template ID
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_template_save(HCP_comm_t *chain, uint16_t template_id);
|
|
|
|
/**
|
|
* @brief Remove template from RAM
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[in] template_id - template ID
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_template_remove_ram(HCP_comm_t *chain);
|
|
|
|
/**
|
|
* @brief Pull template stored in RAM from FPC BM-Lite
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @param[in] data - pointer to template buffer
|
|
* @param[in] size - size of the template buffer
|
|
* if buffer size is not enough the template
|
|
* will be truncated
|
|
* chain->arg.size will contain real size of the template
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_template_get(HCP_comm_t *chain, uint8_t *data, uint32_t size);
|
|
|
|
/**
|
|
* @brief Push template to FPC BM-Lite and stored it to RAM
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @param[in] data - pointer to template buffer
|
|
* @param[in] size - size of the template buffer
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_template_put(HCP_comm_t *chain, uint8_t *data, uint16_t length);
|
|
|
|
/**
|
|
* @brief Remove template from FLASH storage
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[in] template_id - template ID
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_template_remove(HCP_comm_t *chain, uint16_t template_id);
|
|
|
|
/**
|
|
* @brief Remove all templates from FLASH storage
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_template_remove_all(HCP_comm_t *chain);
|
|
|
|
/**
|
|
* @brief Copy template from FLASH storage to RAM
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[in] template_id - template ID
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_template_load_storage(HCP_comm_t *chain, uint16_t template_id);
|
|
|
|
/**
|
|
* @brief Remove template from FLASH storage
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[out] template_id - template ID
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_template_get_count(HCP_comm_t *chain, uint16_t *count);
|
|
|
|
/**
|
|
* @brief Get array of template ID stored on FPC BM-LIte
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @return ::fpc_bep_result_t
|
|
* chain->arg.data - pointer to array of uint16_t of IDs
|
|
* chain->arg.size - length of the array (in bytes). For calculating
|
|
* number of templates divide the arg.size by 2
|
|
*/
|
|
fpc_bep_result_t bep_template_get_ids(HCP_comm_t *chain);
|
|
|
|
/**
|
|
* @brief Software reset of FCP BM-Lite
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_sw_reset(HCP_comm_t *chain);
|
|
|
|
/**
|
|
* @brief Calibrate FPC BM-LIte sensor and store calibration data to FLASH storage
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*
|
|
* FPC BM-Lite must be restarted to activate new calibration data
|
|
*/
|
|
fpc_bep_result_t bep_sensor_calibrate(HCP_comm_t *chain);
|
|
|
|
/**
|
|
* @brief Remove FPC BM-LIte sensor calibration data from FLASH storage
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*
|
|
* FPC BM-Lite must be restarted to activate
|
|
*/
|
|
fpc_bep_result_t bep_sensor_calibrate_remove(HCP_comm_t *chain);
|
|
|
|
/**
|
|
* @brief Get version of FPC BM-LIte firmware
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[in] version - pointer to data buffer
|
|
* @param[in] size - size of the data buffer
|
|
* if buffer size is not enough the data
|
|
* will be truncated
|
|
* chain->arg.size will contain real size of the data
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_version(HCP_comm_t *chain, char *version, int len);
|
|
|
|
/**
|
|
* @brief Get version of FPC BM-LIte firmware
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[in] unique_id - pointer to data buffer
|
|
* chain->arg.size will contain real size of the data
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_unique_id_get(HCP_comm_t *chain, uint8_t *unique_id);
|
|
|
|
/**
|
|
* @brief Set requested UART communication speed
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[in] speed - UART speed
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_uart_speed_set(HCP_comm_t *chain, uint32_t speed);
|
|
|
|
/**
|
|
* @brief Get current UART communication speed
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
* @param[out] speed - UART speed
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_uart_speed_get(HCP_comm_t *chain, uint32_t *speed);
|
|
|
|
/**
|
|
* @brief Reset FPC BM-Lite fingerprint sensor
|
|
*
|
|
* @param[in] chain - HCP com chain
|
|
*
|
|
* @return ::fpc_bep_result_t
|
|
*/
|
|
fpc_bep_result_t bep_sensor_reset(HCP_comm_t *chain);
|
|
|
|
#endif |