Test of xively server connectivity layer
Dependencies: C12832_lcd EthernetInterface mbed-rtos mbed
main.cpp
- Committer:
- olgierdh
- Date:
- 2013-05-13
- Revision:
- 1:c9c854dada35
- Parent:
- 0:a9881ec5a2b4
File content as of revision 1:c9c854dada35:
#include "mbed.h" #include "EthernetInterface.h" #include <stdarg.h> #include <stdio.h> #include "C12832_lcd.h" C12832_LCD lcd; extern "C" { void user_printf( const char* buffer ) { lcd.cls(); lcd.locate( 0, 0 ); lcd.printf( buffer ); // wait( 1.0 ); } void mbed_printf( const char* fmt, ... ) { char buffer[ 64 ]; va_list ap; va_start( ap, fmt ); vsnprintf( buffer, 64, fmt, ap ); va_end( ap ); user_printf( buffer ); } } #define ADDRESS "api.cosm.com" #define PORT 80 #define API_KEY "youre_api_key" #define FEED_ID "youre_feed_id" #define MSG "PUT /v2/feeds/" FEED_ID ".csv HTTP/1.1\r\n"\ "Host: api.xively.com\r\n"\ "User-Agent: mbed_test/0.1.x\r\n"\ "Accept: */*\r\n"\ "X-ApiKey: " API_KEY "\r\n"\ "Content-Type: text/plain\r\n"\ "Content-Length: 33\r\n\r\n"\ "0001,test1\n"\ "0002,test2\n"\ "0003,test3\n\0" int main() { EthernetInterface eth; int s = eth.init(); //Use DHCP size_t msg_len = strlen( MSG ); if( s != NULL ) { mbed_printf( "Could not initialise. Will halt!\n" ); exit( 0 ); } s = eth.connect(); if( s != NULL ) { mbed_printf( "Could not connect. Will halt!\n" ); exit( 0 ); } else { mbed_printf( "IP: %s\n", eth.getIPAddress() ); } TCPSocketConnection connection; #define RECV_BUFFER_SIZE 512 char buffer[ RECV_BUFFER_SIZE ]; while( 1 ) { if( connection.connect( ADDRESS, PORT ) == -1 ) { mbed_printf( "Error during connection attempt\n" ); wait( 1.0 ); continue; } if( connection.send( MSG, msg_len ) == -1 ) { mbed_printf( "Error during send attempt\n" ); wait( 1.0 ); goto close; } memset( buffer, 0, RECV_BUFFER_SIZE ); if( connection.receive( buffer, RECV_BUFFER_SIZE ) == -1 ) { mbed_printf( "Error during receive attempt\n" ); wait( 1.0 ); } close: connection.close(); } }