Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: esp8266-driver MQTT
Diff: main.cpp
- Revision:
- 71:a0fbcc153b55
- Parent:
- 67:ebff4a8d228d
- Child:
- 72:b4761c52cc91
diff -r 011662e9019e -r a0fbcc153b55 main.cpp
--- a/main.cpp Thu Jul 19 11:30:02 2018 +0100
+++ b/main.cpp Tue Jul 24 15:15:02 2018 +0100
@@ -17,36 +17,43 @@
#include "mbed.h"
#include "TCPSocket.h"
-#define WIFI_ESP8266 1
-#define WIFI_IDW0XX1 2
-#define WIFI_ISM43362 3
+#define internal 1
+#define WIFI_ESP8266 2
+#define WIFI_IDW0XX1 3
+#define WIFI_ISM43362 4
-#if TARGET_UBLOX_EVK_ODIN_W2
-#include "OdinWiFiInterface.h"
-OdinWiFiInterface wifi;
-
-#elif TARGET_REALTEK_RTL8195AM
-#include "RTWInterface.h"
-RTWInterface wifi;
-
-#else // External WiFi modules
+WiFiInterface *wifi;
#if MBED_CONF_APP_WIFI_SHIELD == WIFI_ESP8266
+
#include "ESP8266Interface.h"
-ESP8266Interface wifi(MBED_CONF_APP_WIFI_TX, MBED_CONF_APP_WIFI_RX);
+
+WiFiInterface *WiFiInterface::get_default_instance() {
+ static ESP8266Interface esp(MBED_CONF_APP_WIFI_TX, MBED_CONF_APP_WIFI_RX);
+ return &esp;
+}
#elif MBED_CONF_APP_WIFI_SHIELD == WIFI_ISM43362
+
#include "ISM43362Interface.h"
-ISM43362Interface wifi;
+
+WiFiInterface *WiFiInterface::get_default_instance() {
+ static ISM43362Interface ism;
+ return &ism;
+}
#elif MBED_CONF_APP_WIFI_SHIELD == WIFI_IDW0XX1
+
#include "SpwfSAInterface.h"
-SpwfSAInterface wifi(MBED_CONF_APP_WIFI_TX, MBED_CONF_APP_WIFI_RX);
-#endif // MBED_CONF_APP_WIFI_SHIELD == WIFI_IDW0XX1
+WiFiInterface *WiFiInterface::get_default_instance() {
+ static SpwfSAInterface spwf(MBED_CONF_APP_WIFI_TX, MBED_CONF_APP_WIFI_RX);
+ return &spwf;
+}
#endif
+
const char *sec2str(nsapi_security_t sec)
{
switch (sec) {
@@ -161,29 +168,35 @@
printf("Mbed OS version %d.%d.%d\n\n", MBED_MAJOR_VERSION, MBED_MINOR_VERSION, MBED_PATCH_VERSION);
#endif
- count = scan_demo(&wifi);
+ wifi = WiFiInterface::get_default_instance();
+
+ count = scan_demo(wifi);
if (count == 0) {
printf("No WIFI APNs found - can't continue further.\n");
return -1;
}
printf("\nConnecting to %s...\n", MBED_CONF_APP_WIFI_SSID);
- int ret = wifi.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
+ int ret = wifi->connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
if (ret != 0) {
printf("\nConnection error: %d\n", ret);
return -1;
}
printf("Success\n\n");
- printf("MAC: %s\n", wifi.get_mac_address());
- printf("IP: %s\n", wifi.get_ip_address());
- printf("Netmask: %s\n", wifi.get_netmask());
- printf("Gateway: %s\n", wifi.get_gateway());
- printf("RSSI: %d\n\n", wifi.get_rssi());
+ printf("MAC: %s\n", wifi->get_mac_address());
+ printf("IP: %s\n", wifi->get_ip_address());
+ printf("Netmask: %s\n", wifi->get_netmask());
+ printf("Gateway: %s\n", wifi->get_gateway());
+ printf("RSSI: %d\n\n", wifi->get_rssi());
- http_demo(&wifi);
+ http_demo(wifi);
+
+ wifi->disconnect();
- wifi.disconnect();
+#if MBED_CONF_APP_WIFI_SHIELD != internal
+ delete wifi;
+#endif
printf("\nDone\n");
}