Small demo to purely test UDP, depends on the module already being configured to auto connect to an access point
Dependencies: USBDevice cc3000_hostdriver_mbedsocket mbed
Fork of WifiDipCortex-UDPDemo by
Wifi-DipCortex - Test application that shows you how to listen for UDP message on one port while sending messages on another
- Listens on UDP_LISTEN_PORT, upon data being recvied it can be found in UDP_RecvBuffer - Transmits UDP_TX_Buffer on UDP_TARGET_PORT to UDP_TARGET_IP
Diff: main.cpp
- Revision:
- 0:ff40ad3448c5
- Child:
- 1:5fa4efb214e7
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Jul 08 18:56:37 2014 +0000 @@ -0,0 +1,130 @@ +#include "mbed.h" +#include "cc3000.h" +#include "wifi.h" +#include "UDPSocket.h" +#include "USBSerial.h" + +using namespace mbed_cc3000; + +#define SERIAL_BAUD_RATE 115200 + +cc3000 wifi(p28, p27, p30, SPI(p21, p14, p37)); +Serial uart(p19, p20); + +// USB CDC serial port +USBSerial pc; + +// ------------------------------------------------------------------------------------------------------------ +/*! + @brief WaitForConnection +*/ +// ------------------------------------------------------------------------------------------------------------ +void WaitForConnection ( void ) +{ +tNetappIpconfigRetArgs ipinfo; + + while (! ( wifi.is_dhcp_configured() ) ) + { + // Still not connected + pc.printf("No Connection\r\n"); + wait(1); + } + + if (( wifi.is_enabled() ) && ( wifi.is_dhcp_configured() )) + { + wifi.get_ip_config(&ipinfo); + } + + pc.printf("Connected to (%s) %s \r\n", ipinfo.uaSSID, wifi.getIPAddress()); + +} + +// ------------------------------------------------------------------------------------------------------------ +/*! + @brief WaitForUser +*/ +// ------------------------------------------------------------------------------------------------------------ +void WaitForUser ( void ) +{ +char charIn; + + pc.printf("Press Enter to Continue\r\n"); + + while (1) + { + charIn = pc.getc(); + + pc.printf("%c", charIn); + if ((charIn == '\n') || (charIn == '\r')) + { + break; + } + } +} + + +const char* UDP_TARGET_IP = "192.168.0.10"; +const int UDP_TARGET_PORT = 1500; + +// ------------------------------------------------------------------------------------------------------------ +/*! + @brief UdpTx +*/ +// ------------------------------------------------------------------------------------------------------------ +void UdpTx ( void ) +{ +char message[] = "Hello World\n"; +UDPSocket udpSocket; +Endpoint target; + + udpSocket.init(); + target.set_address(UDP_TARGET_IP, UDP_TARGET_PORT); + + pc.printf("Sending UDP Message ..\r\n"); + udpSocket.sendTo(target, message, sizeof(message)); + pc.printf("UDP Message Sent..\r\n"); +} + +// ------------------------------------------------------------------------------------------------------------ +/*! + @brief Init +*/ +// ------------------------------------------------------------------------------------------------------------ +void init() +{ + NVIC_SetPriority(SSP1_IRQn, 0x0); + NVIC_SetPriority(PIN_INT0_IRQn, 0x1); + + // SysTick set to lower priority than Wi-Fi SPI bus interrupt + NVIC_SetPriority(SysTick_IRQn, 0x2); + + // Enable RAM1 + LPC_SYSCON->SYSAHBCLKCTRL |= (0x1 << 26); + + uart.baud(SERIAL_BAUD_RATE); + + wait(1); +} + +// ------------------------------------------------------------------------------------------------------------ +/*! + @brief main loop +*/ +// ------------------------------------------------------------------------------------------------------------ +int main( void ) +{ + // Initalise the WiFi Module + init(); + + WaitForUser(); + + wifi.start(0); + + WaitForConnection(); + + while (1) + { + WaitForUser(); + UdpTx(); + } +} \ No newline at end of file