-

Dependencies:   CommandHandler HygroClip2 InterruptBasedEncoder SPI_TFT_ILI9341 mbed-src-no-hal

Committer:
wolfsberger
Date:
Tue Apr 05 14:00:51 2016 +0000
Revision:
4:47fd4584df95
Parent:
3:3ef8c2d7b1bf
-

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wolfsberger 0:9ed7238d49e2 1 #include "GraphScale.h"
wolfsberger 0:9ed7238d49e2 2
wolfsberger 0:9ed7238d49e2 3 GraphScale::GraphScale(SPI_TFT_ILI9341 * tft, int x, int y, int width, int height, int min, int max, int scaleSteps)
wolfsberger 0:9ed7238d49e2 4 : tft_(tft), x_(x), y_(y), width_(width), height_(height), min_(min), max_(max), scaleSteps_(scaleSteps)
wolfsberger 3:3ef8c2d7b1bf 5 {
wolfsberger 0:9ed7238d49e2 6 }
wolfsberger 0:9ed7238d49e2 7
wolfsberger 0:9ed7238d49e2 8 void GraphScale::draw(int color)
wolfsberger 0:9ed7238d49e2 9 {
wolfsberger 0:9ed7238d49e2 10 int x1 = x_-1;
wolfsberger 0:9ed7238d49e2 11 int x2 = x_+width_+1;
wolfsberger 0:9ed7238d49e2 12 int y1 = y_-1;
wolfsberger 0:9ed7238d49e2 13 int y2 = y_+height_+1;
wolfsberger 3:3ef8c2d7b1bf 14
wolfsberger 0:9ed7238d49e2 15 tft_->rect(x1, y1, x2, y2, color);
wolfsberger 3:3ef8c2d7b1bf 16
wolfsberger 4:47fd4584df95 17 //int stepsize = height_ / ((max_-min_) / scaleSteps_);
wolfsberger 0:9ed7238d49e2 18 int stepposition = min_;
wolfsberger 3:3ef8c2d7b1bf 19
wolfsberger 2:81fc8f80fdb4 20 while (stepposition <= max_)
wolfsberger 2:81fc8f80fdb4 21 {
wolfsberger 2:81fc8f80fdb4 22 float yPos = scaleY(stepposition);
wolfsberger 0:9ed7238d49e2 23 tft_->line(x2, yPos, x2+5, yPos, color);
wolfsberger 0:9ed7238d49e2 24 tft_->locate(x2+10,yPos-6);
wolfsberger 0:9ed7238d49e2 25 tft_->printf("%d",stepposition);
wolfsberger 0:9ed7238d49e2 26 stepposition += scaleSteps_;
wolfsberger 0:9ed7238d49e2 27 }
wolfsberger 2:81fc8f80fdb4 28 }
wolfsberger 2:81fc8f80fdb4 29
wolfsberger 2:81fc8f80fdb4 30 float GraphScale::scaleY(float ypos)
wolfsberger 2:81fc8f80fdb4 31 {
wolfsberger 2:81fc8f80fdb4 32 static float valueRange = static_cast<float>(max_-min_);
wolfsberger 2:81fc8f80fdb4 33 static float buttomOfGraph = static_cast<float>(y_+height_);
wolfsberger 3:3ef8c2d7b1bf 34
wolfsberger 2:81fc8f80fdb4 35 if (ypos < min_)
wolfsberger 2:81fc8f80fdb4 36 ypos = min_;
wolfsberger 2:81fc8f80fdb4 37 if (ypos > max_)
wolfsberger 2:81fc8f80fdb4 38 ypos = max_;
wolfsberger 3:3ef8c2d7b1bf 39
wolfsberger 2:81fc8f80fdb4 40 float scaled = buttomOfGraph - (height_ * ((ypos-min_) / valueRange));
wolfsberger 3:3ef8c2d7b1bf 41
wolfsberger 2:81fc8f80fdb4 42 return scaled;
wolfsberger 0:9ed7238d49e2 43 }