This is Wi-Fi interface of WizFi310 for mbed os 5

Dependents:   mbed-os-example-wifi

Committer:
kaizen
Date:
Tue Dec 19 16:59:33 2017 +0900
Revision:
1:8e468bb83e1e
Parent:
0:d0e3f515f99d
This is WizFi310 Library for mbed os5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kaizen 0:d0e3f515f99d 1
kaizen 0:d0e3f515f99d 2 #ifndef WIZFI310_H_
kaizen 0:d0e3f515f99d 3 #define WIZFI310_H_
kaizen 0:d0e3f515f99d 4
kaizen 0:d0e3f515f99d 5 #include "ATCmdParser.h"
kaizen 0:d0e3f515f99d 6
kaizen 0:d0e3f515f99d 7 /** WizFi310Interface class.
kaizen 0:d0e3f515f99d 8 This is an interface to a WizFi310Interface radio.
kaizen 0:d0e3f515f99d 9 */
kaizen 0:d0e3f515f99d 10 class WizFi310
kaizen 0:d0e3f515f99d 11 {
kaizen 0:d0e3f515f99d 12 public:
kaizen 0:d0e3f515f99d 13 WizFi310(PinName tx, PinName rx, bool debug=false);
kaizen 0:d0e3f515f99d 14
kaizen 0:d0e3f515f99d 15 /**
kaizen 0:d0e3f515f99d 16 * Check firmware version of WizFi310
kaizen 0:d0e3f515f99d 17 *
kaizen 0:d0e3f515f99d 18 * @return character array firmware version or 0 if firmware query command gives outdated response
kaizen 0:d0e3f515f99d 19 */
kaizen 0:d0e3f515f99d 20 const char* get_firmware_version(void);
kaizen 0:d0e3f515f99d 21
kaizen 0:d0e3f515f99d 22 /**
kaizen 0:d0e3f515f99d 23 * Startup the WizFi310
kaizen 0:d0e3f515f99d 24 *
kaizen 0:d0e3f515f99d 25 * @param mode mode of WIFI 0-client, 1-host
kaizen 0:d0e3f515f99d 26 * @return true only if WizFi310 was setup correctly
kaizen 0:d0e3f515f99d 27 */
kaizen 0:d0e3f515f99d 28 bool startup(int mode);
kaizen 0:d0e3f515f99d 29
kaizen 0:d0e3f515f99d 30 /**
kaizen 0:d0e3f515f99d 31 * Reset WizFi310
kaizen 0:d0e3f515f99d 32 *
kaizen 0:d0e3f515f99d 33 * @return true only if WizFi310 resets successfully
kaizen 0:d0e3f515f99d 34 */
kaizen 0:d0e3f515f99d 35 bool reset(void);
kaizen 0:d0e3f515f99d 36
kaizen 0:d0e3f515f99d 37 /**
kaizen 0:d0e3f515f99d 38 * Enable/Disable DHCP
kaizen 0:d0e3f515f99d 39 *
kaizen 0:d0e3f515f99d 40 * @param enabled DHCP enabled when true
kaizen 0:d0e3f515f99d 41 * @return true only if WizFi310 enables/disables DHCP successfully
kaizen 0:d0e3f515f99d 42 */
kaizen 0:d0e3f515f99d 43 bool dhcp(bool enabled);
kaizen 0:d0e3f515f99d 44
kaizen 0:d0e3f515f99d 45 /**
kaizen 0:d0e3f515f99d 46 * Connect WizFi310 to AP
kaizen 0:d0e3f515f99d 47 *
kaizen 0:d0e3f515f99d 48 * @param ap the name of the AP
kaizen 0:d0e3f515f99d 49 * @param passPhrase the password of AP
kaizen 0:d0e3f515f99d 50 * @param security type of AP
kaizen 0:d0e3f515f99d 51 * @return true only if WizFi310 is connected successfully
kaizen 0:d0e3f515f99d 52 */
kaizen 0:d0e3f515f99d 53 bool connect(const char *ap, const char *passPhrase, const char *sec);
kaizen 0:d0e3f515f99d 54
kaizen 0:d0e3f515f99d 55 /**
kaizen 0:d0e3f515f99d 56 * Disconnect WizFi310 from AP
kaizen 0:d0e3f515f99d 57 *
kaizen 0:d0e3f515f99d 58 * @return true only if WizFi310 is disconnected successfully
kaizen 0:d0e3f515f99d 59 */
kaizen 0:d0e3f515f99d 60 bool disconnect(void);
kaizen 0:d0e3f515f99d 61
kaizen 0:d0e3f515f99d 62 /**
kaizen 0:d0e3f515f99d 63 * Get the IP address of WizFi310
kaizen 0:d0e3f515f99d 64 *
kaizen 0:d0e3f515f99d 65 * @return null-teriminated IP address or null if no IP address is assigned
kaizen 0:d0e3f515f99d 66 */
kaizen 0:d0e3f515f99d 67 const char *getIPAddress(void);
kaizen 0:d0e3f515f99d 68
kaizen 0:d0e3f515f99d 69 /**
kaizen 0:d0e3f515f99d 70 * Get the MAC address of WizFi310
kaizen 0:d0e3f515f99d 71 *
kaizen 0:d0e3f515f99d 72 * @return null-terminated MAC address or null if no MAC address is assigned
kaizen 0:d0e3f515f99d 73 */
kaizen 0:d0e3f515f99d 74 const char *getMACAddress(void);
kaizen 0:d0e3f515f99d 75
kaizen 0:d0e3f515f99d 76 /** Get the local gateway
kaizen 0:d0e3f515f99d 77 *
kaizen 0:d0e3f515f99d 78 * @return Null-terminated representation of the local gateway
kaizen 0:d0e3f515f99d 79 * or null if no network mask has been recieved
kaizen 0:d0e3f515f99d 80 */
kaizen 0:d0e3f515f99d 81 const char *getGateway();
kaizen 0:d0e3f515f99d 82
kaizen 0:d0e3f515f99d 83 /** Get the local network mask
kaizen 0:d0e3f515f99d 84 *
kaizen 0:d0e3f515f99d 85 * @return Null-terminated representation of the local network mask
kaizen 0:d0e3f515f99d 86 * or null if no network mask has been recieved
kaizen 0:d0e3f515f99d 87 */
kaizen 0:d0e3f515f99d 88 const char *getNetmask();
kaizen 0:d0e3f515f99d 89
kaizen 0:d0e3f515f99d 90 /* Return RSSI for active connection
kaizen 0:d0e3f515f99d 91 *
kaizen 0:d0e3f515f99d 92 * @return Measured RSSI
kaizen 0:d0e3f515f99d 93 */
kaizen 0:d0e3f515f99d 94 int8_t getRSSI();
kaizen 0:d0e3f515f99d 95
kaizen 0:d0e3f515f99d 96 /**
kaizen 0:d0e3f515f99d 97 * Check if WizFi310 is conenected
kaizen 0:d0e3f515f99d 98 *
kaizen 0:d0e3f515f99d 99 * @return true only if the chip has an IP address
kaizen 0:d0e3f515f99d 100 */
kaizen 0:d0e3f515f99d 101 bool isConnected(void);
kaizen 0:d0e3f515f99d 102
kaizen 0:d0e3f515f99d 103 /** Scan for available networks
kaizen 0:d0e3f515f99d 104 *
kaizen 0:d0e3f515f99d 105 * @param ap Pointer to allocated array to store discovered AP
kaizen 0:d0e3f515f99d 106 * @param limit Size of allocated @a res array, or 0 to only count available AP
kaizen 0:d0e3f515f99d 107 * @return Number of entries in @a res, or if @a count was 0 number of available networks, negative on error
kaizen 0:d0e3f515f99d 108 * see @a nsapi_error
kaizen 0:d0e3f515f99d 109 */
kaizen 0:d0e3f515f99d 110 int scan(WiFiAccessPoint *res, unsigned limit);
kaizen 0:d0e3f515f99d 111
kaizen 0:d0e3f515f99d 112 /**Perform a dns query
kaizen 0:d0e3f515f99d 113 *
kaizen 0:d0e3f515f99d 114 * @param name Hostname to resolve
kaizen 0:d0e3f515f99d 115 * @param ip Buffer to store IP address
kaizen 0:d0e3f515f99d 116 * @return 0 true on success, false on failure
kaizen 0:d0e3f515f99d 117 */
kaizen 0:d0e3f515f99d 118 bool dns_lookup(const char *name, char *ip);
kaizen 0:d0e3f515f99d 119
kaizen 0:d0e3f515f99d 120 /**
kaizen 0:d0e3f515f99d 121 * Open a socketed connection
kaizen 0:d0e3f515f99d 122 *
kaizen 0:d0e3f515f99d 123 * @param type the type of socket to open "UDP" or "TCP"
kaizen 0:d0e3f515f99d 124 * @param id id to give the new socket, valid 0-4
kaizen 0:d0e3f515f99d 125 * @param port port to open connection with
kaizen 0:d0e3f515f99d 126 * @param addr the IP address of the destination
kaizen 0:d0e3f515f99d 127 * @return true only if socket opened successfully
kaizen 0:d0e3f515f99d 128 */
kaizen 0:d0e3f515f99d 129 bool open(const char *type, int id, const char* addr, int port);
kaizen 0:d0e3f515f99d 130
kaizen 0:d0e3f515f99d 131 /**
kaizen 0:d0e3f515f99d 132 * Sends data to an open socket
kaizen 0:d0e3f515f99d 133 *
kaizen 0:d0e3f515f99d 134 * @param id id of socket to send to
kaizen 0:d0e3f515f99d 135 * @param data data to be sent
kaizen 0:d0e3f515f99d 136 * @param amount amount of data to be sent - max 1024
kaizen 0:d0e3f515f99d 137 * @return true only if data sent successfully
kaizen 0:d0e3f515f99d 138 */
kaizen 0:d0e3f515f99d 139 bool send(int id, const void *data, uint32_t amount);
kaizen 0:d0e3f515f99d 140
kaizen 0:d0e3f515f99d 141 /**
kaizen 0:d0e3f515f99d 142 * Receives data from an open socket
kaizen 0:d0e3f515f99d 143 *
kaizen 0:d0e3f515f99d 144 * @param id id to receive from
kaizen 0:d0e3f515f99d 145 * @param data placeholder for returned information
kaizen 0:d0e3f515f99d 146 * @param amount number of bytes to be received
kaizen 0:d0e3f515f99d 147 * @return the number of bytes received
kaizen 0:d0e3f515f99d 148 */
kaizen 0:d0e3f515f99d 149 int32_t recv(int id, void *data, uint32_t amount);
kaizen 0:d0e3f515f99d 150
kaizen 0:d0e3f515f99d 151 /**
kaizen 0:d0e3f515f99d 152 * Closes a socket
kaizen 0:d0e3f515f99d 153 *
kaizen 0:d0e3f515f99d 154 * @param id id of socket to close, valid only 0-4
kaizen 0:d0e3f515f99d 155 * @return true only if socket is closed successfully
kaizen 0:d0e3f515f99d 156 */
kaizen 0:d0e3f515f99d 157 bool close(int id);
kaizen 0:d0e3f515f99d 158
kaizen 0:d0e3f515f99d 159 /**
kaizen 0:d0e3f515f99d 160 * Allows timeout to be changed between commands
kaizen 0:d0e3f515f99d 161 *
kaizen 0:d0e3f515f99d 162 * @param timeout_ms timeout of the connection
kaizen 0:d0e3f515f99d 163 */
kaizen 0:d0e3f515f99d 164 void setTimeout(uint32_t timeout_ms);
kaizen 0:d0e3f515f99d 165
kaizen 0:d0e3f515f99d 166 /**
kaizen 0:d0e3f515f99d 167 * Checks if data is available
kaizen 0:d0e3f515f99d 168 */
kaizen 0:d0e3f515f99d 169 bool readable();
kaizen 0:d0e3f515f99d 170
kaizen 0:d0e3f515f99d 171 /**
kaizen 0:d0e3f515f99d 172 * Checks if data can be written
kaizen 0:d0e3f515f99d 173 */
kaizen 0:d0e3f515f99d 174 bool writeable();
kaizen 0:d0e3f515f99d 175
kaizen 0:d0e3f515f99d 176 /**
kaizen 0:d0e3f515f99d 177 * Attach a function to call whenever network state has changed
kaizen 0:d0e3f515f99d 178 *
kaizen 0:d0e3f515f99d 179 * @param func A pointer to a void function, or 0 to set as none
kaizen 0:d0e3f515f99d 180 */
kaizen 0:d0e3f515f99d 181 void attach(Callback<void()> func);
kaizen 0:d0e3f515f99d 182
kaizen 0:d0e3f515f99d 183 /**
kaizen 0:d0e3f515f99d 184 * Attach a function to call whenever network state has changed
kaizen 0:d0e3f515f99d 185 *
kaizen 0:d0e3f515f99d 186 * @param obj pointer to the object to call the member function on
kaizen 0:d0e3f515f99d 187 * @param method pointer to the member function to call
kaizen 0:d0e3f515f99d 188 */
kaizen 0:d0e3f515f99d 189 template <typename T, typename M>
kaizen 0:d0e3f515f99d 190 void attach(T *obj, M method) {
kaizen 0:d0e3f515f99d 191 attach(Callback<void()>(obj, method));
kaizen 0:d0e3f515f99d 192 }
kaizen 0:d0e3f515f99d 193
kaizen 0:d0e3f515f99d 194 private:
kaizen 0:d0e3f515f99d 195 UARTSerial _serial;
kaizen 0:d0e3f515f99d 196 ATCmdParser _parser;
kaizen 0:d0e3f515f99d 197
kaizen 0:d0e3f515f99d 198 struct packet {
kaizen 0:d0e3f515f99d 199 struct packet *next;
kaizen 0:d0e3f515f99d 200 int id;
kaizen 0:d0e3f515f99d 201 uint32_t len;
kaizen 0:d0e3f515f99d 202 // data follows
kaizen 0:d0e3f515f99d 203 } *_packets, **_packets_end;
kaizen 0:d0e3f515f99d 204 void _packet_handler();
kaizen 0:d0e3f515f99d 205 bool recv_ap(nsapi_wifi_ap_t *ap);
kaizen 0:d0e3f515f99d 206 nsapi_security_t str2sec(const char *str_sec);
kaizen 0:d0e3f515f99d 207 int hex_str_to_int(const char* hex_str);
kaizen 0:d0e3f515f99d 208
kaizen 0:d0e3f515f99d 209 char _ip_buffer[16];
kaizen 0:d0e3f515f99d 210 char _gateway_buffer[16];
kaizen 0:d0e3f515f99d 211 char _netmask_buffer[16];
kaizen 0:d0e3f515f99d 212 char _mac_buffer[18];
kaizen 0:d0e3f515f99d 213 char _firmware_version[8];
kaizen 0:d0e3f515f99d 214
kaizen 0:d0e3f515f99d 215 int _op_mode; // 0 : Station Mode, 1 : AP Mode
kaizen 0:d0e3f515f99d 216 bool _dhcp;
kaizen 0:d0e3f515f99d 217 };
kaizen 0:d0e3f515f99d 218
kaizen 0:d0e3f515f99d 219
kaizen 0:d0e3f515f99d 220
kaizen 0:d0e3f515f99d 221 //#include "WizFi310_conf.h"
kaizen 0:d0e3f515f99d 222 //
kaizen 0:d0e3f515f99d 223 //#include "mbed.h"
kaizen 0:d0e3f515f99d 224 //#include "RawSerial.h"
kaizen 0:d0e3f515f99d 225 //#include "Serial.h"
kaizen 0:d0e3f515f99d 226 //#include "CBuffer.h"
kaizen 0:d0e3f515f99d 227 //#include <ctype.h>
kaizen 0:d0e3f515f99d 228 //#include <stdlib.h>
kaizen 0:d0e3f515f99d 229 //#include <string>
kaizen 0:d0e3f515f99d 230 //#include "WiFiInterface.h"
kaizen 0:d0e3f515f99d 231 //
kaizen 0:d0e3f515f99d 232 //using namespace std;
kaizen 0:d0e3f515f99d 233 //
kaizen 0:d0e3f515f99d 234 //#define BUF_SIZE 1600
kaizen 0:d0e3f515f99d 235 //
kaizen 0:d0e3f515f99d 236 ////Debug is disabled by default
kaizen 0:d0e3f515f99d 237 //#if 1
kaizen 0:d0e3f515f99d 238 //#define WIZ_DBG(x, ...) std::printf("[WizFi310: DBG]" x "\r\n", ##__VA_ARGS__);
kaizen 0:d0e3f515f99d 239 //#define WIZ_WARN(x, ...) std::printf("[WizFi310: WARN]" x "\r\n", ##__VA_ARGS__);
kaizen 0:d0e3f515f99d 240 //#define WIZ_ERR(x, ...) std::printf("[WizFi310: ERR]" x "\r\n", ##__VA_ARGS__);
kaizen 0:d0e3f515f99d 241 //#define WIZ_INFO(x, ...) std::printf("[WizFi310: INFO]" x "\r\n", ##__VA_ARGS__);
kaizen 0:d0e3f515f99d 242 //#else
kaizen 0:d0e3f515f99d 243 //#define WIZ_DBG(x, ...)
kaizen 0:d0e3f515f99d 244 //#define WIZ_WARN(x, ...)
kaizen 0:d0e3f515f99d 245 //#define WIZ_ERR(x, ...)
kaizen 0:d0e3f515f99d 246 //#define WIZ_INFO(x, ...)
kaizen 0:d0e3f515f99d 247 //#endif
kaizen 0:d0e3f515f99d 248 //
kaizen 0:d0e3f515f99d 249 //
kaizen 0:d0e3f515f99d 250 //class WizFi310
kaizen 0:d0e3f515f99d 251 //{
kaizen 0:d0e3f515f99d 252 //public:
kaizen 0:d0e3f515f99d 253 //
kaizen 0:d0e3f515f99d 254 // enum AntennaMode{
kaizen 0:d0e3f515f99d 255 // PCB = 0,
kaizen 0:d0e3f515f99d 256 // UFL = 1,
kaizen 0:d0e3f515f99d 257 // AUTO = 3,
kaizen 0:d0e3f515f99d 258 // };
kaizen 0:d0e3f515f99d 259 //
kaizen 0:d0e3f515f99d 260 // enum WiFiMode {
kaizen 0:d0e3f515f99d 261 // WM_STATION = 0,
kaizen 0:d0e3f515f99d 262 // WM_AP = 1,
kaizen 0:d0e3f515f99d 263 // };
kaizen 0:d0e3f515f99d 264 //
kaizen 0:d0e3f515f99d 265 // /** Wi-Fi security
kaizen 0:d0e3f515f99d 266 // */
kaizen 0:d0e3f515f99d 267 // enum Security {
kaizen 0:d0e3f515f99d 268 // // kaizen need to change
kaizen 0:d0e3f515f99d 269 // SEC_AUTO = 0,
kaizen 0:d0e3f515f99d 270 // SEC_OPEN = 1,
kaizen 0:d0e3f515f99d 271 // SEC_WEP = 2,
kaizen 0:d0e3f515f99d 272 // SEC_WPA_TKIP = 3,
kaizen 0:d0e3f515f99d 273 // SEC_WPA_AES = 4,
kaizen 0:d0e3f515f99d 274 // SEC_WPA2_AES = 5,
kaizen 0:d0e3f515f99d 275 // SEC_WPA2_TKIP = 6,
kaizen 0:d0e3f515f99d 276 // SEC_WPA2_MIXED = 7,
kaizen 0:d0e3f515f99d 277 // };
kaizen 0:d0e3f515f99d 278 //
kaizen 0:d0e3f515f99d 279 // /** TCP/IP protocol
kaizen 0:d0e3f515f99d 280 // */
kaizen 0:d0e3f515f99d 281 // enum Protocol {
kaizen 0:d0e3f515f99d 282 // PROTO_UDP = 0,
kaizen 0:d0e3f515f99d 283 // PROTO_TCP = 1,
kaizen 0:d0e3f515f99d 284 // };
kaizen 0:d0e3f515f99d 285 //
kaizen 0:d0e3f515f99d 286 // /** Client/Server
kaizen 0:d0e3f515f99d 287 // */
kaizen 0:d0e3f515f99d 288 // enum Type {
kaizen 0:d0e3f515f99d 289 // TYPE_CLIENT = 0,
kaizen 0:d0e3f515f99d 290 // TYPE_SERVER = 1,
kaizen 0:d0e3f515f99d 291 // };
kaizen 0:d0e3f515f99d 292 //
kaizen 0:d0e3f515f99d 293 // enum Response {
kaizen 0:d0e3f515f99d 294 // RES_NULL,
kaizen 0:d0e3f515f99d 295 // RES_MACADDRESS,
kaizen 0:d0e3f515f99d 296 // RES_WJOIN,
kaizen 0:d0e3f515f99d 297 // RES_CONNECT,
kaizen 0:d0e3f515f99d 298 // RES_SSEND,
kaizen 0:d0e3f515f99d 299 // RES_FDNS,
kaizen 0:d0e3f515f99d 300 // RES_SMGMT,
kaizen 0:d0e3f515f99d 301 // RES_WSTATUS,
kaizen 0:d0e3f515f99d 302 //
kaizen 0:d0e3f515f99d 303 // };
kaizen 0:d0e3f515f99d 304 //
kaizen 0:d0e3f515f99d 305 // enum Mode {
kaizen 0:d0e3f515f99d 306 // MODE_COMMAND,
kaizen 0:d0e3f515f99d 307 // MODE_CMDRESP,
kaizen 0:d0e3f515f99d 308 // MODE_DATA_RX,
kaizen 0:d0e3f515f99d 309 // MODE_DATA_RXUDP,
kaizen 0:d0e3f515f99d 310 // MODE_DATA_RXUDP_BULK,
kaizen 0:d0e3f515f99d 311 // };
kaizen 0:d0e3f515f99d 312 //
kaizen 0:d0e3f515f99d 313 // enum Status {
kaizen 0:d0e3f515f99d 314 // STAT_NONE,
kaizen 0:d0e3f515f99d 315 // STAT_READY,
kaizen 0:d0e3f515f99d 316 // STAT_STANDBY,
kaizen 0:d0e3f515f99d 317 // STAT_WAKEUP,
kaizen 0:d0e3f515f99d 318 // STAT_DEEPSLEEP,
kaizen 0:d0e3f515f99d 319 // };
kaizen 0:d0e3f515f99d 320 //
kaizen 0:d0e3f515f99d 321 //
kaizen 0:d0e3f515f99d 322 // WizFi310 (PinName tx, PinName rx, PinName cts, PinName rts, PinName reset, PinName alarm = NC, int baud = 115200);
kaizen 0:d0e3f515f99d 323 //
kaizen 0:d0e3f515f99d 324 // // --------- WizFi250_at.cpp ---------
kaizen 0:d0e3f515f99d 325 // void clearFlags ();
kaizen 0:d0e3f515f99d 326 // int sendCommand (const char * cmd, Response res = RES_NULL, int timeout = DEFAULT_WAIT_RESP_TIMEOUT, int opt = 2);
kaizen 0:d0e3f515f99d 327 //
kaizen 0:d0e3f515f99d 328 // int cmdAT ();
kaizen 0:d0e3f515f99d 329 // int cmdMECHO (bool flg);
kaizen 0:d0e3f515f99d 330 // int cmdUSET (int baud, char *flow);
kaizen 0:d0e3f515f99d 331 // int cmdMMAC (const char *mac = NULL);
kaizen 0:d0e3f515f99d 332 // int cmdWSET (WiFiMode mode, const char *ssid, const char *bssid = NULL, int channel = 1);
kaizen 0:d0e3f515f99d 333 // int cmdWANT (AntennaMode mode);
kaizen 0:d0e3f515f99d 334 // int cmdWNET (bool is_dhcp);
kaizen 0:d0e3f515f99d 335 // int cmdWSEC (WiFiMode mode, const char *key, const char *sec = NULL);
kaizen 0:d0e3f515f99d 336 // int cmdWJOIN ();
kaizen 0:d0e3f515f99d 337 // int cmdWLEAVE ();
kaizen 0:d0e3f515f99d 338 // int cmdWSTATUS ();
kaizen 0:d0e3f515f99d 339 // int cmdSCON ( const char *openType, const char *socketType, int localPort, const char *dataMode = "0");
kaizen 0:d0e3f515f99d 340 // int cmdSCON ( const char *openType, const char *socketType, const char *remoteIp, int remotePort, int localPort = 0, const char *dataMode = "0");
kaizen 0:d0e3f515f99d 341 // int cmdSSEND ( const char *data, int cid, int sendSize, const char *remoteIp = NULL, int remotePort = 0, int Timeout = 2000 );
kaizen 0:d0e3f515f99d 342 // int cmdCLOSE ( int cid );
kaizen 0:d0e3f515f99d 343 // int cmdFDNS (const char *host);
kaizen 0:d0e3f515f99d 344 // int cmdSMGMT ( int cid );
kaizen 0:d0e3f515f99d 345 //
kaizen 0:d0e3f515f99d 346 //
kaizen 0:d0e3f515f99d 347 // static WizFi310 * getInstance() {
kaizen 0:d0e3f515f99d 348 // return _inst;
kaizen 0:d0e3f515f99d 349 // };
kaizen 0:d0e3f515f99d 350 //
kaizen 0:d0e3f515f99d 351 //
kaizen 0:d0e3f515f99d 352 // // --------- WizFi2550_sock.cpp ---------
kaizen 0:d0e3f515f99d 353 // int getHostByName (const char * host, char *ip);
kaizen 0:d0e3f515f99d 354 // int open (Protocol proto, const char *ip, int remotePort, int localPort = 0, void(*func)(int) = NULL);
kaizen 0:d0e3f515f99d 355 // int listen (Protocol proto, int port, void(*func)(int)=NULL);
kaizen 0:d0e3f515f99d 356 // int close (int cid);
kaizen 0:d0e3f515f99d 357 // void initCon (int cid, bool connected);
kaizen 0:d0e3f515f99d 358 // int send (int cid, const char *buf, int len);
kaizen 0:d0e3f515f99d 359 // int sendto (int cid, const char *buf, int len, const char *ip, int port);
kaizen 0:d0e3f515f99d 360 // int recv (int cid, char *buf, int len);
kaizen 0:d0e3f515f99d 361 // int recvfrom (int cid, char *buf, int len, char *ip, int *port);
kaizen 0:d0e3f515f99d 362 // int readable (int cid);
kaizen 0:d0e3f515f99d 363 // bool isConnected (int cid);
kaizen 0:d0e3f515f99d 364 // int accept (int cid);
kaizen 0:d0e3f515f99d 365 // int getRemote (int cid, char **ip, int *port);
kaizen 0:d0e3f515f99d 366 //
kaizen 0:d0e3f515f99d 367 //
kaizen 0:d0e3f515f99d 368 //protected:
kaizen 0:d0e3f515f99d 369 // static WizFi310 * _inst;
kaizen 0:d0e3f515f99d 370 //
kaizen 0:d0e3f515f99d 371 // // Serial _wizfi
kaizen 0:d0e3f515f99d 372 // RawSerial _wizfi;
kaizen 0:d0e3f515f99d 373 //
kaizen 0:d0e3f515f99d 374 // int _baud;
kaizen 0:d0e3f515f99d 375 // DigitalIn *_cts;
kaizen 0:d0e3f515f99d 376 // DigitalOut *_rts;
kaizen 0:d0e3f515f99d 377 // int _flow;
kaizen 0:d0e3f515f99d 378 //
kaizen 0:d0e3f515f99d 379 // DigitalInOut _reset;
kaizen 0:d0e3f515f99d 380 //
kaizen 0:d0e3f515f99d 381 // struct STATE {
kaizen 0:d0e3f515f99d 382 // WiFiMode wm;
kaizen 0:d0e3f515f99d 383 //
kaizen 0:d0e3f515f99d 384 // //daniel
kaizen 0:d0e3f515f99d 385 // //Security sec;
kaizen 0:d0e3f515f99d 386 // nsapi_security_t sec;
kaizen 0:d0e3f515f99d 387 // char ssid[35];
kaizen 0:d0e3f515f99d 388 // char pass[66];
kaizen 0:d0e3f515f99d 389 // char ip[16];
kaizen 0:d0e3f515f99d 390 // char netmask[16];
kaizen 0:d0e3f515f99d 391 // char gateway[16];
kaizen 0:d0e3f515f99d 392 // char nameserver[16];
kaizen 0:d0e3f515f99d 393 // char mac[18];
kaizen 0:d0e3f515f99d 394 // char resolv[16];
kaizen 0:d0e3f515f99d 395 // char name[32];
kaizen 0:d0e3f515f99d 396 // int rssi;
kaizen 0:d0e3f515f99d 397 // bool dhcp;
kaizen 0:d0e3f515f99d 398 // time_t time;
kaizen 0:d0e3f515f99d 399 //
kaizen 0:d0e3f515f99d 400 // bool initialized;
kaizen 0:d0e3f515f99d 401 // bool associated;
kaizen 0:d0e3f515f99d 402 // volatile Mode mode;
kaizen 0:d0e3f515f99d 403 // volatile Status status;
kaizen 0:d0e3f515f99d 404 // bool escape;
kaizen 0:d0e3f515f99d 405 // volatile bool ok, failure;
kaizen 0:d0e3f515f99d 406 // volatile Response res;
kaizen 0:d0e3f515f99d 407 // int cid;
kaizen 0:d0e3f515f99d 408 // int n;
kaizen 0:d0e3f515f99d 409 // CircBuffer<char> *buf;
kaizen 0:d0e3f515f99d 410 // } _state;
kaizen 0:d0e3f515f99d 411 //
kaizen 0:d0e3f515f99d 412 //
kaizen 0:d0e3f515f99d 413 //public:
kaizen 0:d0e3f515f99d 414 // struct CONNECTION {
kaizen 0:d0e3f515f99d 415 // Protocol protocol;
kaizen 0:d0e3f515f99d 416 // Type type;
kaizen 0:d0e3f515f99d 417 // bool connected;
kaizen 0:d0e3f515f99d 418 // char ip[16];
kaizen 0:d0e3f515f99d 419 // int port;
kaizen 0:d0e3f515f99d 420 // int send_length;
kaizen 0:d0e3f515f99d 421 // int recv_length;
kaizen 0:d0e3f515f99d 422 // CircBuffer<char> *buf;
kaizen 0:d0e3f515f99d 423 // volatile bool received;
kaizen 0:d0e3f515f99d 424 // volatile int parent;
kaizen 0:d0e3f515f99d 425 // volatile bool accept;
kaizen 0:d0e3f515f99d 426 // void(*func)(int);
kaizen 0:d0e3f515f99d 427 // } _con[8];
kaizen 0:d0e3f515f99d 428 //
kaizen 0:d0e3f515f99d 429 // // --------- WizFi310.cpp ---------
kaizen 0:d0e3f515f99d 430 //
kaizen 0:d0e3f515f99d 431 // int join(WiFiMode mode);
kaizen 0:d0e3f515f99d 432 // bool isAssociated();
kaizen 0:d0e3f515f99d 433 //
kaizen 0:d0e3f515f99d 434 // //int limitedap ();
kaizen 0:d0e3f515f99d 435 // //int dissociate ();
kaizen 0:d0e3f515f99d 436 // /*
kaizen 0:d0e3f515f99d 437 // int disconnect () {
kaizen 0:d0e3f515f99d 438 // return dissociate();
kaizen 0:d0e3f515f99d 439 // }
kaizen 0:d0e3f515f99d 440 // */
kaizen 0:d0e3f515f99d 441 //
kaizen 0:d0e3f515f99d 442 // Status getStatus ();
kaizen 0:d0e3f515f99d 443 //
kaizen 0:d0e3f515f99d 444 // int setMacAddress (const char *mac);
kaizen 0:d0e3f515f99d 445 // int getMacAddress (char *mac);
kaizen 0:d0e3f515f99d 446 // int setAddress (const char *name = NULL);
kaizen 0:d0e3f515f99d 447 // int setAddress (const char *ip, const char *netmask, const char *gateway, const char *dns = NULL, const char *name = NULL);
kaizen 0:d0e3f515f99d 448 // int getAddress (char *ip, char *netmask, char *gateway);
kaizen 0:d0e3f515f99d 449 // int setSsid (const char *ssid);
kaizen 0:d0e3f515f99d 450 // //daniel
kaizen 0:d0e3f515f99d 451 //// int setSec (Security sec, const char *phrase);
kaizen 0:d0e3f515f99d 452 // int setSec (nsapi_security_t sec, const char *phrase);
kaizen 0:d0e3f515f99d 453 //
kaizen 0:d0e3f515f99d 454 // const char* getIPAddress (void);
kaizen 0:d0e3f515f99d 455 // const char* getMACAddress (void);
kaizen 0:d0e3f515f99d 456 //
kaizen 0:d0e3f515f99d 457 // // --------- WizFi250_msg.cpp ---------
kaizen 0:d0e3f515f99d 458 // void recvData ( char c );
kaizen 0:d0e3f515f99d 459 // int parseMessage ();
kaizen 0:d0e3f515f99d 460 // void msgOk (const char *buf);
kaizen 0:d0e3f515f99d 461 // void msgError (const char *buf);
kaizen 0:d0e3f515f99d 462 // void msgConnect (const char *buf);
kaizen 0:d0e3f515f99d 463 // void msgDisconnect (const char *buf);
kaizen 0:d0e3f515f99d 464 // void msgListen (const char *buf);
kaizen 0:d0e3f515f99d 465 // //daniel
kaizen 0:d0e3f515f99d 466 // void msgMQTTConnect (const char *buf);
kaizen 0:d0e3f515f99d 467 // void msgMQTTDisconnect (const char *buf);
kaizen 0:d0e3f515f99d 468 //
kaizen 0:d0e3f515f99d 469 // void resMacAddress (const char *buf);
kaizen 0:d0e3f515f99d 470 // void resWJOIN (const char *buf);
kaizen 0:d0e3f515f99d 471 // void resConnect (const char *buf);
kaizen 0:d0e3f515f99d 472 // void resSSEND (const char *buf);
kaizen 0:d0e3f515f99d 473 // void resFDNS (const char *buf);
kaizen 0:d0e3f515f99d 474 // void resSMGMT (const char *buf);
kaizen 0:d0e3f515f99d 475 // void resWSTATUS (const char *buf);
kaizen 0:d0e3f515f99d 476 //
kaizen 0:d0e3f515f99d 477 //
kaizen 0:d0e3f515f99d 478 // // --------- WizFi250_hal.cpp ---------
kaizen 0:d0e3f515f99d 479 // void setReset (bool flg);
kaizen 0:d0e3f515f99d 480 // void isrUart ();
kaizen 0:d0e3f515f99d 481 // int getUart ();
kaizen 0:d0e3f515f99d 482 // void putUart (char c);
kaizen 0:d0e3f515f99d 483 // void setRts (bool flg);
kaizen 0:d0e3f515f99d 484 // int lockUart (int ms);
kaizen 0:d0e3f515f99d 485 // void unlockUart ();
kaizen 0:d0e3f515f99d 486 // void initUart (PinName cts, PinName rts, PinName alarm, int baud);
kaizen 0:d0e3f515f99d 487 //
kaizen 0:d0e3f515f99d 488 //
kaizen 0:d0e3f515f99d 489 // // --------- WizFi2550_util.cpp ---------
kaizen 0:d0e3f515f99d 490 // int x2i (char c);
kaizen 0:d0e3f515f99d 491 // int i2x (int i);
kaizen 0:d0e3f515f99d 492 //
kaizen 0:d0e3f515f99d 493 // // --------- WizFi250_ifc.cpp (For NetworkSocketAPI) ---------
kaizen 0:d0e3f515f99d 494 // /**
kaizen 0:d0e3f515f99d 495 // * Startup the WizFi310
kaizen 0:d0e3f515f99d 496 // *
kaizen 0:d0e3f515f99d 497 // * @return true only if WizFi310 was setup correctly
kaizen 0:d0e3f515f99d 498 // */
kaizen 0:d0e3f515f99d 499 // bool startup(void);
kaizen 0:d0e3f515f99d 500 //
kaizen 0:d0e3f515f99d 501 // /**
kaizen 0:d0e3f515f99d 502 // * Reset WizFi310
kaizen 0:d0e3f515f99d 503 // *
kaizen 0:d0e3f515f99d 504 // * @return true only if WizFi310 resets successfully
kaizen 0:d0e3f515f99d 505 // */
kaizen 0:d0e3f515f99d 506 // bool reset(void);
kaizen 0:d0e3f515f99d 507 //
kaizen 0:d0e3f515f99d 508 // /**
kaizen 0:d0e3f515f99d 509 // * Disconnect WizFi310 from AP
kaizen 0:d0e3f515f99d 510 // *
kaizen 0:d0e3f515f99d 511 // * @return true only if WizFi310 is disconnected successfully
kaizen 0:d0e3f515f99d 512 // */
kaizen 0:d0e3f515f99d 513 // bool disconnect(void);
kaizen 0:d0e3f515f99d 514 //
kaizen 0:d0e3f515f99d 515 // /**
kaizen 0:d0e3f515f99d 516 // * Check if WizFi310 is conenected
kaizen 0:d0e3f515f99d 517 // *
kaizen 0:d0e3f515f99d 518 // * @return true only if the chip has an IP address
kaizen 0:d0e3f515f99d 519 // */
kaizen 0:d0e3f515f99d 520 // bool isConnected(void);
kaizen 0:d0e3f515f99d 521 //
kaizen 0:d0e3f515f99d 522 //
kaizen 0:d0e3f515f99d 523 // //daniel for mqtt
kaizen 0:d0e3f515f99d 524 // char rcvd_mqtt_topic[128];
kaizen 0:d0e3f515f99d 525 //
kaizen 0:d0e3f515f99d 526 //};
kaizen 0:d0e3f515f99d 527
kaizen 0:d0e3f515f99d 528 #endif /* WIZFI250_H_ */