Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save MrityunjaiKumar/6df577ed6dbb9561aa845e54fcc1753b to your computer and use it in GitHub Desktop.
Save MrityunjaiKumar/6df577ed6dbb9561aa845e54fcc1753b to your computer and use it in GitHub Desktop.
Software UART and String exchange (using statistical mode)
############################## 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