I have a simple function to parse an incoming string via serial. The incoming string has a format of :
<X,5,2018,09,06,22,15,00> ( for trial I am directly entering this in the Arduino monitor)
The < and > are start and end markers.
The 5 is a interval value in second.
Rest of the string is YYYY,MM,DD,HH,MM,SS
When i try to print the result i always get zero for all places. What am i doing wrong ?
// ********************************
void parseLVmessage() {
char interval[4], yearVal[5], monthVal[3], dayVal[3];
char hourVal[3], minuteVal[3], secondVal[3];
char *parsedMsg;
int intervalInt, yearInt, monthInt, dayInt, hourInt, minuteInt, secondInt;
parsedMsg = strtok(msgFromLVapp, ","); // Discard the first X character
parsedMsg = strtok(NULL, ",");
strcpy( interval, parsedMsg);
interval[4] ='\0';
intervalInt = atoi(interval);
parsedMsg = strtok(NULL, ",");
strcpy( yearVal, parsedMsg);
yearVal[5] ='\0';
yearInt = atoi(yearVal);
parsedMsg = strtok(NULL, ",");
strcpy( monthVal, parsedMsg);
monthVal[3]='\0';
monthInt = atoi(monthVal);
parsedMsg = strtok(NULL, ",");
strcpy( dayVal, parsedMsg);
dayVal[3]='\0';
dayInt = atoi(dayVal);
parsedMsg = strtok(NULL, ",");
strcpy( hourVal, parsedMsg);
hourVal[3]='\0';
hourInt = atoi(hourVal);
parsedMsg = strtok(NULL, ",");
strcpy( minuteVal, parsedMsg);
minuteVal[3]='\0';
minuteInt = atoi(minuteVal);
parsedMsg = strtok(NULL, ",");
strcpy( secondVal, parsedMsg);
secondVal[3]='\0';
secondInt = atoi(secondVal);
Serial.print(intervalInt);
Serial.print(" : ");
Serial.print(yearInt);
Serial.print(" : ");
Serial.print(monthInt);
Serial.print(" : ");
Serial.print(dayInt);
Serial.print(" : ");
Serial.print(hourInt);
Serial.print(" : ");
Serial.print(minuteInt);
Serial.print(" : ");
Serial.println(secondInt);
EEPROM.put(epromAddress, intervalInt);
loggingInterval = intervalInt;
rtc.adjust(DateTime(yearInt, monthInt, dayInt, hourInt, minuteInt, secondInt));
}