NFC NDEF library
Dependents: Nucleo_NFC_Example I2C_NFC_Master Print_Entire_Nucleo_NFC01A1_Memory
Fork of lib_NDEF by
lib_STProprietary_feature.c@0:3b093bd0819e, 2014-12-15 (annotated)
- Committer:
- EnricoG
- Date:
- Mon Dec 15 19:41:36 2014 +0000
- Revision:
- 0:3b093bd0819e
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
EnricoG | 0:3b093bd0819e | 1 | /** |
EnricoG | 0:3b093bd0819e | 2 | ****************************************************************************** |
EnricoG | 0:3b093bd0819e | 3 | * @file lib_STProprietary_feature.c |
EnricoG | 0:3b093bd0819e | 4 | * @author MMY Application Team |
EnricoG | 0:3b093bd0819e | 5 | * @version V1.0.0 |
EnricoG | 0:3b093bd0819e | 6 | * @date 20-November-2013 |
EnricoG | 0:3b093bd0819e | 7 | * @brief This file help to manage some proprietary feature. |
EnricoG | 0:3b093bd0819e | 8 | ****************************************************************************** |
EnricoG | 0:3b093bd0819e | 9 | * @attention |
EnricoG | 0:3b093bd0819e | 10 | * |
EnricoG | 0:3b093bd0819e | 11 | * <h2><center>© COPYRIGHT 2014 STMicroelectronics</center></h2> |
EnricoG | 0:3b093bd0819e | 12 | * |
EnricoG | 0:3b093bd0819e | 13 | * Licensed under MMY-ST Liberty SW License Agreement V2, (the "License"); |
EnricoG | 0:3b093bd0819e | 14 | * You may not use this file except in compliance with the License. |
EnricoG | 0:3b093bd0819e | 15 | * You may obtain a copy of the License at: |
EnricoG | 0:3b093bd0819e | 16 | * |
EnricoG | 0:3b093bd0819e | 17 | * http://www.st.com/software_license_agreement_liberty_v2 |
EnricoG | 0:3b093bd0819e | 18 | * |
EnricoG | 0:3b093bd0819e | 19 | * Unless required by applicable law or agreed to in writing, software |
EnricoG | 0:3b093bd0819e | 20 | * distributed under the License is distributed on an "AS IS" BASIS, |
EnricoG | 0:3b093bd0819e | 21 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
EnricoG | 0:3b093bd0819e | 22 | * See the License for the specific language governing permissions and |
EnricoG | 0:3b093bd0819e | 23 | * limitations under the License. |
EnricoG | 0:3b093bd0819e | 24 | * |
EnricoG | 0:3b093bd0819e | 25 | ****************************************************************************** |
EnricoG | 0:3b093bd0819e | 26 | */ |
EnricoG | 0:3b093bd0819e | 27 | |
EnricoG | 0:3b093bd0819e | 28 | /* Includes ------------------------------------------------------------------*/ |
EnricoG | 0:3b093bd0819e | 29 | #include "lib_STProprietary_feature.h" |
EnricoG | 0:3b093bd0819e | 30 | |
EnricoG | 0:3b093bd0819e | 31 | /** @addtogroup NFC_libraries |
EnricoG | 0:3b093bd0819e | 32 | * @{ |
EnricoG | 0:3b093bd0819e | 33 | * @brief <b>This is the library used to manage the content of the TAG (data) |
EnricoG | 0:3b093bd0819e | 34 | * But also the specific feature of the tag, for instance |
EnricoG | 0:3b093bd0819e | 35 | * password, gpo... </b> |
EnricoG | 0:3b093bd0819e | 36 | */ |
EnricoG | 0:3b093bd0819e | 37 | |
EnricoG | 0:3b093bd0819e | 38 | |
EnricoG | 0:3b093bd0819e | 39 | /** @addtogroup libSTProprietary |
EnricoG | 0:3b093bd0819e | 40 | * @{ |
EnricoG | 0:3b093bd0819e | 41 | * @brief This part of the library help to manage TAG with proprietary feature. |
EnricoG | 0:3b093bd0819e | 42 | */ |
EnricoG | 0:3b093bd0819e | 43 | |
EnricoG | 0:3b093bd0819e | 44 | |
EnricoG | 0:3b093bd0819e | 45 | /** @defgroup libSpecialFeature_Private_Functions |
EnricoG | 0:3b093bd0819e | 46 | * @{ |
EnricoG | 0:3b093bd0819e | 47 | */ |
EnricoG | 0:3b093bd0819e | 48 | |
EnricoG | 0:3b093bd0819e | 49 | |
EnricoG | 0:3b093bd0819e | 50 | /** |
EnricoG | 0:3b093bd0819e | 51 | * @} |
EnricoG | 0:3b093bd0819e | 52 | */ |
EnricoG | 0:3b093bd0819e | 53 | |
EnricoG | 0:3b093bd0819e | 54 | |
EnricoG | 0:3b093bd0819e | 55 | /** @defgroup libSpecialFeature_Public_Functions |
EnricoG | 0:3b093bd0819e | 56 | * @{ |
EnricoG | 0:3b093bd0819e | 57 | * @brief This file is used to manage private feature of the tag |
EnricoG | 0:3b093bd0819e | 58 | */ |
EnricoG | 0:3b093bd0819e | 59 | |
EnricoG | 0:3b093bd0819e | 60 | /** |
EnricoG | 0:3b093bd0819e | 61 | * @brief This fonction enable read only mode |
EnricoG | 0:3b093bd0819e | 62 | * @param pCurrentWritePassword : Write password is needed to have right to enable read only mode |
EnricoG | 0:3b093bd0819e | 63 | * @retval SUCCESS : M24SR access is now forbidden in write mode |
EnricoG | 0:3b093bd0819e | 64 | * @retval ERROR : operation does not complete |
EnricoG | 0:3b093bd0819e | 65 | */ |
EnricoG | 0:3b093bd0819e | 66 | uint16_t STProprietary_EnableReadOnly(uint8_t* pCurrentWritePassword) |
EnricoG | 0:3b093bd0819e | 67 | { |
EnricoG | 0:3b093bd0819e | 68 | uint16_t status; |
EnricoG | 0:3b093bd0819e | 69 | uint16_t FileId; |
EnricoG | 0:3b093bd0819e | 70 | |
EnricoG | 0:3b093bd0819e | 71 | /* Before using Verify command NDEF file must be selected */ |
EnricoG | 0:3b093bd0819e | 72 | GetNDEFFileId(&FileId); |
EnricoG | 0:3b093bd0819e | 73 | OpenNDEFSession(FileId, ASK_FOR_SESSION); |
EnricoG | 0:3b093bd0819e | 74 | |
EnricoG | 0:3b093bd0819e | 75 | status = EnableReadOnly( pCurrentWritePassword); |
EnricoG | 0:3b093bd0819e | 76 | |
EnricoG | 0:3b093bd0819e | 77 | CloseNDEFSession(FileId); |
EnricoG | 0:3b093bd0819e | 78 | |
EnricoG | 0:3b093bd0819e | 79 | return status; |
EnricoG | 0:3b093bd0819e | 80 | } |
EnricoG | 0:3b093bd0819e | 81 | |
EnricoG | 0:3b093bd0819e | 82 | /** |
EnricoG | 0:3b093bd0819e | 83 | * @brief This fonction disable read only mode |
EnricoG | 0:3b093bd0819e | 84 | * @param pCurrentWritePassword : Write password is needed to have right to disable read only mode |
EnricoG | 0:3b093bd0819e | 85 | * @retval SUCCESS : M24SR write access is now allowed |
EnricoG | 0:3b093bd0819e | 86 | * @retval ERROR : operation does not complete |
EnricoG | 0:3b093bd0819e | 87 | */ |
EnricoG | 0:3b093bd0819e | 88 | uint16_t STProprietary_DisableReadOnly(uint8_t* pCurrentWritePassword ) |
EnricoG | 0:3b093bd0819e | 89 | { |
EnricoG | 0:3b093bd0819e | 90 | uint16_t status; |
EnricoG | 0:3b093bd0819e | 91 | uint16_t FileId; |
EnricoG | 0:3b093bd0819e | 92 | |
EnricoG | 0:3b093bd0819e | 93 | /* Before using Verify command NDEF file must be selected */ |
EnricoG | 0:3b093bd0819e | 94 | GetNDEFFileId(&FileId); |
EnricoG | 0:3b093bd0819e | 95 | OpenNDEFSession(FileId, ASK_FOR_SESSION); |
EnricoG | 0:3b093bd0819e | 96 | |
EnricoG | 0:3b093bd0819e | 97 | status = DisableReadOnly( pCurrentWritePassword ); |
EnricoG | 0:3b093bd0819e | 98 | |
EnricoG | 0:3b093bd0819e | 99 | CloseNDEFSession(FileId); |
EnricoG | 0:3b093bd0819e | 100 | |
EnricoG | 0:3b093bd0819e | 101 | return status; |
EnricoG | 0:3b093bd0819e | 102 | } |
EnricoG | 0:3b093bd0819e | 103 | |
EnricoG | 0:3b093bd0819e | 104 | /** |
EnricoG | 0:3b093bd0819e | 105 | * @brief This fonction enable write only mode |
EnricoG | 0:3b093bd0819e | 106 | * @param pCurrentWritePassword : Write password is needed to have right to enable write only mode |
EnricoG | 0:3b093bd0819e | 107 | * @retval SUCCESS : M24SR access is now forbidden in read mode |
EnricoG | 0:3b093bd0819e | 108 | * @retval ERROR : operation does not complete |
EnricoG | 0:3b093bd0819e | 109 | */ |
EnricoG | 0:3b093bd0819e | 110 | uint16_t STProprietary_EnableWriteOnly(uint8_t* pCurrentWritePassword) |
EnricoG | 0:3b093bd0819e | 111 | { |
EnricoG | 0:3b093bd0819e | 112 | uint16_t status; |
EnricoG | 0:3b093bd0819e | 113 | uint16_t FileId; |
EnricoG | 0:3b093bd0819e | 114 | |
EnricoG | 0:3b093bd0819e | 115 | /* Before using Verify command NDEF file must be selected */ |
EnricoG | 0:3b093bd0819e | 116 | GetNDEFFileId(&FileId); |
EnricoG | 0:3b093bd0819e | 117 | OpenNDEFSession(FileId, ASK_FOR_SESSION); |
EnricoG | 0:3b093bd0819e | 118 | |
EnricoG | 0:3b093bd0819e | 119 | status = EnableWriteOnly( pCurrentWritePassword); |
EnricoG | 0:3b093bd0819e | 120 | |
EnricoG | 0:3b093bd0819e | 121 | CloseNDEFSession(FileId); |
EnricoG | 0:3b093bd0819e | 122 | |
EnricoG | 0:3b093bd0819e | 123 | return status; |
EnricoG | 0:3b093bd0819e | 124 | } |
EnricoG | 0:3b093bd0819e | 125 | |
EnricoG | 0:3b093bd0819e | 126 | /** |
EnricoG | 0:3b093bd0819e | 127 | * @brief This fonction disable write only mode |
EnricoG | 0:3b093bd0819e | 128 | * @param pCurrentWritePassword : Write password is needed to have right to disable write only mode |
EnricoG | 0:3b093bd0819e | 129 | * @retval SUCCESS : M24SR read access is now allowed |
EnricoG | 0:3b093bd0819e | 130 | * @retval ERROR : operation does not complete |
EnricoG | 0:3b093bd0819e | 131 | */ |
EnricoG | 0:3b093bd0819e | 132 | uint16_t STProprietary_DisableWriteOnly(uint8_t* pCurrentWritePassword) |
EnricoG | 0:3b093bd0819e | 133 | { |
EnricoG | 0:3b093bd0819e | 134 | uint16_t status; |
EnricoG | 0:3b093bd0819e | 135 | uint16_t FileId; |
EnricoG | 0:3b093bd0819e | 136 | |
EnricoG | 0:3b093bd0819e | 137 | /* Before using Verify command NDEF file must be selected */ |
EnricoG | 0:3b093bd0819e | 138 | GetNDEFFileId(&FileId); |
EnricoG | 0:3b093bd0819e | 139 | OpenNDEFSession(FileId, ASK_FOR_SESSION); |
EnricoG | 0:3b093bd0819e | 140 | |
EnricoG | 0:3b093bd0819e | 141 | status = DisableWriteOnly( pCurrentWritePassword); |
EnricoG | 0:3b093bd0819e | 142 | |
EnricoG | 0:3b093bd0819e | 143 | CloseNDEFSession(FileId); |
EnricoG | 0:3b093bd0819e | 144 | |
EnricoG | 0:3b093bd0819e | 145 | return status; |
EnricoG | 0:3b093bd0819e | 146 | } |
EnricoG | 0:3b093bd0819e | 147 | |
EnricoG | 0:3b093bd0819e | 148 | /** |
EnricoG | 0:3b093bd0819e | 149 | * @brief This function configure GPO purpose for RF or I2C session |
EnricoG | 0:3b093bd0819e | 150 | * @param GPO_config: GPO configuration to set |
EnricoG | 0:3b093bd0819e | 151 | * @param mode: select RF or I2C, GPO config to update |
EnricoG | 0:3b093bd0819e | 152 | * @retval Status : Status of the operation. |
EnricoG | 0:3b093bd0819e | 153 | */ |
EnricoG | 0:3b093bd0819e | 154 | uint16_t STProprietary_GPOConfig(uc8 GPO_config, uc8 mode) |
EnricoG | 0:3b093bd0819e | 155 | { |
EnricoG | 0:3b093bd0819e | 156 | uint16_t status; |
EnricoG | 0:3b093bd0819e | 157 | uint16_t FileId; |
EnricoG | 0:3b093bd0819e | 158 | |
EnricoG | 0:3b093bd0819e | 159 | /* Before using Verify command NDEF file must be selected */ |
EnricoG | 0:3b093bd0819e | 160 | GetNDEFFileId(&FileId); |
EnricoG | 0:3b093bd0819e | 161 | OpenNDEFSession(FileId, ASK_FOR_SESSION); |
EnricoG | 0:3b093bd0819e | 162 | status = GPO_Config(GPO_config, mode); |
EnricoG | 0:3b093bd0819e | 163 | CloseNDEFSession(FileId); |
EnricoG | 0:3b093bd0819e | 164 | |
EnricoG | 0:3b093bd0819e | 165 | return status; |
EnricoG | 0:3b093bd0819e | 166 | } |
EnricoG | 0:3b093bd0819e | 167 | |
EnricoG | 0:3b093bd0819e | 168 | |
EnricoG | 0:3b093bd0819e | 169 | /** |
EnricoG | 0:3b093bd0819e | 170 | * @} |
EnricoG | 0:3b093bd0819e | 171 | */ |
EnricoG | 0:3b093bd0819e | 172 | |
EnricoG | 0:3b093bd0819e | 173 | /** |
EnricoG | 0:3b093bd0819e | 174 | * @} |
EnricoG | 0:3b093bd0819e | 175 | */ |
EnricoG | 0:3b093bd0819e | 176 | |
EnricoG | 0:3b093bd0819e | 177 | /** |
EnricoG | 0:3b093bd0819e | 178 | * @} |
EnricoG | 0:3b093bd0819e | 179 | */ |
EnricoG | 0:3b093bd0819e | 180 | |
EnricoG | 0:3b093bd0819e | 181 | /******************* (C) COPYRIGHT 2013 STMicroelectronics *****END OF FILE****/ |
EnricoG | 0:3b093bd0819e | 182 |