Library to use a wifly module: RN 131 C/G
Dependents: RN-XV_simple_server
Wifly.h
- Committer:
- samux
- Date:
- 2011-08-12
- Revision:
- 0:2f38aaabc810
- Child:
- 1:e2f18a3d5215
File content as of revision 0:2f38aaabc810:
/** * @author Samuel Mokrani * * @section LICENSE * * Copyright (c) 2011 mbed * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. * * @section DESCRIPTION * * Wifly RN131-C, wifi module * * Datasheet: * * http://www.sparkfun.com/datasheets/Wireless/WiFi/WiFlyGSX-um2.pdf */ #ifndef WIFLY_H #define WIFLY_H #include "mbed.h" /** Wifly Class * * Example: * @code * #include "mbed.h" * #include "Wifly.h" * * Wifly * wifly; * Serial pc(USBTX, USBRX); * * int main() * { * wifly = new Wifly(p9, p10, p20, "network", "password", true); * * if(wifly->Join()) * pc.printf("network joined!\r\n"); * else * pc.printf("join failed!\r\n"); * *} * @endcode */ class Wifly { public: /** * Constructor for joining open, wep or wpa securized networks * * @param tx mbed pin to use for tx line of Serial interface * @param rx mbed pin to use for rx line of Serial interface * @param reset reset pin of the wifi module * @param ssid ssid of the network * @param phrase WEP or WPA key * @param wpa true if wpa security false otherwise * @param ip ip of the wifi module (default: NULL) * @param netmask netmask (default: NULL) * @param baudrate speed of the communication (default: 9600) * @param bits number of bits for the communication (default: 8) * @param parity parity used for the communication (default: Serial::None) * @param stop_bits number of stop bits (default: 1) */ Wifly( PinName tx, PinName rx, PinName reset, char * ssid, char * phrase, bool wpa, char * ip = NULL, char * netmask = NULL, bool dhcp = true, int baudrate = 9600, int bits = 8, Serial::Parity parity = Serial::None, int stop_bits = 1); /** * Constructor to create an adhoc network * * @param tx mbed pin to use for tx line of Serial interface * @param rx mbed pin to use for rx line of Serial interface * @param ssid ssid of the adhoc network which will be created * @param ip ip of the wifi module (default: "169.254.1.1") * @param netmask netmask (default: "255.255.0.0") * @param channelchannel (default: "1") * @param baudrate speed of the communication (default: 9600) * @param bits number of bits for the communication (default: 8) * @param parity parity used for the communication (default: Serial::None) * @param stop_bits number of stop bits (default: 1) */ Wifly( PinName tx, PinName rx, PinName reset, char * ssid, char * ip = "169.254.1.1", char * netmask = "255.255.0.0", int channel = 1, int baudrate = 9600, int bits = 8, Serial::Parity parity = Serial::None, int stop_bits = 1); /** * Send a string to the wifi module by serial port * * @ param str string to be sent * @ param ACK string which must be acknowledge by the wifi module * * @ return true if ACK has been found in the response from the wifi module. False otherwise or if there is no response in 3s. */ bool Send(char * str, char * ACK); /** * Connect the wifi module to the network. Return true if set correctly, false if not. * * @ return true if connected, false otherwise */ bool Join(); /** * Create an adhoc network with the ssid contained in the constructor * * @ return true if the network is well created, false otherwise */ bool CreateAdhocNetwork(); /** * Receive a string to the wifi module by serial port * *@ param str string to be read */ void read(char * str); /** * To enter in command mode (we can configure the module) * * @ return true if successful, false otherwise */ bool CmdMode(); /** * To exit the command mode * * @ return true if successful, false otherwise */ bool exit(); /** * Reset the wifi module */ void reset(); /** * To check if a character is available * * @ return true if a character is available, false otherwise */ bool readable(); /** * Read a character * * @ return the character read */ char getc(); /** * Write a character * * @ param the character which will be written */ void putc(char c); private: Serial wifi; DigitalOut reset_pin; bool wpa; bool adhoc; bool dhcp; char * phrase; char * ssid; char * ip; char * netmask; int channel; }; #endif