plotly interface based on ardunio sample code
Library for plotting a simple x/y scatter chart on the plot.ly website.
See plotly_HelloWorld for sample usage.
plotly.h@2:d53d74ed68ac, 2014-07-03 (annotated)
- 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?
User | Revision | Line number | New 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 |