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
EMW3162.h
00001 /* EMW3162Interface Example 00002 * Copyright (c) 2015 ARM Limited 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 #ifndef EMW3162_H 00018 #define EMW3162_H 00019 00020 #include "ATParser.h" 00021 00022 /** EMW3162Interface class. 00023 This is an interface to a EMW3162 radio. 00024 */ 00025 class EMW3162 00026 { 00027 public: 00028 EMW3162(PinName tx, PinName rx, bool debug=false); 00029 00030 /** 00031 * Startup the EMW3162 00032 * 00033 * @param mode mode of WIFI 1-client, 2-host, 3-both 00034 * @return true only if EMW3162 was setup correctly 00035 */ 00036 bool startup(); 00037 00038 /** 00039 * Reset EMW3162 00040 * 00041 * @return true only if EMW3162 resets successfully 00042 */ 00043 bool reset(const char *reset); 00044 00045 /** 00046 * Enable/Disable DHCP 00047 * 00048 * @param enabled DHCP enabled when true 00049 * @param mode mode of DHCP 0-softAP, 1-station, 2-both 00050 * @return true only if EMW3162 enables/disables DHCP successfully 00051 */ 00052 bool dhcp(bool enabled); 00053 00054 /** 00055 * Connect EMW3162 to AP 00056 * 00057 * @param ap the name of the AP 00058 * @param passPhrase the password of AP 00059 * @return true only if EMW3162 is connected successfully 00060 */ 00061 bool connect(const char *ap, const char *passPhrase); 00062 00063 /** 00064 * Disconnect EMW3162 from AP 00065 * 00066 * @return true only if EMW3162 is disconnected successfully 00067 */ 00068 bool disconnect(void); 00069 00070 /** 00071 * Get the IP address of EMW3162 00072 * 00073 * @return null-teriminated IP address or null if no IP address is assigned 00074 */ 00075 const char *getIPAddress(void); 00076 00077 /** 00078 * Get the MAC address of EMW3162 00079 * 00080 * @return null-terminated MAC address or null if no MAC address is assigned 00081 */ 00082 const char *getMACAddress(void); 00083 00084 /** 00085 * Check if EMW3162 is conenected 00086 * 00087 * @return true only if the chip has an IP address 00088 */ 00089 bool isConnected(void); 00090 00091 /** 00092 * Open a socketed connection 00093 * 00094 * @param type the type of socket to open "UDP" or "TCP" 00095 * @param id id to give the new socket, valid 0-4 00096 * @param port port to open connection with 00097 * @param addr the IP address of the destination 00098 * @return true only if socket opened successfully 00099 */ 00100 int open(const char *type, int id, const char* addr, int port); 00101 00102 /** 00103 * Sends data to an open socket 00104 * 00105 * @param id id of socket to send to 00106 * @param data data to be sent 00107 * @param amount amount of data to be sent - max 1024 00108 * @return true only if data sent successfully 00109 */ 00110 bool send(int id, const void *data, uint32_t amount); 00111 00112 /** 00113 * Receives data from an open socket 00114 * 00115 * @param id id to receive from 00116 * @param data placeholder for returned information 00117 * @param amount number of bytes to be received 00118 * @return the number of bytes received 00119 */ 00120 int32_t recv(int id, void *data, uint32_t amount); 00121 00122 /** 00123 * Closes a socket 00124 * 00125 * @param id id of socket to close, valid only 0-4 00126 * @return true only if socket is closed successfully 00127 */ 00128 bool close(int id); 00129 00130 /** 00131 * Allows timeout to be changed between commands 00132 * 00133 * @param timeout_ms timeout of the connection 00134 */ 00135 void setTimeout(uint32_t timeout_ms); 00136 00137 /** 00138 * Checks if data is available 00139 */ 00140 bool readable(); 00141 00142 /** 00143 * Checks if data can be written 00144 */ 00145 bool writeable(); 00146 00147 /** 00148 * Attach a function to call whenever network state has changed 00149 * 00150 * @param func A pointer to a void function, or 0 to set as none 00151 */ 00152 void attach(Callback<void()> func); 00153 00154 /** 00155 * Attach a function to call whenever network state has changed 00156 * 00157 * @param obj pointer to the object to call the member function on 00158 * @param method pointer to the member function to call 00159 */ 00160 template <typename T, typename M> 00161 void attach(T *obj, M method) { 00162 attach(Callback<void()>(obj, method)); 00163 } 00164 00165 private: 00166 BufferedSerial _serial; 00167 ATParser _parser; 00168 00169 struct packet { 00170 struct packet *next; 00171 int id; 00172 uint32_t len; 00173 // data follows 00174 } *_packets, **_packets_end; 00175 void _packet_handler(); 00176 00177 char _ip_buffer[16]; 00178 char _mac_buffer[18]; 00179 }; 00180 00181 #endif
Generated on Tue Jul 12 2022 21:41:13 by
1.7.2
