String message = "";
String currentChar;
int h;
String parsedMessage;
int variableIndex;
String address;
String receivedMessage;
String messageLength;
String strength;
String signalToNoise;
String parsedAddress;
unsigned long time1;
unsigned long time2;
void setup() {
Serial.begin(9600);
Serial.println("BEGIN");
Serial.println();
pinMode(25, INPUT_PULLUP);
pinMode(26, INPUT_PULLUP);
}
void loop() {
if (digitalRead(25) == LOW) {
if (millis() > time1) {
message = "";
message = "+RCV=50,5,HELLO,-99,40";
variableIndex = 0;
h = 0;
read();
time1 = millis() + 500;
}
}
if (digitalRead(26) == LOW) {
if (millis() > time2) {
message = "";
message = "+RCV=544,58,HELL,-91,42";
variableIndex = 0;
h = 0;
read();
time2 = millis() + 500;
}
}
}
void read (){
message = message + ",";
while (h < message.length()) {
currentChar = message[h];
if (currentChar == ",") {
currentChar = "";
if (variableIndex == 0) {
address = parsedMessage;
}
if (variableIndex == 1) {
messageLength = parsedMessage;
}
if (variableIndex == 2) {
receivedMessage = parsedMessage;
}
if (variableIndex == 3) {
strength = parsedMessage;
}
if (variableIndex == 4) {
signalToNoise = parsedMessage;
}
variableIndex ++;
parsedMessage = "";
}
parsedMessage = parsedMessage + currentChar;
h++;
}
parsedAddress = "";
for (h = 0; h < address.length(); h++) {
if (isDigit(address[h])) {
parsedAddress += address[h];
}
}
Serial.print("Address: ");
Serial.println(address);
Serial.print("Parsed number from address: ");
Serial.println(parsedAddress);
Serial.print("Length: ");
Serial.println(messageLength);
Serial.print("Message: ");
Serial.println(receivedMessage);
Serial.print("Strenght: ");
Serial.println(strength);
Serial.print("Noise ratio: ");
Serial.println(signalToNoise);
Serial.println("**********************");
}