See: http://mbed.org/users/okini3939/notebook/wifi_rpc/
Dependencies: GSwifiInterface mbed-rpc mbed
main.cpp
- Committer:
- okini3939
- Date:
- 2014-05-12
- Revision:
- 3:57b308f73055
- Parent:
- 2:33dc972331bb
File content as of revision 3:57b308f73055:
#include "mbed.h" #include "mbed_rpc.h" #include "GSwifi.h" #define SEC GSwifi::SEC_OPEN #define SSID "MBED" #define PASS "1234567890" #ifndef CFG_ENABLE_WEBSOCKET #error Please enable "#define CFG_ENABLE_WEBSOCKET" in "GSwifi_conf.h" #endif DigitalOut led1(LED1), led2(LED2); Serial pc(USBTX, USBRX); //GSwifi gs(p13, p14, p12, P0_22, p20, NC, 115200); // mbed LPC1768 GSwifi gs(p13, p14, p12, p11, p20, NC, 115200); // mbed LPC1768 LocalFileSystem local("local"); void ws_server (int cid) { int i; char buf[40], outbuf[40]; led2 = 1; i = gs.recv(cid, buf, sizeof(buf)); if (i < 0) return; buf[i] = 0; RPC::call(buf, outbuf); printf("RPC %d '%s' '%s'\r\n", cid, buf, outbuf); gs.wsSend(cid, outbuf, strlen(outbuf)); led2 = 0; } int main () { pc.baud(115200); gs.setAddress("192.168.1.1", "255.255.255.0", "192.168.1.1", "192.168.1.1", "www.mbed"); gs.setSsid(SEC, SSID, PASS); if (gs.limitedap()) { pc.printf("error: limitedap\r\n"); return -1; } RPC::add_rpc_class<RpcDigitalIn>(); RPC::add_rpc_class<RpcDigitalOut>(); RPC::add_rpc_class<RpcDigitalInOut>(); RPC::add_rpc_class<RpcPwmOut>(); RPC::add_rpc_class<RpcAnalogIn>(); RPC::add_rpc_class<RpcAnalogOut>(); gs.httpd(80); gs.httpdAttach("/ws/", &ws_server, 1); gs.httpdAttach("/", "/local/"); printf("httpd ready\r\n"); led1 = 1; for (;;) { gs.poll(); if (pc.readable()) { if (pc.getc() == 'q') break; } } gs.dissociate(); led1 = 0; return 0; }