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.
Fork of emw3162-driver by
Revision 3:a6f80a95b039, committed 2016-11-17
- Comitter:
- Maggie17
- Date:
- Thu Nov 17 03:52:22 2016 +0000
- Parent:
- 2:fb6251306b21
- Commit message:
- emw3162 driver for mbed os 5
Changed in this revision
EMW3162Interface.cpp | Show annotated file Show diff for this revision Revisions of this file |
EMW3162Interface.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r fb6251306b21 -r a6f80a95b039 EMW3162Interface.cpp --- a/EMW3162Interface.cpp Mon Nov 14 02:30:49 2016 +0000 +++ b/EMW3162Interface.cpp Thu Nov 17 03:52:22 2016 +0000 @@ -34,10 +34,12 @@ _esp.attach(this, &EMW3162Interface::event); } -int EMW3162Interface::connect( - const char *ssid, - const char *pass, - nsapi_security_t security) +int EMW3162Interface::connect() +{ + return 0; +} +int EMW3162Interface::connect(const char *ssid, const char *pass, nsapi_security_t security, + uint8_t channel) { _esp.setTimeout(EMW3162_CONNECT_TIMEOUT); @@ -57,9 +59,19 @@ return NSAPI_ERROR_DHCP_FAILURE; } + return NSAPI_ERROR_OK; +} + +int EMW3162Interface::set_credentials(const char *ssid, const char *pass, nsapi_security_t security) +{ return 0; } +int EMW3162Interface::set_channel(uint8_t channel) +{ + return NSAPI_ERROR_UNSUPPORTED; +} + int EMW3162Interface::disconnect() { _esp.setTimeout(EMW3162_MISC_TIMEOUT); @@ -81,6 +93,26 @@ return _esp.getMACAddress(); } +const char *EMW3162Interface::get_gateway() +{ + return NULL; +} + +const char *EMW3162Interface::get_netmask() +{ + return NULL; +} + +int8_t EMW3162Interface::get_rssi() +{ + return 0; +} + +int EMW3162Interface::scan(WiFiAccessPoint *res, unsigned count) +{ + return 0; +} + struct EMW3162_socket { int id; int socketId; @@ -158,7 +190,7 @@ return 0; } -int EMW3162Interface::socket_accept(void **handle, void *server) +int EMW3162Interface::socket_accept(void *handle, void **socket, SocketAddress *address) { return NSAPI_ERROR_UNSUPPORTED; }
diff -r fb6251306b21 -r a6f80a95b039 EMW3162Interface.h --- a/EMW3162Interface.h Mon Nov 14 02:30:49 2016 +0000 +++ b/EMW3162Interface.h Thu Nov 17 03:52:22 2016 +0000 @@ -17,8 +17,9 @@ #ifndef EMW3162_INTERFACE_H #define EMW3162_INTERFACE_H -#include "NetworkSocketAPI/NetworkStack.h" -#include "NetworkSocketAPI/WiFiInterface.h" +#include "mbed.h" +//#include "NetworkSocketAPI/NetworkStack.h" +//#include "NetworkSocketAPI/WiFiInterface.h" #include "EMW3162.h" @@ -39,18 +40,44 @@ /** Start the interface * - * Attempts to connect to a WiFi network. If passphrase is invalid, - * NSAPI_ERROR_AUTH_ERROR is returned. + * Attempts to connect to a WiFi network. Requires ssid and passphrase to be set. + * If passphrase is invalid, NSAPI_ERROR_AUTH_ERROR is returned. + * + * @return 0 on success, negative error code on failure + */ + virtual int connect(); + + /** Start the interface + * + * Attempts to connect to a WiFi network. + * + * @param ssid Name of the network to connect to + * @param pass Security passphrase to connect to the network + * @param security Type of encryption for connection (Default: NSAPI_SECURITY_NONE) + * @param channel This parameter is not supported, setting it to anything else than 0 will result in NSAPI_ERROR_UNSUPPORTED + * @return 0 on success, or error code on failure + */ + virtual int connect(const char *ssid, const char *pass, nsapi_security_t security = NSAPI_SECURITY_NONE, + uint8_t channel = 0); + + /** Set the WiFi network credentials * * @param ssid Name of the network to connect to * @param pass Security passphrase to connect to the network * @param security Type of encryption for connection - * @return 0 on success, negative error code on failure + * (defaults to NSAPI_SECURITY_NONE) + * @return 0 on success, or error code on failure */ - virtual int connect( - const char *ssid, - const char *pass, - nsapi_security_t security = NSAPI_SECURITY_NONE); + virtual int set_credentials(const char *ssid, const char *pass, nsapi_security_t security = NSAPI_SECURITY_NONE); + + /** Set the WiFi network channel - NOT SUPPORTED + * + * This function is not supported and will return NSAPI_ERROR_UNSUPPORTED + * + * @param channel Channel on which the connection is to be made, or 0 for any (Default: 0) + * @return Not supported, returns NSAPI_ERROR_UNSUPPORTED + */ + virtual int set_channel(uint8_t channel); /** Stop the interface * @return 0 on success, negative on failure @@ -67,6 +94,38 @@ */ virtual const char *get_mac_address(); + /** Get the local gateway + * + * @return Null-terminated representation of the local gateway + * or null if no network mask has been recieved + */ + virtual const char *get_gateway(); + + /** Get the local network mask + * + * @return Null-terminated representation of the local network mask + * or null if no network mask has been recieved + */ + virtual const char *get_netmask(); + + /** Gets the current radio signal strength for active connection + * + * @return Connection strength in dBm (negative value) + */ + virtual int8_t get_rssi(); + + /** Scan for available networks + * + * This function will block. + * + * @param ap Pointer to allocated array to store discovered AP + * @param count Size of allocated @a res array, or 0 to only count available AP + * @param timeout Timeout in milliseconds; 0 for no timeout (Default: 0) + * @return Number of entries in @a, or if @a count was 0 number of available networks, negative on error + * see @a nsapi_error + */ + virtual int scan(WiFiAccessPoint *res, unsigned count); + protected: /** Open a socket * @param handle Handle in which to store new socket @@ -112,7 +171,7 @@ * @note This call is not-blocking, if this call would block, must * immediately return NSAPI_ERROR_WOULD_WAIT */ - virtual int socket_accept(void **handle, void *server); + virtual int socket_accept(void *handle, void **socket, SocketAddress *address); /** Send data to the remote host * @param handle Socket handle @@ -179,6 +238,11 @@ EMW3162 _esp; bool _ids[EMW3162_SOCKET_COUNT]; + char ap_ssid[33]; /* 32 is what 802.11 defines as longest possible name; +1 for the \0 */ + nsapi_security_t ap_sec; + uint8_t ap_ch; + char ap_pass[64]; /* The longest allowed passphrase */ + void event(); struct { void (*callback)(void *);