Host library for controlling a WiConnect enabled Wi-Fi module.
Dependents: wiconnect-ota_example wiconnect-web_setup_example wiconnect-test-console wiconnect-tcp_server_example ... more
NetworkInterface.h
- Committer:
- dan_ackme
- Date:
- 2014-08-12
- Revision:
- 11:ea484e1b7fc4
- Parent:
- 1:6ec9998427ad
- Child:
- 13:2b51f5267c92
File content as of revision 11:ea484e1b7fc4:
/* * Copyright 2014, ACKme Networks * All Rights Reserved. * * This is UNPUBLISHED PROPRIETARY SOURCE CODE of ACKme Networks; * the contents of this file may not be disclosed to third parties, copied * or duplicated in any form, in whole or in part, without the prior * written permission of ACKme Networks. */ #pragma once #include "WiconnectTypes.h" #include "types/ScanResultList.h" /** * @namespace wiconnect */ namespace wiconnect { /** * @ingroup types_network * * @brief The provides an interface for joining and/or creating a network. * It provides other utilities such as scanning for networks, pinging a network, * resolving a domain name to IP address. * */ class NetworkInterface { public: /** * @ingroup api_network_setup * * @brief Start the WiConnect WiFi module 'web setup' feature. */ WiconnectResult startWebSetup(const char *ssid = NULL, const char *password = NULL, const Callback &completeHandler = Callback()); /** * @ingroup api_network_setup * * @brief Stop the WiConnect WiFi module 'web setup' feature. */ WiconnectResult stopWebSetup(); /** * @ingroup api_network_setup * * @brief Return status of WiConnect WiFi module 'web setup' feature. */ WiconnectResult isWebSetupRunning(bool *isRunningPtr); // ------------------------------------------------------------------------ /** * @ingroup api_network_wlan * * @brief Join a WiFi network. */ WiconnectResult join(const char* ssid = NULL, const char *password = NULL, const Callback &completeHandler = Callback()); /** * @ingroup api_network_wlan * * @brief Leave a WiFi network. */ WiconnectResult leave(); /** * @ingroup api_network_wlan * * @brief Get connection status to WiFi network. */ WiconnectResult getNetworkStatus(NetworkStatus *statusPtr); // ------------------------------------------------------------------------ // WiconnectResult startSoftAp(const char* ssid = NULL, const char *password = NULL, const Callback &clientConnectedCallback = Callback()); // WiconnectResult stopSoftAp(); // WiconnectResult getSoftApClientList(); // ------------------------------------------------------------------------ /** * @ingroup api_network_util * * @brief Scan for available WiFi networks. */ WiconnectResult scan(ScanResultList &resultList, const uint8_t *channelList = NULL, const char* ssid = NULL); /** * @ingroup api_network_util * * @brief Ping a WiFi network. */ WiconnectResult ping(const char *domain = NULL, uint32_t *timeMsPtr = NULL); /** * @ingroup api_network_util * * @brief Resolve domain name into IP address. */ WiconnectResult lookup(const char *domain, uint32_t *ipAddressPtr); // ------------------------------------------------------------------------ /** * @ingroup api_network_settings * * @brief Set DHCP enabled. */ WiconnectResult setDhcpEnabled(bool enabled); /** * @ingroup api_network_settings * * @brief Get if DHCP enabled. */ WiconnectResult getDhcpEnabled(bool *enabledPtr); /** * @ingroup api_network_settings * * @brief Set static IP settings */ WiconnectResult setIpSettings(uint32_t ip, uint32_t netmask, uint32_t gateway); /** * @ingroup api_network_settings * * @brief Set static IP settings (with string parameters) */ WiconnectResult setIpSettings(const char* ip, const char* netmask, const char* gateway); /** * @ingroup api_network_settings * * @brief Get network IP settings */ WiconnectResult getIpSettings(uint32_t *ip, uint32_t *netmask, uint32_t *gateway); /** * @ingroup api_network_settings * * @brief Get signal strength to WiFi network */ WiconnectResult getSignalStrength(NetworkSignalStrength *signalStrengthPtr); // ------------------------------------------------------------------------ /** * @ingroup conversion_util * * @brief Convert string to IP address */ static bool strToIp(const char *str, uint32_t *intPtr); /** * @ingroup conversion_util * * @brief Convert IP address to string */ static const char* ipToStr(uint32_t ip, char *ipStrBuffer = NULL); /** * @ingroup conversion_util * * @brief Convert @ref NetworkStatus to string */ static const char* networkStatusToStr(NetworkStatus status); /** * @ingroup conversion_util * * @brief Convert @ref NetworkSignalStrength to string */ static const char* signalStrengthToStr(NetworkSignalStrength signalStrenth); /** * @ingroup conversion_util * * @brief Convert RSSI (in dBm) to @ref NetworkSignalStrength */ static NetworkSignalStrength rssiToSignalStrength(int rssi); /** * @ingroup conversion_util * * @brief Convert string to @ref NetworkSecurity */ static NetworkSecurity strToNetworkSecurity(const char *str); /** * @ingroup conversion_util * * @brief Convert @ref NetworkSecurity to string */ static const char* networkSecurityToStr(NetworkSecurity security); /** * @ingroup conversion_util * * @brief Convert string @ref Ssid */ static bool strToSsid(const char *str, Ssid *ssid); /** * @ingroup conversion_util * * @brief Convert @ref Ssid to string */ static const char* ssidToStr(const Ssid *ssid, char *ssidStrBuffer = NULL); /** * @ingroup conversion_util * * @brief Convert string @ref MacAddress */ static bool strToMacAddress(const char *str, MacAddress *macAddress); /** * @ingroup conversion_util * * @brief Convert @ref MacAddress to string */ static const char* macAddressToStr(const MacAddress *macAddress, char *macStrBuffer = NULL); protected: NetworkInterface(Wiconnect *wiconnect); WiconnectResult processScanResults(char *resultStr, ScanResultList &resultList); #ifdef WICONNECT_ASYNC_TIMER_ENABLED Callback completeHandler; PeriodicTimer monitorTimer; void webSetupStatusMonitor(); void webSetupStatusCheckCallback(WiconnectResult result, void *arg1, void *arg2); void joinStatusMonitor(); void joinStatusCheckCallback(WiconnectResult result, void *arg1, void *arg2); //void scanCompleteCallback(WiconnectResult result, void *arg1, void *arg2); #endif private: Wiconnect *wiconnect; }; }