app_iso7816.h File Reference

Header file containing functions prototypes of ISO7816 app library. More...

#include "grx_hal.h"
#include "app_io.h"
#include "app_drv_error.h"
#include "app_drv_config.h"
#include "stdbool.h"
+ Include dependency graph for app_iso7816.h:

Go to the source code of this file.

Classes

struct  app_iso7816_pin_t
 ISO7816 IO configuration Structures. More...
 
struct  app_iso7816_pin_cfg_t
 ISO7816 pin configure structure definition. More...
 
struct  app_iso7816_evt_t
 ISO7816 event structure definition. More...
 
struct  iso7816_env_t
 ISO7816 device structure definition. More...
 
struct  app_iso7816_params_t
 ISO7816 parameters structure definition. More...
 

Macros

#define APP_ISO7816_ACTION_NONE   HAL_ISO7816_ACTION_NONE
 Do Nothing
More...
 
#define APP_ISO7816_ACTION_OFF   HAL_ISO7816_ACTION_OFF
 Switch Off
More...
 
#define APP_ISO7816_ACTION_STOPCLK   HAL_ISO7816_ACTION_STOPCLK
 Stop the clock
More...
 
#define APP_ISO7816_ACTION_ON   HAL_ISO7816_ACTION_ON
 Switch on and receive ATR
More...
 
#define APP_ISO7816_ACTION_WARMRST   HAL_ISO7816_ACTION_WARMRST
 Trigger warm reset and receive ATR. More...
 
#define APP_ISO7816_ACTION_RX   HAL_ISO7816_ACTION_RX
 Receive
More...
 
#define APP_ISO7816_ACTION_TX   HAL_ISO7816_ACTION_TX
 Transmit
More...
 
#define APP_ISO7816_ACTION_TXRX   HAL_ISO7816_ACTION_TXRX
 Transmit, followed by RX
More...
 
#define APP_ISO7816_INTR_PRESENCE   HAL_ISO7816_INTR_PRESENCE
 Source presence interrupt
More...
 
#define APP_ISO7816_INTR_STATE_ERR   HAL_ISO7816_INTR_STATE_ERR
 Source state error interrupt
More...
 
#define APP_ISO7816_INTR_DMA_ERR   HAL_ISO7816_INTR_DMA_ERR
 Source dma error interrupt
More...
 
#define APP_ISO7816_INTR_RETRY_ERR   HAL_ISO7816_INTR_RETRY_ERR
 Source retry error interrupt
More...
 
#define APP_ISO7816_INTR_RX_ERR   HAL_ISO7816_INTR_RX_ERR
 Source rx error interrupt
More...
 
#define APP_ISO7816_INTR_DONE   HAL_ISO7816_INTR_DONE
 Source done error interrupt
More...
 
#define APP_ISO7816_CARD_ABSENT   HAL_ISO7816_CARD_ABSENT
 SIM Card is absent
More...
 
#define APP_ISO7816_CARD_PRESENT   HAL_ISO7816_CARD_PRESENT
 SIM Card is present
More...
 
#define APP_ISO7816_IO_STATE_OFF   HAL_ISO7816_IO_STATE_OFF
 Off
More...
 
#define APP_ISO7816_IO_STATE_IDLE   HAL_ISO7816_IO_STATE_IDLE
 Idle
More...
 
#define APP_ISO7816_IO_STATE_RX_WAIT   HAL_ISO7816_IO_STATE_RX_WAIT
 Receive Wait
More...
 
#define APP_ISO7816_IO_STATE_RX   HAL_ISO7816_IO_STATE_RX
 Receive
More...
 
#define APP_ISO7816_IO_STATE_TX   HAL_ISO7816_IO_STATE_TX
 Transmit
More...
 
#define APP_ISO7816_IO_STATE_TX_GUARD   HAL_ISO7816_IO_STATE_TX_GUARD
 Transmit Guard
More...
 
#define APP_ISO7816_PWR_STATE_OFF   HAL_ISO7816_PWR_STATE_OFF
 Off
More...
 
#define APP_ISO7816_PWR_STATE_PWRUP_VCC   HAL_ISO7816_PWR_STATE_PWRUP_VCC
 Power up VCC
More...
 
#define APP_ISO7816_PWR_STATE_PWRUP_RST   HAL_ISO7816_PWR_STATE_PWRUP_RST
 Power up reset
More...
 
#define APP_ISO7816_PWR_STATE_PWRDN_RST   HAL_ISO7816_PWR_STATE_PWRDN_RST
 Power Down reset
More...
 
#define APP_ISO7816_PWR_STATE_PWRDN_VCC   HAL_ISO7816_PWR_STATE_PWRDN_VCC
 Power Down VCC
More...
 
#define APP_ISO7816_PWR_STATE_STOP_PRE   HAL_ISO7816_PWR_STATE_STOP_PRE
 Preparing Clock Stop
More...
 
#define APP_ISO7816_PWR_STATE_STOP   HAL_ISO7816_PWR_STATE_STOP
 Clock Stopped
More...
 
#define APP_ISO7816_PWR_STATE_STOP_POST   HAL_ISO7816_PWR_STATE_STOP_POST
 Exiting Clock Stop
More...
 
#define APP_ISO7816_PWR_STATE_IDLE   HAL_ISO7816_PWR_STATE_IDLE
 Idle
More...
 
#define APP_ISO7816_PWR_STATE_RX_TS0   HAL_ISO7816_PWR_STATE_RX_TS0
 RX TS Character
More...
 
#define APP_ISO7816_PWR_STATE_RX_TS1   HAL_ISO7816_PWR_STATE_RX_TS1
 RX TS Character
More...
 
#define APP_ISO7816_PWR_STATE_RX   HAL_ISO7816_PWR_STATE_RX
 Receive
More...
 
#define APP_ISO7816_PWR_STATE_TX   HAL_ISO7816_PWR_STATE_TX
 Transmit
More...
 
#define APP_ISO7816_PWR_STATE_TX_RX   HAL_ISO7816_PWR_STATE_TX_RX
 Transmit and Receive
More...
 

Typedefs

typedef void(* app_iso7816_evt_handler_t) (app_iso7816_evt_t *p_evt)
 ISO7816 event callback definition. More...
 

Enumerations

enum  app_iso7816_mode_t { APP_ISO7816_TYPE_INTERRUPT, APP_ISO7816_TYPE_POLLING, APP_ISO7816_TYPE_MAX }
 ISO7816 operating mode Enumerations definition. More...
 
enum  app_iso7816_evt_type_t {
  APP_ISO7816_EVT_ERROR, APP_ISO7816_EVT_ABORT, APP_ISO7816_EVT_PRESENCE, APP_ISO7816_EVT_ATR_CPLT,
  APP_ISO7816_EVT_TX_CPLT, APP_ISO7816_EVT_RX_CPLT, APP_ISO7816_EVT_TX_RX_CPLT
}
 ISO7816 event Enumerations definition. More...
 
enum  app_iso7816_state_t { APP_ISO7816_INVALID = 0, APP_ISO7816_ACTIVITY }
 App iso7816 state types. More...
 

Functions

uint16_t app_iso7816_init (app_iso7816_params_t *p_params, app_iso7816_evt_handler_t evt_handler)
 Initialize the APP ISO7816 DRIVER according to the specified parameters in the app_iso7816_params_t and app_iso7816_evt_handler_t. More...
 
uint16_t app_iso7816_deinit (void)
 De-initialize the APP ISO7816 DRIVER peripheral. More...
 
uint16_t app_iso7816_receive_sync (uint16_t size, uint32_t timeout)
 Receive an amount of data in blocking mode. More...
 
uint16_t app_iso7816_receive_async (uint16_t size)
 Receive an amount of data in non-blocking mode with Interrupt/DMA. More...
 
uint16_t app_iso7816_transmit_sync (uint16_t size, uint32_t timeout)
 Transmits an amount of data in blocking mode. More...
 
uint16_t app_iso7816_transmit_async (uint16_t size)
 Transmits an amount of data in non-blocking mode with Interrupt/DMA. More...
 
uint16_t app_iso7816_transmit_receive_sync (uint16_t tx_size, uint16_t rx_size, uint32_t timeout)
 Transmit and receive in master mode an amount of data in blocking mode. More...
 
uint16_t app_iso7816_transmit_receive_async (uint16_t tx_size, uint16_t rx_size)
 Transmit and receive in master mode an amount of data in non-blocking mode. More...
 
uint16_t app_iso7816_set_action (uint32_t action)
 Request ISO7816 to go to the next action. More...
 
uint32_t app_iso7816_get_power_states (void)
 Get ISO7816 Power States. More...
 
uint16_t app_iso7816_set_etudiv (uint32_t divide)
 Set divide ISO7816 clock. More...
 
iso7816_handle_tapp_iso7816_get_handle (void)
 Return the ISO7816 handle. More...
 

Detailed Description

Header file containing functions prototypes of ISO7816 app library.

Author
BLE Driver Team
Attention
Copyright (c) 2019 GOODIX

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of GOODIX nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file app_iso7816.h.