plotly interface based on ardunio sample code

Dependents:   Plotly_HelloWorld

Library for plotting a simple x/y scatter chart on the plot.ly website.

See plotly_HelloWorld for sample usage.

Committer:
AndyA
Date:
Wed Jul 02 10:13:24 2014 +0000
Revision:
1:d532e96fca12
Parent:
0:96532c59670f
Child:
2:d53d74ed68ac
Creates plots but fails to send data

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AndyA 0:96532c59670f 1 #ifndef plotly_streaming_ethernet_h
AndyA 0:96532c59670f 2 #define plotly_streaming_ethernet_h
AndyA 0:96532c59670f 3
AndyA 0:96532c59670f 4 #include <EthernetInterface.h>
AndyA 0:96532c59670f 5 #include <TCPSocketConnection.h>
AndyA 0:96532c59670f 6
AndyA 0:96532c59670f 7
AndyA 0:96532c59670f 8 /*********************************
AndyA 0:96532c59670f 9 in main.cpp
AndyA 1:d532e96fca12 10 EthernetInterface eth;
AndyA 0:96532c59670f 11 #define num_traces 1
AndyA 0:96532c59670f 12 // Sign up to plotly here: https://plot.ly
AndyA 0:96532c59670f 13 // View your API key and stream tokens in your settings: https://plot.ly/settings
AndyA 0:96532c59670f 14 char *streaming_tokens[num_traces] = {"leofdu7cun"};
AndyA 0:96532c59670f 15 plotly graph = plotly("AndyA", "acchq52p7j", streaming_tokens, "test1", num_traces);
AndyA 0:96532c59670f 16
AndyA 0:96532c59670f 17 void plotSetup() {
AndyA 0:96532c59670f 18
AndyA 0:96532c59670f 19 // eth.init();
AndyA 0:96532c59670f 20 // eth.connect();
AndyA 0:96532c59670f 21
AndyA 0:96532c59670f 22 // Initialize a streaming graph in your plotly account
AndyA 0:96532c59670f 23 pc.printf("plot init..\n");
AndyA 0:96532c59670f 24 graph.init();
AndyA 0:96532c59670f 25 pc.printf("Open stream..\n");
AndyA 0:96532c59670f 26 // Initialize plotly's streaming service
AndyA 0:96532c59670f 27 graph.openStream();
AndyA 0:96532c59670f 28 }
AndyA 0:96532c59670f 29
AndyA 0:96532c59670f 30 void plotGenerateData() {
AndyA 0:96532c59670f 31 static int counter = 0;
AndyA 0:96532c59670f 32 graph.plot(counter, counter*counter, streaming_tokens[0]);
AndyA 0:96532c59670f 33 counter++;
AndyA 0:96532c59670f 34 }
AndyA 0:96532c59670f 35
AndyA 0:96532c59670f 36
AndyA 0:96532c59670f 37 ********************************************/
AndyA 0:96532c59670f 38 class plotly
AndyA 0:96532c59670f 39 {
AndyA 0:96532c59670f 40 public:
AndyA 0:96532c59670f 41 plotly(char *username, char *api_key, char* stream_tokens[], char *filename, int nTraces);
AndyA 0:96532c59670f 42 ~plotly();
AndyA 0:96532c59670f 43 bool init();
AndyA 0:96532c59670f 44 void openStream();
AndyA 0:96532c59670f 45 void closeStream();
AndyA 0:96532c59670f 46 void reconnectStream();
AndyA 0:96532c59670f 47 void jsonStart(int i);
AndyA 0:96532c59670f 48 void jsonMiddle();
AndyA 0:96532c59670f 49 void jsonEnd(char *token);
AndyA 0:96532c59670f 50
AndyA 0:96532c59670f 51 void plot(unsigned long x, int y, char *token);
AndyA 0:96532c59670f 52 void plot(unsigned long x, float y, char *token);
AndyA 0:96532c59670f 53
AndyA 0:96532c59670f 54 int log_level;
AndyA 0:96532c59670f 55 bool dry_run;
AndyA 0:96532c59670f 56 int maxpoints;
AndyA 0:96532c59670f 57 bool world_readable;
AndyA 0:96532c59670f 58 bool convertTimestamp;
AndyA 0:96532c59670f 59 char *timezone;
AndyA 0:96532c59670f 60 char *fileopt;
AndyA 0:96532c59670f 61
AndyA 0:96532c59670f 62 private:
AndyA 1:d532e96fca12 63 bool print_(int d);
AndyA 1:d532e96fca12 64 bool print_(unsigned long d);
AndyA 1:d532e96fca12 65 bool print_(float d);
AndyA 1:d532e96fca12 66 bool print_(char *d);
AndyA 1:d532e96fca12 67 bool printHex_(uint16_t d);
AndyA 0:96532c59670f 68
AndyA 0:96532c59670f 69 int len_(int i);
AndyA 0:96532c59670f 70 int len_(unsigned long i);
AndyA 0:96532c59670f 71 int len_(char *i);
AndyA 0:96532c59670f 72
AndyA 0:96532c59670f 73 char txBuffer[128];
AndyA 0:96532c59670f 74 char rxBuffer[128];
AndyA 0:96532c59670f 75 TCPSocketConnection socket;
AndyA 0:96532c59670f 76
AndyA 0:96532c59670f 77 unsigned long fibonacci_;
AndyA 0:96532c59670f 78 char *username_;
AndyA 0:96532c59670f 79 char *api_key_;
AndyA 0:96532c59670f 80 char** stream_tokens_;
AndyA 0:96532c59670f 81 char *filename_;
AndyA 0:96532c59670f 82 int nTraces_;
AndyA 1:d532e96fca12 83
AndyA 1:d532e96fca12 84 bool initalised;
AndyA 0:96532c59670f 85
AndyA 0:96532c59670f 86 };
AndyA 0:96532c59670f 87 #endif