//by Nissanka MD SLCOTM
String incom_Msg;
String Category; // first code or segment of msg
String Number_str; // second code or segment of msg
String Action; // Third code or segment of msg
String Board_No;// Fourth code or segment of msg
int first_Space_position;
int second_Space_position;
int third_Space_position;
int Number;
void setup() {
Serial.begin(9600);
Serial.println("Enter the command");
}
void loop() {
if(Serial.available()>0)
{
/*
delay(50);
Serial.print("Serial Message Size : ");
Serial.println(Serial.available());
*/
incom_Msg = Serial.readString();
/*
Serial.print("Incomming Message : ");
Serial.println(incom_Msg);
Serial.print("Incomming Message Size : ");
Serial.println(incom_Msg.length());
*/
/*
incom_Msg.trim();
Serial.print("Trimmed Message : ");
Serial.println(incom_Msg);
Serial.print("Trimmed Message Size : ");
Serial.println(incom_Msg.length());
*/
if(incom_Msg.indexOf("\n") >= 0)
{
Serial.print("Newline Character found at position : ");
Serial.println(incom_Msg.indexOf('\n'));
incom_Msg.replace("\n", " ");
Serial.println("Newline Character removed");
}
if(incom_Msg.indexOf("\r") >= 0)
{
Serial.print("Carriage return Character found at position : ");
Serial.println(incom_Msg.indexOf("\r"));
incom_Msg.replace("\r", " ");
Serial.println("Carriage return Character removed");
}
Serial.print("modified incomming Message (CR and NL removed) : ");
Serial.println(incom_Msg);
Serial.print("lenght of midified Message : ");
Serial.println(incom_Msg.length());
while (incom_Msg.indexOf(" ") >= 0) // if double spaces present
{
incom_Msg.replace(" ", " "); // double space replaced with single space
}
incom_Msg.trim(); // to remove leading space
Serial.print("Middle Duplicate Spaces Trimmed Message : ");
Serial.println(incom_Msg);
Serial.print("Middle Duplicate Spaces Trimmed Message Size : ");
Serial.println(incom_Msg.length());
incom_Msg.toUpperCase();
Serial.print("Message Converted to All Caps : ");
Serial.println(incom_Msg);
// Seperate the Codes
first_Space_position = incom_Msg.indexOf(" ");
second_Space_position = incom_Msg.indexOf(" ",first_Space_position + 1);
//third_Space_position = incom_Msg.indexOf(" ",second_Space_position + 1);
Category = incom_Msg.substring(0,first_Space_position);
Number_str = incom_Msg.substring(first_Space_position,second_Space_position);
Action = incom_Msg.substring(second_Space_position); // incom_Msg.substring(second_Space_position,third_Space_position);
//Board_No = incom_Msg.substring(third_Space_position);
Number = Number_str.toInt();
Serial.print("Category : ");
Serial.println(Category);
Serial.print("Number : ");
Serial.println(Number);
Serial.print("Action : ");
Serial.println(Action);
//Serial.print("Board_No : ");
//Serial.println(Board_No);
}
}