// A message without CR or LF at the end
char message[] = "Apple,Oak,Silk,1kg,1,0,0,0,0.000000,0.000000,0.00,-252,14.41,1100.00";
void setup()
{
Serial.begin(115200);
char fruit[40] = ""; // initialize as empty string
char tree[40] = "";
char fabric[40] = "";
char weight[40] = "";
int id = 0;
int hourRead = 0;
int minRead = 0;
int secRead = 0;
float latRead = 0;
float lonRead = 0;
float altRead = 0;
int sensorRead = 0;
float voltRead = 0.0;
float percRead = 0.0;
if( sscanf( message, "%[^,],%[^,],%[^,],%[^,],%d,%d,%d,%d,%f,%f,%f,%d,%f,%f", fruit, tree, fabric, weight, &id, &hourRead, &minRead, &secRead, &latRead, &lonRead, &altRead, &sensorRead, &voltRead, &percRead) == 14)
{
Serial.print(" fruit: ");
Serial.println( fruit);
Serial.print(" tree: ");
Serial.println( tree);
Serial.print(" fabric: ");
Serial.println( fabric);
Serial.print(" weight: ");
Serial.println( weight);
Serial.print(" ID: ");
Serial.println(id);
Serial.print(" Time: ");
Serial.print(hourRead);
Serial.print(":");
Serial.print(minRead);
Serial.print(":");
Serial.println(secRead);
Serial.print(" Location: ");
Serial.print(latRead);
Serial.print(", ");
Serial.println(lonRead);
Serial.print(" Altitude: ");
Serial.println(altRead);
Serial.print(" Sensor Reading: ");
Serial.println(sensorRead);
Serial.print(" Voltage: ");
Serial.println(voltRead);
Serial.print(" Battery: ");
Serial.print(percRead);
Serial.println("%");
}
else
{
Serial.println( "Can not parse");
}
}
void loop()
{
}