i wanna send string , actually three string , for that i am going to make combination of three string and than send that string to another arduino , but did not receive last part of string .
how can i fix it.
//sender code...
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2,3);
float FloatVal = 1.009;
unsigned long IntVal = 1234567890;
char charVal[10];
String stringOne, stringTwo, stringThree;
//String FloatVal;
//String IntVal;
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
Serial.print("start");
delay(1000);
flowrate();
Serial.print("StringOne:");Serial.println(stringOne);
delay(1000);
stringTwo+=String(IntVal);
Serial.print("StringTwo:"); Serial.println(stringTwo);
delay(1000);
string
Serial.print("StringThree:"); Serial.println(stringThree);
delay(1000);
mySerial.println(stringThree);
// testing code, that the combination of string can be split in to required different strings or not
Serial.print("floatval:");
Serial.println(getStringPartByNr(stringThree, ',', 0));
Serial.print("intVal:");
Serial.println(getStringPartByNr(stringThree, ',',1));
Serial.println(getStringPartByNr(stringThree,',',2));
// put your setup code here, to run once:
}
void loop() {
}
float flowrate()
{
dtostrf(FloatVal, 4, 3, charVal);
Serial.print("charVal:");
for ( int i = 0; i < sizeof(charVal);i++)
{
Serial.print(charVal[i]);
}
Serial.println();
for(int i =0; i< sizeof(charVal); i++)
{
stringOne+= charVal[i];
}
}
String getStringPartByNr( String data, char serarator, int index)
{
int stringData = 0;
String dataPart = "";
for(int i = 0; i<data.length()-1; i++) {
if ( data[i] == serarator) {
stringData++;
}
else if(stringData == index) {
dataPart.concat(data[i]);
}
else if (stringData > index) {
return dataPart;
break;
}
}
return dataPart;
}
//receiving code..
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2,3);
String inString = ""; // string to hold input
String inString1 = "";
String inString3 = "";
/**************** VARIABLES DECLARATION FOR timeremaining() *********************/
unsigned long time_s;
float DATA=0.0;
String one = "";
String Stringone = "";
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
mySerial.begin(9600);
// send an intro:
Serial.println("\n\nString toInt():");
Serial.println();
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// Read serial input:
while (mySerial.available()) {
int inChar = mySerial.read();
if(inChar != '\n') {
Stringone += (char)inChar;
}
else {
Serial.print("input String:");
one = Stringone;
Serial.println(one);
Stringone = "";
}
}
//String one = mySerial.read();
inString1 = getStringPartByNr(one, ',', 0);
//Serial.println(getStringPartByNr(one, ',', 0));
inString = getStringPartByNr(one,',',1);
//Serial.println(getStringPartByNr(one, ',', 1));
Serial.println(getStringPartByNr(one,',',2));
DATA = inString1.toFloat();
Serial.print("data:"); Serial.println(DATA);
inString1 = "";
time_s = inString.toInt();
Serial.print("time:"); Serial.println(time_s);
}
}
String getStringPartByNr( String data, char serarator, int index)
{
int stringData = 0;
String dataPart = "";
for(int i = 0; i<data.length()-1; i++) {
if ( data[i] == serarator) {
stringData++;
}
else if(stringData == index) {
dataPart.concat(data[i]);
}
else if (stringData > index) {
return dataPart;
break;
}
}
return dataPart;
}