Last active
March 7, 2017 00:47
-
-
Save MrityunjaiKumar/6df577ed6dbb9561aa845e54fcc1753b to your computer and use it in GitHub Desktop.
Software UART and String exchange (using statistical mode)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############################## Master side (ESP)################################################ | |
#define v_2 13 //GPIO13 // MOSI | |
#define v_3 12 //GPIO12 // MISO | |
#define v_4 14 //GPIO14 //SCK | |
#define v_5 16 //GPIO16 | |
#define v_6 adc //ADC | |
#define v_7 reset //RESET | |
#define g_2 15 //GPIO15 //SS | |
#define g_3 2 //GPIO29 //TX1 | |
#define g_4 4 //GPIO4 //SDA | |
#define g_5 5 //GPIO5 //SCL | |
#define g_6 rxd //RXD //RX0 | |
#define g_7 txd //TXD //TX0 | |
#include <SoftwareSerial.h> | |
SoftwareSerial ToArduinoSerial(g_3,g_2); | |
String dummyString,dummyNumber,previousString="",currentString=""; | |
const int indexMax=20; | |
int modeArray[indexMax]; | |
int modeIndex=0; | |
int correctMode; | |
void setup() { | |
// put your setup code here, to run once: | |
Serial.begin(9600); | |
// while(!Serial){ ; } // waiting for MCU | |
Serial.println("Connected to MCU"); | |
//software uart settings | |
ToArduinoSerial.begin(9600); | |
// while(!EspSerial){Serial.print("*");} //waiting for esp to connect | |
} | |
int mode_x(int *data, int count) | |
{ | |
int pos; | |
int inner; | |
int most; | |
int mostcount; | |
int current; | |
int currentcount; | |
most = 0; | |
mostcount = 0; | |
for(pos=0; pos<count; pos++) | |
{ | |
current = data[pos]; | |
currentcount = 0; | |
for(inner=pos+1; inner<count; inner++) | |
{ | |
if(data[inner]==current) | |
{ | |
currentcount++; | |
} | |
} | |
if(currentcount > mostcount) | |
{ | |
most = current; | |
mostcount = currentcount; | |
} | |
// If we have less array slices left than the current | |
// maximum count, then there is no room left to find | |
// a bigger count. We have finished early and we can | |
// go home. | |
if(count-pos < mostcount) | |
{ | |
break; | |
} | |
} | |
// Serial.print("most is ");Serial.println(most); | |
return most; | |
} | |
int goForMode(String dummy){ | |
modeArray[modeIndex]=dummy.length(); | |
// Serial.print(modeArray[modeIndex]); | |
modeIndex=modeIndex+1; | |
int mode_value; | |
if(modeIndex>indexMax){ | |
mode_value =mode_x(modeArray,indexMax); | |
Serial.print("^^^^^^^^^^^^^^^^^^^^^^^Mode number"); Serial.println(mode_value); | |
//Serial.print("Optimum String ===>"); Serial.println(); | |
//clear array | |
for(int i=0;i<indexMax; i++){ | |
modeArray[i]=0; | |
} | |
modeIndex=0; | |
} | |
return mode_value; | |
} | |
void loop() { | |
///////////////////////////////////////////////////// | |
ToArduinoSerial.write('z'); | |
if(ToArduinoSerial.available()>0){ | |
char c = ToArduinoSerial.read(); | |
delay(2); | |
if((c == '\n') || (c == '\r')){ | |
if(dummyString.length() > 0) | |
{ | |
if(dummyString.length()==correctMode){ | |
// currentString=dummyString; | |
// if(previousString.equals(currentString)){ | |
Serial.print("##############################Correct String is ==>");Serial.print(dummyString); | |
Serial.print(", length = ");Serial.println(dummyString.length()); | |
// } | |
// previousString=currentString; | |
} | |
Serial.println(dummyString); | |
correctMode=goForMode(dummyString); | |
dummyString=""; | |
} | |
}else{ | |
dummyString +=c; | |
} | |
} | |
} | |
############################################## Client (Arduino Side) | |
#include <SoftwareSerial.h> | |
SoftwareSerial ToEspSerial(6,7); | |
String flashSerial ="Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/>"; | |
void setup() { | |
// put your setup code here, to run once: | |
Serial.begin(9600); | |
while(!Serial){ ; } // waiting for MCU | |
Serial.println("Connected to MCU"); | |
//software uart settings | |
ToEspSerial.begin(9600); | |
// while(!EspSerial){Serial.print("*");} //waiting for esp to connect | |
ToEspSerial.println("a"); | |
} | |
void loop() { | |
String thisMsg="Double Bingo"; | |
// put your main code here, to run repeatedly: | |
if(ToEspSerial.available()>0){ | |
uint8_t incomingByte=ToEspSerial.read(); | |
Serial.print("Incoming Byte is ==>"); Serial.println(incomingByte); | |
// delay(10); | |
if(incomingByte=='z'){ | |
Serial.println("Bingo!!"); | |
// ToEspSerial.write("Double Bingo00");ToEspSerial.write('\n'); | |
ToEspSerial.write("Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/>");ToEspSerial.write('\n'); | |
} | |
// if(incomingByte=='y'){ | |
//// Serial.println(thisMsg.length()); | |
//int temp=thisMsg.length(); | |
// ToEspSerial.write(temp);ToEspSerial.write('\n'); | |
// | |
// } | |
delay(200); // important parameter | |
} | |
} | |
///////////////////////////////*******************ouput | |
^^^^^^^^^^^^^^^^^^^^^^^Mode number64 | |
##############################Correct String is ==>Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/>, length = 64 | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>�ank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1= 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tak4 = 310<br/> | |
^^^^^^^^^^^^^^^^^^^^^^^Mode number64 | |
##############################Correct String is ==>Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/>, length = 64 | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1= 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 06<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
^^^^^^^^^^^^^^^^^^^^^^^Mode number64 | |
##############################Correct String is ==>Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/>, length = 64 | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 =�&�<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br�>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1 = 421<br/>Tank2 = 352<br/>Tank3 =�306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4�= 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
^^^^^^^^^^^^^^^^^^^^^^^Mode number64 | |
##############################Correct String is ==>�ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/>, length = 64 | |
�ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 =310<br/> | |
Tank1 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/>Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
^^^^^^^^^^^^^^^^^^^^^^^Mode number64 | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/Tank3= 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
�ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
ank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
Tank1 = 421<br/>Tank2 = 352<br/>Tank3 = 306<br/>Tank4 = 310<br/> | |
^^^^^^^^^^^^^^^^^^^^^^^Mode number64 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment