C API for BALTECH SDK

§ brp_Iso14b_Attrib()

brp_errcode brp_Iso14b_Attrib ( brp_protocol  protocol,
brp_buf  PUPI,
brp_Iso14b_Attrib_TR0  TR0,
brp_Iso14b_Attrib_TR1  TR1,
brp_Iso14b_Attrib_EOF_  EOF_,
brp_Iso14b_Attrib_SOF  SOF,
brp_DivisorInteger  DSI,
brp_DivisorInteger  DRI,
brp_Iso14b_Attrib_FSDI  FSDI,
unsigned  CID,
bool  EnHLR,
bool  EnMBLI,
bool  EnCID,
unsigned *  AssignedCID,
unsigned *  MBLI,
brp_buf HLR,
size_t *  HLR_len,
brp_mempool mempool 
)

Select the PICC with given PUPI serial number for further communication. The desired PICC must have been reported by the Iso14b.Request command before.

The parameters given in the Param bit mask have to match both the supported communication parameters of the reader and of the current PICC, according to the ProtInfo bit mask returned by the Iso14b.Request command. These parameters will be applied for all ISO 14443-4 APDUs that will be exchanged via the Iso14L4.ExchangeAPDU command.

Furthermore, a unique communication channel ID (CID) has to be assigned, which identifies the PICC and which will also be needed by the ISO 14443-4 commands.

Normally, there may be up to 14 PICCs in active state at the same time and each PICC will be uniquely identified by its CID. However, there are exist PICCs which do no support being assigned a CID. Only one of these PICCs may be in active state at the same time (along with other PICCs supporting the CID feature). The same restriction also holds for PICCs which are assigned a CID of 0x00 with this command.

Parameters
[in]protocolused to execute the command
[in]PUPIPseudo-Unique PICC Identifier (PUPI), serial number of targeted PICC.
[in]TR0PICC's minimum delay before responding after the end of a command sent by PCD. The values introduced in this parameter need to be divided by the ISO 14443 subcarrier frequency (abbreviated as fs).
[in]TR1Minimum delay between subcarrier modulation start and beginning of data transmission. The values introduced in this parameter need to be divided by the ISO 14443 subcarrier frequency (abbreviated as fs).
[in]EOF_End Of Frame (EOF) flag for sending data to reader.
[in]SOFStart Of Frame (SOF) flag for sending data to reader.
[in]DSIDivisor Send/Receive Integer (DSI/DRI) This parameter is mapped to the Divisor Send/Receive (DS/DI) value, which determines bit rate for sending data from PICC to PCD. The possible DS/DR values (mapped to the DSI/DRI index) are listed below.
[in]DRIDivisor Send/Receive Integer (DSI/DRI) This parameter is mapped to the Divisor Send/Receive (DS/DI) value, which determines bit rate for sending data from PICC to PCD. The possible DS/DR values (mapped to the DSI/DRI index) are listed below.
[in]FSDIFrame Size proximity coupling Device Integer (FSDI) value. This value is mapped to the Frame Size proximity coupling Device (FSD) value, which indicates the maximum frame size accepted by the PCD. The current Baltech reader supports FSD of at least up to 64 bytes (FSDI=0x05). It is not recommended to use a smaller FSDI. Future versions of the Baltech reader might support higher FSDI values.
[in]CIDChannel ID (CID) which should be assigned to this PICC. Possible values: * 0x00: PICC will respond also to ISO 14443-4 commands with CID disabled * 0x01-0x0E: valid CID value * 0x0F-0xFF: rfu
[in]EnHLRIf this flag is set, the High Layer Response (HLR) variable will be returned by this command.
[in]EnMBLIIf this flag is set, the Maximum Buffer Length Index (MBLI) variable will be returned by this command.
[in]EnCIDIf this flag is set, the CID of the PICC will be returned by this command.
[out]AssignedCIDChannel ID (CID) which has been assigned to the PICC. If the PICC does not support the feature of being assigned a CID, 0x00 will be returned instead. Possible values: * 0x00: PICC will respond also to ISO 14443-4 commands with CID disabled * 0x01-0x0E: valid CID value * 0x0F-0xFF: rfu
[out]MBLIMaximum Buffer Length Index (MBLI) of PICC. This value is necessary to compute the Maximum Buffer Length (MBL) value, describing the length of the PICC's internal buffer to receive chained frames. MBL is computed using MBLI using the following formula: MBL = FSC * 2 ^ (MBLI-1) The FSC variable is determined by the FSCI value returned by the Iso14b.Request command. The amount of data transferred with one call of the Iso14L4.ExchangeAPDU command should never exceed MBL. Possible values: * 0x00: PICC does not provide MBLI * 0x01-0x0F: valid MBLI value * 0x10-0xFF: rfu
[out]HLRHigher Layer Response (HLR) or PICC. The HLR is not available from PICCs fully compliant to the ISO 14443-3 standard.
[out]HLR_len
[in]mempoolis used to store response data. Maybe NULL to use an internal mempool, in this case the data is only available until another command uses the internal mempool