RFID tracking with mbed & RS-EDP reference design

Dependencies:   RWDModule mbed SDCard

Committer:
donatien
Date:
Wed Jul 28 11:02:36 2010 +0000
Revision:
0:fd63457452f4

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:fd63457452f4 1 /*
donatien 0:fd63457452f4 2 Copyright (c) 2010 ARM Limited
donatien 0:fd63457452f4 3
donatien 0:fd63457452f4 4 Permission is hereby granted, free of charge, to any person obtaining a copy
donatien 0:fd63457452f4 5 of this software and associated documentation files (the "Software"), to deal
donatien 0:fd63457452f4 6 in the Software without restriction, including without limitation the rights
donatien 0:fd63457452f4 7 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
donatien 0:fd63457452f4 8 copies of the Software, and to permit persons to whom the Software is
donatien 0:fd63457452f4 9 furnished to do so, subject to the following conditions:
donatien 0:fd63457452f4 10
donatien 0:fd63457452f4 11 The above copyright notice and this permission notice shall be included in
donatien 0:fd63457452f4 12 all copies or substantial portions of the Software.
donatien 0:fd63457452f4 13
donatien 0:fd63457452f4 14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
donatien 0:fd63457452f4 15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
donatien 0:fd63457452f4 16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
donatien 0:fd63457452f4 17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
donatien 0:fd63457452f4 18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
donatien 0:fd63457452f4 19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
donatien 0:fd63457452f4 20 THE SOFTWARE.
donatien 0:fd63457452f4 21 */
donatien 0:fd63457452f4 22
donatien 0:fd63457452f4 23 #include "taginfo.h"
donatien 0:fd63457452f4 24 #include <stdio.h>
donatien 0:fd63457452f4 25
donatien 0:fd63457452f4 26 TagInfo::TagInfo(const uint8_t* id, size_t idLen, int locationId, time_t timestamp) : LogInfo(), m_locationId(locationId), m_timestamp(timestamp)
donatien 0:fd63457452f4 27 {
donatien 0:fd63457452f4 28 m_idStr = new char[2*idLen+1]; //Each byte is coded on two chars, plus one 0-terminating char
donatien 0:fd63457452f4 29 char* p = m_idStr; //Copy ID in a c-string format
donatien 0:fd63457452f4 30 for(int i = 0; i < idLen; i++)
donatien 0:fd63457452f4 31 {
donatien 0:fd63457452f4 32 sprintf(p, "%02x", id[i]);
donatien 0:fd63457452f4 33 p+=2;
donatien 0:fd63457452f4 34 }
donatien 0:fd63457452f4 35 }
donatien 0:fd63457452f4 36
donatien 0:fd63457452f4 37 TagInfo::~TagInfo()
donatien 0:fd63457452f4 38 {
donatien 0:fd63457452f4 39 delete[] m_idStr;
donatien 0:fd63457452f4 40 }
donatien 0:fd63457452f4 41
donatien 0:fd63457452f4 42 string TagInfo::toCSV() const
donatien 0:fd63457452f4 43 {
donatien 0:fd63457452f4 44 char str[64] = {0};
donatien 0:fd63457452f4 45 sprintf(str, "'%s',%d,%d", m_idStr, m_locationId, m_timestamp); //Format info into CSVs
donatien 0:fd63457452f4 46 return string(str);
donatien 0:fd63457452f4 47 }
donatien 0:fd63457452f4 48
donatien 0:fd63457452f4 49 string TagInfo::toSQL(const string& table) const
donatien 0:fd63457452f4 50 {
donatien 0:fd63457452f4 51 char cmd[128] = {0};
donatien 0:fd63457452f4 52 char time_str[32] = {0};
donatien 0:fd63457452f4 53
donatien 0:fd63457452f4 54 struct tm* timeinfo = localtime ( &m_timestamp );
donatien 0:fd63457452f4 55
donatien 0:fd63457452f4 56 strftime(time_str, 32, "%Y-%m-%d %H:%M:%S", timeinfo);
donatien 0:fd63457452f4 57
donatien 0:fd63457452f4 58 sprintf(cmd, "INSERT INTO %s (TagId, LastLocationId, Timestamp) VALUES('%s',%d,'%s')", table.c_str(), m_idStr, m_locationId, time_str); //Create SQL instruction to be executed by MySQL client
donatien 0:fd63457452f4 59
donatien 0:fd63457452f4 60 return string(cmd);
donatien 0:fd63457452f4 61 }