mbed OS 5 example application using X-NUCLEO-NFC02A1
Dependencies: NDefLib X_NUCLEO_NFC02A1
Fork of HelloWorld_NFC02A1 by
Lib_NDEF/lib_NDEF_URI.cpp@0:892175366555, 2016-07-27 (annotated)
- Committer:
- rosarium
- Date:
- Wed Jul 27 09:25:33 2016 +0000
- Revision:
- 0:892175366555
first release of the complete mbed library for HelloWorld_NFC02A1
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| rosarium | 0:892175366555 | 1 | /** |
| rosarium | 0:892175366555 | 2 | ****************************************************************************** |
| rosarium | 0:892175366555 | 3 | * @file lib_NDEF_URI.c |
| rosarium | 0:892175366555 | 4 | * @author MMY Application Team |
| rosarium | 0:892175366555 | 5 | * @version $Revision: 1583 $ |
| rosarium | 0:892175366555 | 6 | * @date $Date: 2016-02-03 15:06:51 +0100 (Wed, 03 Feb 2016) $ |
| rosarium | 0:892175366555 | 7 | * @brief This file help to manage NDEF file that represent URI. |
| rosarium | 0:892175366555 | 8 | ****************************************************************************** |
| rosarium | 0:892175366555 | 9 | * @attention |
| rosarium | 0:892175366555 | 10 | * |
| rosarium | 0:892175366555 | 11 | * <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2> |
| rosarium | 0:892175366555 | 12 | * |
| rosarium | 0:892175366555 | 13 | * Licensed under ST MYLIBERTY SOFTWARE LICENSE AGREEMENT (the "License"); |
| rosarium | 0:892175366555 | 14 | * You may not use this file except in compliance with the License. |
| rosarium | 0:892175366555 | 15 | * You may obtain a copy of the License at: |
| rosarium | 0:892175366555 | 16 | * |
| rosarium | 0:892175366555 | 17 | * http://www.st.com/myliberty |
| rosarium | 0:892175366555 | 18 | * |
| rosarium | 0:892175366555 | 19 | * Unless required by applicable law or agreed to in writing, software |
| rosarium | 0:892175366555 | 20 | * distributed under the License is distributed on an "AS IS" BASIS, |
| rosarium | 0:892175366555 | 21 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, |
| rosarium | 0:892175366555 | 22 | * AND SPECIFICALLY DISCLAIMING THE IMPLIED WARRANTIES OF MERCHANTABILITY, |
| rosarium | 0:892175366555 | 23 | * FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. |
| rosarium | 0:892175366555 | 24 | * See the License for the specific language governing permissions and |
| rosarium | 0:892175366555 | 25 | * limitations under the License. |
| rosarium | 0:892175366555 | 26 | * |
| rosarium | 0:892175366555 | 27 | ****************************************************************************** |
| rosarium | 0:892175366555 | 28 | */ |
| rosarium | 0:892175366555 | 29 | /* Includes ------------------------------------------------------------------*/ |
| rosarium | 0:892175366555 | 30 | #include "lib_NDEF_URI.h" |
| rosarium | 0:892175366555 | 31 | #include <string.h> |
| rosarium | 0:892175366555 | 32 | |
| rosarium | 0:892175366555 | 33 | /** @addtogroup NFC_libraries |
| rosarium | 0:892175366555 | 34 | * @{ |
| rosarium | 0:892175366555 | 35 | * @brief <b>This is the library used to manage the content of the TAG (data) |
| rosarium | 0:892175366555 | 36 | * But also the specific feature of the tag, for instance |
| rosarium | 0:892175366555 | 37 | * password, gpo... </b> |
| rosarium | 0:892175366555 | 38 | */ |
| rosarium | 0:892175366555 | 39 | |
| rosarium | 0:892175366555 | 40 | |
| rosarium | 0:892175366555 | 41 | /** @addtogroup libNFC_FORUM |
| rosarium | 0:892175366555 | 42 | * @{ |
| rosarium | 0:892175366555 | 43 | * @brief This part of the library manage data which follow NFC forum organisation. |
| rosarium | 0:892175366555 | 44 | */ |
| rosarium | 0:892175366555 | 45 | |
| rosarium | 0:892175366555 | 46 | /** |
| rosarium | 0:892175366555 | 47 | * @brief This buffer contains the data send/received by TAG |
| rosarium | 0:892175366555 | 48 | */ |
| rosarium | 0:892175366555 | 49 | extern uint8_t NDEF_Buffer []; |
| rosarium | 0:892175366555 | 50 | |
| rosarium | 0:892175366555 | 51 | |
| rosarium | 0:892175366555 | 52 | |
| rosarium | 0:892175366555 | 53 | /** |
| rosarium | 0:892175366555 | 54 | * @brief This function read the URI information and store data in a structure. |
| rosarium | 0:892175366555 | 55 | * @param pRecordStruct : Pointer on the record structure. |
| rosarium | 0:892175366555 | 56 | * @param pURI : pointer on the structure to fill. |
| rosarium | 0:892175366555 | 57 | */ |
| rosarium | 0:892175366555 | 58 | void NDEF_URI::NDEF_Parse_WellKnowType( sRecordInfo *pRecordStruct, sURI_Info* pURI ) |
| rosarium | 0:892175366555 | 59 | { |
| rosarium | 0:892175366555 | 60 | uint32_t PayloadSize; |
| rosarium | 0:892175366555 | 61 | uint8_t Offset; |
| rosarium | 0:892175366555 | 62 | uint8_t* pPayload; |
| rosarium | 0:892175366555 | 63 | |
| rosarium | 0:892175366555 | 64 | pPayload = (uint8_t*)(pRecordStruct->PayloadBufferAdd); |
| rosarium | 0:892175366555 | 65 | |
| rosarium | 0:892175366555 | 66 | switch( *pPayload ) |
| rosarium | 0:892175366555 | 67 | { |
| rosarium | 0:892175366555 | 68 | case URI_ID_0x01: |
| rosarium | 0:892175366555 | 69 | memcpy( pURI->protocol, URI_ID_0x01_STRING, strlen(URI_ID_0x01_STRING) ); |
| rosarium | 0:892175366555 | 70 | Offset = strlen( URI_ID_0x01_STRING ); |
| rosarium | 0:892175366555 | 71 | break; |
| rosarium | 0:892175366555 | 72 | |
| rosarium | 0:892175366555 | 73 | case URI_ID_0x02: |
| rosarium | 0:892175366555 | 74 | memcpy( pURI->protocol, URI_ID_0x02_STRING, strlen(URI_ID_0x02_STRING) ); |
| rosarium | 0:892175366555 | 75 | Offset = strlen( URI_ID_0x02_STRING ); |
| rosarium | 0:892175366555 | 76 | break; |
| rosarium | 0:892175366555 | 77 | |
| rosarium | 0:892175366555 | 78 | case URI_ID_0x03: |
| rosarium | 0:892175366555 | 79 | memcpy( pURI->protocol, URI_ID_0x03_STRING, strlen(URI_ID_0x03_STRING) ); |
| rosarium | 0:892175366555 | 80 | Offset = strlen( URI_ID_0x03_STRING ); |
| rosarium | 0:892175366555 | 81 | break; |
| rosarium | 0:892175366555 | 82 | |
| rosarium | 0:892175366555 | 83 | case URI_ID_0x04: |
| rosarium | 0:892175366555 | 84 | memcpy( pURI->protocol, URI_ID_0x04_STRING, strlen(URI_ID_0x04_STRING) ); |
| rosarium | 0:892175366555 | 85 | Offset = strlen( URI_ID_0x04_STRING ); |
| rosarium | 0:892175366555 | 86 | break; |
| rosarium | 0:892175366555 | 87 | |
| rosarium | 0:892175366555 | 88 | case URI_ID_0x05: |
| rosarium | 0:892175366555 | 89 | memcpy( pURI->protocol, URI_ID_0x05_STRING, strlen(URI_ID_0x05_STRING) ); |
| rosarium | 0:892175366555 | 90 | Offset = strlen( URI_ID_0x05_STRING ); |
| rosarium | 0:892175366555 | 91 | break; |
| rosarium | 0:892175366555 | 92 | |
| rosarium | 0:892175366555 | 93 | case URI_ID_0x06: |
| rosarium | 0:892175366555 | 94 | memcpy( pURI->protocol, URI_ID_0x06_STRING, strlen(URI_ID_0x06_STRING) ); |
| rosarium | 0:892175366555 | 95 | Offset = strlen( URI_ID_0x06_STRING ); |
| rosarium | 0:892175366555 | 96 | break; |
| rosarium | 0:892175366555 | 97 | |
| rosarium | 0:892175366555 | 98 | case URI_ID_0x07: |
| rosarium | 0:892175366555 | 99 | memcpy( pURI->protocol, URI_ID_0x07_STRING, strlen(URI_ID_0x07_STRING) ); |
| rosarium | 0:892175366555 | 100 | Offset = strlen( URI_ID_0x07_STRING ); |
| rosarium | 0:892175366555 | 101 | break; |
| rosarium | 0:892175366555 | 102 | |
| rosarium | 0:892175366555 | 103 | case URI_ID_0x08: |
| rosarium | 0:892175366555 | 104 | memcpy( pURI->protocol, URI_ID_0x08_STRING, strlen(URI_ID_0x08_STRING) ); |
| rosarium | 0:892175366555 | 105 | Offset = strlen( URI_ID_0x08_STRING ); |
| rosarium | 0:892175366555 | 106 | break; |
| rosarium | 0:892175366555 | 107 | |
| rosarium | 0:892175366555 | 108 | case URI_ID_0x09: |
| rosarium | 0:892175366555 | 109 | memcpy( pURI->protocol, URI_ID_0x09_STRING, strlen(URI_ID_0x09_STRING) ); |
| rosarium | 0:892175366555 | 110 | Offset = strlen( URI_ID_0x09_STRING ); |
| rosarium | 0:892175366555 | 111 | break; |
| rosarium | 0:892175366555 | 112 | |
| rosarium | 0:892175366555 | 113 | case URI_ID_0x0A: |
| rosarium | 0:892175366555 | 114 | memcpy( pURI->protocol, URI_ID_0x0A_STRING, strlen(URI_ID_0x0A_STRING) ); |
| rosarium | 0:892175366555 | 115 | Offset = strlen( URI_ID_0x0A_STRING ); |
| rosarium | 0:892175366555 | 116 | break; |
| rosarium | 0:892175366555 | 117 | |
| rosarium | 0:892175366555 | 118 | case URI_ID_0x0B: |
| rosarium | 0:892175366555 | 119 | memcpy( pURI->protocol, URI_ID_0x0B_STRING, strlen(URI_ID_0x0B_STRING) ); |
| rosarium | 0:892175366555 | 120 | Offset = strlen( URI_ID_0x0B_STRING ); |
| rosarium | 0:892175366555 | 121 | break; |
| rosarium | 0:892175366555 | 122 | |
| rosarium | 0:892175366555 | 123 | case URI_ID_0x0C: |
| rosarium | 0:892175366555 | 124 | memcpy( pURI->protocol, URI_ID_0x0C_STRING, strlen(URI_ID_0x0C_STRING) ); |
| rosarium | 0:892175366555 | 125 | Offset = strlen( URI_ID_0x0C_STRING ); |
| rosarium | 0:892175366555 | 126 | break; |
| rosarium | 0:892175366555 | 127 | |
| rosarium | 0:892175366555 | 128 | case URI_ID_0x0D: |
| rosarium | 0:892175366555 | 129 | memcpy( pURI->protocol, URI_ID_0x0D_STRING, strlen(URI_ID_0x0D_STRING) ); |
| rosarium | 0:892175366555 | 130 | Offset = strlen( URI_ID_0x0D_STRING ); |
| rosarium | 0:892175366555 | 131 | break; |
| rosarium | 0:892175366555 | 132 | |
| rosarium | 0:892175366555 | 133 | case URI_ID_0x0E: |
| rosarium | 0:892175366555 | 134 | memcpy( pURI->protocol, URI_ID_0x0E_STRING, strlen(URI_ID_0x0E_STRING) ); |
| rosarium | 0:892175366555 | 135 | Offset = strlen( URI_ID_0x0E_STRING ); |
| rosarium | 0:892175366555 | 136 | break; |
| rosarium | 0:892175366555 | 137 | |
| rosarium | 0:892175366555 | 138 | case URI_ID_0x0F: |
| rosarium | 0:892175366555 | 139 | memcpy( pURI->protocol, URI_ID_0x0F_STRING, strlen(URI_ID_0x0F_STRING) ); |
| rosarium | 0:892175366555 | 140 | Offset = strlen( URI_ID_0x0F_STRING ); |
| rosarium | 0:892175366555 | 141 | break; |
| rosarium | 0:892175366555 | 142 | |
| rosarium | 0:892175366555 | 143 | case URI_ID_0x10: |
| rosarium | 0:892175366555 | 144 | memcpy( pURI->protocol, URI_ID_0x10_STRING, strlen(URI_ID_0x10_STRING) ); |
| rosarium | 0:892175366555 | 145 | Offset = strlen( URI_ID_0x10_STRING ); |
| rosarium | 0:892175366555 | 146 | break; |
| rosarium | 0:892175366555 | 147 | |
| rosarium | 0:892175366555 | 148 | case URI_ID_0x11: |
| rosarium | 0:892175366555 | 149 | memcpy( pURI->protocol, URI_ID_0x11_STRING, strlen(URI_ID_0x11_STRING) ); |
| rosarium | 0:892175366555 | 150 | Offset = strlen( URI_ID_0x11_STRING ); |
| rosarium | 0:892175366555 | 151 | break; |
| rosarium | 0:892175366555 | 152 | |
| rosarium | 0:892175366555 | 153 | case URI_ID_0x12: |
| rosarium | 0:892175366555 | 154 | memcpy( pURI->protocol, URI_ID_0x12_STRING, strlen(URI_ID_0x12_STRING) ); |
| rosarium | 0:892175366555 | 155 | Offset = strlen( URI_ID_0x12_STRING ); |
| rosarium | 0:892175366555 | 156 | break; |
| rosarium | 0:892175366555 | 157 | |
| rosarium | 0:892175366555 | 158 | case URI_ID_0x13: |
| rosarium | 0:892175366555 | 159 | memcpy( pURI->protocol, URI_ID_0x13_STRING, strlen(URI_ID_0x13_STRING) ); |
| rosarium | 0:892175366555 | 160 | Offset = strlen( URI_ID_0x13_STRING ); |
| rosarium | 0:892175366555 | 161 | break; |
| rosarium | 0:892175366555 | 162 | |
| rosarium | 0:892175366555 | 163 | case URI_ID_0x14: |
| rosarium | 0:892175366555 | 164 | memcpy( pURI->protocol, URI_ID_0x14_STRING, strlen(URI_ID_0x14_STRING) ); |
| rosarium | 0:892175366555 | 165 | Offset = strlen( URI_ID_0x14_STRING ); |
| rosarium | 0:892175366555 | 166 | break; |
| rosarium | 0:892175366555 | 167 | |
| rosarium | 0:892175366555 | 168 | case URI_ID_0x15: |
| rosarium | 0:892175366555 | 169 | memcpy( pURI->protocol, URI_ID_0x15_STRING, strlen(URI_ID_0x15_STRING) ); |
| rosarium | 0:892175366555 | 170 | Offset = strlen( URI_ID_0x15_STRING ); |
| rosarium | 0:892175366555 | 171 | break; |
| rosarium | 0:892175366555 | 172 | |
| rosarium | 0:892175366555 | 173 | case URI_ID_0x16: |
| rosarium | 0:892175366555 | 174 | memcpy( pURI->protocol, URI_ID_0x16_STRING, strlen(URI_ID_0x16_STRING) ); |
| rosarium | 0:892175366555 | 175 | Offset = strlen( URI_ID_0x16_STRING ); |
| rosarium | 0:892175366555 | 176 | break; |
| rosarium | 0:892175366555 | 177 | |
| rosarium | 0:892175366555 | 178 | case URI_ID_0x17: |
| rosarium | 0:892175366555 | 179 | memcpy( pURI->protocol, URI_ID_0x17_STRING, strlen(URI_ID_0x17_STRING) ); |
| rosarium | 0:892175366555 | 180 | Offset = strlen( URI_ID_0x17_STRING ); |
| rosarium | 0:892175366555 | 181 | break; |
| rosarium | 0:892175366555 | 182 | |
| rosarium | 0:892175366555 | 183 | case URI_ID_0x18: |
| rosarium | 0:892175366555 | 184 | memcpy( pURI->protocol, URI_ID_0x18_STRING, strlen(URI_ID_0x18_STRING) ); |
| rosarium | 0:892175366555 | 185 | Offset = strlen( URI_ID_0x18_STRING ); |
| rosarium | 0:892175366555 | 186 | break; |
| rosarium | 0:892175366555 | 187 | |
| rosarium | 0:892175366555 | 188 | case URI_ID_0x19: |
| rosarium | 0:892175366555 | 189 | memcpy( pURI->protocol, URI_ID_0x19_STRING, strlen(URI_ID_0x19_STRING) ); |
| rosarium | 0:892175366555 | 190 | Offset = strlen( URI_ID_0x19_STRING ); |
| rosarium | 0:892175366555 | 191 | break; |
| rosarium | 0:892175366555 | 192 | |
| rosarium | 0:892175366555 | 193 | case URI_ID_0x1A: |
| rosarium | 0:892175366555 | 194 | memcpy( pURI->protocol, URI_ID_0x1A_STRING, strlen(URI_ID_0x1A_STRING) ); |
| rosarium | 0:892175366555 | 195 | Offset = strlen( URI_ID_0x1A_STRING ); |
| rosarium | 0:892175366555 | 196 | break; |
| rosarium | 0:892175366555 | 197 | |
| rosarium | 0:892175366555 | 198 | case URI_ID_0x1B: |
| rosarium | 0:892175366555 | 199 | memcpy( pURI->protocol, URI_ID_0x1B_STRING, strlen(URI_ID_0x1B_STRING) ); |
| rosarium | 0:892175366555 | 200 | Offset = strlen( URI_ID_0x1B_STRING ); |
| rosarium | 0:892175366555 | 201 | break; |
| rosarium | 0:892175366555 | 202 | |
| rosarium | 0:892175366555 | 203 | case URI_ID_0x1C: |
| rosarium | 0:892175366555 | 204 | memcpy( pURI->protocol, URI_ID_0x1C_STRING, strlen(URI_ID_0x1C_STRING) ); |
| rosarium | 0:892175366555 | 205 | Offset = strlen( URI_ID_0x1C_STRING ); |
| rosarium | 0:892175366555 | 206 | break; |
| rosarium | 0:892175366555 | 207 | |
| rosarium | 0:892175366555 | 208 | case URI_ID_0x1D: |
| rosarium | 0:892175366555 | 209 | memcpy( pURI->protocol, URI_ID_0x1D_STRING, strlen(URI_ID_0x1D_STRING) ); |
| rosarium | 0:892175366555 | 210 | Offset = strlen( URI_ID_0x1D_STRING ); |
| rosarium | 0:892175366555 | 211 | break; |
| rosarium | 0:892175366555 | 212 | |
| rosarium | 0:892175366555 | 213 | case URI_ID_0x1E: |
| rosarium | 0:892175366555 | 214 | memcpy( pURI->protocol, URI_ID_0x1E_STRING, strlen(URI_ID_0x1E_STRING) ); |
| rosarium | 0:892175366555 | 215 | Offset = strlen( URI_ID_0x1E_STRING ); |
| rosarium | 0:892175366555 | 216 | break; |
| rosarium | 0:892175366555 | 217 | |
| rosarium | 0:892175366555 | 218 | case URI_ID_0x1F: |
| rosarium | 0:892175366555 | 219 | memcpy( pURI->protocol, URI_ID_0x1F_STRING, strlen(URI_ID_0x1F_STRING) ); |
| rosarium | 0:892175366555 | 220 | Offset = strlen( URI_ID_0x1F_STRING ); |
| rosarium | 0:892175366555 | 221 | break; |
| rosarium | 0:892175366555 | 222 | |
| rosarium | 0:892175366555 | 223 | case URI_ID_0x20: |
| rosarium | 0:892175366555 | 224 | memcpy( pURI->protocol, URI_ID_0x20_STRING, strlen(URI_ID_0x20_STRING) ); |
| rosarium | 0:892175366555 | 225 | Offset = strlen( URI_ID_0x20_STRING ); |
| rosarium | 0:892175366555 | 226 | break; |
| rosarium | 0:892175366555 | 227 | |
| rosarium | 0:892175366555 | 228 | case URI_ID_0x21: |
| rosarium | 0:892175366555 | 229 | memcpy( pURI->protocol, URI_ID_0x21_STRING, strlen(URI_ID_0x21_STRING) ); |
| rosarium | 0:892175366555 | 230 | Offset = strlen( URI_ID_0x21_STRING ); |
| rosarium | 0:892175366555 | 231 | break; |
| rosarium | 0:892175366555 | 232 | |
| rosarium | 0:892175366555 | 233 | case URI_ID_0x22: |
| rosarium | 0:892175366555 | 234 | memcpy( pURI->protocol, URI_ID_0x22_STRING, strlen(URI_ID_0x22_STRING) ); |
| rosarium | 0:892175366555 | 235 | Offset = strlen( URI_ID_0x22_STRING ); |
| rosarium | 0:892175366555 | 236 | break; |
| rosarium | 0:892175366555 | 237 | |
| rosarium | 0:892175366555 | 238 | case URI_ID_0x23: |
| rosarium | 0:892175366555 | 239 | memcpy( pURI->protocol, URI_ID_0x23_STRING, strlen(URI_ID_0x23_STRING) ); |
| rosarium | 0:892175366555 | 240 | Offset = strlen( URI_ID_0x23_STRING ); |
| rosarium | 0:892175366555 | 241 | break; |
| rosarium | 0:892175366555 | 242 | |
| rosarium | 0:892175366555 | 243 | default: |
| rosarium | 0:892175366555 | 244 | Offset = 0; |
| rosarium | 0:892175366555 | 245 | /* Should not happened */ |
| rosarium | 0:892175366555 | 246 | break; |
| rosarium | 0:892175366555 | 247 | } |
| rosarium | 0:892175366555 | 248 | /* add end of string character */ |
| rosarium | 0:892175366555 | 249 | pURI->protocol[Offset] = '\0'; |
| rosarium | 0:892175366555 | 250 | |
| rosarium | 0:892175366555 | 251 | pPayload++; /* go after well know byte */ |
| rosarium | 0:892175366555 | 252 | |
| rosarium | 0:892175366555 | 253 | PayloadSize = ((uint32_t)(pRecordStruct->PayloadLength3) << 24) | ((uint32_t)(pRecordStruct->PayloadLength2) << 16) | |
| rosarium | 0:892175366555 | 254 | ((uint32_t)(pRecordStruct->PayloadLength1) << 8) | pRecordStruct->PayloadLength0; |
| rosarium | 0:892175366555 | 255 | |
| rosarium | 0:892175366555 | 256 | PayloadSize = PayloadSize - 1; /* remove well know byte */ |
| rosarium | 0:892175366555 | 257 | |
| rosarium | 0:892175366555 | 258 | memcpy( pURI->URI_Message, pPayload, PayloadSize ); |
| rosarium | 0:892175366555 | 259 | /* add end of string character */ |
| rosarium | 0:892175366555 | 260 | pURI->URI_Message[PayloadSize] = '\0'; |
| rosarium | 0:892175366555 | 261 | |
| rosarium | 0:892175366555 | 262 | } |
| rosarium | 0:892175366555 | 263 | |
| rosarium | 0:892175366555 | 264 | /** |
| rosarium | 0:892175366555 | 265 | * @} |
| rosarium | 0:892175366555 | 266 | */ |
| rosarium | 0:892175366555 | 267 | |
| rosarium | 0:892175366555 | 268 | /** @defgroup libURI_Public_Functions |
| rosarium | 0:892175366555 | 269 | * @{ |
| rosarium | 0:892175366555 | 270 | * @brief This file is used to manage URI (stored or loaded in tag) |
| rosarium | 0:892175366555 | 271 | */ |
| rosarium | 0:892175366555 | 272 | |
| rosarium | 0:892175366555 | 273 | /** |
| rosarium | 0:892175366555 | 274 | * @brief This function read NDEF and retrieve URI information if any. |
| rosarium | 0:892175366555 | 275 | * @param pRecordStruct : Pointer on the record structure. |
| rosarium | 0:892175366555 | 276 | * @param pURI : pointer on the structure to fill. |
| rosarium | 0:892175366555 | 277 | * @retval NDEF_OK : URI information from NDEF have been retrieved. |
| rosarium | 0:892175366555 | 278 | * @retval NDEF_ERROR : Not able to retrieve URI information. |
| rosarium | 0:892175366555 | 279 | */ |
| rosarium | 0:892175366555 | 280 | uint16_t NDEF_URI::NDEF_ReadURI( sRecordInfo *pRecordStruct, sURI_Info *pURI ) |
| rosarium | 0:892175366555 | 281 | { |
| rosarium | 0:892175366555 | 282 | uint16_t status = NDEF_ERROR; |
| rosarium | 0:892175366555 | 283 | sRecordInfo *pSPRecordStruct; |
| rosarium | 0:892175366555 | 284 | uint32_t PayloadSize, RecordPosition; |
| rosarium | 0:892175366555 | 285 | uint8_t* pData; |
| rosarium | 0:892175366555 | 286 | |
| rosarium | 0:892175366555 | 287 | if( pRecordStruct->NDEF_Type == WELL_KNOWN_ABRIDGED_URI_TYPE ) |
| rosarium | 0:892175366555 | 288 | { |
| rosarium | 0:892175366555 | 289 | NDEF_Parse_WellKnowType( pRecordStruct, pURI ); |
| rosarium | 0:892175366555 | 290 | status = NDEF_OK; |
| rosarium | 0:892175366555 | 291 | } |
| rosarium | 0:892175366555 | 292 | else if( pRecordStruct->NDEF_Type == SMARTPOSTER_TYPE ) |
| rosarium | 0:892175366555 | 293 | { |
| rosarium | 0:892175366555 | 294 | for( RecordPosition = 0; RecordPosition < pRecordStruct->NbOfRecordInSPPayload; RecordPosition++ ) |
| rosarium | 0:892175366555 | 295 | { |
| rosarium | 0:892175366555 | 296 | pSPRecordStruct = pRecordStruct->SPRecordStructAdd[RecordPosition]; |
| rosarium | 0:892175366555 | 297 | if( pSPRecordStruct->NDEF_Type == WELL_KNOWN_ABRIDGED_URI_TYPE ) |
| rosarium | 0:892175366555 | 298 | { |
| rosarium | 0:892175366555 | 299 | NDEF_Parse_WellKnowType( pSPRecordStruct, pURI ); |
| rosarium | 0:892175366555 | 300 | status = NDEF_OK; |
| rosarium | 0:892175366555 | 301 | } |
| rosarium | 0:892175366555 | 302 | if( pSPRecordStruct->NDEF_Type == TEXT_TYPE ) |
| rosarium | 0:892175366555 | 303 | { |
| rosarium | 0:892175366555 | 304 | PayloadSize = ((uint32_t)(pSPRecordStruct->PayloadLength3) << 24) | ((uint32_t)(pSPRecordStruct->PayloadLength2) << 16) | |
| rosarium | 0:892175366555 | 305 | ((uint32_t)(pSPRecordStruct->PayloadLength1) << 8) | pSPRecordStruct->PayloadLength0; |
| rosarium | 0:892175366555 | 306 | |
| rosarium | 0:892175366555 | 307 | /* The instruction content the UTF-8 language code that is not used here */ |
| rosarium | 0:892175366555 | 308 | pData = (uint8_t*)pSPRecordStruct->PayloadBufferAdd; |
| rosarium | 0:892175366555 | 309 | PayloadSize -= *pData + 1; /* remove not usefull data */ |
| rosarium | 0:892175366555 | 310 | pData += *pData + 1; |
| rosarium | 0:892175366555 | 311 | |
| rosarium | 0:892175366555 | 312 | memcpy( pURI->Information, pData, PayloadSize ); |
| rosarium | 0:892175366555 | 313 | } |
| rosarium | 0:892175366555 | 314 | } |
| rosarium | 0:892175366555 | 315 | } |
| rosarium | 0:892175366555 | 316 | else |
| rosarium | 0:892175366555 | 317 | { |
| rosarium | 0:892175366555 | 318 | status = NDEF_ERROR; |
| rosarium | 0:892175366555 | 319 | } |
| rosarium | 0:892175366555 | 320 | |
| rosarium | 0:892175366555 | 321 | return status; |
| rosarium | 0:892175366555 | 322 | } |
| rosarium | 0:892175366555 | 323 | |
| rosarium | 0:892175366555 | 324 | /** |
| rosarium | 0:892175366555 | 325 | * @brief This function prepare the NDEF message with the URI data given in the structure. |
| rosarium | 0:892175366555 | 326 | * @param pURI : pointer on structure that contain the URI information. |
| rosarium | 0:892175366555 | 327 | * @param pNDEFMessage : pointer on the NDEF message. |
| rosarium | 0:892175366555 | 328 | * @param size : to store the size of the NDEF message generated. |
| rosarium | 0:892175366555 | 329 | */ |
| rosarium | 0:892175366555 | 330 | void NDEF_URI::NDEF_PrepareURIMessage( sURI_Info *pURI, uint8_t *pNDEFMessage, uint16_t *size ) |
| rosarium | 0:892175366555 | 331 | { |
| rosarium | 0:892175366555 | 332 | uint32_t uriSize, totalSize, Offset = 0; |
| rosarium | 0:892175366555 | 333 | uint32_t infoSize = 0; |
| rosarium | 0:892175366555 | 334 | char type; |
| rosarium | 0:892175366555 | 335 | |
| rosarium | 0:892175366555 | 336 | /* An URI can be included in a smart poster to add text to give instruction to user for instance */ |
| rosarium | 0:892175366555 | 337 | |
| rosarium | 0:892175366555 | 338 | /* URI (smart poster) Record Header */ |
| rosarium | 0:892175366555 | 339 | /************************************/ |
| rosarium | 0:892175366555 | 340 | /* 7 | 6 | 5 | 4 | 3 | 2 1 0 */ |
| rosarium | 0:892175366555 | 341 | /*----------------------------------*/ |
| rosarium | 0:892175366555 | 342 | /* MB ME CF SR IL TNF */ /* <---- CF=0, IL=0 and SR=1 TNF=1 NFC Forum Well-known type*/ |
| rosarium | 0:892175366555 | 343 | /*----------------------------------*/ |
| rosarium | 0:892175366555 | 344 | /* TYPE LENGTH */ |
| rosarium | 0:892175366555 | 345 | /*----------------------------------*/ |
| rosarium | 0:892175366555 | 346 | /* PAYLOAD LENGTH 3 */ /* <---- Used only if SR=0 */ |
| rosarium | 0:892175366555 | 347 | /*----------------------------------*/ |
| rosarium | 0:892175366555 | 348 | /* PAYLOAD LENGTH 2 */ /* <---- Used only if SR=0 */ |
| rosarium | 0:892175366555 | 349 | /*----------------------------------*/ |
| rosarium | 0:892175366555 | 350 | /* PAYLOAD LENGTH 1 */ /* <---- Used only if SR=0 */ |
| rosarium | 0:892175366555 | 351 | /*----------------------------------*/ |
| rosarium | 0:892175366555 | 352 | /* PAYLOAD LENGTH 0 */ |
| rosarium | 0:892175366555 | 353 | /*----------------------------------*/ |
| rosarium | 0:892175366555 | 354 | /* ID LENGTH */ /* <---- Not Used */ |
| rosarium | 0:892175366555 | 355 | /*----------------------------------*/ |
| rosarium | 0:892175366555 | 356 | /* TYPE */ |
| rosarium | 0:892175366555 | 357 | /*----------------------------------*/ |
| rosarium | 0:892175366555 | 358 | /* ID */ /* <---- Not Used */ |
| rosarium | 0:892175366555 | 359 | /************************************/ |
| rosarium | 0:892175366555 | 360 | |
| rosarium | 0:892175366555 | 361 | /* We need to know the URI type in order to define if an abreviation is available */ |
| rosarium | 0:892175366555 | 362 | type = getUriType( pURI->protocol ); |
| rosarium | 0:892175366555 | 363 | |
| rosarium | 0:892175366555 | 364 | /* URI : 1+URI for abreviate protocol*/ |
| rosarium | 0:892175366555 | 365 | if( type != URI_ID_0x00 ) |
| rosarium | 0:892175366555 | 366 | uriSize = 1 + strlen(pURI->URI_Message); |
| rosarium | 0:892175366555 | 367 | else /*: 1+protocol+URI else*/ |
| rosarium | 0:892175366555 | 368 | uriSize = 1 + strlen(pURI->protocol) + strlen(pURI->URI_Message); |
| rosarium | 0:892175366555 | 369 | |
| rosarium | 0:892175366555 | 370 | /* Check if a Smart poster is needed */ |
| rosarium | 0:892175366555 | 371 | if( pURI->Information[0] != '\0' ) |
| rosarium | 0:892175366555 | 372 | { |
| rosarium | 0:892175366555 | 373 | /* Info : 1+2+info */ |
| rosarium | 0:892175366555 | 374 | infoSize = 1 + ISO_ENGLISH_CODE_STRING_LENGTH + strlen(pURI->Information); |
| rosarium | 0:892175366555 | 375 | /* Total */ |
| rosarium | 0:892175366555 | 376 | totalSize = 4 + uriSize + 4 + infoSize; |
| rosarium | 0:892175366555 | 377 | if( uriSize > 255 ) totalSize += 3; /* Normal URI size */ |
| rosarium | 0:892175366555 | 378 | if( infoSize > 255 ) totalSize += 3; /* Normal Info size */ |
| rosarium | 0:892175366555 | 379 | |
| rosarium | 0:892175366555 | 380 | /* SmartPoster header */ |
| rosarium | 0:892175366555 | 381 | if( totalSize > 255 ) |
| rosarium | 0:892175366555 | 382 | { |
| rosarium | 0:892175366555 | 383 | pNDEFMessage[Offset++] = 0xC1; |
| rosarium | 0:892175366555 | 384 | pNDEFMessage[Offset++] = SMART_POSTER_TYPE_STRING_LENGTH; |
| rosarium | 0:892175366555 | 385 | pNDEFMessage[Offset++] = (totalSize & 0xFF000000) >> 24; |
| rosarium | 0:892175366555 | 386 | pNDEFMessage[Offset++] = (totalSize & 0x00FF0000) >> 16; |
| rosarium | 0:892175366555 | 387 | pNDEFMessage[Offset++] = (totalSize & 0x0000FF00) >> 8; |
| rosarium | 0:892175366555 | 388 | pNDEFMessage[Offset++] = totalSize & 0x000000FF; |
| rosarium | 0:892175366555 | 389 | } |
| rosarium | 0:892175366555 | 390 | else |
| rosarium | 0:892175366555 | 391 | { |
| rosarium | 0:892175366555 | 392 | pNDEFMessage[Offset++] = 0xD1; |
| rosarium | 0:892175366555 | 393 | pNDEFMessage[Offset++] = SMART_POSTER_TYPE_STRING_LENGTH; |
| rosarium | 0:892175366555 | 394 | pNDEFMessage[Offset++] = (uint8_t)totalSize; |
| rosarium | 0:892175366555 | 395 | } |
| rosarium | 0:892175366555 | 396 | memcpy( &pNDEFMessage[Offset], SMART_POSTER_TYPE_STRING, SMART_POSTER_TYPE_STRING_LENGTH ); |
| rosarium | 0:892175366555 | 397 | Offset += SMART_POSTER_TYPE_STRING_LENGTH; |
| rosarium | 0:892175366555 | 398 | } |
| rosarium | 0:892175366555 | 399 | |
| rosarium | 0:892175366555 | 400 | /* URI header */ |
| rosarium | 0:892175366555 | 401 | pNDEFMessage[Offset] = 0x81; |
| rosarium | 0:892175366555 | 402 | if( uriSize < 256 ) pNDEFMessage[Offset] |= 0x10; // Set the SR bit |
| rosarium | 0:892175366555 | 403 | if( pURI->Information[0] == '\0' ) pNDEFMessage[Offset] |= 0x40; // Set the ME bit |
| rosarium | 0:892175366555 | 404 | Offset++; |
| rosarium | 0:892175366555 | 405 | |
| rosarium | 0:892175366555 | 406 | pNDEFMessage[Offset++] = URI_TYPE_STRING_LENGTH; |
| rosarium | 0:892175366555 | 407 | if( uriSize > 255 ) |
| rosarium | 0:892175366555 | 408 | { |
| rosarium | 0:892175366555 | 409 | pNDEFMessage[Offset++] = (uriSize & 0xFF000000) >> 24; |
| rosarium | 0:892175366555 | 410 | pNDEFMessage[Offset++] = (uriSize & 0x00FF0000) >> 16; |
| rosarium | 0:892175366555 | 411 | pNDEFMessage[Offset++] = (uriSize & 0x0000FF00) >> 8; |
| rosarium | 0:892175366555 | 412 | pNDEFMessage[Offset++] = uriSize & 0x000000FF; |
| rosarium | 0:892175366555 | 413 | } |
| rosarium | 0:892175366555 | 414 | else |
| rosarium | 0:892175366555 | 415 | { |
| rosarium | 0:892175366555 | 416 | pNDEFMessage[Offset++] = (uint8_t)uriSize; |
| rosarium | 0:892175366555 | 417 | } |
| rosarium | 0:892175366555 | 418 | memcpy( &pNDEFMessage[Offset], URI_TYPE_STRING, URI_TYPE_STRING_LENGTH ); |
| rosarium | 0:892175366555 | 419 | Offset += URI_TYPE_STRING_LENGTH; |
| rosarium | 0:892175366555 | 420 | |
| rosarium | 0:892175366555 | 421 | pNDEFMessage[Offset++] = type; |
| rosarium | 0:892175366555 | 422 | if( type == URI_ID_0x00 ) // No abreviation |
| rosarium | 0:892175366555 | 423 | { |
| rosarium | 0:892175366555 | 424 | memcpy( &pNDEFMessage[Offset], pURI->protocol, strlen(pURI->protocol) ); |
| rosarium | 0:892175366555 | 425 | Offset += strlen(pURI->protocol); |
| rosarium | 0:892175366555 | 426 | } |
| rosarium | 0:892175366555 | 427 | |
| rosarium | 0:892175366555 | 428 | memcpy( &pNDEFMessage[Offset], pURI->URI_Message, strlen(pURI->URI_Message) ); |
| rosarium | 0:892175366555 | 429 | Offset += strlen(pURI->URI_Message); |
| rosarium | 0:892175366555 | 430 | |
| rosarium | 0:892175366555 | 431 | /* Information header */ |
| rosarium | 0:892175366555 | 432 | if( pURI->Information[0] != '\0' ) |
| rosarium | 0:892175366555 | 433 | { |
| rosarium | 0:892175366555 | 434 | if( infoSize > 255 ) |
| rosarium | 0:892175366555 | 435 | { |
| rosarium | 0:892175366555 | 436 | pNDEFMessage[Offset++] = 0x41; |
| rosarium | 0:892175366555 | 437 | pNDEFMessage[Offset++] = TEXT_TYPE_STRING_LENGTH; |
| rosarium | 0:892175366555 | 438 | pNDEFMessage[Offset++] = (infoSize & 0xFF000000) >> 24; |
| rosarium | 0:892175366555 | 439 | pNDEFMessage[Offset++] = (infoSize & 0x00FF0000) >> 16; |
| rosarium | 0:892175366555 | 440 | pNDEFMessage[Offset++] = (infoSize & 0x0000FF00) >> 8; |
| rosarium | 0:892175366555 | 441 | pNDEFMessage[Offset++] = infoSize & 0x000000FF; |
| rosarium | 0:892175366555 | 442 | } |
| rosarium | 0:892175366555 | 443 | else |
| rosarium | 0:892175366555 | 444 | { |
| rosarium | 0:892175366555 | 445 | pNDEFMessage[Offset++] = 0x51; |
| rosarium | 0:892175366555 | 446 | pNDEFMessage[Offset++] = TEXT_TYPE_STRING_LENGTH; |
| rosarium | 0:892175366555 | 447 | pNDEFMessage[Offset++] = (uint8_t)infoSize; |
| rosarium | 0:892175366555 | 448 | } |
| rosarium | 0:892175366555 | 449 | |
| rosarium | 0:892175366555 | 450 | memcpy( &pNDEFMessage[Offset], TEXT_TYPE_STRING, TEXT_TYPE_STRING_LENGTH ); |
| rosarium | 0:892175366555 | 451 | Offset+=TEXT_TYPE_STRING_LENGTH; |
| rosarium | 0:892175366555 | 452 | pNDEFMessage[Offset++] = ISO_ENGLISH_CODE_STRING_LENGTH; /* UTF-8 with x byte language code */ |
| rosarium | 0:892175366555 | 453 | memcpy( &pNDEFMessage[Offset], ISO_ENGLISH_CODE_STRING, ISO_ENGLISH_CODE_STRING_LENGTH ); |
| rosarium | 0:892175366555 | 454 | Offset += ISO_ENGLISH_CODE_STRING_LENGTH; |
| rosarium | 0:892175366555 | 455 | |
| rosarium | 0:892175366555 | 456 | /* Information payload */ |
| rosarium | 0:892175366555 | 457 | memcpy( &pNDEFMessage[Offset], pURI->Information, strlen(pURI->Information) ); |
| rosarium | 0:892175366555 | 458 | Offset += strlen(pURI->Information); |
| rosarium | 0:892175366555 | 459 | } |
| rosarium | 0:892175366555 | 460 | |
| rosarium | 0:892175366555 | 461 | *size = Offset; |
| rosarium | 0:892175366555 | 462 | |
| rosarium | 0:892175366555 | 463 | } |
| rosarium | 0:892175366555 | 464 | /** |
| rosarium | 0:892175366555 | 465 | * @brief This function write the NDEF file with the URI data given in the structure. |
| rosarium | 0:892175366555 | 466 | * @param pURI : pointer on structure that contain the URI information. |
| rosarium | 0:892175366555 | 467 | * @retval NDEF_OK : NDEF file data written in the tag. |
| rosarium | 0:892175366555 | 468 | * @retval NDEF_ERROR : not able to store NDEF in tag. |
| rosarium | 0:892175366555 | 469 | * @retval NDEF_ERROR_MEMORY_INTERNAL : Cannot write to tag. |
| rosarium | 0:892175366555 | 470 | * @retval NDEF_ERROR_NOT_FORMATED : CCFile data not supported or not present. |
| rosarium | 0:892175366555 | 471 | * @retval NDEF_ERROR_MEMORY_TAG : Size not compatible with memory. |
| rosarium | 0:892175366555 | 472 | * @retval NDEF_ERROR_LOCKED : Tag locked, cannot be write. |
| rosarium | 0:892175366555 | 473 | */ |
| rosarium | 0:892175366555 | 474 | uint16_t NDEF_URI::NDEF_WriteURI( sURI_Info *pURI ) |
| rosarium | 0:892175366555 | 475 | { |
| rosarium | 0:892175366555 | 476 | uint16_t status = NDEF_ERROR, Offset = 0; |
| rosarium | 0:892175366555 | 477 | |
| rosarium | 0:892175366555 | 478 | NDEF_PrepareURIMessage( pURI, &NDEF_Buffer[FIRST_RECORD_OFFSET], &Offset ); |
| rosarium | 0:892175366555 | 479 | |
| rosarium | 0:892175366555 | 480 | /* Write NDEF */ |
| rosarium | 0:892175366555 | 481 | NDEF_Buffer[0] = (Offset & 0xFF00) >> 8; |
| rosarium | 0:892175366555 | 482 | NDEF_Buffer[1] = Offset & 0x00FF; |
| rosarium | 0:892175366555 | 483 | |
| rosarium | 0:892175366555 | 484 | status = WriteData( 0x00, Offset + FIRST_RECORD_OFFSET, NDEF_Buffer ); |
| rosarium | 0:892175366555 | 485 | |
| rosarium | 0:892175366555 | 486 | return status; |
| rosarium | 0:892175366555 | 487 | } |
| rosarium | 0:892175366555 | 488 | |
| rosarium | 0:892175366555 | 489 | char NDEF_URI::getUriType( char *protocol ) |
| rosarium | 0:892175366555 | 490 | { |
| rosarium | 0:892175366555 | 491 | if( !memcmp( protocol, URI_ID_0x01_STRING, strlen(URI_ID_0x01_STRING) ) ) return URI_ID_0x01; |
| rosarium | 0:892175366555 | 492 | else if( !memcmp( protocol, URI_ID_0x02_STRING, strlen(URI_ID_0x02_STRING) ) ) return URI_ID_0x02; |
| rosarium | 0:892175366555 | 493 | else if( !memcmp( protocol, URI_ID_0x03_STRING, strlen(URI_ID_0x03_STRING) ) ) return URI_ID_0x03; |
| rosarium | 0:892175366555 | 494 | else if( !memcmp( protocol, URI_ID_0x04_STRING, strlen(URI_ID_0x04_STRING) ) ) return URI_ID_0x04; |
| rosarium | 0:892175366555 | 495 | else if( !memcmp( protocol, URI_ID_0x05_STRING, strlen(URI_ID_0x05_STRING) ) ) return URI_ID_0x05; |
| rosarium | 0:892175366555 | 496 | else if( !memcmp( protocol, URI_ID_0x06_STRING, strlen(URI_ID_0x06_STRING) ) ) return URI_ID_0x06; |
| rosarium | 0:892175366555 | 497 | else if( !memcmp( protocol, URI_ID_0x07_STRING, strlen(URI_ID_0x07_STRING) ) ) return URI_ID_0x07; |
| rosarium | 0:892175366555 | 498 | else if( !memcmp( protocol, URI_ID_0x08_STRING, strlen(URI_ID_0x08_STRING) ) ) return URI_ID_0x08; |
| rosarium | 0:892175366555 | 499 | else if( !memcmp( protocol, URI_ID_0x09_STRING, strlen(URI_ID_0x09_STRING) ) ) return URI_ID_0x09; |
| rosarium | 0:892175366555 | 500 | else if( !memcmp( protocol, URI_ID_0x0A_STRING, strlen(URI_ID_0x0A_STRING) ) ) return URI_ID_0x0A; |
| rosarium | 0:892175366555 | 501 | else if( !memcmp( protocol, URI_ID_0x0B_STRING, strlen(URI_ID_0x0B_STRING) ) ) return URI_ID_0x0B; |
| rosarium | 0:892175366555 | 502 | else if( !memcmp( protocol, URI_ID_0x0C_STRING, strlen(URI_ID_0x0C_STRING) ) ) return URI_ID_0x0C; |
| rosarium | 0:892175366555 | 503 | else if( !memcmp( protocol, URI_ID_0x0D_STRING, strlen(URI_ID_0x0D_STRING) ) ) return URI_ID_0x0D; |
| rosarium | 0:892175366555 | 504 | else if( !memcmp( protocol, URI_ID_0x0E_STRING, strlen(URI_ID_0x0E_STRING) ) ) return URI_ID_0x0E; |
| rosarium | 0:892175366555 | 505 | else if( !memcmp( protocol, URI_ID_0x0F_STRING, strlen(URI_ID_0x0F_STRING) ) ) return URI_ID_0x0F; |
| rosarium | 0:892175366555 | 506 | else if( !memcmp( protocol, URI_ID_0x10_STRING, strlen(URI_ID_0x10_STRING) ) ) return URI_ID_0x10; |
| rosarium | 0:892175366555 | 507 | else if( !memcmp( protocol, URI_ID_0x11_STRING, strlen(URI_ID_0x11_STRING) ) ) return URI_ID_0x11; |
| rosarium | 0:892175366555 | 508 | else if( !memcmp( protocol, URI_ID_0x12_STRING, strlen(URI_ID_0x12_STRING) ) ) return URI_ID_0x12; |
| rosarium | 0:892175366555 | 509 | else if( !memcmp( protocol, URI_ID_0x13_STRING, strlen(URI_ID_0x13_STRING) ) ) return URI_ID_0x13; |
| rosarium | 0:892175366555 | 510 | else if( !memcmp( protocol, URI_ID_0x14_STRING, strlen(URI_ID_0x14_STRING) ) ) return URI_ID_0x14; |
| rosarium | 0:892175366555 | 511 | else if( !memcmp( protocol, URI_ID_0x15_STRING, strlen(URI_ID_0x15_STRING) ) ) return URI_ID_0x15; |
| rosarium | 0:892175366555 | 512 | else if( !memcmp( protocol, URI_ID_0x16_STRING, strlen(URI_ID_0x16_STRING) ) ) return URI_ID_0x16; |
| rosarium | 0:892175366555 | 513 | else if( !memcmp( protocol, URI_ID_0x17_STRING, strlen(URI_ID_0x17_STRING) ) ) return URI_ID_0x17; |
| rosarium | 0:892175366555 | 514 | else if( !memcmp( protocol, URI_ID_0x18_STRING, strlen(URI_ID_0x18_STRING) ) ) return URI_ID_0x18; |
| rosarium | 0:892175366555 | 515 | else if( !memcmp( protocol, URI_ID_0x19_STRING, strlen(URI_ID_0x19_STRING) ) ) return URI_ID_0x19; |
| rosarium | 0:892175366555 | 516 | else if( !memcmp( protocol, URI_ID_0x1A_STRING, strlen(URI_ID_0x1A_STRING) ) ) return URI_ID_0x1A; |
| rosarium | 0:892175366555 | 517 | else if( !memcmp( protocol, URI_ID_0x1B_STRING, strlen(URI_ID_0x1B_STRING) ) ) return URI_ID_0x1B; |
| rosarium | 0:892175366555 | 518 | else if( !memcmp( protocol, URI_ID_0x1C_STRING, strlen(URI_ID_0x1C_STRING) ) ) return URI_ID_0x1C; |
| rosarium | 0:892175366555 | 519 | else if( !memcmp( protocol, URI_ID_0x1D_STRING, strlen(URI_ID_0x1D_STRING) ) ) return URI_ID_0x1D; |
| rosarium | 0:892175366555 | 520 | else if( !memcmp( protocol, URI_ID_0x1E_STRING, strlen(URI_ID_0x1E_STRING) ) ) return URI_ID_0x1E; |
| rosarium | 0:892175366555 | 521 | else if( !memcmp( protocol, URI_ID_0x1F_STRING, strlen(URI_ID_0x1F_STRING) ) ) return URI_ID_0x1F; |
| rosarium | 0:892175366555 | 522 | else if( !memcmp( protocol, URI_ID_0x20_STRING, strlen(URI_ID_0x20_STRING) ) ) return URI_ID_0x20; |
| rosarium | 0:892175366555 | 523 | else if( !memcmp( protocol, URI_ID_0x21_STRING, strlen(URI_ID_0x21_STRING) ) ) return URI_ID_0x21; |
| rosarium | 0:892175366555 | 524 | else if( !memcmp( protocol, URI_ID_0x22_STRING, strlen(URI_ID_0x22_STRING) ) ) return URI_ID_0x22; |
| rosarium | 0:892175366555 | 525 | else if( !memcmp( protocol, URI_ID_0x23_STRING, strlen(URI_ID_0x23_STRING) ) ) return URI_ID_0x23; |
| rosarium | 0:892175366555 | 526 | else return URI_ID_0x00; // No abreviation for this protocol |
| rosarium | 0:892175366555 | 527 | } |
| rosarium | 0:892175366555 | 528 | |
| rosarium | 0:892175366555 | 529 | NFCTAG_StatusTypeDef NDEF_URI::NFCTAG_ReadData( uint8_t * const pData, const uint16_t TarAddr, const uint16_t Size ) |
| rosarium | 0:892175366555 | 530 | { |
| rosarium | 0:892175366555 | 531 | return(mM24LRp->i2c_ReadData(pData, TarAddr, Size )); |
| rosarium | 0:892175366555 | 532 | } |
| rosarium | 0:892175366555 | 533 | NFCTAG_StatusTypeDef NDEF_URI::NFCTAG_WriteData( const uint8_t * const pData, const uint16_t TarAddr, const uint16_t Size ) |
| rosarium | 0:892175366555 | 534 | { |
| rosarium | 0:892175366555 | 535 | return(mM24LRp->i2c_WriteData( pData, TarAddr, Size )); |
| rosarium | 0:892175366555 | 536 | } |
| rosarium | 0:892175366555 | 537 | |
| rosarium | 0:892175366555 | 538 | /** |
| rosarium | 0:892175366555 | 539 | * @} |
| rosarium | 0:892175366555 | 540 | */ |
| rosarium | 0:892175366555 | 541 | |
| rosarium | 0:892175366555 | 542 | /** |
| rosarium | 0:892175366555 | 543 | * @} |
| rosarium | 0:892175366555 | 544 | */ |
| rosarium | 0:892175366555 | 545 | |
| rosarium | 0:892175366555 | 546 | /** |
| rosarium | 0:892175366555 | 547 | * @} |
| rosarium | 0:892175366555 | 548 | */ |
| rosarium | 0:892175366555 | 549 | |
| rosarium | 0:892175366555 | 550 | /******************* (C) COPYRIGHT 2016 STMicroelectronics *****END OF FILE****/ |
