1 /****************************************************************************** 2 * 3 * Copyright (C) 2010-2014 Broadcom Corporation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18 19 20 /****************************************************************************** 21 * 22 * NFA reader/writer API functions 23 * 24 ******************************************************************************/ 25 #ifndef NFA_RW_API_H 26 #define NFA_RW_API_H 27 28 #include "nfc_target.h" 29 #include "nfa_api.h" 30 31 /***************************************************************************** 32 ** Constants and data types 33 *****************************************************************************/ 34 enum 35 { 36 NFA_RW_PRES_CHK_DEFAULT, /* The default behavior */ 37 NFA_RW_PRES_CHK_I_BLOCK, /* Empty I Block */ 38 NFA_RW_PRES_CHK_RESET, /* Deactivate to Sleep; Re-activate */ 39 NFA_RW_PRES_CHK_RB_CH0, /* ReadBinary on Channel 0 */ 40 NFA_RW_PRES_CHK_RB_CH3 /* ReadBinary on Channel 3 */ 41 }; 42 typedef UINT8 tNFA_RW_PRES_CHK_OPTION; 43 44 /***************************************************************************** 45 ** NFA T3T Constants and definitions 46 *****************************************************************************/ 47 48 /* Block descriptor. (For non-NDEF read/write */ 49 typedef struct 50 { 51 UINT16 service_code; /* Service code for the block */ 52 UINT16 block_number; /* Block number. */ 53 } tNFA_T3T_BLOCK_DESC; 54 55 56 57 /***************************************************************************** 58 ** External Function Declarations 59 *****************************************************************************/ 60 #ifdef __cplusplus 61 extern "C" 62 { 63 #endif 64 65 /******************************************************************************* 66 ** 67 ** Function NFA_RwDetectNDef 68 ** 69 ** Description Perform the NDEF detection procedure using the appropriate 70 ** method for the currently activated tag. 71 ** 72 ** Upon successful completion of NDEF detection, a 73 ** NFA_NDEF_DETECT_EVT will be sent, to notify the application 74 ** of the NDEF attributes (NDEF total memory size, current 75 ** size, etc.). 76 ** 77 ** It is not mandatory to call this function - NFA_RwReadNDef 78 ** and NFA_RwWriteNDef will perform NDEF detection internally if 79 ** not performed already. This API may be called to get a 80 ** tag's NDEF size before issuing a write-request. 81 ** 82 ** Returns: 83 ** NFA_STATUS_OK if successfully initiated 84 ** NFC_STATUS_REFUSED if tag does not support NDEF 85 ** NFA_STATUS_FAILED otherwise 86 ** 87 *******************************************************************************/ 88 NFC_API extern tNFA_STATUS NFA_RwDetectNDef (void); 89 90 /******************************************************************************* 91 ** 92 ** Function NFA_RwReadNDef 93 ** 94 ** Description Read NDEF message from tag. This function will internally 95 ** perform the NDEF detection procedure (if not performed 96 ** previously), and read the NDEF tag data using the 97 ** appropriate method for the currently activated tag. 98 ** 99 ** Upon successful completion of NDEF detection (if performed), 100 ** a NFA_NDEF_DETECT_EVT will be sent, to notify the application 101 ** of the NDEF attributes (NDEF total memory size, current size, 102 ** etc.). 103 ** 104 ** Upon receiving the NDEF message, the message will be sent to 105 ** the handler registered with NFA_RegisterNDefTypeHandler or 106 ** NFA_RequestExclusiveRfControl (if exclusive RF mode is active) 107 ** 108 ** 109 ** Returns: 110 ** NFA_STATUS_OK if successfully initiated 111 ** NFC_STATUS_REFUSED if tag does not support NDEF 112 ** NFC_STATUS_NOT_INITIALIZED if NULL NDEF was detected on the tag 113 ** NFA_STATUS_FAILED otherwise 114 ** 115 *******************************************************************************/ 116 NFC_API extern tNFA_STATUS NFA_RwReadNDef (void); 117 118 /******************************************************************************* 119 ** 120 ** Function NFA_RwWriteNDef 121 ** 122 ** Description Write NDEF data to the activated tag. This function will 123 ** internally perform NDEF detection if necessary, and write 124 ** the NDEF tag data using the appropriate method for the 125 ** currently activated tag. 126 ** 127 ** When the entire message has been written, or if an error 128 ** occurs, the app will be notified with NFA_RW_WRITE_CPLT_EVT. 129 ** 130 ** p_data needs to be persistent until NFA_RW_WRITE_CPLT_EVT 131 ** 132 ** 133 ** Returns: 134 ** NFA_STATUS_OK if successfully initiated 135 ** NFC_STATUS_REFUSED if tag does not support NDEF/locked 136 ** NFA_STATUS_FAILED otherwise 137 ** 138 *******************************************************************************/ 139 NFC_API extern tNFA_STATUS NFA_RwWriteNDef (UINT8 *p_data, UINT32 len); 140 141 142 /***************************************************************************** 143 ** 144 ** Function NFA_RwPresenceCheck 145 ** 146 ** Description Check if the tag is still in the field. 147 ** 148 ** The NFA_RW_PRESENCE_CHECK_EVT w/ status is used to 149 ** indicate presence or non-presence. 150 ** 151 ** option is used only with ISO-DEP protocol 152 ** 153 ** Returns 154 ** NFA_STATUS_OK if successfully initiated 155 ** NFA_STATUS_FAILED otherwise 156 ** 157 *****************************************************************************/ 158 NFC_API extern tNFA_STATUS NFA_RwPresenceCheck (tNFA_RW_PRES_CHK_OPTION option); 159 160 /***************************************************************************** 161 ** 162 ** Function NFA_RwFormatTag 163 ** 164 ** Description Check if the tag is NDEF Formatable. If yes Format the 165 ** tag 166 ** 167 ** The NFA_RW_FORMAT_CPLT_EVT w/ status is used to 168 ** indicate if tag is formated or not. 169 ** 170 ** Returns 171 ** NFA_STATUS_OK if successfully initiated 172 ** NFA_STATUS_FAILED otherwise 173 ** 174 *****************************************************************************/ 175 NFC_API extern tNFA_STATUS NFA_RwFormatTag (void); 176 177 /******************************************************************************* 178 ** LEGACY / PROPRIETARY TAG READ AND WRITE APIs 179 *******************************************************************************/ 180 181 182 /******************************************************************************* 183 ** 184 ** Function NFA_RwLocateTlv 185 ** 186 ** Description: 187 ** Search for the Lock/Memory contril TLV on the activated Type1/Type2 tag 188 ** 189 ** Data is returned to the application using the NFA_TLV_DETECT_EVT. When 190 ** search operation has completed, or if an error occurs, the app will be 191 ** notified with NFA_TLV_DETECT_EVT. 192 ** 193 ** Description Perform the TLV detection procedure using the appropriate 194 ** method for the currently activated tag. 195 ** 196 ** Upon successful completion of TLV detection in T1/T2 tag, a 197 ** NFA_TLV_DETECT_EVT will be sent, to notify the application 198 ** of the TLV attributes (total lock/reserved bytes etc.). 199 ** However if the TLV type specified is NDEF then it is same as 200 ** calling NFA_RwDetectNDef and should expect to receive 201 ** NFA_NDEF_DETECT_EVT instead of NFA_TLV_DETECT_EVT 202 ** 203 ** It is not mandatory to call this function - NFA_RwDetectNDef, 204 ** NFA_RwReadNDef and NFA_RwWriteNDef will perform TLV detection 205 ** internally if not performed already. An application may call 206 ** this API to check the a tag/card-emulator's total Reserved/ 207 ** Lock bytes before issuing a write-request. 208 ** 209 ** Returns: 210 ** NFA_STATUS_OK if successfully initiated 211 ** NFC_STATUS_REFUSED if tlv_type is NDEF & tag won't support NDEF 212 ** NFA_STATUS_FAILED otherwise 213 ** 214 *******************************************************************************/ 215 NFC_API extern tNFA_STATUS NFA_RwLocateTlv (UINT8 tlv_type); 216 217 /******************************************************************************* 218 ** 219 ** Function NFA_RwSetTagReadOnly 220 ** 221 ** Description: 222 ** Sets tag as read only. 223 ** 224 ** When tag is set as read only, or if an error occurs, the app will be 225 ** notified with NFA_SET_TAG_RO_EVT. 226 ** 227 ** Returns: 228 ** NFA_STATUS_OK if successfully initiated 229 ** NFA_STATUS_REJECTED if protocol is not T1/T2/ISO15693 230 ** (or) if hard lock is not requested for protocol ISO15693 231 ** NFA_STATUS_FAILED otherwise 232 ** 233 *******************************************************************************/ 234 NFC_API extern tNFA_STATUS NFA_RwSetTagReadOnly (BOOLEAN b_hard_lock); 235 236 /******************************************************************************* 237 ** 238 ** Function NFA_RwT1tRid 239 ** 240 ** Description: 241 ** Send a RID command to the activated Type 1 tag. 242 ** 243 ** Data is returned to the application using the NFA_DATA_EVT. When the read 244 ** operation has completed, or if an error occurs, the app will be notified with 245 ** NFA_READ_CPLT_EVT. 246 ** 247 ** Returns: 248 ** NFA_STATUS_OK if successfully initiated 249 ** NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated 250 ** NFA_STATUS_FAILED otherwise 251 ** 252 *******************************************************************************/ 253 NFC_API extern tNFA_STATUS NFA_RwT1tRid (void); 254 255 /******************************************************************************* 256 ** 257 ** Function NFA_RwT1tReadAll 258 ** 259 ** Description: 260 ** Send a RALL command to the activated Type 1 tag. 261 ** 262 ** Data is returned to the application using the NFA_DATA_EVT. When the read 263 ** operation has completed, or if an error occurs, the app will be notified with 264 ** NFA_READ_CPLT_EVT. 265 ** 266 ** Returns: 267 ** NFA_STATUS_OK if successfully initiated 268 ** NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated 269 ** NFA_STATUS_FAILED otherwise 270 ** 271 *******************************************************************************/ 272 NFC_API extern tNFA_STATUS NFA_RwT1tReadAll (void); 273 274 /******************************************************************************* 275 ** 276 ** Function NFA_RwT1tRead 277 ** 278 ** Description: 279 ** Send a READ command to the activated Type 1 tag. 280 ** 281 ** Data is returned to the application using the NFA_DATA_EVT. When the read 282 ** operation has completed, or if an error occurs, the app will be notified with 283 ** NFA_READ_CPLT_EVT. 284 ** 285 ** Returns: 286 ** NFA_STATUS_OK if successfully initiated 287 ** NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated 288 ** NFA_STATUS_FAILED otherwise 289 ** 290 *******************************************************************************/ 291 NFC_API extern tNFA_STATUS NFA_RwT1tRead (UINT8 block_number, UINT8 index); 292 293 /******************************************************************************* 294 ** 295 ** Function NFA_RwT1tWrite 296 ** 297 ** Description: 298 ** Send a WRITE command to the activated Type 1 tag. 299 ** 300 ** Data is returned to the application using the NFA_DATA_EVT. When the write 301 ** operation has completed, or if an error occurs, the app will be notified with 302 ** NFA_WRITE_CPLT_EVT. 303 ** 304 ** Returns: 305 ** NFA_STATUS_OK if successfully initiated 306 ** NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated 307 ** NFA_STATUS_FAILED otherwise 308 ** 309 *******************************************************************************/ 310 NFC_API extern tNFA_STATUS NFA_RwT1tWrite (UINT8 block_number, 311 UINT8 index, 312 UINT8 data, 313 BOOLEAN b_erase); 314 315 /******************************************************************************* 316 ** 317 ** Function NFA_RwT1tReadSeg 318 ** 319 ** Description: 320 ** Send a RSEG command to the activated Type 1 tag. 321 ** 322 ** Data is returned to the application using the NFA_DATA_EVT. When the read 323 ** operation has completed, or if an error occurs, the app will be notified with 324 ** NFA_READ_CPLT_EVT. 325 ** 326 ** Returns: 327 ** NFA_STATUS_OK if successfully initiated 328 ** NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated 329 ** NFA_STATUS_FAILED otherwise 330 ** 331 *******************************************************************************/ 332 NFC_API extern tNFA_STATUS NFA_RwT1tReadSeg (UINT8 segment_number); 333 334 /******************************************************************************* 335 ** 336 ** Function NFA_RwT1tRead8 337 ** 338 ** Description: 339 ** Send a READ8 command to the activated Type 1 tag. 340 ** 341 ** Data is returned to the application using the NFA_DATA_EVT. When the read 342 ** operation has completed, or if an error occurs, the app will be notified with 343 ** NFA_READ_CPLT_EVT. 344 ** 345 ** Returns: 346 ** NFA_STATUS_OK if successfully initiated 347 ** NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated 348 ** NFA_STATUS_FAILED otherwise 349 ** 350 *******************************************************************************/ 351 NFC_API extern tNFA_STATUS NFA_RwT1tRead8 (UINT8 block_number); 352 353 /******************************************************************************* 354 ** 355 ** Function NFA_RwT1tWrite8 356 ** 357 ** Description: 358 ** Send a WRITE8_E / WRITE8_NE command to the activated Type 1 tag. 359 ** 360 ** Data is returned to the application using the NFA_DATA_EVT. When the read 361 ** operation has completed, or if an error occurs, the app will be notified with 362 ** NFA_READ_CPLT_EVT. 363 ** 364 ** Returns: 365 ** NFA_STATUS_OK if successfully initiated 366 ** NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated 367 ** NFA_STATUS_FAILED otherwise 368 ** 369 *******************************************************************************/ 370 NFC_API extern tNFA_STATUS NFA_RwT1tWrite8 (UINT8 block_number, 371 UINT8 *p_data, 372 BOOLEAN b_erase); 373 374 /******************************************************************************* 375 ** 376 ** Function NFA_RwT2tRead 377 ** 378 ** Description: 379 ** Send a READ command to the activated Type 2 tag. 380 ** 381 ** Data is returned to the application using the NFA_DATA_EVT. When the read 382 ** operation has completed, or if an error occurs, the app will be notified with 383 ** NFA_READ_CPLT_EVT. 384 ** 385 ** Returns: 386 ** NFA_STATUS_OK if successfully initiated 387 ** NFA_STATUS_NOT_INITIALIZED: type 2 tag not activated 388 ** NFA_STATUS_FAILED otherwise 389 ** 390 *******************************************************************************/ 391 NFC_API extern tNFA_STATUS NFA_RwT2tRead (UINT8 block_number); 392 393 /******************************************************************************* 394 ** 395 ** Function NFA_RwT2tWrite 396 ** 397 ** Description: 398 ** Send an WRITE command to the activated Type 2 tag. 399 ** 400 ** When the write operation has completed (or if an error occurs), the 401 ** app will be notified with NFA_WRITE_CPLT_EVT. 402 ** 403 ** Returns: 404 ** NFA_STATUS_OK if successfully initiated 405 ** NFA_STATUS_NOT_INITIALIZED: type 2 tag not activated 406 ** NFA_STATUS_FAILED otherwise 407 ** 408 *******************************************************************************/ 409 NFC_API extern tNFA_STATUS NFA_RwT2tWrite (UINT8 block_number, UINT8 *p_data); 410 411 /******************************************************************************* 412 ** 413 ** Function NFA_RwT2tSectorSelect 414 ** 415 ** Description: 416 ** Send SECTOR SELECT command to the activated Type 2 tag. 417 ** 418 ** When the sector select operation has completed (or if an error occurs), the 419 ** app will be notified with NFA_SECTOR_SELECT_CPLT_EVT. 420 ** 421 ** Returns: 422 ** NFA_STATUS_OK if successfully initiated 423 ** NFA_STATUS_NOT_INITIALIZED: type 2 tag not activated 424 ** NFA_STATUS_FAILED otherwise 425 ** 426 *******************************************************************************/ 427 NFC_API extern tNFA_STATUS NFA_RwT2tSectorSelect (UINT8 sector_number); 428 429 /******************************************************************************* 430 ** 431 ** Function NFA_RwT3tRead 432 ** 433 ** Description: 434 ** Send a CHECK (read) command to the activated Type 3 tag. 435 ** 436 ** Data is returned to the application using the NFA_RW_DATA_EVT. When the read 437 ** operation has completed, or if an error occurs, the app will be notified with 438 ** NFA_READ_CPLT_EVT. 439 ** 440 ** Returns: 441 ** NFA_STATUS_OK if successfully initiated 442 ** NFA_STATUS_NOT_INITIALIZED: type 3 tag not activated 443 ** NFA_STATUS_FAILED otherwise 444 ** 445 *******************************************************************************/ 446 NFC_API extern tNFA_STATUS NFA_RwT3tRead (UINT8 num_blocks, 447 tNFA_T3T_BLOCK_DESC *t3t_blocks); 448 449 /******************************************************************************* 450 ** 451 ** Function NFA_RwT3tWrite 452 ** 453 ** Description: 454 ** Send an UPDATE (write) command to the activated Type 3 tag. 455 ** 456 ** When the write operation has completed (or if an error occurs), the 457 ** app will be notified with NFA_WRITE_CPLT_EVT. 458 ** 459 ** Returns: 460 ** NFA_STATUS_OK if successfully initiated 461 ** NFA_STATUS_NOT_INITIALIZED: type 3 tag not activated 462 ** NFA_STATUS_FAILED otherwise 463 ** 464 *******************************************************************************/ 465 NFC_API extern tNFA_STATUS NFA_RwT3tWrite (UINT8 num_blocks, 466 tNFA_T3T_BLOCK_DESC *t3t_blocks, 467 UINT8 *p_data); 468 469 /******************************************************************************* 470 ** 471 ** Function NFA_RwI93Inventory 472 ** 473 ** Description: 474 ** Send Inventory command to the activated ISO 15693 tag with/without AFI.. 475 ** If UID is provided then set UID[0]:MSB, ... UID[7]:LSB 476 ** 477 ** When the write operation has completed (or if an error occurs), the 478 ** app will be notified with NFA_I93_CMD_CPLT_EVT. 479 ** 480 ** Returns: 481 ** NFA_STATUS_OK if successfully initiated 482 ** NFA_STATUS_NOT_INITIALIZED: ISO 15693 tag not activated 483 ** NFA_STATUS_FAILED otherwise 484 ** 485 *******************************************************************************/ 486 NFC_API extern tNFA_STATUS NFA_RwI93Inventory (BOOLEAN afi_present, UINT8 afi, UINT8 *p_uid); 487 488 /******************************************************************************* 489 ** 490 ** Function NFA_RwI93StayQuiet 491 ** 492 ** Description: 493 ** Send Stay Quiet command to the activated ISO 15693 tag. 494 ** 495 ** When the operation has completed (or if an error occurs), the 496 ** app will be notified with NFA_I93_CMD_CPLT_EVT. 497 ** 498 ** Returns: 499 ** NFA_STATUS_OK if successfully initiated 500 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 501 ** NFA_STATUS_FAILED otherwise 502 ** 503 *******************************************************************************/ 504 NFC_API extern tNFA_STATUS NFA_RwI93StayQuiet (void); 505 506 /******************************************************************************* 507 ** 508 ** Function NFA_RwI93ReadSingleBlock 509 ** 510 ** Description: 511 ** Send Read Single Block command to the activated ISO 15693 tag. 512 ** 513 ** Data is returned to the application using the NFA_DATA_EVT. When the read 514 ** operation has completed, or if an error occurs, the app will be notified with 515 ** NFA_I93_CMD_CPLT_EVT. 516 ** 517 ** Returns: 518 ** NFA_STATUS_OK if successfully initiated 519 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 520 ** NFA_STATUS_FAILED otherwise 521 ** 522 *******************************************************************************/ 523 NFC_API extern tNFA_STATUS NFA_RwI93ReadSingleBlock (UINT8 block_number); 524 525 /******************************************************************************* 526 ** 527 ** Function NFA_RwI93WriteSingleBlock 528 ** 529 ** Description: 530 ** Send Write Single Block command to the activated ISO 15693 tag. 531 ** 532 ** When the write operation has completed (or if an error occurs), the 533 ** app will be notified with NFA_I93_CMD_CPLT_EVT. 534 ** 535 ** Returns: 536 ** NFA_STATUS_OK if successfully initiated 537 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 538 ** NFA_STATUS_FAILED otherwise 539 ** 540 *******************************************************************************/ 541 NFC_API extern tNFA_STATUS NFA_RwI93WriteSingleBlock (UINT8 block_number, 542 UINT8 *p_data); 543 544 /******************************************************************************* 545 ** 546 ** Function NFA_RwI93LockBlock 547 ** 548 ** Description: 549 ** Send Lock block command to the activated ISO 15693 tag. 550 ** 551 ** When the operation has completed (or if an error occurs), the 552 ** app will be notified with NFA_I93_CMD_CPLT_EVT. 553 ** 554 ** Returns: 555 ** NFA_STATUS_OK if successfully initiated 556 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 557 ** NFA_STATUS_FAILED otherwise 558 ** 559 *******************************************************************************/ 560 NFC_API extern tNFA_STATUS NFA_RwI93LockBlock (UINT8 block_number); 561 562 /******************************************************************************* 563 ** 564 ** Function NFA_RwI93ReadMultipleBlocks 565 ** 566 ** Description: 567 ** Send Read Multiple Block command to the activated ISO 15693 tag. 568 ** 569 ** Data is returned to the application using the NFA_DATA_EVT. When the read 570 ** operation has completed, or if an error occurs, the app will be notified with 571 ** NFA_I93_CMD_CPLT_EVT. 572 ** 573 ** Returns: 574 ** NFA_STATUS_OK if successfully initiated 575 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 576 ** NFA_STATUS_FAILED otherwise 577 ** 578 *******************************************************************************/ 579 NFC_API extern tNFA_STATUS NFA_RwI93ReadMultipleBlocks (UINT8 first_block_number, 580 UINT16 number_blocks); 581 582 /******************************************************************************* 583 ** 584 ** Function NFA_RwI93WriteMultipleBlocks 585 ** 586 ** Description: 587 ** Send Write Multiple Block command to the activated ISO 15693 tag. 588 ** 589 ** When the write operation has completed (or if an error occurs), the 590 ** app will be notified with NFA_I93_CMD_CPLT_EVT. 591 ** 592 ** Returns: 593 ** NFA_STATUS_OK if successfully initiated 594 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 595 ** NFA_STATUS_FAILED otherwise 596 ** 597 *******************************************************************************/ 598 NFC_API extern tNFA_STATUS NFA_RwI93WriteMultipleBlocks (UINT8 first_block_number, 599 UINT16 number_blocks, 600 UINT8 *p_data); 601 602 /******************************************************************************* 603 ** 604 ** Function NFA_RwI93Select 605 ** 606 ** Description: 607 ** Send Select command to the activated ISO 15693 tag. 608 ** 609 ** UID[0]: 0xE0, MSB 610 ** UID[1]: IC Mfg Code 611 ** ... 612 ** UID[7]: LSB 613 ** 614 ** When the operation has completed (or if an error occurs), the 615 ** app will be notified with NFA_I93_CMD_CPLT_EVT. 616 ** 617 ** Returns: 618 ** NFA_STATUS_OK if successfully initiated 619 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 620 ** NFA_STATUS_FAILED otherwise 621 ** 622 *******************************************************************************/ 623 NFC_API extern tNFA_STATUS NFA_RwI93Select (UINT8 *p_uid); 624 625 /******************************************************************************* 626 ** 627 ** Function NFA_RwI93ResetToReady 628 ** 629 ** Description: 630 ** Send Reset to ready command to the activated ISO 15693 tag. 631 ** 632 ** When the operation has completed (or if an error occurs), the 633 ** app will be notified with NFA_I93_CMD_CPLT_EVT. 634 ** 635 ** Returns: 636 ** NFA_STATUS_OK if successfully initiated 637 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 638 ** NFA_STATUS_FAILED otherwise 639 ** 640 *******************************************************************************/ 641 NFC_API extern tNFA_STATUS NFA_RwI93ResetToReady (void); 642 643 /******************************************************************************* 644 ** 645 ** Function NFA_RwI93WriteAFI 646 ** 647 ** Description: 648 ** Send Write AFI command to the activated ISO 15693 tag. 649 ** 650 ** When the operation has completed (or if an error occurs), the 651 ** app will be notified with NFA_I93_CMD_CPLT_EVT. 652 ** 653 ** Returns: 654 ** NFA_STATUS_OK if successfully initiated 655 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 656 ** NFA_STATUS_FAILED otherwise 657 ** 658 *******************************************************************************/ 659 NFC_API extern tNFA_STATUS NFA_RwI93WriteAFI (UINT8 afi); 660 661 /******************************************************************************* 662 ** 663 ** Function NFA_RwI93LockAFI 664 ** 665 ** Description: 666 ** Send Lock AFI command to the activated ISO 15693 tag. 667 ** 668 ** When the operation has completed (or if an error occurs), the 669 ** app will be notified with NFA_I93_CMD_CPLT_EVT. 670 ** 671 ** Returns: 672 ** NFA_STATUS_OK if successfully initiated 673 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 674 ** NFA_STATUS_FAILED otherwise 675 ** 676 *******************************************************************************/ 677 NFC_API extern tNFA_STATUS NFA_RwI93LockAFI (void); 678 679 /******************************************************************************* 680 ** 681 ** Function NFA_RwI93WriteDSFID 682 ** 683 ** Description: 684 ** Send Write DSFID command to the activated ISO 15693 tag. 685 ** 686 ** When the operation has completed (or if an error occurs), the 687 ** app will be notified with NFA_I93_CMD_CPLT_EVT. 688 ** 689 ** Returns: 690 ** NFA_STATUS_OK if successfully initiated 691 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 692 ** NFA_STATUS_FAILED otherwise 693 ** 694 *******************************************************************************/ 695 NFC_API extern tNFA_STATUS NFA_RwI93WriteDSFID (UINT8 dsfid); 696 697 /******************************************************************************* 698 ** 699 ** Function NFA_RwI93LockDSFID 700 ** 701 ** Description: 702 ** Send Lock DSFID command to the activated ISO 15693 tag. 703 ** 704 ** When the operation has completed (or if an error occurs), the 705 ** app will be notified with NFA_I93_CMD_CPLT_EVT. 706 ** 707 ** Returns: 708 ** NFA_STATUS_OK if successfully initiated 709 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 710 ** NFA_STATUS_FAILED otherwise 711 ** 712 *******************************************************************************/ 713 NFC_API extern tNFA_STATUS NFA_RwI93LockDSFID (void); 714 715 /******************************************************************************* 716 ** 717 ** Function NFA_RwI93GetSysInfo 718 ** 719 ** Description: 720 ** Send Get system information command to the activated ISO 15693 tag. 721 ** If UID is provided then set UID[0]:MSB, ... UID[7]:LSB 722 ** 723 ** When the operation has completed (or if an error occurs), the 724 ** app will be notified with NFA_I93_CMD_CPLT_EVT. 725 ** 726 ** Returns: 727 ** NFA_STATUS_OK if successfully initiated 728 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 729 ** NFA_STATUS_FAILED otherwise 730 ** 731 *******************************************************************************/ 732 NFC_API extern tNFA_STATUS NFA_RwI93GetSysInfo (UINT8 *p_uid); 733 734 /******************************************************************************* 735 ** 736 ** Function NFA_RwI93GetMultiBlockSecurityStatus 737 ** 738 ** Description: 739 ** Send Get Multiple block security status command to the activated ISO 15693 tag. 740 ** 741 ** Data is returned to the application using the NFA_DATA_EVT. When the read 742 ** operation has completed, or if an error occurs, the app will be notified with 743 ** NFA_I93_CMD_CPLT_EVT. 744 ** 745 ** Returns: 746 ** NFA_STATUS_OK if successfully initiated 747 ** NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated 748 ** NFA_STATUS_FAILED otherwise 749 ** 750 *******************************************************************************/ 751 NFC_API extern tNFA_STATUS NFA_RwI93GetMultiBlockSecurityStatus (UINT8 first_block_number, 752 UINT16 number_blocks); 753 754 #ifdef __cplusplus 755 } 756 #endif 757 758 #endif /* NFA_RW_API_H */ 759