Websocket Hello World over a wifi network
Dependencies: EthernetNetIf mbed DNSResolver
main.cpp@5:0bbd45478043, 2011-09-01 (annotated)
- Committer:
- samux
- Date:
- Thu Sep 01 13:16:18 2011 +0000
- Revision:
- 5:0bbd45478043
- Parent:
- 4:145755bbff90
- Child:
- 6:b9bf734842db
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
samux | 0:e10d21debdaa | 1 | #include "mbed.h" |
samux | 0:e10d21debdaa | 2 | #include "Wifly.h" |
samux | 0:e10d21debdaa | 3 | #include "Websocket.h" |
samux | 0:e10d21debdaa | 4 | #include "ADXL345.h" |
samux | 0:e10d21debdaa | 5 | |
samux | 0:e10d21debdaa | 6 | Serial pc(USBTX, USBRX); |
samux | 0:e10d21debdaa | 7 | |
samux | 0:e10d21debdaa | 8 | ADXL345 accelerometer(p5, p6, p7, p8); |
samux | 0:e10d21debdaa | 9 | |
samux | 0:e10d21debdaa | 10 | //Here, we create an instance, with pins 9 and 10 connecting to the |
samux | 0:e10d21debdaa | 11 | //WiFly's TX and RX pins, and pin 21 to RESET. We are connecting to the |
samux | 5:0bbd45478043 | 12 | //"mbed" network, password "password", and we are using WPA. |
samux | 5:0bbd45478043 | 13 | Wifly wifly(p9, p10, p21, "mbed", "password", true); |
samux | 0:e10d21debdaa | 14 | |
samux | 0:e10d21debdaa | 15 | //Here, we create a Websocket instance in 'w' (write) mode |
samux | 0:e10d21debdaa | 16 | //on the 'samux' channel |
samux | 5:0bbd45478043 | 17 | Websocket ws("ws://sockets.mbed.org/ws/samux/wo", &wifly); |
samux | 0:e10d21debdaa | 18 | |
samux | 0:e10d21debdaa | 19 | int main() { |
samux | 0:e10d21debdaa | 20 | char json_str[100]; |
samux | 0:e10d21debdaa | 21 | |
samux | 0:e10d21debdaa | 22 | int readings[3] = {0, 0, 0}; |
samux | 0:e10d21debdaa | 23 | |
samux | 0:e10d21debdaa | 24 | pc.printf("Starting ADXL345 test...\r\n"); |
samux | 0:e10d21debdaa | 25 | pc.printf("Device ID is: 0x%02x\r\n", accelerometer.getDevId()); |
samux | 0:e10d21debdaa | 26 | |
samux | 0:e10d21debdaa | 27 | //Go into standby mode to configure the device. |
samux | 0:e10d21debdaa | 28 | accelerometer.setPowerControl(0x00); |
samux | 0:e10d21debdaa | 29 | |
samux | 0:e10d21debdaa | 30 | //Full resolution, +/-16g, 4mg/LSB. |
samux | 0:e10d21debdaa | 31 | accelerometer.setDataFormatControl(0x0B); |
samux | 0:e10d21debdaa | 32 | |
samux | 0:e10d21debdaa | 33 | //3.2kHz data rate. |
samux | 0:e10d21debdaa | 34 | accelerometer.setDataRate(ADXL345_3200HZ); |
samux | 0:e10d21debdaa | 35 | |
samux | 0:e10d21debdaa | 36 | //Measurement mode. |
samux | 0:e10d21debdaa | 37 | accelerometer.setPowerControl(0x08); |
samux | 0:e10d21debdaa | 38 | |
samux | 0:e10d21debdaa | 39 | |
samux | 0:e10d21debdaa | 40 | while (1) { |
samux | 0:e10d21debdaa | 41 | while (1) { |
samux | 0:e10d21debdaa | 42 | |
samux | 0:e10d21debdaa | 43 | while (!wifly.Join()) //we connect to the network |
samux | 0:e10d21debdaa | 44 | wifly.reset(); |
samux | 0:e10d21debdaa | 45 | |
samux | 0:e10d21debdaa | 46 | if (!ws.connect()) //we connect to the server |
samux | 0:e10d21debdaa | 47 | wifly.reset(); |
samux | 0:e10d21debdaa | 48 | else |
samux | 0:e10d21debdaa | 49 | break; |
samux | 0:e10d21debdaa | 50 | } |
samux | 0:e10d21debdaa | 51 | |
samux | 0:e10d21debdaa | 52 | while (1) { |
samux | 0:e10d21debdaa | 53 | wait(0.1); |
samux | 0:e10d21debdaa | 54 | |
samux | 0:e10d21debdaa | 55 | //we read accelerometers values |
samux | 0:e10d21debdaa | 56 | accelerometer.getOutput(readings); |
samux | 0:e10d21debdaa | 57 | |
samux | 0:e10d21debdaa | 58 | //Here, we format the string we will be sending to the server |
samux | 0:e10d21debdaa | 59 | //the format we are sending in is JSON |
samux | 0:e10d21debdaa | 60 | sprintf(json_str, "{\"id\":\"wifly_acc\",\"ax\":\"%d\",\"ay\":\"%d\",\"az\":\"%d\"}", (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]); |
samux | 0:e10d21debdaa | 61 | ws.Send(json_str); //And we send the string |
samux | 0:e10d21debdaa | 62 | } |
samux | 0:e10d21debdaa | 63 | } |
samux | 0:e10d21debdaa | 64 | } |