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:
Thu Jul 03 15:21:30 2014 +0000
Revision:
2:d53d74ed68ac
Parent:
1:d532e96fca12
Child:
4:33006c37c633
Child:
6:e57d6e9313f4
update;

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 2:d53d74ed68ac 38
AndyA 2:d53d74ed68ac 39 #define k_bufferSize 512
AndyA 2:d53d74ed68ac 40
AndyA 0:96532c59670f 41 class plotly
AndyA 0:96532c59670f 42 {
AndyA 0:96532c59670f 43 public:
AndyA 0:96532c59670f 44 plotly(char *username, char *api_key, char* stream_tokens[], char *filename, int nTraces);
AndyA 0:96532c59670f 45 ~plotly();
AndyA 0:96532c59670f 46 bool init();
AndyA 0:96532c59670f 47 void openStream();
AndyA 0:96532c59670f 48 void closeStream();
AndyA 0:96532c59670f 49 void reconnectStream();
AndyA 0:96532c59670f 50 void jsonStart(int i);
AndyA 0:96532c59670f 51 void jsonMiddle();
AndyA 0:96532c59670f 52 void jsonEnd(char *token);
AndyA 0:96532c59670f 53
AndyA 0:96532c59670f 54 void plot(unsigned long x, int y, char *token);
AndyA 0:96532c59670f 55 void plot(unsigned long x, float y, char *token);
AndyA 0:96532c59670f 56
AndyA 0:96532c59670f 57 int log_level;
AndyA 0:96532c59670f 58 bool dry_run;
AndyA 0:96532c59670f 59 int maxpoints;
AndyA 0:96532c59670f 60 bool world_readable;
AndyA 0:96532c59670f 61 bool convertTimestamp;
AndyA 0:96532c59670f 62 char *timezone;
AndyA 0:96532c59670f 63 char *fileopt;
AndyA 0:96532c59670f 64
AndyA 0:96532c59670f 65 private:
AndyA 1:d532e96fca12 66 bool print_(int d);
AndyA 1:d532e96fca12 67 bool print_(unsigned long d);
AndyA 1:d532e96fca12 68 bool print_(float d);
AndyA 1:d532e96fca12 69 bool print_(char *d);
AndyA 1:d532e96fca12 70 bool printHex_(uint16_t d);
AndyA 2:d53d74ed68ac 71
AndyA 2:d53d74ed68ac 72 bool sendFormatedText(char* data, int size);
AndyA 2:d53d74ed68ac 73 void echoRxData();
AndyA 2:d53d74ed68ac 74
AndyA 0:96532c59670f 75
AndyA 0:96532c59670f 76 int len_(int i);
AndyA 0:96532c59670f 77 int len_(unsigned long i);
AndyA 0:96532c59670f 78 int len_(char *i);
AndyA 0:96532c59670f 79
AndyA 2:d53d74ed68ac 80 char buffer[512];
AndyA 2:d53d74ed68ac 81 // char rxBuffer[128];
AndyA 2:d53d74ed68ac 82 TCPSocketConnection *socket;
AndyA 0:96532c59670f 83
AndyA 0:96532c59670f 84 unsigned long fibonacci_;
AndyA 0:96532c59670f 85 char *username_;
AndyA 0:96532c59670f 86 char *api_key_;
AndyA 0:96532c59670f 87 char** stream_tokens_;
AndyA 0:96532c59670f 88 char *filename_;
AndyA 0:96532c59670f 89 int nTraces_;
AndyA 1:d532e96fca12 90
AndyA 1:d532e96fca12 91 bool initalised;
AndyA 0:96532c59670f 92
AndyA 0:96532c59670f 93 };
AndyA 0:96532c59670f 94 #endif