Development version of xively-jumpstart-demo
Dependencies: C12832_lcd EthernetInterface LM75B MMA7660 libxively-develop mbed-rtos mbed
Fork of xively-jumpstart-demo by
main.cpp
00001 #include "mbed.h" 00002 #include "EthernetInterface.h" 00003 00004 #define XI_FEED_ID 128488 // set Xively Feed ID (numerical, no quoutes) 00005 #define XI_API_KEY "T4KXAH_dasgw1PWBPc3fdsfsdgsdy-dUc4ND0g" // set Xively API key (double-quoted string) 00006 00007 #include "app_board_io.h" 00008 00009 #include "xively.h" 00010 #include "xi_err.h" 00011 00012 #include "MMA7660.h" 00013 #include "LM75B.h" 00014 #include "C12832_lcd.h" 00015 00016 MMA7660 axl(p28, p27); 00017 LM75B tmp(p28, p27); 00018 C12832_LCD lcd; 00019 00020 #include "logo.h" 00021 00022 int main() { 00023 lcd_print_xively_logo(); 00024 EthernetInterface eth; 00025 00026 int s = eth.init(); //Use DHCP 00027 00028 if( s != NULL ) 00029 { 00030 lcd_printf( "Could not initialise. Will halt!\n" ); 00031 exit( 0 ); 00032 } 00033 00034 s = eth.connect(); 00035 00036 if( s != NULL ) 00037 { 00038 lcd_printf( "Could not connect. Will halt!\n" ); 00039 exit( 0 ); 00040 } 00041 else 00042 { 00043 lcd_printf( "IP: %s\n", eth.getIPAddress() ); 00044 } 00045 00046 xi_feed_t feed; 00047 memset( &feed, NULL, sizeof( xi_feed_t ) ); 00048 00049 feed.feed_id = XI_FEED_ID; 00050 feed.datastream_count = 3; 00051 00052 feed.datastreams[0].datapoint_count = 1; 00053 xi_datastream_t* orientation_datastream = &feed.datastreams[0]; 00054 strcpy( orientation_datastream->datastream_id, "orientation" ); 00055 xi_datapoint_t* current_orientation = &orientation_datastream->datapoints[0]; 00056 00057 feed.datastreams[1].datapoint_count = 1; 00058 xi_datastream_t* side_rotation_datastream = &feed.datastreams[1]; 00059 strcpy( side_rotation_datastream->datastream_id, "side_rotation" ); 00060 xi_datapoint_t* current_side_rotation = &side_rotation_datastream->datapoints[0]; 00061 00062 feed.datastreams[2].datapoint_count = 1; 00063 xi_datastream_t* temperature_datastream = &feed.datastreams[2]; 00064 strcpy( temperature_datastream->datastream_id, "temperature" ); 00065 xi_datapoint_t* current_temperature = &temperature_datastream->datapoints[0]; 00066 00067 // create the cosm library context 00068 xi_context_t* xi_context 00069 = xi_create_context( XI_HTTP, XI_API_KEY, feed.feed_id ); 00070 00071 // check if everything works 00072 if( xi_context == NULL ) 00073 { 00074 return -1; 00075 } 00076 00077 while(1) { 00078 00079 switch( axl.getSide() ) { 00080 case MMA7660::Front: 00081 xi_set_value_str( current_side_rotation, "front" ); 00082 break; 00083 case MMA7660::Back: 00084 xi_set_value_str( current_side_rotation, "back" ); 00085 break; 00086 default: 00087 xi_set_value_str( current_side_rotation, "unknown" ); 00088 break; 00089 } 00090 00091 switch( axl.getOrientation() ) { 00092 case MMA7660::Down: 00093 xi_set_value_str( current_orientation, "down" ); 00094 break; 00095 case MMA7660::Up: 00096 xi_set_value_str( current_orientation, "up" ); 00097 break; 00098 case MMA7660::Right: 00099 xi_set_value_str( current_orientation, "right" ); 00100 break; 00101 case MMA7660::Left: 00102 xi_set_value_str( current_orientation, "left" ); 00103 break; 00104 default: 00105 xi_set_value_str( current_orientation, "unknown" ); 00106 break; 00107 } 00108 00109 xi_set_value_f32( current_temperature, tmp.read() ); 00110 00111 lcd_printf( "update...\n" ); 00112 xi_feed_update( xi_context, &feed ); 00113 lcd_printf( "done...\n" ); 00114 00115 wait( 15.0 ); 00116 } 00117 }
Generated on Tue Jul 12 2022 22:46:36 by 1.7.2