add RSSI return and fix SSID and BSSID methods
fixes: https://github.com/espressif/arduino-esp32/issues/144
This commit is contained in:
		
							parent
							
								
									13f3ac569b
								
							
						
					
					
						commit
						3c7d0e9905
					
				| @ -43,9 +43,6 @@ extern "C" { | ||||
| #include <esp_smartconfig.h> | ||||
| } | ||||
| 
 | ||||
| extern "C" void esp_schedule(); | ||||
| extern "C" void esp_yield(); | ||||
| 
 | ||||
| // -----------------------------------------------------------------------------------------------------------------------
 | ||||
| // ---------------------------------------------------- Private functions ------------------------------------------------
 | ||||
| // -----------------------------------------------------------------------------------------------------------------------
 | ||||
| @ -404,9 +401,11 @@ wl_status_t WiFiSTAClass::status() | ||||
|  */ | ||||
| String WiFiSTAClass::SSID() const | ||||
| { | ||||
|     wifi_config_t conf; | ||||
|     esp_wifi_get_config(WIFI_IF_STA, &conf); | ||||
|     return String(reinterpret_cast<char*>(conf.sta.ssid)); | ||||
|     wifi_ap_record_t info; | ||||
|     if(!esp_wifi_sta_get_ap_info(&info)) { | ||||
|         return String(reinterpret_cast<char*>(info.ssid)); | ||||
|     } | ||||
|     return String(); | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
| @ -427,11 +426,13 @@ String WiFiSTAClass::psk() const | ||||
| uint8_t* WiFiSTAClass::BSSID(void) | ||||
| { | ||||
|     static uint8_t bssid[6]; | ||||
|     wifi_config_t conf; | ||||
|     esp_wifi_get_config(WIFI_IF_STA, &conf); | ||||
|     memcpy(bssid, conf.sta.bssid, 6); | ||||
|     wifi_ap_record_t info; | ||||
|     if(!esp_wifi_sta_get_ap_info(&info)) { | ||||
|         memcpy(bssid, info.bssid, 6); | ||||
|         return reinterpret_cast<uint8_t*>(bssid); | ||||
|     } | ||||
|     return NULL; | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Return the current bssid / mac associated with the network if configured | ||||
| @ -439,10 +440,12 @@ uint8_t* WiFiSTAClass::BSSID(void) | ||||
|  */ | ||||
| String WiFiSTAClass::BSSIDstr(void) | ||||
| { | ||||
|     uint8_t* bssid = BSSID(); | ||||
|     if(!bssid){ | ||||
|         return String(); | ||||
|     } | ||||
|     char mac[18] = { 0 }; | ||||
|     wifi_config_t conf; | ||||
|     esp_wifi_get_config(WIFI_IF_STA, &conf); | ||||
|     sprintf(mac, "%02X:%02X:%02X:%02X:%02X:%02X", conf.sta.bssid[0], conf.sta.bssid[1], conf.sta.bssid[2], conf.sta.bssid[3], conf.sta.bssid[4], conf.sta.bssid[5]); | ||||
|     sprintf(mac, "%02X:%02X:%02X:%02X:%02X:%02X", bssid[0], bssid[1], bssid[2], bssid[3], bssid[4], bssid[5]); | ||||
|     return String(mac); | ||||
| } | ||||
| 
 | ||||
| @ -450,9 +453,13 @@ String WiFiSTAClass::BSSIDstr(void) | ||||
|  * Return the current network RSSI. | ||||
|  * @return  RSSI value | ||||
|  */ | ||||
| int32_t WiFiSTAClass::RSSI(void) | ||||
| int8_t WiFiSTAClass::RSSI(void) | ||||
| { | ||||
|     return 0;//wifi_station_get_rssi();
 | ||||
|     wifi_ap_record_t info; | ||||
|     if(!esp_wifi_sta_get_ap_info(&info)) { | ||||
|         return info.rssi; | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  | ||||
| @ -78,7 +78,7 @@ public: | ||||
|     uint8_t * BSSID(); | ||||
|     String BSSIDstr(); | ||||
| 
 | ||||
|     int32_t RSSI(); | ||||
|     int8_t RSSI(); | ||||
| 
 | ||||
|     static void _setStatus(wl_status_t status); | ||||
| protected: | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user