Xively jumpstart demo with static ip

Dependencies:   C12832_lcd EthernetInterface LM75B MMA7660 libxively mbed-rtos mbed

Files at this revision

API Documentation at this revision

Comitter:
dwijaybane
Date:
Mon Oct 12 06:57:44 2015 +0000
Commit message:
xively custom static ip version

Changed in this revision

C12832_lcd.lib Show annotated file Show diff for this revision Revisions of this file
EthernetInterface.lib Show annotated file Show diff for this revision Revisions of this file
LM75B.lib Show annotated file Show diff for this revision Revisions of this file
MMA7660.lib Show annotated file Show diff for this revision Revisions of this file
app_board_io.cpp Show annotated file Show diff for this revision Revisions of this file
app_board_io.h Show annotated file Show diff for this revision Revisions of this file
libxively.lib Show annotated file Show diff for this revision Revisions of this file
logo.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
xi_user_config.h Show annotated file Show diff for this revision Revisions of this file
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__ */