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