Hello all,
I am using energia and cc3200 for an application. In my application I have to disconnect the wifi inside the void loop or another function and reconnect again.
Up to disconnect it works fine but when I try to reconnect again,it's not happening.
Can anyone please tell me what am I missing ?
This is the disconnect and reconnect function.
if(WiFi.status() == WL_CONNECTED)
{
Serial.print("Disconnecting from WiFi");
sl_WlanPolicySet(SL_POLICY_CONNECTION , SL_CONNECTION_POLICY(0,0,0,0,0), 0, 0);
// delay(500);
sl_WlanDisconnect();
}
while(WiFi.status() == WL_CONNECTED) {
#ifndef SL_PLATFORM_MULTI_THREADED
sl_Task();
#endif
Serial.print(".");
delay(10);
}
Serial.println();
Serial.println("Disconnected");
ssid:
Serial.println("Enter ssid");
read_count=0;
read_status=true;
// Serial.println(Serial.available());
while(!(Serial.available()));
if(!(Serial.read() == '%'))
goto ssid;
while(read_status)
{
// readchar=Serial.read();
if(Serial.available())
{
if(Serial.peek() == '%')
read_status=false;
else
ssid_new[read_count]=Serial.read();
Serial.print(ssid_new[read_count]);
read_count=read_count+1;
}
}
Serial.println(ssid_new);
while(Serial.available())
int clear = Serial.read();
read_status=true;
password:
Serial.println("Enter password");
ssidnew_len=read_count;
read_count=0;
while(!(Serial.available()));
if(!(Serial.read() == '%'))
goto password;
while(read_status)
{
if(Serial.available())
{
if(Serial.peek() == '%')
read_status=false;
else
password_new[read_count]=Serial.read();
Serial.print(password_new[read_count]);
read_count=read_count+1;
}
}
delay(300);
passwordnew_len=read_count;
Serial.println(password_new);
Serial.println(ssidnew_len);
Serial.println(passwordnew_len);
while(Serial.available())
int clear = Serial.read();
read_count=0;
rc = FatFs.open("T_READ.TXT");
if (rc) die(rc);
// Serial.println("Write a text data. (10 x Hello world!)");
delay(100);
bw=0;
rc = FatFs.write(ssid_new, ssidnew_len-1, &bw);
//rc = FatFs.write(ssid_new+'%', 2, &bw);
if (rc) die(rc);
rc = FatFs.write("%", 1, &bw);
if (rc) die(rc);
rc = FatFs.write(password_new, passwordnew_len-1, &bw);
if (rc) die(rc);
rc = FatFs.write("%", 1, &bw);
if (rc) die(rc);
rc = FatFs.write(0, 0, &bw); //Finalize write
if (rc) die(rc);
apflag=false;
Serial.print("Attempting to connect to Network named: ");
// print the network name (SSID);
Serial.println(ssid_new);
Serial.print("Password: ");
// print the network name (SSID);
Serial.println(password_new);
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
WiFi.begin(ssid_new, password_new);
while ( WiFi.status() != WL_CONNECTED) {
// print dots while we wait to connect
Serial.print(".");
delay(300);
if(apflag)
APMode();
}
Serial.println("connected!");
}