NFC NDEF library

Dependents:   Nucleo_NFC_Example I2C_NFC_Master Print_Entire_Nucleo_NFC01A1_Memory

Fork of lib_NDEF by Enrico Gregoratto

Committer:
EnricoG
Date:
Mon Dec 15 19:41:36 2014 +0000
Revision:
0:3b093bd0819e
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew 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>&copy; 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