DynamicDataGraph
touchgfx/widgets/graph/AbstractDataGraph.hpp
Abstract helper class used to implement graphs with the same distance between the x values (i.e. x is ignored).
Inherits from: AbstractDataGraph, Container, Drawable
Inherited by: GraphScrollData, GraphWrapAndClearData, GraphWrapAndOverwriteData
Public Functions
FORCE_INLINE_FUNCTION int16_t | addDataPoint(float y) |
Adds a new data point to the end of the graph. | |
FORCE_INLINE_FUNCTION int16_t | addDataPoint(int y) |
Adds a new data point to the end of the graph. | |
int16_t | addDataPointScaled(int y) |
Adds a new data point to the end of the graph. | |
DynamicDataGraph(int16_t capacity, int * values) | |
Initializes a new instance of the AbstractDataGraphWithY class. | |
virtual int | getGraphRangeXMax() const |
Gets the maximum x coordinate for the graph. | |
virtual int | getGraphRangeXMin() const |
Gets the minimum x coordinate for the graph. | |
virtual int | getScale() const |
Gets the scaling factor previously set using setScale(). | |
virtual float | getXAxisFactorAsFloat() const |
Get x coordinate axis factor value. | |
virtual int | getXAxisFactorAsInt() const |
Get x coordinate axis factor value. | |
virtual int | getXAxisFactorScaled() const |
Get x axis factor as a scaled value. | |
virtual float | getXAxisOffsetAsFloat() const |
Get x coordinate axis offset value. | |
virtual int | getXAxisOffsetAsInt() const |
Get x coordinate axis offset value. | |
virtual int | getXAxisOffsetScaled() const |
Get x axis offset as a scaled value. | |
virtual int | indexToDataPointXScaled(int16_t index) const |
Gets data point x coordinate scaled. | |
virtual int | indexToDataPointYScaled(int16_t index) const |
Gets data point y coordinate scaled. | |
virtual void | setGraphRangeXAutoScaled(bool showYaxis, int margin) |
Automatically adjust min and max x coordinate to show entire graph. | |
virtual void | setGraphRangeYAutoScaled(bool showXaxis, int margin) |
Automatic adjust min and max y coordinate to show entire graph. | |
virtual void | setScale(int scale, bool updateData =false) |
Sets a scaling factor to be multiplied on each added element. | |
virtual void | setXAxisFactor(float factor) |
Set x coordinate axis factor value. | |
virtual void | setXAxisFactor(int factor) |
Set x coordinate axis factor value. | |
virtual void | setXAxisFactorScaled(int factor) |
Set x coordinate axis factor value using a pre-scaled value. | |
virtual void | setXAxisOffset(float offset) |
Set x coordinate axis offset value. | |
virtual void | setXAxisOffset(int offset) |
Set x coordinate axis offset value. | |
virtual void | setXAxisOffsetScaled(int offset) |
Set x coordinate axis offset value with a pre-scaled offset value. | |
Protected Functions
virtual int16_t | addValue(int value) =0 |
Adds a value to the internal data array and keeps track of when graph points, graph axis and the entire graph needs to be redrawn (invalidated). | |
virtual void | beforeAddValue() |
This function is called before a new value (data point) is added. | |
virtual int16_t | dataIndex(int16_t screenIndex) const |
Get the data index in the yValues array of the given screen index. | |
virtual int | getScaleX() const |
Gets the scaling factor previously set using setScaleX(). | |
virtual int | getScaleY() const |
Gets the scaling factor previously set using setScaleY(). | |
virtual int32_t | indexToGlobalIndex(int16_t index) const |
Convert an index to global index. | |
virtual CWRUtil::Q5 | indexToScreenXQ5(int16_t index) const |
Gets screen x coordinate for a specific data point added to the graph. | |
virtual CWRUtil::Q5 | indexToScreenYQ5(int16_t index) const |
Gets screen y coordinate for a specific data point added to the graph. | |
virtual int | indexToXAxis(const int valueScaled, const int labelScaled) const |
Convert the given valueScaled (index) to x axis value. | |
virtual void | setScaleX(int scale, bool updateData =false) |
Sets a scaling factor to be multiplied on each X value added. | |
virtual void | setScaleY(int scale, bool updateData =false) |
Sets a scaling factor to be multiplied on each Y value added. | |
virtual bool | xScreenRangeToIndexRange(int16_t xMin, int16_t xMax, int16_t & indexMin, int16_t & indexMax) const |
Gets index range for screen x coordinate range taking the current graph range into account. | |
Protected Attributes
uint32_t | dataCounter |
The data counter of how many times addDataPoint() has been called. | |
int | xAxisFactor |
The axis scale (real distance between two indices) | |
int | xAxisOffset |
The x axis offset (real value of data point at index 0) | |
int * | yValues |
The values of the graph. | |
Additional inherited members
Public Classes inherited from AbstractDataGraph
class | GraphClickEvent |
An object of this type is passed with each callback that is sent when the graph is clicked. | |
class | GraphDragEvent |
An object of this type is passed with each callback that is sent when the graph is dragged. | |
Public Functions inherited from AbstractDataGraph
AbstractDataGraph(int16_t capacity) | |
Initializes a new instance of the AbstractDataGraph class. | |
void | addBottomElement(AbstractGraphDecoration & d) |
Adds an element to be shown in the area below the graph. | |
void | addGraphElement(AbstractGraphElement & d) |
Adds a graph element which will display the graph. | |
void | addLeftElement(AbstractGraphDecoration & d) |
Adds an element to be shown in the area to the left of the graph. | |
void | addRightElement(AbstractGraphDecoration & d) |
Adds an element to be shown in the area to the right of the graph. | |
void | addTopElement(AbstractGraphDecoration & d) |
Adds an element to be shown in the area above the graph. | |
virtual void | clear() |
Clears the graph to its blank/initial state. | |
FORCE_INLINE_FUNCTION int | float2scaledX(float f) const |
Same as float2scaled(float, int) using the graph's x scale. | |
FORCE_INLINE_FUNCTION int | float2scaledY(float f) const |
Same as float2scaled(float, int) using the graph's y scale. | |
FORCE_INLINE_FUNCTION uint8_t | getAlpha() const |
Gets the current alpha value of the widget. | |
FORCE_INLINE_FUNCTION int16_t | getGapBeforeIndex() const |
Gets gap before index as set using setGapBeforeIndex(). | |
FORCE_INLINE_FUNCTION int16_t | getGraphAreaHeight() const |
Gets graph area height. | |
FORCE_INLINE_FUNCTION int16_t | getGraphAreaHeightIncludingPadding() const |
Gets graph area height including padding (but not margin). | |
FORCE_INLINE_FUNCTION int16_t | getGraphAreaMarginBottom() const |
Gets graph margin bottom. | |
FORCE_INLINE_FUNCTION int16_t | getGraphAreaMarginLeft() const |
Gets graph margin left. | |
FORCE_INLINE_FUNCTION int16_t | getGraphAreaMarginRight() const |
Gets graph margin right. | |
FORCE_INLINE_FUNCTION int16_t | getGraphAreaMarginTop() const |
Gets graph margin top. | |
FORCE_INLINE_FUNCTION int16_t | getGraphAreaPaddingBottom() const |
Gets graph area padding bottom. | |
FORCE_INLINE_FUNCTION int16_t | getGraphAreaPaddingLeft() const |
Gets graph area padding left. | |
FORCE_INLINE_FUNCTION int16_t | getGraphAreaPaddingRight() const |
Gets graph area padding right. | |
FORCE_INLINE_FUNCTION int16_t | getGraphAreaPaddingTop() const |
Gets graph area padding top. | |
FORCE_INLINE_FUNCTION int16_t | getGraphAreaWidth() const |
Gets graph area width. | |
FORCE_INLINE_FUNCTION int16_t | getGraphAreaWidthIncludingPadding() const |
Gets graph area width including padding (but not margin). | |
virtual float | getGraphRangeXMaxAsFloat() const |
Gets maximum x value for the graph. | |
virtual int | getGraphRangeXMaxAsInt() const |
Gets maximum x value for the graph. | |
virtual int | getGraphRangeXMaxScaled() const |
Gets maximum x value for the graph. | |
virtual float | getGraphRangeXMinAsFloat() const |
Gets minimum x value for the graph. | |
virtual int | getGraphRangeXMinAsInt() const |
Gets minimum x value for the graph. | |
virtual int | getGraphRangeXMinScaled() const |
Gets minimum x value for the graph. | |
virtual float | getGraphRangeYMaxAsFloat() const |
Gets maximum y value for the graph. | |
virtual int | getGraphRangeYMaxAsInt() const |
Gets maximum y value for the graph. | |
virtual int | getGraphRangeYMaxScaled() const |
Gets maximum y value for the graph. | |
virtual float | getGraphRangeYMinAsFloat() const |
Gets minimum y value for the graph. | |
virtual int | getGraphRangeYMinAsInt() const |
Gets minimum y value for the graph. | |
virtual int | getGraphRangeYMinScaled() const |
Gets minimum y value for the graph. | |
FORCE_INLINE_FUNCTION int16_t | getMaxCapacity() const |
Gets the capacity (max number of points) of the graph. | |
virtual bool | getNearestIndexForScreenX(int16_t x, int16_t & index) const |
Gets graph index nearest to the given screen x value. | |
virtual bool | getNearestIndexForScreenXY(int16_t x, int16_t y, int16_t & index) |
Gets graph index nearest to the given screen position. | |
FORCE_INLINE_FUNCTION int16_t | getUsedCapacity() const |
Gets the number of point used by the graph. | |
virtual void | handleClickEvent(const ClickEvent & event) |
Defines the event handler interface for ClickEvents. | |
virtual void | handleDragEvent(const DragEvent & event) |
Defines the event handler interface for DragEvents. | |
FORCE_INLINE_FUNCTION void | indexToDataPoint(int16_t index, float & xvalue, float & yvalue) const |
Gets data point as floating point values. | |
FORCE_INLINE_FUNCTION void | indexToDataPoint(int16_t index, int & xvalue, int & yvalue) const |
Gets data point as integer values. | |
FORCE_INLINE_FUNCTION void | indexToDataPointScaled(int16_t index, int & xvalue, int & yvalue) const |
Gets data point as raw (scaled) values. | |
FORCE_INLINE_FUNCTION float | indexToDataPointXAsFloat(int16_t index) const |
Gets data point x coordinate as float. | |
FORCE_INLINE_FUNCTION int | indexToDataPointXAsInt(int16_t index) const |
Gets data point x coordinate as int. | |
FORCE_INLINE_FUNCTION float | indexToDataPointYAsFloat(int16_t index) const |
Gets data point y coordinate as float. | |
FORCE_INLINE_FUNCTION int | indexToDataPointYAsInt(int16_t index) const |
Gets data point y coordinate as int. | |
FORCE_INLINE_FUNCTION int16_t | indexToScreenX(int16_t index) const |
Get the screen x coordinate for the given graph point index. | |
FORCE_INLINE_FUNCTION int16_t | indexToScreenY(int16_t index) const |
Get the screen y coordinate for the given graph point index. | |
FORCE_INLINE_FUNCTION int | int2scaledX(int i) const |
Same as int2scaled(int, int) using the graph's x scale. | |
FORCE_INLINE_FUNCTION int | int2scaledY(int i) const |
Same as int2scaled(int, int) using the graph's y scale. | |
virtual void | invalidateContent() const |
Invalidate content. | |
FORCE_INLINE_FUNCTION float | scaled2floatX(int i) const |
Same as scaled2float(int, int) using the graph's x scale. | |
FORCE_INLINE_FUNCTION float | scaled2floatY(int i) const |
Same as scaled2float(int, int) using the graph's y scale. | |
FORCE_INLINE_FUNCTION int | scaled2intX(int i) const |
Same as scaled2int(int, int) using the graph's x scale. | |
FORCE_INLINE_FUNCTION int | scaled2intY(int i) const |
Same as scaled2int(int, int) using the graph's y scale. | |
virtual void | setAlpha(uint8_t newAlpha) |
Sets the opacity (alpha value). | |
FORCE_INLINE_FUNCTION void | setClickAction(GenericCallback< const AbstractDataGraph &, const GraphClickEvent & > & callback) |
Sets an action to be executed when the graph is clicked. | |
FORCE_INLINE_FUNCTION void | setDragAction(GenericCallback< const AbstractDataGraph &, const GraphDragEvent & > & callback) |
Sets an action to be executed when the graph is dragged. | |
FORCE_INLINE_FUNCTION void | setGapBeforeIndex(int16_t index) |
Makes gap before the specified index. | |
void | setGraphAreaMargin(int16_t top, int16_t left, int16_t right, int16_t bottom) |
Sets graph position inside the widget by reserving a margin around the graph. | |
void | setGraphAreaPadding(int16_t top, int16_t left, int16_t right, int16_t bottom) |
Adds padding around the graph that will not be drawn in (apart from dots, boxes, lines etc. | |
FORCE_INLINE_FUNCTION void | setGraphRange(float xMin, float xMax, float yMin, float yMax) |
Sets minimum and maximum x and y coordinate ranges for the graph. | |
FORCE_INLINE_FUNCTION void | setGraphRange(float xMin, float xMax, int yMin, int yMax) |
Sets minimum and maximum x and y coordinate ranges for the graph. | |
FORCE_INLINE_FUNCTION void | setGraphRange(int xMin, int xMax, float yMin, float yMax) |
Sets minimum and maximum x and y coordinate ranges for the graph. | |
FORCE_INLINE_FUNCTION void | setGraphRange(int xMin, int xMax, int yMin, int yMax) |
Sets minimum and maximum x and y coordinate ranges for the graph. | |
FORCE_INLINE_FUNCTION void | setGraphRangeScaled(int xMin, int xMax, int yMin, int yMax) |
Same as setGraphRange(int, int, int, int) except the passed arguments are assumed scaled. | |
virtual void | setGraphRangeX(float min, float max) |
Sets minimum and maximum x coordinates for the graph. | |
virtual void | setGraphRangeX(int min, int max) |
Sets minimum and maximum x coordinates for the graph. | |
virtual void | setGraphRangeXAuto(bool showYaxis, float margin) |
Automatically adjust min and max x coordinate to show entire graph. | |
virtual void | setGraphRangeXAuto(bool showYaxis =true, int margin =0) |
Automatically adjust min and max x coordinate to show entire graph. | |
virtual void | setGraphRangeXScaled(int min, int max) |
Sets minimum and maximum x coordinates for the graph. | |
virtual void | setGraphRangeY(float min, float max) |
Sets minimum and maximum y coordinates for the graph. | |
virtual void | setGraphRangeY(int min, int max) |
Sets minimum and maximum y coordinates for the graph. | |
virtual void | setGraphRangeYAuto(bool showXaxis, float margin) |
Automatic adjust min and max y coordinate to show entire graph. | |
virtual void | setGraphRangeYAuto(bool showXaxis =true, int margin =0) |
Automatic adjust min and max y coordinate to show entire graph. | |
virtual void | setGraphRangeYScaled(int min, int max) |
Same as setGraphRangeY(int, int) except the passed arguments are assumed scaled. | |
virtual void | setHeight(int16_t height) |
Sets the height of this drawable. | |
virtual void | setWidth(int16_t width) |
Sets the width of this drawable. | |
int | convertToNewScale(int value, int oldScale, int newScale) |
Converts a value from one scale to another scale. | |
FORCE_INLINE_FUNCTION int | float2scaled(float f, int scale) |
Multiply a floating point value with a constant and round the result. | |
FORCE_INLINE_FUNCTION int | int2scaled(int i, int scale) |
Multiply an integer value with a constant. | |
FORCE_INLINE_FUNCTION float | scaled2float(int i, int scale) |
Divide a floating point number with a constant. | |
FORCE_INLINE_FUNCTION int | scaled2int(int i, int scale) |
Divide an integer with a constant and round the result. | |
Protected Functions inherited from AbstractDataGraph
void | invalidateAllXAxisPoints() |
Invalidate all x axis points. | |
FORCE_INLINE_FUNCTION void | invalidateGraphArea() const |
Invalidate entire graph area (the center of the graph). | |
void | invalidateGraphPointAt(int16_t index) |
Invalidate point at a given index. | |
void | invalidateXAxisPointAt(int16_t index) |
Invalidate x axis point at the given index. | |
void | updateAreasPosition() |
Updates the position of all elements in all area after a change in size of the graph area and/or label padding. | |
virtual CWRUtil::Q5 | valueToScreenXQ5(int x) const |
Gets screen x coordinate for an absolute value. | |
virtual CWRUtil::Q5 | valueToScreenYQ5(int y) const |
Gets screen y coordinate for an absolute value. | |
Protected Attributes inherited from AbstractDataGraph
uint8_t | alpha |
The alpha of the entire graph. | |
Container | bottomArea |
The area below the graph. | |
int16_t | bottomPadding |
The graph area bottom padding. | |
GenericCallback< const AbstractDataGraph &, const GraphClickEvent & > * | clickAction |
The callback to be executed when this Graph is clicked. | |
GenericCallback< const AbstractDataGraph &, const GraphDragEvent & > * | dragAction |
The callback to be executed when this Graph is dragged. | |
int16_t | gapBeforeIndex |
The graph is disconnected (there is a gap) before this element index. | |
Container | graphArea |
The graph area (the center area) | |
int | graphRangeMaxX |
The graph range maximum x coordinate. | |
int | graphRangeMaxY |
The graph range maximum y coordinate. | |
int | graphRangeMinX |
The graph range minimum x coordinate. | |
int | graphRangeMinY |
The graph range minimum y coordinate. | |
Container | leftArea |
The area to the left of the graph. | |
int16_t | leftPadding |
The graph area left padding. | |
int16_t | maxCapacity |
Maximum number of points in the graph. | |
Container | rightArea |
The area to the right of the graph. | |
int16_t | rightPadding |
The graph area right padding. | |
Container | topArea |
The area above the graph. | |
int16_t | topPadding |
The graph area top padding. | |
int16_t | usedCapacity |
The number of used points in the graph. | |
int | xScale |
The data scale for the x values. | |
int | yScale |
The data scale for the y values. | |
Public Functions inherited from Container
virtual void | add(Drawable & d) |
Adds a Drawable instance as child to this Container. | |
Container() | |
virtual bool | contains(const Drawable & d) |
Query if a given Drawable has been added directly to this Container. | |
virtual void | draw(const Rect & invalidatedArea) const |
Draw this drawable. | |
virtual void | forEachChild(GenericCallback< Drawable & > * function) |
Executes the specified callback function for each child in the Container. | |
virtual Drawable * | getFirstChild() |
Obtain a pointer to the first child of this container. | |
virtual void | getLastChild(int16_t x, int16_t y, Drawable ** last) |
Gets the last child in the list of children in this Container. | |
virtual void | getLastChildNear(int16_t x, int16_t y, Drawable * last, int16_t fingerAdjustmentX, int16_t * fingerAdjustmentY) |
Works similar to getLastChild() but also considers the current set finger size in HAL. | |
virtual Rect | getSolidRect() const |
Get (the largest possible) rectangle that is guaranteed to be solid (opaque). | |
virtual void | insert(Drawable * previous, Drawable & d) |
Inserts a Drawable after a specific child node. | |
virtual void | remove(Drawable & d) |
Removes a Drawable from the container by removing it from the linked list of children. | |
virtual void | removeAll() |
Removes all children in the Container by resetting their parent and sibling pointers. | |
virtual void | unlink() |
Removes all children by unlinking the first child. | |
Protected Functions inherited from Container
virtual Rect | getContainedArea() const |
Gets a rectangle describing the total area covered by the children of this container. | |
virtual void | moveChildrenRelative(int16_t deltaX, int16_t deltaY) |
Calls moveRelative on all children. | |
Protected Attributes inherited from Container
Drawable * | firstChild |
Pointer to the first child of this container. Subsequent children can be found through firstChild's nextSibling. | |
Public Functions inherited from Drawable
void | center() |
Centers the Drawable inside its parent. | |
void | centerX() |
Center the Drawable horizontally inside its parent. | |
void | centerY() |
Center the Drawable vertically inside its parent. | |
virtual void | childGeometryChanged() |
This function can be called on parent nodes to signal that the size or position of one or more of its children has changed. | |
virtual void | draw(const Rect & invalidatedArea) const =0 |
Draw this drawable. | |
Drawable() | |
Initializes a new instance of the Drawable class. | |
void | drawToDynamicBitmap(BitmapId id) |
Render the Drawable object into a dynamic bitmap. | |
void | expand(int margin =0) |
Expands the Drawable to have the same size as its parent with a given margin around the edge. | |
Rect | getAbsoluteRect() const |
Helper function for obtaining the rectangle this Drawable covers, expressed in absolute coordinates. | |
virtual Drawable * | getFirstChild() |
Function for obtaining the first child of this drawable if any. | |
int16_t | getHeight() const |
Gets the height of this Drawable. | |
virtual void | getLastChild(int16_t x, int16_t y, Drawable ** last) =0 |
Function for obtaining the the last child of this drawable that intersects with the specified point. | |
Drawable * | getNextSibling() |
Gets the next sibling node. | |
Drawable * | getParent() const |
Returns the parent node. | |
const Rect & | getRect() const |
Gets the rectangle this Drawable covers, in coordinates relative to its parent. | |
virtual Rect | getSolidRect() const =0 |
Get (the largest possible) rectangle that is guaranteed to be solid (opaque). | |
virtual Rect | getSolidRectAbsolute() |
Helper function for obtaining the largest solid rect (as implemented by getSolidRect()) expressed in absolute coordinates. | |
virtual void | getVisibleRect(Rect & rect) const |
Function for finding the visible part of this drawable. | |
int16_t | getWidth() const |
Gets the width of this Drawable. | |
int16_t | getX() const |
Gets the x coordinate of this Drawable, relative to its parent. | |
int16_t | getY() const |
Gets the y coordinate of this Drawable, relative to its parent. | |
virtual void | handleClickEvent(const ClickEvent & event) |
Defines the event handler interface for ClickEvents. | |
virtual void | handleDragEvent(const DragEvent & event) |
Defines the event handler interface for DragEvents. | |
virtual void | handleGestureEvent(const GestureEvent & event) |
Defines the event handler interface for GestureEvents. | |
virtual void | handleTickEvent() |
Called periodically by the framework if the Drawable instance has subscribed to timer ticks. | |
virtual void | invalidate() const |
Tell the framework that this entire Drawable needs to be redrawn. | |
virtual void | invalidateContent() const |
Tell the framework that the contents of the Drawable needs to be redrawn. | |
virtual void | invalidateRect(Rect & invalidatedArea) const |
Request that a region of this drawable is redrawn. | |
bool | isTouchable() const |
Gets whether this Drawable receives touch events or not. | |
bool | isVisible() const |
Gets whether this Drawable is visible. | |
virtual void | moveRelative(int16_t x, int16_t y) |
Moves the drawable. | |
virtual void | moveTo(int16_t x, int16_t y) |
Moves the drawable. | |
virtual void | setHeight(int16_t height) |
Sets the height of this drawable. | |
void | setPosition(const Drawable & drawable) |
Sets the position of the Drawable to the same as the given Drawable. | |
void | setPosition(int16_t x, int16_t y, int16_t width, int16_t height) |
Sets the size and position of this Drawable, relative to its parent. | |
void | setTouchable(bool touch) |
Controls whether this Drawable receives touch events or not. | |
void | setVisible(bool vis) |
Controls whether this Drawable should be visible. | |
virtual void | setWidth(int16_t width) |
Sets the width of this drawable. | |
void | setWidthHeight(const Bitmap & bitmap) |
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates). | |
void | setWidthHeight(const Drawable & drawable) |
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates). | |
void | setWidthHeight(const Rect & other) |
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates). | |
void | setWidthHeight(int16_t width, int16_t height) |
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates). | |
virtual void | setX(int16_t x) |
Sets the x coordinate of this Drawable, relative to its parent. | |
void | setXY(const Drawable & drawable) |
Sets the x and y coordinates of this Drawable. | |
void | setXY(int16_t x, int16_t y) |
Sets the x and y coordinates of this Drawable, relative to its parent. | |
virtual void | setY(int16_t y) |
Sets the y coordinate of this Drawable, relative to its parent. | |
virtual void | translateRectToAbsolute(Rect & r) const |
Helper function for converting a region of this Drawable to absolute coordinates. | |
virtual | ~Drawable() |
Finalizes an instance of the Drawable class. | |
Protected Attributes inherited from Drawable
Drawable * | nextSibling |
Pointer to the next Drawable. | |
Drawable * | parent |
Pointer to this drawable's parent. | |
Rect | rect |
The coordinates of this Drawable, relative to its parent. | |
bool | touchable |
True if this drawable should receive touch events. | |
bool | visible |
True if this drawable should be drawn. | |
Public Functions Documentation
addDataPoint
FORCE_INLINE_FUNCTION int16_t addDataPoint | ( | float | y | ) | |
Adds a new data point to the end of the graph.
The part of the graph that is changed, is automatically redrawn (invalidated).
y | The new data point. |
The index of the just added value.
addDataPoint
FORCE_INLINE_FUNCTION int16_t addDataPoint | ( | int | y | ) | |
Adds a new data point to the end of the graph.
The part of the graph that is changed, is automatically redrawn (invalidated).
y | The new data point. |
The index of the just added value.
addDataPointScaled
int16_t addDataPointScaled | ( | int | y | ) | |
Adds a new data point to the end of the graph.
The part of the graph that is changed, is automatically redrawn (invalidated).
y | The new data point. |
The index of the just added value. The index of the added data point.
Note
The y value must already be scaled.
DynamicDataGraph
DynamicDataGraph | ( | int16_t | capacity , | ||
int * | values | ||||
) |
Initializes a new instance of the AbstractDataGraphWithY class.
capacity | The capacity. |
values | Address where to store the y values of the graph. |
getGraphRangeXMax
virtual int getGraphRangeXMax | ( | ) | const |
Gets the maximum x coordinate for the graph.
The maximum x coordinate .
getGraphRangeXMin
virtual int getGraphRangeXMin | ( | ) | const |
Gets the minimum x coordinate for the graph.
The minimum x coordinate .
getScale
virtual int getScale | ( | ) | const |
Gets the scaling factor previously set using setScale().
The scaling factor.
getXAxisFactorAsFloat
virtual float getXAxisFactorAsFloat | ( | ) | const |
Get x coordinate axis factor value.
This is the real x value increment between two data points added to the graph.
The x axis factor.
getXAxisFactorAsInt
virtual int getXAxisFactorAsInt | ( | ) | const |
Get x coordinate axis factor value.
This is the real x value increment between two data points added to the graph.
The x axis factor.
getXAxisFactorScaled
virtual int getXAxisFactorScaled | ( | ) | const |
Get x axis factor as a scaled value.
The x axis factor (scaled).
getXAxisOffsetAsFloat
virtual float getXAxisOffsetAsFloat | ( | ) | const |
Get x coordinate axis offset value.
This is the real x value of the first data point added to the graph (i.e. the data point at index 0).
The x axis offset.
getXAxisOffsetAsInt
virtual int getXAxisOffsetAsInt | ( | ) | const |
Get x coordinate axis offset value.
This is the real x value of the first data point added to the graph (i.e. the data point at index 0).
The x axis offset.
getXAxisOffsetScaled
virtual int getXAxisOffsetScaled | ( | ) | const |
Get x axis offset as a scaled value.
The x axis offset (scaled).
indexToDataPointXScaled
virtual int indexToDataPointXScaled | ( | int16_t | index | ) | |
Gets data point x coordinate scaled.
index | Zero-based index of the value to fetch. |
The data point x coordinate scaled.
indexToDataPointXAsInt, indexToDataPointXAsFloat, indexToDataPointYScaled, indexToDataPoint, indexToDataPointScaled
Reimplements: touchgfx::AbstractDataGraph::indexToDataPointXScaled
indexToDataPointYScaled
virtual int indexToDataPointYScaled | ( | int16_t | index | ) | |
Gets data point y coordinate scaled.
index | Zero-based index of the value to fetch. |
The data point y coordinate scaled.
indexToDataPointYAsInt, indexToDataPointYAsFloat, indexToDataPointXScaled, indexToDataPoint, indexToDataPointScaled
Reimplements: touchgfx::AbstractDataGraph::indexToDataPointYScaled
setGraphRangeXAutoScaled
virtual void setGraphRangeXAutoScaled | ( | bool | showYaxis , | ||
int | margin | ||||
) |
Automatically adjust min and max x coordinate to show entire graph.
It is possible to ensure that the y axis (i.e. x=0) is included in the new range. If the graph range is changed as a consequence of calling this function, the graph is automatically redrawn (invalidated).
showYaxis | (Optional) True to ensure that the y axis is visible (default is true). |
margin | (Optional) The margin to add above/below the max/min x value (default is no margin). |
Note
This takes the currently visible y coordinate range into account. If data in the graph is changed, added or deleted, the graph range is not automatically recalculated. Call this function again to achieve this functionality.The arguments are assumed scaled. This means that if the scale is 1000, a value of 1 is interpreted as 0.001 (i.e. 1/1000).
Reimplements: touchgfx::AbstractDataGraph::setGraphRangeXAutoScaled
setGraphRangeYAutoScaled
virtual void setGraphRangeYAutoScaled | ( | bool | showXaxis , | ||
int | margin | ||||
) |
Automatic adjust min and max y coordinate to show entire graph.
It is possible to ensure that the x axis (i.e. y=0) is included in the new range. If the graph range is changed, the graph is automatically redrawn (invalidated).
showXaxis | True to ensure that the x axis is visible (default is true). |
margin | The margin to add above/below the max/min y value (default is no margin). |
Note
This takes the current visible x coordinate range into account.
Reimplements: touchgfx::AbstractDataGraph::setGraphRangeYAutoScaled
setScale
virtual void setScale | ( | int | scale , | ||
bool | updateData =false | ||||
) |
Sets a scaling factor to be multiplied on each added element.
Since the graph only stores integer values internally, it is possible to set a scale to e.g. 1000 and make the graph work as if there are three digits of precision. The addDataPoint() will multiply the argument with the scaling factor and store this value.
By setting the scale to 1 it is possible to simply use integer values for the graph.
scale | The scaling factor. |
updateData | (Optional) True to update all existing y value. |
Note
The current xAxisFactor, xAxisOffet and xGraphRange values are updated to reflect the new scale being set.
setXAxisFactor
virtual void setXAxisFactor | ( | float | factor | ) | |
Set x coordinate axis factor value.
This is the real x value increment between two data points added to the graph.
factor | The x axis factor. |
setXAxisFactor
virtual void setXAxisFactor | ( | int | factor | ) | |
Set x coordinate axis factor value.
This is the real x value increment between two data points added to the graph.
factor | The x axis factor. |
setXAxisFactorScaled
virtual void setXAxisFactorScaled | ( | int | factor | ) | |
Set x coordinate axis factor value using a pre-scaled value.
This is the real x value increment between two data points added to the graph.
factor | The x axis factor. |
setXAxisOffset
virtual void setXAxisOffset | ( | float | offset | ) | |
Set x coordinate axis offset value.
This is the real x value of the first data point added to the graph (i.e. the data point at index 0).
offset | The x axis offset. |
setXAxisOffset
virtual void setXAxisOffset | ( | int | offset | ) | |
Set x coordinate axis offset value.
This is the real x value of the first data point added to the graph (i.e. the data point at index 0).
offset | The x axis offset. |
setXAxisOffsetScaled
virtual void setXAxisOffsetScaled | ( | int | offset | ) | |
Set x coordinate axis offset value with a pre-scaled offset value.
This is the real x value of the first data point added to the graph (i.e. the data point at index 0).
offset | The x axis offset. |
Protected Functions Documentation
addValue
virtual int16_t addValue | ( | int | value | ) | |
Adds a value to the internal data array and keeps track of when graph points, graph axis and the entire graph needs to be redrawn (invalidated).
value | The value to add to the array. |
The index of the newly added value.
Reimplemented by: touchgfx::GraphScrollData::addValue, touchgfx::GraphWrapAndClearData::addValue, touchgfx::GraphWrapAndOverwriteData::addValue
beforeAddValue
virtual void beforeAddValue | ( | ) |
This function is called before a new value (data point) is added.
This allows for invalidation to be calculated based on the global data counter before it is increased as a result of adding the new point.
Reimplemented by: touchgfx::GraphScrollData::beforeAddValue, touchgfx::GraphWrapAndClearData::beforeAddValue, touchgfx::GraphWrapAndOverwriteData::beforeAddValue
dataIndex
virtual int16_t dataIndex | ( | int16_t | screenIndex | ) | |
Get the data index in the yValues array of the given screen index.
Normally this is just the 'i' but e.g. GraphScrollData does not, for performance reasons.
screenIndex | Zero-based screen index. |
The index in the yValues array.
Reimplemented by: touchgfx::GraphScrollData::dataIndex
getScaleX
virtual int getScaleX | ( | ) | const |
Gets the scaling factor previously set using setScaleX().
The scaling factor.
Reimplements: touchgfx::AbstractDataGraph::getScaleX
getScaleY
virtual int getScaleY | ( | ) | const |
Gets the scaling factor previously set using setScaleY().
The scaling factor.
Reimplements: touchgfx::AbstractDataGraph::getScaleY
indexToGlobalIndex
virtual int32_t indexToGlobalIndex | ( | int16_t | index | ) | |
Convert an index to global index.
The index is the index of any data point, The global index is a value that keeps growing whenever a new data point is added the the graph.
index | Zero-based index of the point. |
The global index.
Reimplemented by: touchgfx::GraphScrollData::indexToGlobalIndex, touchgfx::GraphWrapAndClearData::indexToGlobalIndex, touchgfx::GraphWrapAndOverwriteData::indexToGlobalIndex
indexToScreenXQ5
virtual CWRUtil::Q5 indexToScreenXQ5 | ( | int16_t | index | ) | |
Gets screen x coordinate for a specific data point added to the graph.
index | The index of the element to get the x coordinate for. |
The screen x coordinate for the specific data point.
Reimplements: touchgfx::AbstractDataGraph::indexToScreenXQ5
indexToScreenYQ5
virtual CWRUtil::Q5 indexToScreenYQ5 | ( | int16_t | index | ) | |
Gets screen y coordinate for a specific data point added to the graph.
index | The index of the element to get the y coordinate for. |
The screen x coordinate for the specific data point.
Reimplements: touchgfx::AbstractDataGraph::indexToScreenYQ5
indexToXAxis
virtual int indexToXAxis | ( | const int | valueScaled , | const | |
const int | labelScaled | const | |||
) | const |
Convert the given valueScaled (index) to x axis value.
valueScaled | The value scaled. |
labelScaled | The label scaled. |
The x axis value.
Reimplements: touchgfx::AbstractDataGraph::indexToXAxis
setScaleX
virtual void setScaleX | ( | int | scale , | ||
bool | updateData =false | ||||
) |
Sets a scaling factor to be multiplied on each X value added.
Since the graph only stores integer values internally, it is possible to set a scale to e.g. 1000 and make the graph work as if there are three digits of precision. The addDataPoint() will multiply the x argument with the scaling factor and store this value. Please note the addDataPointScaled, which allows adding a value that is assumed to have already been multiplied by the scaling factor. Other functions exist in a "scaled" version where the arguments are assumed to already be scaled.
By setting the scale to 1 it is possible to simply use integer values for the graph.
scale | The scaling factor. |
updateData | (Optional) True to update all existing x value. |
Reimplements: touchgfx::AbstractDataGraph::setScaleX
setScaleY
virtual void setScaleY | ( | int | scale , | ||
bool | updateData =false | ||||
) |
Sets a scaling factor to be multiplied on each Y value added.
Since the graph only stores integer values internally, it is possible to set a scale to e.g. 1000 and make the graph work as if there are three digits of precision. The addDataPoint() will multiply the y argument with the scaling factor and store this value. Please note the addDataPointScaled, which allows adding a value that is assumed to have already been multiplied by the scaling factor. Other functions exist in a "scaled" version where the arguments are assumed to already be scaled.
By setting the scale to 1 it is possible to simply use integer values for the graph.
scale | The scaling factor. |
updateData | (Optional) True to update all existing y value. |
Reimplements: touchgfx::AbstractDataGraph::setScaleY
xScreenRangeToIndexRange
virtual bool xScreenRangeToIndexRange | ( | int16_t | xMin , | const | |
int16_t | xMax , | const | |||
int16_t & | indexMin , | const | |||
int16_t & | indexMax | const | |||
) | const |
Gets index range for screen x coordinate range taking the current graph range into account.
xMin | The low screen x coordinate. |
xMax | The high screen x coordinate. |
indexMin | The low element index. |
indexMax | The high element index. |
True if the range from low index to high index is legal.
Note
For internal use.
Reimplements: touchgfx::AbstractDataGraph::xScreenRangeToIndexRange
Protected Attributes Documentation
dataCounter
uint32_t dataCounter
The data counter of how many times addDataPoint() has been called.
xAxisFactor
int xAxisFactor
The axis scale (real distance between two indices)
xAxisOffset
int xAxisOffset
The x axis offset (real value of data point at index 0)
yValues
int * yValues
The values of the graph.