Bmag incl gps rettelse

Dependencies:   mbed WDT MODSERIAL BME280

Committer:
MAA
Date:
Wed May 10 14:33:20 2017 +0000
Revision:
20:73fa202c73db
Parent:
19:5d25cffef662
Child:
21:325cb82f1838
Documentation update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MAA 0:b3313c5ffca3 1 #include "SPS.h"
MAA 0:b3313c5ffca3 2
MAA 19:5d25cffef662 3 //! SPS, class default constructor
MAA 19:5d25cffef662 4 /*!
MAA 19:5d25cffef662 5 Initializing different class member values, creating a header string.
MAA 19:5d25cffef662 6 */
MAA 0:b3313c5ffca3 7 SPS::SPS(){
MAA 2:39c4a85dc2a4 8
MAA 6:6d1683c8b26b 9 fileNameString = "";
MAA 2:39c4a85dc2a4 10 currentString = "";
MAA 2:39c4a85dc2a4 11 currentErrString = "";
MAA 6:6d1683c8b26b 12 lastString = "";
MAA 8:d6287c33b54a 13 headerString = "/tag identifier_id group_id date time zzz | s1 source_id interpreter_id data_line_version encoding source_firmware_version interpreter_firmware_version | barcode latitude longitude gpsFixFlag batteryvoltage mag_time mag_nt mag_sq checksum";
MAA 5:11782a2008c2 14 crc_tab16_init = 0;
MAA 5:11782a2008c2 15 errStatus = true;
MAA 2:39c4a85dc2a4 16
MAA 2:39c4a85dc2a4 17 };
MAA 2:39c4a85dc2a4 18
MAA 19:5d25cffef662 19
MAA 19:5d25cffef662 20 //! UpdateCurrentString, sps string creation method, taking data and info as parameters.
MAA 19:5d25cffef662 21 /*!
MAA 19:5d25cffef662 22
MAA 19:5d25cffef662 23 Generates an sps string containing everything needed in a BMAG sps string including crc, brackets etc.
MAA 19:5d25cffef662 24
MAA 19:5d25cffef662 25 \param tag: string containing the tag for the sps logging unit eg. "BMAG"
MAA 19:5d25cffef662 26 \param identifier_id: string containing the identifier id of the unit.
MAA 19:5d25cffef662 27 \param group_id: string containing the group id of the unit.
MAA 19:5d25cffef662 28 \param date: string containing the date in the format "YYYY/MM/DD"
MAA 19:5d25cffef662 29 \param time: string containing the current time in format "HH:MM:SS.FFF"
MAA 19:5d25cffef662 30 \param ZZZ: string containing "ZZZ" :)
MAA 19:5d25cffef662 31 \param s1: string containing s1 as described in the *.sps documentation
MAA 19:5d25cffef662 32 \param source_id: string containing the source id of the unit eg. "0000"
MAA 19:5d25cffef662 33 \param interpreter_id: string containing the interpreter id of the unit eg. "00"
MAA 19:5d25cffef662 34 \param data_line_version: string containing data line version as described in the *.sps documentation, eg. "01"
MAA 19:5d25cffef662 35 \param source_firmware_version: string containing the firmware version of the unit eg. "1.2"
MAA 19:5d25cffef662 36 \param barcode: string containing the barcode of the unit, eg. "12345"
MAA 19:5d25cffef662 37 \param latitude: string containing the latitude of the unit in decimal degrees. For further info read the *.sps documentation.
MAA 19:5d25cffef662 38 \param longitude: string containing the longitude of the unit in decimal degrees. For further info read the *.sps documentation.
MAA 19:5d25cffef662 39 \param gpsFixFlag: bool containing the gps fix status, 1 if gps fix is present, else 0.
MAA 19:5d25cffef662 40 \param batteryvoltage: string containing the battery voltage of the units battery pack, eg. "14.2"
MAA 19:5d25cffef662 41 \param mag_time: string containing the last timestamp received from GSM-19 device eg. "000048.0"
MAA 19:5d25cffef662 42 \param mag_nt: string containing the last mag measurement in nT eg. "036418.77"
MAA 19:5d25cffef662 43 \param mag_sq: string containing info about the measurement quality of the last mag measurement eg. "99"
MAA 19:5d25cffef662 44
MAA 19:5d25cffef662 45 */
MAA 8:d6287c33b54a 46 void SPS::UpdateCurrentString(string tag, string identifier_id, string group_id, string date, string time, string ZZZ,string s1, string source_id, string interpreter_id, string data_line_version, string source_firmware_version, string interpreter_firmware_version, string barcode, string latitude, string longitude, bool gpsFixFlag, string batteryvoltage, string mag_time, string mag_nt, string mag_sq, Serial * dbg){
MAA 2:39c4a85dc2a4 47
MAA 2:39c4a85dc2a4 48 currentString = "";
MAA 5:11782a2008c2 49 currentString.resize(256);
MAA 5:11782a2008c2 50 char checkSum[5];
MAA 5:11782a2008c2 51 memset(checkSum,'\0',5);
MAA 5:11782a2008c2 52 unsigned short chkSum = 0;
MAA 0:b3313c5ffca3 53
MAA 5:11782a2008c2 54 addToCurrentString(LINESTART);
MAA 5:11782a2008c2 55 addToCurrentString(tag);
MAA 5:11782a2008c2 56 addToCurrentString(SPACE);
MAA 5:11782a2008c2 57 addToCurrentString(identifier_id);
MAA 5:11782a2008c2 58 addToCurrentString(SPACE);
MAA 5:11782a2008c2 59 addToCurrentString(group_id);
MAA 5:11782a2008c2 60 addToCurrentString(SPACE);
MAA 5:11782a2008c2 61 addToCurrentString(date);
MAA 5:11782a2008c2 62 addToCurrentString(SPACE);
MAA 5:11782a2008c2 63 addToCurrentString(time);
MAA 5:11782a2008c2 64 addToCurrentString(SPACE);
MAA 5:11782a2008c2 65 addToCurrentString("ZZZ");
MAA 5:11782a2008c2 66 addToCurrentString(SPACE);
MAA 5:11782a2008c2 67 addToCurrentString(HEADEREND);
MAA 5:11782a2008c2 68 addToCurrentString(SPACE);
MAA 5:11782a2008c2 69 addToCurrentString(s1);
MAA 5:11782a2008c2 70 addToCurrentString(SPACE);
MAA 5:11782a2008c2 71 addToCurrentString(source_id);
MAA 5:11782a2008c2 72 addToCurrentString(SPACE);
MAA 5:11782a2008c2 73 addToCurrentString(interpreter_id);
MAA 5:11782a2008c2 74 addToCurrentString(SPACE);
MAA 5:11782a2008c2 75 addToCurrentString(data_line_version);
MAA 5:11782a2008c2 76 addToCurrentString(SPACE);
MAA 5:11782a2008c2 77 addToCurrentString(source_firmware_version);
MAA 5:11782a2008c2 78 addToCurrentString(SPACE);
MAA 5:11782a2008c2 79 addToCurrentString(interpreter_firmware_version);
MAA 5:11782a2008c2 80 addToCurrentString(SPACE);
MAA 5:11782a2008c2 81 addToCurrentString(HEADEREND);
MAA 5:11782a2008c2 82 addToCurrentString(SPACE);
MAA 8:d6287c33b54a 83 addToCurrentString(barcode);
MAA 8:d6287c33b54a 84 addToCurrentString(SPACE);
MAA 5:11782a2008c2 85 addToCurrentString(latitude);
MAA 5:11782a2008c2 86 addToCurrentString(SPACE);
MAA 5:11782a2008c2 87 addToCurrentString(longitude);
MAA 5:11782a2008c2 88 addToCurrentString(SPACE);
MAA 5:11782a2008c2 89
MAA 5:11782a2008c2 90 if(gpsFixFlag){
MAA 5:11782a2008c2 91 addToCurrentString('1');
MAA 5:11782a2008c2 92 }
MAA 5:11782a2008c2 93 if(!gpsFixFlag){
MAA 5:11782a2008c2 94 addToCurrentString('0');
MAA 5:11782a2008c2 95 }
MAA 5:11782a2008c2 96
MAA 5:11782a2008c2 97 addToCurrentString(SPACE);
MAA 8:d6287c33b54a 98 addToCurrentString(batteryvoltage);
MAA 8:d6287c33b54a 99 addToCurrentString(SPACE);
MAA 5:11782a2008c2 100 addToCurrentString(mag_time);
MAA 5:11782a2008c2 101 addToCurrentString(SPACE);
MAA 5:11782a2008c2 102 addToCurrentString(mag_nt);
MAA 5:11782a2008c2 103 addToCurrentString(SPACE);
MAA 5:11782a2008c2 104 addToCurrentString(mag_sq);
MAA 5:11782a2008c2 105
MAA 2:39c4a85dc2a4 106 //calculate checksum
MAA 5:11782a2008c2 107 for(int i = 0; i < strlen(currentString.c_str()); i++){
MAA 5:11782a2008c2 108 if(currentString[i] != '>' || currentString[i] != '<'){
MAA 5:11782a2008c2 109
MAA 5:11782a2008c2 110 chkSum = update_crc_16(chkSum, currentString[i]);
MAA 5:11782a2008c2 111
MAA 5:11782a2008c2 112 }
MAA 5:11782a2008c2 113 }
MAA 5:11782a2008c2 114
MAA 6:6d1683c8b26b 115 sprintf(checkSum, "%04X", chkSum);
MAA 2:39c4a85dc2a4 116
MAA 2:39c4a85dc2a4 117 //append rest of string
MAA 5:11782a2008c2 118 addToCurrentString(SPACE);
MAA 5:11782a2008c2 119 addToCurrentString(checkSum);
MAA 8:d6287c33b54a 120 addToCurrentString(LINESTOP);
MAA 2:39c4a85dc2a4 121 };
MAA 2:39c4a85dc2a4 122
MAA 19:5d25cffef662 123
MAA 19:5d25cffef662 124
MAA 19:5d25cffef662 125 //! UpdateCurrentErrString, sps ERR string creation method, taking data and info as parameters.
MAA 19:5d25cffef662 126 /*!
MAA 19:5d25cffef662 127
MAA 19:5d25cffef662 128 Generates the current sps ERR string containing everything needed in a BMAG sps string including crc, brackets etc.
MAA 19:5d25cffef662 129
MAA 19:5d25cffef662 130 \param tag: string containing the tag for the sps logging unit eg. "BMAG"
MAA 19:5d25cffef662 131 \param identifier_id: string containing the identifier id of the unit.
MAA 19:5d25cffef662 132 \param group_id: string containing the group id of the unit.
MAA 19:5d25cffef662 133 \param date: string containing the date in the format "YYYY/MM/DD"
MAA 19:5d25cffef662 134 \param time: string containing the current time in format "HH:MM:SS.FFF"
MAA 19:5d25cffef662 135 \param ZZZ: string containing "ZZZ" :)
MAA 19:5d25cffef662 136 \param s1: string containing s1 as described in the *.sps documentation
MAA 19:5d25cffef662 137 \param source_id: string containing the source id of the unit eg. "0000"
MAA 19:5d25cffef662 138 \param interpreter_id: string containing the interpreter id of the unit eg. "00"
MAA 19:5d25cffef662 139 \param data_line_version: string containing data line version as described in the *.sps documentation, eg. "01"
MAA 19:5d25cffef662 140 \param source_firmware_version: string containing the firmware version of the unit eg. "1.2"
MAA 19:5d25cffef662 141 \param barcode: string containing the barcode of the unit, eg. "12345"
MAA 19:5d25cffef662 142 \param latitude: string containing the latitude of the unit in decimal degrees. For further info read the *.sps documentation.
MAA 19:5d25cffef662 143 \param longitude: string containing the longitude of the unit in decimal degrees. For further info read the *.sps documentation.
MAA 19:5d25cffef662 144 \param gpsFixFlag: bool containing the gps fix status, 1 if gps fix is present, else 0.
MAA 19:5d25cffef662 145 \param mag_time: string containing the last timestamp received from GSM-19 device eg. "000048.0"
MAA 19:5d25cffef662 146 \param mag_nt: string containing the last mag measurement in nT eg. "036418.77"
MAA 19:5d25cffef662 147 \param mag_sq: string containing info about the measurement quality of the last mag measurement eg. "99"
MAA 19:5d25cffef662 148
MAA 19:5d25cffef662 149 */
MAA 7:872984a67d5b 150 void SPS::UpdateCurrentErrString(string tag, string identifier_id, string group_id, string date, string time, string ZZZ,string s1, string source_id, string interpreter_id, string data_line_version, string source_firmware_version, string interpreter_firmware_version, string latitude, string longitude, bool gpsFixFlag, string mag_time, string mag_nt, string mag_sq, Serial * dbg){
MAA 7:872984a67d5b 151
MAA 7:872984a67d5b 152 currentErrString = "";
MAA 7:872984a67d5b 153 currentErrString.resize(256);
MAA 7:872984a67d5b 154 char checkSum[5];
MAA 7:872984a67d5b 155 memset(checkSum,'\0',5);
MAA 7:872984a67d5b 156 unsigned short chkSum = 0;
MAA 7:872984a67d5b 157
MAA 7:872984a67d5b 158 addToCurrentErrString(LINESTART);
MAA 7:872984a67d5b 159 addToCurrentErrString(tag);
MAA 7:872984a67d5b 160 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 161 addToCurrentErrString(identifier_id);
MAA 7:872984a67d5b 162 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 163 addToCurrentErrString(group_id);
MAA 7:872984a67d5b 164 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 165 addToCurrentErrString(date);
MAA 7:872984a67d5b 166 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 167 addToCurrentErrString(time);
MAA 7:872984a67d5b 168 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 169 addToCurrentErrString("ZZZ");
MAA 7:872984a67d5b 170 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 171 addToCurrentErrString(HEADEREND);
MAA 7:872984a67d5b 172 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 173 addToCurrentErrString(s1);
MAA 7:872984a67d5b 174 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 175 addToCurrentErrString(source_id);
MAA 7:872984a67d5b 176 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 177 addToCurrentErrString(interpreter_id);
MAA 7:872984a67d5b 178 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 179 addToCurrentErrString(data_line_version);
MAA 7:872984a67d5b 180 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 181 addToCurrentErrString(source_firmware_version);
MAA 7:872984a67d5b 182 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 183 addToCurrentErrString(interpreter_firmware_version);
MAA 7:872984a67d5b 184 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 185 addToCurrentErrString(HEADEREND);
MAA 7:872984a67d5b 186 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 187 addToCurrentErrString("BMAG");
MAA 7:872984a67d5b 188 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 189 addToCurrentErrString("C02");
MAA 7:872984a67d5b 190 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 191 addToCurrentErrString("C03");
MAA 7:872984a67d5b 192
MAA 7:872984a67d5b 193 //calculate checksum
MAA 7:872984a67d5b 194 for(int i = 0; i < strlen(currentString.c_str()); i++){
MAA 7:872984a67d5b 195 if(currentString[i] != '>' || currentString[i] != '<'){
MAA 7:872984a67d5b 196
MAA 7:872984a67d5b 197 chkSum = update_crc_16(chkSum, currentErrString[i]);
MAA 7:872984a67d5b 198
MAA 7:872984a67d5b 199 }
MAA 7:872984a67d5b 200 }
MAA 7:872984a67d5b 201
MAA 7:872984a67d5b 202 sprintf(checkSum, "%04X", chkSum);
MAA 7:872984a67d5b 203
MAA 7:872984a67d5b 204 //append rest of string
MAA 7:872984a67d5b 205 addToCurrentErrString(SPACE);
MAA 7:872984a67d5b 206 addToCurrentErrString(checkSum);
MAA 8:d6287c33b54a 207 addToCurrentErrString(LINESTOP);
MAA 7:872984a67d5b 208 };
MAA 7:872984a67d5b 209
MAA 19:5d25cffef662 210 //! init_crc16_tab, creates a crc tab.
MAA 19:5d25cffef662 211 /*!
MAA 19:5d25cffef662 212 Populates a crc array for later use
MAA 19:5d25cffef662 213 */
MAA 4:c70ef089a3fd 214 void SPS::init_crc16_tab()
MAA 4:c70ef089a3fd 215 {
MAA 4:c70ef089a3fd 216 int i, j;
MAA 4:c70ef089a3fd 217 unsigned short crc, c;
MAA 4:c70ef089a3fd 218
MAA 4:c70ef089a3fd 219 for (i = 0; i < 256; i++)
MAA 4:c70ef089a3fd 220 {
MAA 4:c70ef089a3fd 221 crc = 0;
MAA 4:c70ef089a3fd 222 c = (unsigned short) i;
MAA 4:c70ef089a3fd 223
MAA 4:c70ef089a3fd 224 for (j = 0; j < 8; j++)
MAA 4:c70ef089a3fd 225 {
MAA 4:c70ef089a3fd 226 if ((crc ^ c) & 0x0001)
MAA 4:c70ef089a3fd 227 crc = (crc >> 1) ^ P_16;
MAA 4:c70ef089a3fd 228 else
MAA 4:c70ef089a3fd 229 crc = crc >> 1;
MAA 4:c70ef089a3fd 230
MAA 4:c70ef089a3fd 231 c = c >> 1;
MAA 4:c70ef089a3fd 232 }
MAA 4:c70ef089a3fd 233 crc_tab16[i] = crc;
MAA 4:c70ef089a3fd 234 }
MAA 4:c70ef089a3fd 235 crc_tab16_init = 1;
MAA 4:c70ef089a3fd 236 };
MAA 4:c70ef089a3fd 237
MAA 4:c70ef089a3fd 238
MAA 19:5d25cffef662 239
MAA 19:5d25cffef662 240 //! update_crc_16, updates crc tab.
MAA 19:5d25cffef662 241 /*!
MAA 20:73fa202c73db 242 \param crc: the crc currently getting calculated
MAA 20:73fa202c73db 243 \param c: next character to be part of crc
MAA 19:5d25cffef662 244 \return returns crc value
MAA 19:5d25cffef662 245 */
MAA 4:c70ef089a3fd 246 unsigned short SPS::update_crc_16(unsigned short crc, char c)
MAA 4:c70ef089a3fd 247 {
MAA 4:c70ef089a3fd 248 unsigned short tmp, short_c;
MAA 4:c70ef089a3fd 249
MAA 4:c70ef089a3fd 250 short_c = 0x00ff & (unsigned short) c;
MAA 4:c70ef089a3fd 251
MAA 4:c70ef089a3fd 252 if (!crc_tab16_init)
MAA 4:c70ef089a3fd 253 init_crc16_tab();
MAA 4:c70ef089a3fd 254
MAA 4:c70ef089a3fd 255 tmp = crc ^ short_c;
MAA 4:c70ef089a3fd 256 crc = (crc >> 8) ^ crc_tab16[tmp & 0xff];
MAA 4:c70ef089a3fd 257
MAA 4:c70ef089a3fd 258 return crc;
MAA 4:c70ef089a3fd 259 };
MAA 5:11782a2008c2 260
MAA 5:11782a2008c2 261
MAA 20:73fa202c73db 262
MAA 20:73fa202c73db 263 //! getCurrentString, returns the current sps data string
MAA 20:73fa202c73db 264 /*!
MAA 20:73fa202c73db 265 \return returns current sps data string
MAA 20:73fa202c73db 266 */
MAA 5:11782a2008c2 267 string SPS::getCurrentString(void){
MAA 5:11782a2008c2 268 return this->currentString;
MAA 5:11782a2008c2 269 };
MAA 5:11782a2008c2 270
MAA 5:11782a2008c2 271
MAA 20:73fa202c73db 272 //! getErrStatus, returns the current error status flag
MAA 20:73fa202c73db 273 /*!
MAA 20:73fa202c73db 274 \return returns the current error status flag (bool)
MAA 20:73fa202c73db 275 */
MAA 5:11782a2008c2 276 bool SPS::getErrStatus(void){
MAA 5:11782a2008c2 277 return this->errStatus;
MAA 5:11782a2008c2 278 };
MAA 5:11782a2008c2 279
MAA 20:73fa202c73db 280 //! setErrStatus, sets error status flag
MAA 20:73fa202c73db 281 /*!
MAA 20:73fa202c73db 282 \param status: boolean value assigned to errorStatus
MAA 20:73fa202c73db 283 */
MAA 5:11782a2008c2 284 void SPS::setErrStatus(bool status){
MAA 5:11782a2008c2 285 this->errStatus = status;
MAA 5:11782a2008c2 286 };
MAA 5:11782a2008c2 287
MAA 20:73fa202c73db 288 //! getHeaderString, getter method, returning header string for *.sps file
MAA 20:73fa202c73db 289 /*!
MAA 20:73fa202c73db 290 \return returns the header string for the *.sps file
MAA 20:73fa202c73db 291 */
MAA 5:11782a2008c2 292 string SPS::getHeaderString(void){
MAA 5:11782a2008c2 293 return this->headerString;
MAA 5:11782a2008c2 294 };
MAA 5:11782a2008c2 295
MAA 5:11782a2008c2 296 //add data to current string
MAA 20:73fa202c73db 297 //! addToCurrentString, appends string of data to the sps string currently being manipulated.
MAA 20:73fa202c73db 298 /*!
MAA 20:73fa202c73db 299 \param data: string containing data
MAA 20:73fa202c73db 300 */
MAA 5:11782a2008c2 301 void SPS::addToCurrentString(string data){
MAA 5:11782a2008c2 302 int currentStartIndex = strlen(currentString.c_str());
MAA 5:11782a2008c2 303 char dataStrLen = 0;
MAA 8:d6287c33b54a 304 int index = 0;
MAA 8:d6287c33b54a 305
MAA 5:11782a2008c2 306 dataStrLen = strlen(data.c_str());
MAA 5:11782a2008c2 307
MAA 5:11782a2008c2 308 for(int i = 0; i < dataStrLen; i++){
MAA 8:d6287c33b54a 309
MAA 8:d6287c33b54a 310 if((currentString[currentStartIndex+i] != '\r') || (currentString[currentStartIndex+i] != '\n')){
MAA 8:d6287c33b54a 311
MAA 8:d6287c33b54a 312 currentString[currentStartIndex+i] = data[index];
MAA 8:d6287c33b54a 313 index += 1;
MAA 8:d6287c33b54a 314
MAA 8:d6287c33b54a 315 }
MAA 8:d6287c33b54a 316
MAA 5:11782a2008c2 317 }
MAA 5:11782a2008c2 318 }
MAA 5:11782a2008c2 319
MAA 20:73fa202c73db 320 //! addToCurrentString, appends char to the sps string currently being manipulated.
MAA 20:73fa202c73db 321 /*!
MAA 20:73fa202c73db 322 \param data: data character
MAA 20:73fa202c73db 323 */
MAA 5:11782a2008c2 324 void SPS::addToCurrentString(char data){
MAA 5:11782a2008c2 325 int currentStartIndex = strlen(currentString.c_str());
MAA 5:11782a2008c2 326 currentString[currentStartIndex] = data;
MAA 6:6d1683c8b26b 327 };
MAA 6:6d1683c8b26b 328
MAA 20:73fa202c73db 329 //! addToCurrentErrString, appends string to the sps err_string currently being manipulated.
MAA 20:73fa202c73db 330 /*!
MAA 20:73fa202c73db 331 \param data: data string
MAA 20:73fa202c73db 332 */
MAA 7:872984a67d5b 333 void SPS::addToCurrentErrString(string data){
MAA 7:872984a67d5b 334 int currentStartIndex = strlen(currentErrString.c_str());
MAA 7:872984a67d5b 335 char dataStrLen = 0;
MAA 7:872984a67d5b 336 dataStrLen = strlen(data.c_str());
MAA 7:872984a67d5b 337
MAA 7:872984a67d5b 338 for(int i = 0; i < dataStrLen; i++){
MAA 7:872984a67d5b 339 currentErrString[currentStartIndex+i] = data[i];
MAA 7:872984a67d5b 340 }
MAA 7:872984a67d5b 341
MAA 7:872984a67d5b 342 };
MAA 20:73fa202c73db 343
MAA 20:73fa202c73db 344 //! addToCurrentErrString, appends a character to the sps err_string currently being manipulated.
MAA 20:73fa202c73db 345 /*!
MAA 20:73fa202c73db 346 \param data: data char
MAA 20:73fa202c73db 347 */
MAA 7:872984a67d5b 348 void SPS::addToCurrentErrString(char data){
MAA 7:872984a67d5b 349 int currentStartIndex = strlen(currentErrString.c_str());
MAA 7:872984a67d5b 350 currentErrString[currentStartIndex] = data;
MAA 7:872984a67d5b 351
MAA 7:872984a67d5b 352 };
MAA 7:872984a67d5b 353
MAA 20:73fa202c73db 354 //! generateSpsFilename, generates a sps file name, including file postfix, using the current date as input.
MAA 20:73fa202c73db 355 /*!
MAA 20:73fa202c73db 356 \param formattedDate: Date string using a formatted date witht he format: "YYYY/MM/DD"
MAA 20:73fa202c73db 357 */
MAA 6:6d1683c8b26b 358 void SPS::generateSpsFilename(string formattedDate){
MAA 6:6d1683c8b26b 359
MAA 7:872984a67d5b 360 fileNameString.resize(25);
MAA 6:6d1683c8b26b 361
MAA 7:872984a67d5b 362 fileNameString.replace(0, 10, "/usb/BMAG_");
MAA 6:6d1683c8b26b 363
MAA 7:872984a67d5b 364 fileNameString[10] = formattedDate[0];
MAA 7:872984a67d5b 365 fileNameString[11] = formattedDate[1];
MAA 7:872984a67d5b 366 fileNameString[12] = formattedDate[2];
MAA 7:872984a67d5b 367 fileNameString[13] = formattedDate[3];
MAA 7:872984a67d5b 368 fileNameString[14] = '-';
MAA 7:872984a67d5b 369 fileNameString[15] = formattedDate[5];
MAA 7:872984a67d5b 370 fileNameString[16] = formattedDate[6];
MAA 7:872984a67d5b 371 fileNameString[17] = '-';
MAA 7:872984a67d5b 372 fileNameString[18] = formattedDate[8];
MAA 7:872984a67d5b 373 fileNameString[19] = formattedDate[9];
MAA 6:6d1683c8b26b 374
MAA 7:872984a67d5b 375 fileNameString[20] = '.';
MAA 7:872984a67d5b 376 fileNameString[21] = 's';
MAA 7:872984a67d5b 377 fileNameString[22] = 'p';
MAA 7:872984a67d5b 378 fileNameString[23] = 's';
MAA 6:6d1683c8b26b 379
MAA 6:6d1683c8b26b 380 };
MAA 6:6d1683c8b26b 381
MAA 20:73fa202c73db 382 //! getSpsFileName, getter method, returning a *.sps filename based on the formatted date generated using generateSpsFilename(string formattedDate) method.
MAA 20:73fa202c73db 383 /*!
MAA 20:73fa202c73db 384 \return fileNameString returns file name including postfix.
MAA 20:73fa202c73db 385 */
MAA 6:6d1683c8b26b 386 string SPS::getSpsFileName(void){
MAA 6:6d1683c8b26b 387
MAA 6:6d1683c8b26b 388 return this->fileNameString;
MAA 6:6d1683c8b26b 389
MAA 7:872984a67d5b 390 };
MAA 7:872984a67d5b 391
MAA 20:73fa202c73db 392 //! getCurrentErrString, getter method returning current sps error string
MAA 20:73fa202c73db 393 /*!
MAA 20:73fa202c73db 394 \return currentErrString: returns the current sps error string.
MAA 20:73fa202c73db 395 */
MAA 7:872984a67d5b 396 string SPS::getCurrentErrString(void){
MAA 7:872984a67d5b 397 return this->currentErrString;
MAA 5:11782a2008c2 398 };