Allows for a 90 frame animated gauge to be display on the uLCD
uLCD_gauges.cpp
- Committer:
- Striker121
- Date:
- 2015-03-13
- Revision:
- 3:eee40e4de1c4
- Parent:
- 2:38006c26dda5
- Child:
- 4:069b01d563a3
File content as of revision 3:eee40e4de1c4:
#include "uLCD_gauges.h" #include "mbed.h" /** * @file uLCD_gauges.cpp * @brief This cpp file defines all the functions for uLCD_gauges.h * @author Matthew Arceri and Harsha Nori * @date 3/13/2015 */ /** * Constructor for the uLCD_gauges class. Sets up the value mapping assuming the default gauge is used. * @author Matthew Arceri * @param screen The uLCD instance that is going to be used for the gauge * @param min The minimum value the gauge wil be updated with. Used for mapping. * @param max The maximum value the gauge wil be updated with. Used for mapping. * @date 3/13/2015 */ uLCD_gauges::uLCD_gauges(uLCD_4DGL& screen, float min, float max){ uLCD = &screen; minVal = min; maxVal = max; mapOffset = 1; highFrame = 90; mapSlope = (highFrame - mapOffset) / (maxVal - minVal); memHigh = 0; memLow = 0; } /** * Constructor for the uLCD_gauges class. Sets up the value mapping for custom gauges. * @author Matthew Arceri * @param screen The uLCD instance that is going to be used for the gauge * @param min The minimum value the gauge wil be updated with. Used for mapping. * @param max The maximum value the gauge wil be updated with. Used for mapping. * @param memoryAddressHigh The ending memory address of the animation that will be displayed as a gauge. * @param memoryAddressLow The starting memory address of the animation that will be displayed as a gauge. * @date 3/13/2015 */ uLCD_gauges::uLCD_gauges(uLCD_4DGL& screen, float min, float max, int lowF, int highF, long memoryAddressHigh, long memoryAddressLow){ uLCD = &screen; minVal = min; maxVal = max; highFrame = highF; mapOffset = lowF; mapSlope = (highFrame - mapOffset) / (maxVal - minVal); memHigh = memoryAddressHigh; memLow = memoryAddressLow; } /** * This method repares the uLCD for displaying the gauge. Must be called once after object instancing * @author Matthew Arceri * @date 3/13/15 */ void uLCD_gauges::start() { uLCD->baudrate(3000000); uLCD->cls(); uLCD->media_init(); uLCD->set_sector_address(0,0); } /** * This method updates the gauge based on the new input value * @author Harsha Nori * @param value The value to be mapped onto the display * @date 3/13/15 */ void uLCD_gauges::update(float value){ //Map value in range minVal to maxVal onto 1 to 99 int mappedValue = int(mapOffset + mapSlope*(value - minVal)); uLCD->display_frame(0,0, mappedValue); }