Object Model code with hardware support
Dependencies: mbed
anthem.cpp@0:2b4bbe9ea495, 2014-09-05 (annotated)
- Committer:
- bgrissom
- Date:
- Fri Sep 05 00:07:44 2014 +0000
- Revision:
- 0:2b4bbe9ea495
Object Model code with Toshiba S0 and S1 routines compiles with ST F401RE board support. If you try to compile this for the F030 or F072, it will run out of SRAM space.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bgrissom | 0:2b4bbe9ea495 | 1 | #include <cstddef> |
bgrissom | 0:2b4bbe9ea495 | 2 | #include <string.h> |
bgrissom | 0:2b4bbe9ea495 | 3 | #include "defines.hpp" |
bgrissom | 0:2b4bbe9ea495 | 4 | #include "configs.hpp" |
bgrissom | 0:2b4bbe9ea495 | 5 | #include "anthem.hpp" |
bgrissom | 0:2b4bbe9ea495 | 6 | |
bgrissom | 0:2b4bbe9ea495 | 7 | #include <stdio.h> |
bgrissom | 0:2b4bbe9ea495 | 8 | |
bgrissom | 0:2b4bbe9ea495 | 9 | LEDModule::LEDModule(void) |
bgrissom | 0:2b4bbe9ea495 | 10 | : _rowNum(MODULE_HEIGHT), |
bgrissom | 0:2b4bbe9ea495 | 11 | _colNum(MODULE_WIDTH) |
bgrissom | 0:2b4bbe9ea495 | 12 | { |
bgrissom | 0:2b4bbe9ea495 | 13 | int i = 0; |
bgrissom | 0:2b4bbe9ea495 | 14 | |
bgrissom | 0:2b4bbe9ea495 | 15 | // Read in 3 things from the EEPROM: |
bgrissom | 0:2b4bbe9ea495 | 16 | // - LED driver to pixel mapping |
bgrissom | 0:2b4bbe9ea495 | 17 | // - Scan group to pixel mapping |
bgrissom | 0:2b4bbe9ea495 | 18 | // - LED driver channel to pixel mapping |
bgrissom | 0:2b4bbe9ea495 | 19 | |
bgrissom | 0:2b4bbe9ea495 | 20 | // Also read in other auxillary data from EEPROM: |
bgrissom | 0:2b4bbe9ea495 | 21 | // - Module brightness |
bgrissom | 0:2b4bbe9ea495 | 22 | |
bgrissom | 0:2b4bbe9ea495 | 23 | _moduleBrightness = 1.0f; // FIXME get from EEPROM |
bgrissom | 0:2b4bbe9ea495 | 24 | |
bgrissom | 0:2b4bbe9ea495 | 25 | // FIXME where does this come from? It will change depending on day/night correct? |
bgrissom | 0:2b4bbe9ea495 | 26 | _displayBrightness = 1.0f; |
bgrissom | 0:2b4bbe9ea495 | 27 | |
bgrissom | 0:2b4bbe9ea495 | 28 | //-------------------------------------------- |
bgrissom | 0:2b4bbe9ea495 | 29 | // SCAN GROUPS |
bgrissom | 0:2b4bbe9ea495 | 30 | //-------------------------------------------- |
bgrissom | 0:2b4bbe9ea495 | 31 | ScanGroup *lastScanGroup = NULL; |
bgrissom | 0:2b4bbe9ea495 | 32 | for (i = 0; i < NUM_SCANGROUPS; i++) { |
bgrissom | 0:2b4bbe9ea495 | 33 | if (i == 0) { |
bgrissom | 0:2b4bbe9ea495 | 34 | _currentScanGroup = &_scanGroupArray[i]; |
bgrissom | 0:2b4bbe9ea495 | 35 | } |
bgrissom | 0:2b4bbe9ea495 | 36 | |
bgrissom | 0:2b4bbe9ea495 | 37 | // Tie the last to this one |
bgrissom | 0:2b4bbe9ea495 | 38 | if (lastScanGroup != NULL) { |
bgrissom | 0:2b4bbe9ea495 | 39 | lastScanGroup->_nextScanGroup = &_scanGroupArray[i]; |
bgrissom | 0:2b4bbe9ea495 | 40 | } |
bgrissom | 0:2b4bbe9ea495 | 41 | |
bgrissom | 0:2b4bbe9ea495 | 42 | // If we are the last, tie it to the first |
bgrissom | 0:2b4bbe9ea495 | 43 | if (i == (NUM_SCANGROUPS-1)) { |
bgrissom | 0:2b4bbe9ea495 | 44 | _scanGroupArray[i]._nextScanGroup = &_scanGroupArray[0]; |
bgrissom | 0:2b4bbe9ea495 | 45 | } |
bgrissom | 0:2b4bbe9ea495 | 46 | |
bgrissom | 0:2b4bbe9ea495 | 47 | lastScanGroup = &_scanGroupArray[i]; |
bgrissom | 0:2b4bbe9ea495 | 48 | } |
bgrissom | 0:2b4bbe9ea495 | 49 | //-------------------------------------------- |
bgrissom | 0:2b4bbe9ea495 | 50 | //-------------------------------------------- |
bgrissom | 0:2b4bbe9ea495 | 51 | |
bgrissom | 0:2b4bbe9ea495 | 52 | |
bgrissom | 0:2b4bbe9ea495 | 53 | //-------------------------------------------- |
bgrissom | 0:2b4bbe9ea495 | 54 | // LED DRIVERS |
bgrissom | 0:2b4bbe9ea495 | 55 | //-------------------------------------------- |
bgrissom | 0:2b4bbe9ea495 | 56 | ToshibaTC62D723 *lastDriver = NULL; |
bgrissom | 0:2b4bbe9ea495 | 57 | for (i = 0; i < NUM_LED_DRIVERS; i++) { |
bgrissom | 0:2b4bbe9ea495 | 58 | if (i == 0) { |
bgrissom | 0:2b4bbe9ea495 | 59 | _dataOutDriver = &_ledDriverArray[i]; |
bgrissom | 0:2b4bbe9ea495 | 60 | } |
bgrissom | 0:2b4bbe9ea495 | 61 | |
bgrissom | 0:2b4bbe9ea495 | 62 | // Tie the last to this one |
bgrissom | 0:2b4bbe9ea495 | 63 | if (lastDriver != NULL) { |
bgrissom | 0:2b4bbe9ea495 | 64 | lastDriver->_dataOut = &_ledDriverArray[i]; |
bgrissom | 0:2b4bbe9ea495 | 65 | _ledDriverArray[i]._dataIn = lastDriver; |
bgrissom | 0:2b4bbe9ea495 | 66 | } |
bgrissom | 0:2b4bbe9ea495 | 67 | |
bgrissom | 0:2b4bbe9ea495 | 68 | if (i == (NUM_LED_DRIVERS-1)) { |
bgrissom | 0:2b4bbe9ea495 | 69 | _dataInDriver = &_ledDriverArray[i]; |
bgrissom | 0:2b4bbe9ea495 | 70 | } |
bgrissom | 0:2b4bbe9ea495 | 71 | |
bgrissom | 0:2b4bbe9ea495 | 72 | lastDriver = &_ledDriverArray[i]; |
bgrissom | 0:2b4bbe9ea495 | 73 | } |
bgrissom | 0:2b4bbe9ea495 | 74 | //-------------------------------------------- |
bgrissom | 0:2b4bbe9ea495 | 75 | //-------------------------------------------- |
bgrissom | 0:2b4bbe9ea495 | 76 | |
bgrissom | 0:2b4bbe9ea495 | 77 | |
bgrissom | 0:2b4bbe9ea495 | 78 | //-------------------------------------------- |
bgrissom | 0:2b4bbe9ea495 | 79 | // LED PIXELS |
bgrissom | 0:2b4bbe9ea495 | 80 | //-------------------------------------------- |
bgrissom | 0:2b4bbe9ea495 | 81 | int x = 0; |
bgrissom | 0:2b4bbe9ea495 | 82 | int y = 0; |
bgrissom | 0:2b4bbe9ea495 | 83 | for (y = 0; y < MODULE_WIDTH; y++) { |
bgrissom | 0:2b4bbe9ea495 | 84 | for (x = 0; x < MODULE_HEIGHT; x++) { |
bgrissom | 0:2b4bbe9ea495 | 85 | // FIXME Get the calibration factor from EEPROM |
bgrissom | 0:2b4bbe9ea495 | 86 | _pixel[x][y].setCalibrationFactor(1.0f); |
bgrissom | 0:2b4bbe9ea495 | 87 | // FIXME Get the calibration factor from EEPROM |
bgrissom | 0:2b4bbe9ea495 | 88 | _pixel[x][y]. _redLED.setCalibrationFactor(1.0f); |
bgrissom | 0:2b4bbe9ea495 | 89 | _pixel[x][y]._greenLED.setCalibrationFactor(1.0f); |
bgrissom | 0:2b4bbe9ea495 | 90 | _pixel[x][y]. _blueLED.setCalibrationFactor(1.0f); |
bgrissom | 0:2b4bbe9ea495 | 91 | _pixel[x][y]. _redLED._ledDriver = &_ledDriverArray[ g_driverChain[g_pix2Drv[x][y]. redDrv] ]; |
bgrissom | 0:2b4bbe9ea495 | 92 | _pixel[x][y]._greenLED._ledDriver = &_ledDriverArray[ g_driverChain[g_pix2Drv[x][y].greenDrv] ]; |
bgrissom | 0:2b4bbe9ea495 | 93 | _pixel[x][y]. _blueLED._ledDriver = &_ledDriverArray[ g_driverChain[g_pix2Drv[x][y]. blueDrv] ]; |
bgrissom | 0:2b4bbe9ea495 | 94 | _pixel[x][y]. _redLED.setDriverChannelNum(g_pix2DrvChan[x][y]); |
bgrissom | 0:2b4bbe9ea495 | 95 | _pixel[x][y]._greenLED.setDriverChannelNum(g_pix2DrvChan[x][y]); |
bgrissom | 0:2b4bbe9ea495 | 96 | _pixel[x][y]. _blueLED.setDriverChannelNum(g_pix2DrvChan[x][y]); |
bgrissom | 0:2b4bbe9ea495 | 97 | |
bgrissom | 0:2b4bbe9ea495 | 98 | // Nothing needs to change for column-based vs row-based scangroups |
bgrissom | 0:2b4bbe9ea495 | 99 | _scanGroupArray[ g_pix2ScanGroup[x][y] ].addLED( &(_pixel[x][y]. _redLED) ); |
bgrissom | 0:2b4bbe9ea495 | 100 | _scanGroupArray[ g_pix2ScanGroup[x][y] ].addLED( &(_pixel[x][y]._greenLED) ); |
bgrissom | 0:2b4bbe9ea495 | 101 | _scanGroupArray[ g_pix2ScanGroup[x][y] ].addLED( &(_pixel[x][y]. _blueLED) ); |
bgrissom | 0:2b4bbe9ea495 | 102 | } |
bgrissom | 0:2b4bbe9ea495 | 103 | } |
bgrissom | 0:2b4bbe9ea495 | 104 | //-------------------------------------------- |
bgrissom | 0:2b4bbe9ea495 | 105 | //-------------------------------------------- |
bgrissom | 0:2b4bbe9ea495 | 106 | } |
bgrissom | 0:2b4bbe9ea495 | 107 | |
bgrissom | 0:2b4bbe9ea495 | 108 | |
bgrissom | 0:2b4bbe9ea495 | 109 | LEDModule::~LEDModule(void) |
bgrissom | 0:2b4bbe9ea495 | 110 | { |
bgrissom | 0:2b4bbe9ea495 | 111 | } |
bgrissom | 0:2b4bbe9ea495 | 112 | |
bgrissom | 0:2b4bbe9ea495 | 113 | void LEDModule::displayImage(void) |
bgrissom | 0:2b4bbe9ea495 | 114 | { |
bgrissom | 0:2b4bbe9ea495 | 115 | int i = 0; |
bgrissom | 0:2b4bbe9ea495 | 116 | |
bgrissom | 0:2b4bbe9ea495 | 117 | adjustImage(); |
bgrissom | 0:2b4bbe9ea495 | 118 | |
bgrissom | 0:2b4bbe9ea495 | 119 | for (i = 0; i < NUM_SCANGROUPS; i++) { |
bgrissom | 0:2b4bbe9ea495 | 120 | BAGINFO3("\nScanGroup[%d]", i); |
bgrissom | 0:2b4bbe9ea495 | 121 | _scanGroupArray[i].mapLEDsToDrivers(); |
bgrissom | 0:2b4bbe9ea495 | 122 | shiftBrightnessDataIn(); |
bgrissom | 0:2b4bbe9ea495 | 123 | enableNextScanGroup(); |
bgrissom | 0:2b4bbe9ea495 | 124 | ToshibaTC62D723::outputBrightnessDataToLEDs(); |
bgrissom | 0:2b4bbe9ea495 | 125 | } |
bgrissom | 0:2b4bbe9ea495 | 126 | } |
bgrissom | 0:2b4bbe9ea495 | 127 | |
bgrissom | 0:2b4bbe9ea495 | 128 | |
bgrissom | 0:2b4bbe9ea495 | 129 | void LEDModule::adjustImage(void) |
bgrissom | 0:2b4bbe9ea495 | 130 | { |
bgrissom | 0:2b4bbe9ea495 | 131 | int x = 0; |
bgrissom | 0:2b4bbe9ea495 | 132 | int y = 0; |
bgrissom | 0:2b4bbe9ea495 | 133 | PixelColor oldColor; |
bgrissom | 0:2b4bbe9ea495 | 134 | for (y = 0; y < MODULE_WIDTH; y++) { |
bgrissom | 0:2b4bbe9ea495 | 135 | for (x = 0; x < MODULE_HEIGHT; x++) { |
bgrissom | 0:2b4bbe9ea495 | 136 | oldColor = _sourceImage.getPixel(x, y); |
bgrissom | 0:2b4bbe9ea495 | 137 | _pixel[x][y]._redLED.setBrightness |
bgrissom | 0:2b4bbe9ea495 | 138 | ( |
bgrissom | 0:2b4bbe9ea495 | 139 | oldColor._r * 256 |
bgrissom | 0:2b4bbe9ea495 | 140 | * _displayBrightness |
bgrissom | 0:2b4bbe9ea495 | 141 | * _moduleBrightness |
bgrissom | 0:2b4bbe9ea495 | 142 | * _pixel[x][y].getCalibrationFactor() |
bgrissom | 0:2b4bbe9ea495 | 143 | * _pixel[x][y]._redLED.getCalibrationFactor() |
bgrissom | 0:2b4bbe9ea495 | 144 | ); |
bgrissom | 0:2b4bbe9ea495 | 145 | _pixel[x][y]._greenLED.setBrightness |
bgrissom | 0:2b4bbe9ea495 | 146 | ( |
bgrissom | 0:2b4bbe9ea495 | 147 | oldColor._g * 256 |
bgrissom | 0:2b4bbe9ea495 | 148 | * _displayBrightness |
bgrissom | 0:2b4bbe9ea495 | 149 | * _moduleBrightness |
bgrissom | 0:2b4bbe9ea495 | 150 | * _pixel[x][y].getCalibrationFactor() |
bgrissom | 0:2b4bbe9ea495 | 151 | * _pixel[x][y]._greenLED.getCalibrationFactor() |
bgrissom | 0:2b4bbe9ea495 | 152 | ); |
bgrissom | 0:2b4bbe9ea495 | 153 | _pixel[x][y]._blueLED.setBrightness |
bgrissom | 0:2b4bbe9ea495 | 154 | ( |
bgrissom | 0:2b4bbe9ea495 | 155 | oldColor._b * 256 |
bgrissom | 0:2b4bbe9ea495 | 156 | * _displayBrightness |
bgrissom | 0:2b4bbe9ea495 | 157 | * _moduleBrightness |
bgrissom | 0:2b4bbe9ea495 | 158 | * _pixel[x][y].getCalibrationFactor() |
bgrissom | 0:2b4bbe9ea495 | 159 | * _pixel[x][y]._blueLED.getCalibrationFactor() |
bgrissom | 0:2b4bbe9ea495 | 160 | ); |
bgrissom | 0:2b4bbe9ea495 | 161 | } |
bgrissom | 0:2b4bbe9ea495 | 162 | } |
bgrissom | 0:2b4bbe9ea495 | 163 | } |
bgrissom | 0:2b4bbe9ea495 | 164 | |
bgrissom | 0:2b4bbe9ea495 | 165 | |
bgrissom | 0:2b4bbe9ea495 | 166 | void LEDModule::shiftBrightnessDataIn(void) |
bgrissom | 0:2b4bbe9ea495 | 167 | { |
bgrissom | 0:2b4bbe9ea495 | 168 | int i = 0; // Driver index |
bgrissom | 0:2b4bbe9ea495 | 169 | int chan = 0; // Channel |
bgrissom | 0:2b4bbe9ea495 | 170 | for (i = NUM_LED_DRIVERS-1; i >= 0; i--) { |
bgrissom | 0:2b4bbe9ea495 | 171 | BAGINFO3("\nDRV[%02d]", g_dbgDrvChain[i]); |
bgrissom | 0:2b4bbe9ea495 | 172 | for (chan = (ToshibaTC62D723::NUM_CHANNELS)-1; chan >= 0; chan--) { |
bgrissom | 0:2b4bbe9ea495 | 173 | ToshibaTC62D723::shiftBrightnessDataIn(_ledDriverArray[i]._channelBrightness[chan]); |
bgrissom | 0:2b4bbe9ea495 | 174 | } |
bgrissom | 0:2b4bbe9ea495 | 175 | } |
bgrissom | 0:2b4bbe9ea495 | 176 | } |
bgrissom | 0:2b4bbe9ea495 | 177 | |
bgrissom | 0:2b4bbe9ea495 | 178 | |
bgrissom | 0:2b4bbe9ea495 | 179 | void LEDModule::enableNextScanGroup(void) |
bgrissom | 0:2b4bbe9ea495 | 180 | { |
bgrissom | 0:2b4bbe9ea495 | 181 | ScanGroup *lastScanGroup = NULL; |
bgrissom | 0:2b4bbe9ea495 | 182 | if (_currentScanGroup != NULL) { |
bgrissom | 0:2b4bbe9ea495 | 183 | lastScanGroup = _currentScanGroup; |
bgrissom | 0:2b4bbe9ea495 | 184 | if (_currentScanGroup->_nextScanGroup != NULL) { |
bgrissom | 0:2b4bbe9ea495 | 185 | _currentScanGroup = _currentScanGroup->_nextScanGroup; |
bgrissom | 0:2b4bbe9ea495 | 186 | setPinToValue(lastScanGroup->getTransistorMCUPinNum(), LOW); |
bgrissom | 0:2b4bbe9ea495 | 187 | setPinToValue(_currentScanGroup->getTransistorMCUPinNum(), HIGH); |
bgrissom | 0:2b4bbe9ea495 | 188 | } |
bgrissom | 0:2b4bbe9ea495 | 189 | } |
bgrissom | 0:2b4bbe9ea495 | 190 | } |
bgrissom | 0:2b4bbe9ea495 | 191 | |
bgrissom | 0:2b4bbe9ea495 | 192 | |
bgrissom | 0:2b4bbe9ea495 | 193 | void LEDModule::setPinToValue(int p_pin, int p_val) |
bgrissom | 0:2b4bbe9ea495 | 194 | { |
bgrissom | 0:2b4bbe9ea495 | 195 | // TODO |
bgrissom | 0:2b4bbe9ea495 | 196 | // Set a GPIO value here |
bgrissom | 0:2b4bbe9ea495 | 197 | } |
bgrissom | 0:2b4bbe9ea495 | 198 | |
bgrissom | 0:2b4bbe9ea495 | 199 | |
bgrissom | 0:2b4bbe9ea495 | 200 | ScanGroup::ScanGroup(void) |
bgrissom | 0:2b4bbe9ea495 | 201 | : _nextScanGroup(NULL), |
bgrissom | 0:2b4bbe9ea495 | 202 | _transistorMCUPinNum(0), |
bgrissom | 0:2b4bbe9ea495 | 203 | _index(0) |
bgrissom | 0:2b4bbe9ea495 | 204 | { |
bgrissom | 0:2b4bbe9ea495 | 205 | memset(_LEDs, 0, sizeof(LED*) * LEDS_PER_SCANGROUP); |
bgrissom | 0:2b4bbe9ea495 | 206 | } |
bgrissom | 0:2b4bbe9ea495 | 207 | |
bgrissom | 0:2b4bbe9ea495 | 208 | |
bgrissom | 0:2b4bbe9ea495 | 209 | ScanGroup::~ScanGroup(void) |
bgrissom | 0:2b4bbe9ea495 | 210 | { |
bgrissom | 0:2b4bbe9ea495 | 211 | // Its good practice to clear memory in the destructor |
bgrissom | 0:2b4bbe9ea495 | 212 | memset(_LEDs, 0, sizeof(LED*) * LEDS_PER_SCANGROUP); |
bgrissom | 0:2b4bbe9ea495 | 213 | } |
bgrissom | 0:2b4bbe9ea495 | 214 | |
bgrissom | 0:2b4bbe9ea495 | 215 | |
bgrissom | 0:2b4bbe9ea495 | 216 | // For all individual LEDs in this scangroup, set its driver's |
bgrissom | 0:2b4bbe9ea495 | 217 | // brightness for the appropriate channel. |
bgrissom | 0:2b4bbe9ea495 | 218 | void ScanGroup::mapLEDsToDrivers(void) |
bgrissom | 0:2b4bbe9ea495 | 219 | { |
bgrissom | 0:2b4bbe9ea495 | 220 | int i = 0; |
bgrissom | 0:2b4bbe9ea495 | 221 | for (i = 0; i < LEDS_PER_SCANGROUP; i++) { |
bgrissom | 0:2b4bbe9ea495 | 222 | _LEDs[i]->_ledDriver->_channelBrightness[_LEDs[i]->getDriverChannelNum()] = _LEDs[i]->getBrightness(); |
bgrissom | 0:2b4bbe9ea495 | 223 | } |
bgrissom | 0:2b4bbe9ea495 | 224 | } |
bgrissom | 0:2b4bbe9ea495 | 225 | |
bgrissom | 0:2b4bbe9ea495 | 226 | |
bgrissom | 0:2b4bbe9ea495 | 227 | void ScanGroup::addLED(LED *p_led) |
bgrissom | 0:2b4bbe9ea495 | 228 | { |
bgrissom | 0:2b4bbe9ea495 | 229 | if ( (_index < LEDS_PER_SCANGROUP) && |
bgrissom | 0:2b4bbe9ea495 | 230 | (p_led != NULL) |
bgrissom | 0:2b4bbe9ea495 | 231 | ) |
bgrissom | 0:2b4bbe9ea495 | 232 | { |
bgrissom | 0:2b4bbe9ea495 | 233 | _LEDs[_index] = p_led; |
bgrissom | 0:2b4bbe9ea495 | 234 | _index++; |
bgrissom | 0:2b4bbe9ea495 | 235 | } |
bgrissom | 0:2b4bbe9ea495 | 236 | } |
bgrissom | 0:2b4bbe9ea495 | 237 | |
bgrissom | 0:2b4bbe9ea495 | 238 | int ScanGroup::getTransistorMCUPinNum(void) |
bgrissom | 0:2b4bbe9ea495 | 239 | { |
bgrissom | 0:2b4bbe9ea495 | 240 | // TODO |
bgrissom | 0:2b4bbe9ea495 | 241 | return 0; |
bgrissom | 0:2b4bbe9ea495 | 242 | } |
bgrissom | 0:2b4bbe9ea495 | 243 | |
bgrissom | 0:2b4bbe9ea495 | 244 | |
bgrissom | 0:2b4bbe9ea495 | 245 | LEDPixel::LEDPixel(void) |
bgrissom | 0:2b4bbe9ea495 | 246 | : _calibrationFactor(0.0f) |
bgrissom | 0:2b4bbe9ea495 | 247 | { |
bgrissom | 0:2b4bbe9ea495 | 248 | } |
bgrissom | 0:2b4bbe9ea495 | 249 | |
bgrissom | 0:2b4bbe9ea495 | 250 | LEDPixel::~LEDPixel(void) |
bgrissom | 0:2b4bbe9ea495 | 251 | { |
bgrissom | 0:2b4bbe9ea495 | 252 | } |
bgrissom | 0:2b4bbe9ea495 | 253 | |
bgrissom | 0:2b4bbe9ea495 | 254 | float LEDPixel::getCalibrationFactor(void) |
bgrissom | 0:2b4bbe9ea495 | 255 | { |
bgrissom | 0:2b4bbe9ea495 | 256 | return _calibrationFactor; |
bgrissom | 0:2b4bbe9ea495 | 257 | } |
bgrissom | 0:2b4bbe9ea495 | 258 | |
bgrissom | 0:2b4bbe9ea495 | 259 | void LEDPixel::setCalibrationFactor(float p_cal) |
bgrissom | 0:2b4bbe9ea495 | 260 | { |
bgrissom | 0:2b4bbe9ea495 | 261 | _calibrationFactor = p_cal; |
bgrissom | 0:2b4bbe9ea495 | 262 | } |
bgrissom | 0:2b4bbe9ea495 | 263 | |
bgrissom | 0:2b4bbe9ea495 | 264 | |
bgrissom | 0:2b4bbe9ea495 | 265 | LED::LED(void) |
bgrissom | 0:2b4bbe9ea495 | 266 | : _ledDriver(NULL), |
bgrissom | 0:2b4bbe9ea495 | 267 | _calibrationFactor(0.0f), |
bgrissom | 0:2b4bbe9ea495 | 268 | _driverChannelNum(0), |
bgrissom | 0:2b4bbe9ea495 | 269 | _brightness(0) |
bgrissom | 0:2b4bbe9ea495 | 270 | { |
bgrissom | 0:2b4bbe9ea495 | 271 | } |
bgrissom | 0:2b4bbe9ea495 | 272 | |
bgrissom | 0:2b4bbe9ea495 | 273 | LED::~LED(void) |
bgrissom | 0:2b4bbe9ea495 | 274 | { |
bgrissom | 0:2b4bbe9ea495 | 275 | } |
bgrissom | 0:2b4bbe9ea495 | 276 | |
bgrissom | 0:2b4bbe9ea495 | 277 | float LED::getCalibrationFactor(void) |
bgrissom | 0:2b4bbe9ea495 | 278 | { |
bgrissom | 0:2b4bbe9ea495 | 279 | return _calibrationFactor; |
bgrissom | 0:2b4bbe9ea495 | 280 | } |
bgrissom | 0:2b4bbe9ea495 | 281 | |
bgrissom | 0:2b4bbe9ea495 | 282 | void LED::setCalibrationFactor(float p_val) |
bgrissom | 0:2b4bbe9ea495 | 283 | { |
bgrissom | 0:2b4bbe9ea495 | 284 | _calibrationFactor = p_val; |
bgrissom | 0:2b4bbe9ea495 | 285 | } |
bgrissom | 0:2b4bbe9ea495 | 286 | |
bgrissom | 0:2b4bbe9ea495 | 287 | uint8_t LED::getDriverChannelNum(void) |
bgrissom | 0:2b4bbe9ea495 | 288 | { |
bgrissom | 0:2b4bbe9ea495 | 289 | return _driverChannelNum; |
bgrissom | 0:2b4bbe9ea495 | 290 | } |
bgrissom | 0:2b4bbe9ea495 | 291 | |
bgrissom | 0:2b4bbe9ea495 | 292 | void LED::setDriverChannelNum(uint8_t p_val) |
bgrissom | 0:2b4bbe9ea495 | 293 | { |
bgrissom | 0:2b4bbe9ea495 | 294 | _driverChannelNum = p_val; |
bgrissom | 0:2b4bbe9ea495 | 295 | } |
bgrissom | 0:2b4bbe9ea495 | 296 | |
bgrissom | 0:2b4bbe9ea495 | 297 | uint16_t LED::getBrightness(void) |
bgrissom | 0:2b4bbe9ea495 | 298 | { |
bgrissom | 0:2b4bbe9ea495 | 299 | return _brightness; |
bgrissom | 0:2b4bbe9ea495 | 300 | } |
bgrissom | 0:2b4bbe9ea495 | 301 | |
bgrissom | 0:2b4bbe9ea495 | 302 | void LED::setBrightness(uint16_t p_val) |
bgrissom | 0:2b4bbe9ea495 | 303 | { |
bgrissom | 0:2b4bbe9ea495 | 304 | _brightness = p_val; |
bgrissom | 0:2b4bbe9ea495 | 305 | } |
bgrissom | 0:2b4bbe9ea495 | 306 | |
bgrissom | 0:2b4bbe9ea495 | 307 | |
bgrissom | 0:2b4bbe9ea495 | 308 | Image::Image(void) |
bgrissom | 0:2b4bbe9ea495 | 309 | { |
bgrissom | 0:2b4bbe9ea495 | 310 | } |
bgrissom | 0:2b4bbe9ea495 | 311 | Image::~Image(void) |
bgrissom | 0:2b4bbe9ea495 | 312 | { |
bgrissom | 0:2b4bbe9ea495 | 313 | } |
bgrissom | 0:2b4bbe9ea495 | 314 | PixelColor Image::getPixel(uint16_t x, uint16_t y) |
bgrissom | 0:2b4bbe9ea495 | 315 | { |
bgrissom | 0:2b4bbe9ea495 | 316 | return _imgPixel[x][y]; |
bgrissom | 0:2b4bbe9ea495 | 317 | } |
bgrissom | 0:2b4bbe9ea495 | 318 | void Image::setPixel(uint16_t x, uint16_t y, PixelColor p_pix) |
bgrissom | 0:2b4bbe9ea495 | 319 | { |
bgrissom | 0:2b4bbe9ea495 | 320 | _imgPixel[x][y] = p_pix; |
bgrissom | 0:2b4bbe9ea495 | 321 | } |
bgrissom | 0:2b4bbe9ea495 | 322 | |
bgrissom | 0:2b4bbe9ea495 | 323 | |
bgrissom | 0:2b4bbe9ea495 | 324 | PixelColor::PixelColor(void) |
bgrissom | 0:2b4bbe9ea495 | 325 | : _r(0), _g(0), _b(0) |
bgrissom | 0:2b4bbe9ea495 | 326 | { |
bgrissom | 0:2b4bbe9ea495 | 327 | } |
bgrissom | 0:2b4bbe9ea495 | 328 | PixelColor::~PixelColor(void) |
bgrissom | 0:2b4bbe9ea495 | 329 | { |
bgrissom | 0:2b4bbe9ea495 | 330 | } |