Exemplo n.º 1
0
/**
 * WPS callback
 * @param status wps_cb_status
 */
void wifi_wps_status_cb(wps_cb_status status) {
    DEBUGV("wps cb status: %d\r\n", status);
    switch(status) {
        case WPS_CB_ST_SUCCESS:
            if(!wifi_wps_disable()) {
                DEBUGV("wps disable failed\n");
            }
            wifi_station_connect();
            break;
        case WPS_CB_ST_FAILED:
            DEBUGV("wps FAILED\n");
            break;
        case WPS_CB_ST_TIMEOUT:
            DEBUGV("wps TIMEOUT\n");
            break;
        case WPS_CB_ST_WEP:
            DEBUGV("wps WEP\n");
            break;
        case WPS_CB_ST_UNK:
            DEBUGV("wps UNKNOWN\n");
            if(!wifi_wps_disable()) {
                DEBUGV("wps disable failed\n");
            }
            break;
    }
    // TODO user function to get status

    esp_schedule(); // resume the beginWPSConfig function
}
Exemplo n.º 2
0
LOCAL void ICACHE_FLASH_ATTR
user_wps_key_short_press(void)
{
	wifi_wps_disable();
	wifi_wps_enable(WPS_TYPE_PBC);
	wifi_set_wps_cb(user_wps_status_cb);
	wifi_wps_start();
}
Exemplo n.º 3
0
LOCAL void ICACHE_FLASH_ATTR
user_wps_status_cb(int status)
{
	switch (status) {
		case WPS_CB_ST_SUCCESS:
			wifi_wps_disable();
			wifi_station_connect();
			break;
		case WPS_CB_ST_FAILED:
		case WPS_CB_ST_TIMEOUT:
			wifi_wps_start();
			break;
	}
}
Exemplo n.º 4
0
// WPS Status callback
// 	- use callback to signal success
//  - restart up to 10 times
//  - slow blink (0,5Hz) if no success -> restart necessary
void wpsStatus(int status) {
	if (status == WPS_CB_ST_SUCCESS) {
		Serial.println("WPS config successful");
		wifi_wps_disable();
		WifiStation.connect();
		blinkTimer->stop();
		if (connectDelegate) connectDelegate();

	} else {
		wifi_wps_disable();
		wpsRepeatCounter--;
		if (wpsRepeatCounter>0) {
			Serial.print("WPS repeat");
			wifi_wps_enable(WPS_TYPE_PBC);
			wifi_set_wps_cb(&wpsStatus);
			wpsTimer->initializeMs(15000,TimerDelegate(&wpsStart)).startOnce();
		} else {
			wifi_wps_disable();
			blinkTimer->initializeMs(1000, wpsBlinkIndicator).start();
			wpsTimer->stop();
		}
	}
}
Exemplo n.º 5
0
bool ESP8266WiFiClass::beginWPSConfig(void) {

    _useClientMode = true;

     if(_useApMode) {
         // turn on AP+STA mode
         mode(WIFI_AP_STA);
     } else {
         // turn on STA mode
         mode(WIFI_STA);
     }

    disconnect();

    DEBUGV("wps begin\n");

    if(!wifi_wps_disable()) {
        DEBUGV("wps disable faild\n");
        return false;
    }

    // so far only WPS_TYPE_PBC is supported (SDK 1.2.0)
    if(!wifi_wps_enable(WPS_TYPE_PBC)) {
        DEBUGV("wps enable faild\n");
        return false;
    }

    if(!wifi_set_wps_cb(&wifi_wps_status_cb)) {
        DEBUGV("wps cb faild\n");
        return false;
    }

    if(!wifi_wps_start()) {
        DEBUGV("wps start faild\n");
        return false;
    }

    esp_yield();
    // will return here when wifi_wps_status_cb fires

    return true;
}
Exemplo n.º 6
0
void wifi_wps_status_cb(WPS_CB_STATUS_t status)
{
    DEBUGV("wps cb status: %d\r\n", status);
    switch (status) {
        case WPS_CB_ST_SUCCESS:
            if(!wifi_wps_disable()) {
                  DEBUGV("wps disable faild\n");
            }
            wifi_station_connect();
            break;
        case WPS_CB_ST_FAILED:
            DEBUGV("wps FAILD\n");
            break;
        case WPS_CB_ST_TIMEOUT:
            DEBUGV("wps TIMEOUT\n");
            break;
    }
    // todo user function to get status

    esp_schedule(); // resume the beginWPSConfig function
}
Exemplo n.º 7
0
/**
 * WPS config
 * so far only WPS_TYPE_PBC is supported (SDK 1.2.0)
 * @return ok
 */
bool ESP8266WiFiSTAClass::beginWPSConfig(void) {

    if(!WiFi.enableSTA(true)) {
        // enable STA failed
        return false;
    }

    disconnect();

    DEBUGV("wps begin\n");

    if(!wifi_wps_disable()) {
        DEBUGV("wps disable failed\n");
        return false;
    }

    // so far only WPS_TYPE_PBC is supported (SDK 1.2.0)
    if(!wifi_wps_enable(WPS_TYPE_PBC)) {
        DEBUGV("wps enable failed\n");
        return false;
    }

    if(!wifi_set_wps_cb((wps_st_cb_t) &wifi_wps_status_cb)) {
        DEBUGV("wps cb failed\n");
        return false;
    }

    if(!wifi_wps_start()) {
        DEBUGV("wps start failed\n");
        return false;
    }

    esp_yield();
    // will return here when wifi_wps_status_cb fires

    return true;
}