A library for talking to Multi-Tech's Cellular SocketModem Devices.
Dependents: M2X_dev axeda_wrapper_dev MTS_M2x_Example1 MTS_Cellular_Connect_Example ... more
wifi/Wifi.h@73:bb5bbca971ae, 2013-12-26 (annotated)
- Committer:
- sgodinez
- Date:
- Thu Dec 26 16:21:11 2013 +0000
- Revision:
- 73:bb5bbca971ae
- Parent:
- 69:f3e696bbb0d5
- Child:
- 76:371aab9902a4
Updated Wifi for merge.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jengbrecht | 69:f3e696bbb0d5 | 1 | #ifndef WIFI_H |
jengbrecht | 69:f3e696bbb0d5 | 2 | #define WIFI_H |
jengbrecht | 69:f3e696bbb0d5 | 3 | |
jengbrecht | 69:f3e696bbb0d5 | 4 | #include "IPStack.h" |
jengbrecht | 69:f3e696bbb0d5 | 5 | #include "MTSBufferedIO.h" |
jengbrecht | 69:f3e696bbb0d5 | 6 | #include "mbed.h" |
jengbrecht | 69:f3e696bbb0d5 | 7 | #include "Cellular.h" |
jengbrecht | 69:f3e696bbb0d5 | 8 | #include <string> |
jengbrecht | 69:f3e696bbb0d5 | 9 | #include <vector> |
jengbrecht | 69:f3e696bbb0d5 | 10 | |
jengbrecht | 69:f3e696bbb0d5 | 11 | using namespace mts; |
jengbrecht | 69:f3e696bbb0d5 | 12 | |
jengbrecht | 69:f3e696bbb0d5 | 13 | class Wifi : public IPStack |
jengbrecht | 69:f3e696bbb0d5 | 14 | { |
jengbrecht | 69:f3e696bbb0d5 | 15 | public: |
jengbrecht | 69:f3e696bbb0d5 | 16 | enum SecurityType { |
jengbrecht | 69:f3e696bbb0d5 | 17 | NONE, WEP64, WEP128, WPA, WPA2 |
jengbrecht | 69:f3e696bbb0d5 | 18 | }; |
jengbrecht | 69:f3e696bbb0d5 | 19 | |
jengbrecht | 69:f3e696bbb0d5 | 20 | ~Wifi(); |
jengbrecht | 69:f3e696bbb0d5 | 21 | |
jengbrecht | 69:f3e696bbb0d5 | 22 | static Wifi* getInstance(); |
jengbrecht | 69:f3e696bbb0d5 | 23 | bool init(MTSBufferedIO* io); |
jengbrecht | 69:f3e696bbb0d5 | 24 | |
jengbrecht | 69:f3e696bbb0d5 | 25 | virtual bool connect(); |
jengbrecht | 69:f3e696bbb0d5 | 26 | virtual void disconnect(); |
jengbrecht | 69:f3e696bbb0d5 | 27 | virtual bool isConnected(); |
jengbrecht | 69:f3e696bbb0d5 | 28 | |
jengbrecht | 69:f3e696bbb0d5 | 29 | // TCP and UDP Socket related commands |
jengbrecht | 69:f3e696bbb0d5 | 30 | // For behavior of the following methods refer to IPStack.h documentation |
jengbrecht | 69:f3e696bbb0d5 | 31 | virtual bool bind(unsigned int port); |
jengbrecht | 69:f3e696bbb0d5 | 32 | virtual bool open(const std::string& address, unsigned int port, Mode mode); |
jengbrecht | 69:f3e696bbb0d5 | 33 | virtual bool isOpen(); |
jengbrecht | 69:f3e696bbb0d5 | 34 | virtual bool close(); |
jengbrecht | 69:f3e696bbb0d5 | 35 | virtual int read(char* data, int max, int timeout = -1); |
jengbrecht | 69:f3e696bbb0d5 | 36 | virtual int write(const char* data, int length, int timeout = -1); |
jengbrecht | 69:f3e696bbb0d5 | 37 | virtual unsigned int readable(); |
jengbrecht | 69:f3e696bbb0d5 | 38 | virtual unsigned int writeable(); |
jengbrecht | 69:f3e696bbb0d5 | 39 | |
jengbrecht | 69:f3e696bbb0d5 | 40 | virtual void reset(); |
jengbrecht | 69:f3e696bbb0d5 | 41 | |
sgodinez | 73:bb5bbca971ae | 42 | std::string sendCommand(std::string command, int timeoutMillis, char esc = CR); |
sgodinez | 73:bb5bbca971ae | 43 | Code sendBasicCommand(std::string command, int timeoutMillis, char esc = CR); |
jengbrecht | 69:f3e696bbb0d5 | 44 | |
sgodinez | 73:bb5bbca971ae | 45 | Code echo(bool state); |
sgodinez | 73:bb5bbca971ae | 46 | Code setNetwork(const std::string& ssid, const std::string& key, SecurityType type); |
jengbrecht | 69:f3e696bbb0d5 | 47 | int getSignalStrength(); |
jengbrecht | 69:f3e696bbb0d5 | 48 | |
jengbrecht | 69:f3e696bbb0d5 | 49 | private: |
jengbrecht | 69:f3e696bbb0d5 | 50 | static Wifi* instance; //Static pointer to the single Cellular object. |
jengbrecht | 69:f3e696bbb0d5 | 51 | |
jengbrecht | 69:f3e696bbb0d5 | 52 | MTSBufferedIO* io; //IO interface obect that the radio is accessed through. |
jengbrecht | 69:f3e696bbb0d5 | 53 | bool echoMode; //Specifies if the echo mode is currently enabled. |
jengbrecht | 69:f3e696bbb0d5 | 54 | |
jengbrecht | 69:f3e696bbb0d5 | 55 | bool wifiConnected; //Specifies if a Wifi network session is currently connected. |
jengbrecht | 69:f3e696bbb0d5 | 56 | std::string _ssid; //A string that holds the SSID for the Wifi module. |
jengbrecht | 69:f3e696bbb0d5 | 57 | |
jengbrecht | 69:f3e696bbb0d5 | 58 | Mode mode; //The current socket Mode. |
jengbrecht | 69:f3e696bbb0d5 | 59 | bool socketOpened; //Specifies if a Socket is presently opened. |
jengbrecht | 69:f3e696bbb0d5 | 60 | bool socketCloseable; //Specifies is a Socket can be closed. |
jengbrecht | 69:f3e696bbb0d5 | 61 | unsigned int local_port; //Holds the local port for socket connections. |
jengbrecht | 69:f3e696bbb0d5 | 62 | std::string local_address; //Holds the local address for socket connections. |
jengbrecht | 69:f3e696bbb0d5 | 63 | unsigned int host_port; //Holds the remote port for socket connections. |
jengbrecht | 69:f3e696bbb0d5 | 64 | std::string host_address; //Holds the remote address for socket connections. |
jengbrecht | 69:f3e696bbb0d5 | 65 | |
jengbrecht | 69:f3e696bbb0d5 | 66 | Wifi(); //Private constructor, use the getInstance() method. |
jengbrecht | 69:f3e696bbb0d5 | 67 | Wifi(MTSBufferedIO* io); //Private constructor, use the getInstance() method. |
jengbrecht | 69:f3e696bbb0d5 | 68 | }; |
jengbrecht | 69:f3e696bbb0d5 | 69 | |
jengbrecht | 69:f3e696bbb0d5 | 70 | #endif /* WIFI_H */ |