Utility library to read and write Ndef messages from/to a Type4 NFC tag
Dependents: NFC M2M_2016_STM32 MyongjiElec_capstone1 IDW01M1_Cloud_IBM ... more
Fork of NDefLib by
NDEF NFC library
This library provides an abstract API to create NDEF formatted messages and records and to read/write them from/to a Type4 NFC Tag.
Implementations
At the moment, the NDEF API is implemented by X_NUCLEO_NFC01A1 and X_NUCLEO_NFC02A1 Dynamic NFC Tag libraries respectively driving the X-NUCLEO-NFC01A1 and X-NUCLEO-NFC02A1 boards.
Diff: Message.cpp
- Revision:
- 4:eaf6c49a86e4
- Parent:
- 1:a0eeb478a45a
- Child:
- 6:739e3211749d
diff -r 64bb6d5224dc -r eaf6c49a86e4 Message.cpp --- a/Message.cpp Fri Nov 27 15:09:55 2015 +0000 +++ b/Message.cpp Tue Dec 01 08:30:27 2015 +0000 @@ -15,72 +15,72 @@ namespace NDefLib { -uint16_t Message::getByteLenght()const{ - uint16_t lenght=2; //length size +uint16_t Message::getByteLength() const { + uint16_t lenght = 2; //length size - if(mRecords.size()==0) - return lenght+EmptyRecord().getByteLenght(); + if (mRecords.size() == 0) + return lenght + EmptyRecord().getByteLength(); std::vector<Record*>::const_iterator it = mRecords.begin(); const std::vector<Record*>::const_iterator end = mRecords.end(); - for(;it!=end;++it){ - lenght+= (*it)->getByteLenght(); - }//for + for (; it != end; ++it) { + lenght += (*it)->getByteLength(); + } //for return lenght; -}//getByteLenght +} //getByteLenght uint16_t Message::write(uint8_t *buffer) const { - const uint16_t length =getByteLenght()-2; - uint16_t offset=0; - buffer[offset++]=(uint8_t)((length & 0xFF00)>>8); - buffer[offset++]=(uint8_t)((length & 0x00FF)); + const uint16_t length = getByteLength() - 2; + uint16_t offset = 0; + buffer[offset++] = (uint8_t) ((length & 0xFF00) >> 8); + buffer[offset++] = (uint8_t) ((length & 0x00FF)); const uint32_t nRecord = mRecords.size(); - if(mRecords.size()==0){ - offset += EmptyRecord().write(buffer+offset); + if (mRecords.size() == 0) { + offset += EmptyRecord().write(buffer + offset); return offset; - }//else + } //else - for(uint32_t i=0;i<nRecord; i++){ + for (uint32_t i = 0; i < nRecord; i++) { Record *r = mRecords[i]; r->setAsMiddleRecord(); - if(i==0) + if (i == 0) r->setAsFirstRecord(); - if(i==nRecord-1) + if (i == nRecord - 1) r->setAsLastRecord(); - offset+= r->write(buffer+offset); - }//for + offset += r->write(buffer + offset); + } //for return offset; -}//write +} //write -void Message::parseMessage(const uint8_t *const rawNdefFile, - const uint8_t length,Message *msg){ - uint16_t offset=0; +void Message::parseMessage(const uint8_t * const rawNdefFile, + const uint8_t length, Message *msg) { + uint16_t offset = 0; Record *r; - Record::RecordHeader header; - do{ - const uint8_t headerLenght = header.loadHeader(rawNdefFile+offset); - r = RecordText::parse(header,rawNdefFile+offset+headerLenght); - if(r==NULL) - r = RecordAAR::parse(header,rawNdefFile+offset+headerLenght); - if(r==NULL) - r = RecordMimeType::parse(header,rawNdefFile+offset+headerLenght); - if(r==NULL) - r = RecordURI::parse(header,rawNdefFile+offset+headerLenght); + RecordHeader header; + do { + const uint8_t headerLenght = header.loadHeader(rawNdefFile + offset); + r = RecordText::parse(header, rawNdefFile + offset + headerLenght); + if (r == NULL) + r = RecordAAR::parse(header, rawNdefFile + offset + headerLenght); + if (r == NULL) + r = RecordMimeType::parse(header, + rawNdefFile + offset + headerLenght); + if (r == NULL) + r = RecordURI::parse(header, rawNdefFile + offset + headerLenght); offset += header.getRecordLength(); msg->addRecord(r); - }while(offset<length); + } while (offset < length); } - } /* namespace NDefLib */