![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Xively jumpstart demo with static ip
Dependencies: C12832_lcd EthernetInterface LM75B MMA7660 libxively mbed-rtos mbed
Revision 0:7c69bca78a67, committed 2015-10-12
- Comitter:
- dwijaybane
- Date:
- Mon Oct 12 06:57:44 2015 +0000
- Commit message:
- xively custom static ip version
Changed in this revision
diff -r 000000000000 -r 7c69bca78a67 C12832_lcd.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/C12832_lcd.lib Mon Oct 12 06:57:44 2015 +0000 @@ -0,0 +1,1 @@ +https://mbed.org/users/dreschpe/code/C12832_lcd/#c9afe58d786a
diff -r 000000000000 -r 7c69bca78a67 EthernetInterface.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/EthernetInterface.lib Mon Oct 12 06:57:44 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/EthernetInterface/#cba86db5ab96
diff -r 000000000000 -r 7c69bca78a67 LM75B.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LM75B.lib Mon Oct 12 06:57:44 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/chris/code/LM75B/#6a70c9303bbe
diff -r 000000000000 -r 7c69bca78a67 MMA7660.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MMA7660.lib Mon Oct 12 06:57:44 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/Sissors/code/MMA7660/#a8e20db7901e
diff -r 000000000000 -r 7c69bca78a67 app_board_io.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app_board_io.cpp Mon Oct 12 06:57:44 2015 +0000 @@ -0,0 +1,19 @@ +#include "app_board_io.h" +#include "C12832_lcd.h" + +extern C12832_LCD lcd; + +extern "C" void lcd_printf( const char* fmt, ... ) +{ + char buffer[ 64 ]; + + va_list ap; + va_start( ap, fmt ); + vsnprintf( buffer, 64, fmt, ap ); + va_end( ap ); + + lcd.cls(); + lcd.locate( 0, 3 ); + lcd.printf( buffer ); + //wait( 1.0 ); +} \ No newline at end of file
diff -r 000000000000 -r 7c69bca78a67 app_board_io.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app_board_io.h Mon Oct 12 06:57:44 2015 +0000 @@ -0,0 +1,7 @@ +#include <stdarg.h> +#include <stdio.h> + +#ifdef __cplusplus +extern "C" +#endif +void lcd_printf( const char* fmt, ... ); \ No newline at end of file
diff -r 000000000000 -r 7c69bca78a67 libxively.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libxively.lib Mon Oct 12 06:57:44 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/xively/code/libxively/#4ce6299f7535
diff -r 000000000000 -r 7c69bca78a67 logo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logo.h Mon Oct 12 06:57:44 2015 +0000 @@ -0,0 +1,55 @@ +static char xively_logo_data[] = { + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0, + 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x3e, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, + 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, + 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, + 0x10, 0x0, 0x0, 0x0, 0x0, 0xf, 0xc0, 0xf0, + 0x0, 0x0, 0x1e, 0x7, 0x9c, 0xf0, 0x1e, 0x3f, + 0xf0, 0xf7, 0x80, 0x78, 0xf, 0xf, 0x1c, 0xf0, + 0x1e, 0x7f, 0xf8, 0xf7, 0x80, 0xf0, 0x7, 0x9e, + 0x1c, 0xf0, 0x1e, 0xf8, 0x78, 0xf3, 0xc0, 0xf0, + 0x7, 0x9e, 0x1c, 0x78, 0x3c, 0xf0, 0x3c, 0xf3, + 0xc0, 0xe0, 0x3, 0xfc, 0x1c, 0x78, 0x3d, 0xe0, + 0x1c, 0xf3, 0xc1, 0xe0, 0x1, 0xf8, 0x1c, 0x38, + 0x39, 0xe0, 0x1c, 0xf1, 0xe1, 0xe0, 0x1, 0xf8, + 0x1c, 0x3c, 0x79, 0xff, 0xfe, 0xf1, 0xe3, 0xc0, + 0x1, 0xf8, 0x1c, 0x3c, 0x79, 0xff, 0xfe, 0xf0, + 0xe3, 0xc0, 0x1, 0xf8, 0x1c, 0x1e, 0xf1, 0xe0, + 0x0, 0xf0, 0xf3, 0x80, 0x3, 0xfc, 0x1c, 0x1e, + 0xf1, 0xe0, 0x0, 0xf0, 0x77, 0x80, 0x7, 0x9e, + 0x1c, 0xf, 0xe0, 0xf0, 0x0, 0xf0, 0x7f, 0x80, + 0x7, 0x8f, 0x1c, 0xf, 0xe0, 0xf8, 0x10, 0xf0, + 0x7f, 0x0, 0xf, 0xf, 0x1c, 0xf, 0xe0, 0x7f, + 0xf8, 0xf0, 0x3f, 0x0, 0x1e, 0x7, 0x9c, 0x7, + 0xc0, 0x3f, 0xf8, 0xf0, 0x3e, 0x0, 0x3e, 0x3, + 0xdc, 0x7, 0xc0, 0x1f, 0xe0, 0xf0, 0x1e, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 +}; + +inline void lcd_print_xively_logo() { + static Bitmap xively_logo = { 80, 32, 10, xively_logo_data }; + lcd.cls(); + lcd.print_bm(xively_logo, 24, 0); + lcd.copy_to_lcd(); + for(int i = -32; i < 32; i++){ + lcd.cls(); + lcd.print_bm(xively_logo, 24, i); + lcd.copy_to_lcd(); + wait(0.1); + } +} \ No newline at end of file
diff -r 000000000000 -r 7c69bca78a67 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Oct 12 06:57:44 2015 +0000 @@ -0,0 +1,121 @@ +#include "mbed.h" +#include "EthernetInterface.h" + +#define XI_FEED_ID 945482898 // set Xively Feed ID (numerical, no quoutes) +#define XI_API_KEY "tGr9LJ4AAPdwOC4NIsbEGWf18QVMaECI7OlXu34YqCk62nIq" // set Xively API key (double-quoted string) + +#include "app_board_io.h" + +#include "xively.h" +#include "xi_err.h" + +#include "MMA7660.h" +#include "LM75B.h" +#include "C12832_lcd.h" + +MMA7660 axl(p28, p27); +LM75B tmp(p28, p27); +C12832_LCD lcd; + +static const char* mbedIp = "192.168.0.160"; //IP +static const char* mbedMask = "255.255.255.0"; // Mask +static const char* mbedGateway = "192.168.0.254"; //Gateway + +#include "logo.h" + +int main() { + lcd_print_xively_logo(); + EthernetInterface eth; + + int s = eth.init(mbedIp,mbedMask,mbedGateway); //Use these parameters for static IP + + if( s != NULL ) + { + lcd_printf( "Could not initialise. Will halt!\n" ); + exit( 0 ); + } + + s = eth.connect(); + + if( s != NULL ) + { + lcd_printf( "Could not connect. Will halt!\n" ); + exit( 0 ); + } + else + { + lcd_printf( "IP: %s\n", eth.getIPAddress() ); + } + + xi_feed_t feed; + memset( &feed, NULL, sizeof( xi_feed_t ) ); + + feed.feed_id = XI_FEED_ID; + feed.datastream_count = 3; + + feed.datastreams[0].datapoint_count = 1; + xi_datastream_t* orientation_datastream = &feed.datastreams[0]; + strcpy( orientation_datastream->datastream_id, "orientation" ); + xi_datapoint_t* current_orientation = &orientation_datastream->datapoints[0]; + + feed.datastreams[1].datapoint_count = 1; + xi_datastream_t* side_rotation_datastream = &feed.datastreams[1]; + strcpy( side_rotation_datastream->datastream_id, "side_rotation" ); + xi_datapoint_t* current_side_rotation = &side_rotation_datastream->datapoints[0]; + + feed.datastreams[2].datapoint_count = 1; + xi_datastream_t* temperature_datastream = &feed.datastreams[2]; + strcpy( temperature_datastream->datastream_id, "temperature" ); + xi_datapoint_t* current_temperature = &temperature_datastream->datapoints[0]; + + // create the cosm library context + xi_context_t* xi_context + = xi_create_context( XI_HTTP, XI_API_KEY, feed.feed_id ); + + // check if everything works + if( xi_context == NULL ) + { + return -1; + } + + while(1) { + + switch( axl.getSide() ) { + case MMA7660::Front: + xi_set_value_str( current_side_rotation, "front" ); + break; + case MMA7660::Back: + xi_set_value_str( current_side_rotation, "back" ); + break; + default: + xi_set_value_str( current_side_rotation, "unknown" ); + break; + } + + switch( axl.getOrientation() ) { + case MMA7660::Down: + xi_set_value_str( current_orientation, "down" ); + break; + case MMA7660::Up: + xi_set_value_str( current_orientation, "up" ); + break; + case MMA7660::Right: + xi_set_value_str( current_orientation, "right" ); + break; + case MMA7660::Left: + xi_set_value_str( current_orientation, "left" ); + break; + default: + xi_set_value_str( current_orientation, "unknown" ); + break; + } + + xi_set_value_f32( current_temperature, tmp.read() ); + + lcd_printf( "update...\n" ); + xi_feed_update( xi_context, &feed ); + lcd_printf( "done...\n" ); + + wait( 15.0 ); + } +}
diff -r 000000000000 -r 7c69bca78a67 mbed-rtos.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rtos.lib Mon Oct 12 06:57:44 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed-rtos/#ee87e782d34f
diff -r 000000000000 -r 7c69bca78a67 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Oct 12 06:57:44 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/a9913a65894f \ No newline at end of file
diff -r 000000000000 -r 7c69bca78a67 xi_user_config.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xi_user_config.h Mon Oct 12 06:57:44 2015 +0000 @@ -0,0 +1,24 @@ +#ifndef __XI_USER_CONFIG_H__ +#define __XI_USER_CONFIG_H__ + +// The following settings should lower memory footprint. +// The library currently allows one to send batch datapoint +// and feed updates, but it's not needed in most use cases +#define XI_MAX_DATAPOINTS 1 +// The number of channels can be increased if needed +#define XI_MAX_DATASTREAMS 5 + +// Below are optimisations that reduce some minor functionality +#define XI_OPT_NO_ERROR_STRINGS + +// If you wish to enable assertions, set this to 1 +#define XI_DEBUG_ASSERT 0 +// If you wish to disable debug output, set this to 0 +#define XI_DEBUG_OUTPUT 0 + +// On the mbed app board we can use the LCD for debug output, +// but one may wish to modify this and write to file instead +#include "app_board_io.h" +#define XI_DEBUG_PRINTF lcd_printf //TODO: use serial port... + +#endif /* __XI_USER_CONFIG_H__ */