GoogleChart.

Dependents:   GoogleChart_TestProgram

Committer:
shintamainjp
Date:
Tue Aug 17 09:21:55 2010 +0000
Revision:
0:ded8a44ff71f

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 0:ded8a44ff71f 1 /**
shintamainjp 0:ded8a44ff71f 2 * GoogleChart API interface driver. (Version 0.0.1)
shintamainjp 0:ded8a44ff71f 3 *
shintamainjp 0:ded8a44ff71f 4 * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
shintamainjp 0:ded8a44ff71f 5 * http://shinta.main.jp/
shintamainjp 0:ded8a44ff71f 6 */
shintamainjp 0:ded8a44ff71f 7
shintamainjp 0:ded8a44ff71f 8 #ifndef _GOOGLE_CHART_H_
shintamainjp 0:ded8a44ff71f 9 #define _GOOGLE_CHART_H_
shintamainjp 0:ded8a44ff71f 10
shintamainjp 0:ded8a44ff71f 11 #include <string.h>
shintamainjp 0:ded8a44ff71f 12 #include <string>
shintamainjp 0:ded8a44ff71f 13 #include <ctype.h>
shintamainjp 0:ded8a44ff71f 14
shintamainjp 0:ded8a44ff71f 15 #include <mbed.h>
shintamainjp 0:ded8a44ff71f 16
shintamainjp 0:ded8a44ff71f 17 #include "Axis.h"
shintamainjp 0:ded8a44ff71f 18 #include "DataSet.h"
shintamainjp 0:ded8a44ff71f 19
shintamainjp 0:ded8a44ff71f 20 class GoogleChart {
shintamainjp 0:ded8a44ff71f 21 public:
shintamainjp 0:ded8a44ff71f 22
shintamainjp 0:ded8a44ff71f 23 GoogleChart();
shintamainjp 0:ded8a44ff71f 24 virtual ~GoogleChart();
shintamainjp 0:ded8a44ff71f 25
shintamainjp 0:ded8a44ff71f 26 virtual std::string toString() = 0;
shintamainjp 0:ded8a44ff71f 27
shintamainjp 0:ded8a44ff71f 28 int addNewAxis(Axis::Type type = Axis::Bottom);
shintamainjp 0:ded8a44ff71f 29 int setAxisType(const int number, Axis::Type type);
shintamainjp 0:ded8a44ff71f 30 int setAxisRange(const int number, int rangeStart, int rangeEnd);
shintamainjp 0:ded8a44ff71f 31 int removeAxis(const int number);
shintamainjp 0:ded8a44ff71f 32
shintamainjp 0:ded8a44ff71f 33 int addNewDataSet(std::string label, const int size);
shintamainjp 0:ded8a44ff71f 34 int removeDataSet(const int number);
shintamainjp 0:ded8a44ff71f 35 int addData(const int number, double data);
shintamainjp 0:ded8a44ff71f 36 int clearAllData(const int number);
shintamainjp 0:ded8a44ff71f 37 int setDataScale(const int number, int min, int max);
shintamainjp 0:ded8a44ff71f 38
shintamainjp 0:ded8a44ff71f 39 void setTitle(std::string title);
shintamainjp 0:ded8a44ff71f 40 std::string getTitle() const;
shintamainjp 0:ded8a44ff71f 41 void setWidth(int width);
shintamainjp 0:ded8a44ff71f 42 int getWidth() const;
shintamainjp 0:ded8a44ff71f 43 void setHeight(int height);
shintamainjp 0:ded8a44ff71f 44 int getHeight() const;
shintamainjp 0:ded8a44ff71f 45
shintamainjp 0:ded8a44ff71f 46 protected:
shintamainjp 0:ded8a44ff71f 47 static const std::string baseURL;
shintamainjp 0:ded8a44ff71f 48 std::string title;
shintamainjp 0:ded8a44ff71f 49 int width;
shintamainjp 0:ded8a44ff71f 50 int height;
shintamainjp 0:ded8a44ff71f 51
shintamainjp 0:ded8a44ff71f 52 static const int MAX_AXIS = 16;
shintamainjp 0:ded8a44ff71f 53 Axis *axislist[MAX_AXIS];
shintamainjp 0:ded8a44ff71f 54
shintamainjp 0:ded8a44ff71f 55 static const int MAX_DATA = 16;
shintamainjp 0:ded8a44ff71f 56 DataSet *datalist[MAX_DATA];
shintamainjp 0:ded8a44ff71f 57
shintamainjp 0:ded8a44ff71f 58 typedef enum {
shintamainjp 0:ded8a44ff71f 59 LineChart
shintamainjp 0:ded8a44ff71f 60 } ChartType;
shintamainjp 0:ded8a44ff71f 61
shintamainjp 0:ded8a44ff71f 62 static std::string toURL(std::string text);
shintamainjp 0:ded8a44ff71f 63
shintamainjp 0:ded8a44ff71f 64 static std::string paramChartType(ChartType chartType);
shintamainjp 0:ded8a44ff71f 65 static std::string paramAxis(Axis **list, int size);
shintamainjp 0:ded8a44ff71f 66 static std::string paramDataSet(DataSet **list, int size);
shintamainjp 0:ded8a44ff71f 67 static std::string paramTitle(std::string title, int color, double fontSize);
shintamainjp 0:ded8a44ff71f 68 static std::string paramSize(int width, int height);
shintamainjp 0:ded8a44ff71f 69 };
shintamainjp 0:ded8a44ff71f 70
shintamainjp 0:ded8a44ff71f 71 #endif