WizFi250 AP mode, TCP Server Loopback example
Dependencies: WizFi250Interface mbed
main.cpp
- Committer:
- jehoon
- Date:
- 2016-03-30
- Revision:
- 0:c53cb06af402
File content as of revision 0:c53cb06af402:
#include "mbed.h" #include "WizFi250Interface.h" /* AP Info */ #define SECURE WizFi250::SEC_WPA2_MIXED #define SSID "WizFi250_AP_TEST" #define PASS "1234567890" /* Socket Info */ #define PORT 5000 Serial pc(USBTX, USBRX); /* network setup */ WizFi250Interface wizfi250(P13,P14,P11,P12,P15,NC,115200); TCPSocketServer server; TCPSocketConnection client; /* functions */ int TryApUp(); int TryServerUp(); int WaitClient(); int ApDown(); /* variables */ int isListened = 0; int main() { pc.baud(115200); pc.printf("Start Application AP TCP Server\r\n"); if( TryApUp() < 0 ) return -1; if( TryServerUp() < 0 ) return -1; if( WaitClient() < 0 ) return -1; while( client.is_connected() ) { int len = 0; char rcvBuf[1024] = {0,}; if( wizfi250.readable(0) > 0 ) { len = client.receive(rcvBuf, 1023); if( len > 0 ) { client.send(rcvBuf, len); } } } pc.printf("End Application\r\n"); return 0; } int TryApUp() { if( wizfi250.isAssociated() == 1 ) return -1; isListened = 0; for(int i= 0; i<5; i++) { wizfi250.init(); wizfi250.setAddress("192.168.0.2","255.255.255.0","192.168.0.2"); if ( wizfi250.connect(SECURE, SSID, PASS, WizFi250::WM_AP) ) continue; else { pc.printf("IP Address is %s\r\n", wizfi250.getIPAddress()); return 0; } } printf("Fail to make AP\r\n"); return -1; } int TryServerUp() { if( wizfi250.isAssociated() != 1 ) return -1; if( server.bind(PORT) < 0 ) { pc.printf("Bind fail..\r\n"); return -1; } if( server.listen(1) < 0 ) { pc.printf("Listen fail..\r\n"); return -1; } pc.printf("Listen PORT: %d\r\n",PORT); isListened = 1; return 0; } int WaitClient() { while( isListened ) { if( server.accept(client) < 0 ) { pc.printf("accept fail..\r\n"); return -1; } pc.printf("Connection Success!!\r\nIP: %s\r\n", client.get_address()); return 0; } return -1; }