Object Model code with hardware support
Dependencies: mbed
Diff: anthem.hpp
- Revision:
- 0:2b4bbe9ea495
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/anthem.hpp Fri Sep 05 00:07:44 2014 +0000 @@ -0,0 +1,181 @@ +#ifndef __ANTHEM_H__ +#define __ANTHEM_H__ + +#include <stdint.h> +#include "defines.hpp" +#include "ToshibaTC62D723.hpp" + +// CODING STANDARDS: +// Local variable: var +// Global variable: g_var +// Paramater variable: p_var +// Member variable: _var + +class LED { + public: + // Constructor + LED(void); + + // Default Destructor + virtual ~LED(); + + // Members + ToshibaTC62D723 *_ledDriver; + + // Member Functions + float getCalibrationFactor (void); + void setCalibrationFactor (float p_val); + uint8_t getDriverChannelNum (void); + void setDriverChannelNum (uint8_t p_val); + uint16_t getBrightness (void); + void setBrightness (uint16_t p_val); + + + private: + // Private Member Variables + float _calibrationFactor; + uint8_t _driverChannelNum; + uint16_t _brightness; + + // Private Member Functions +}; + + +class LEDPixel { + public: + // Constructor + LEDPixel(void); + + // Default Destructor + virtual ~LEDPixel(); + + // Members + LED _redLED; + LED _greenLED; + LED _blueLED; + + // Member Functions + float getCalibrationFactor(void); + void setCalibrationFactor(float p_cal); + + + private: + // Private Member Variables + float _calibrationFactor; + + // Private Member Functions +}; + + +class ScanGroup { + public: + // Constructor + ScanGroup(void); + + // Default Destructor + virtual ~ScanGroup(); + + // Members + ScanGroup *_nextScanGroup; + + // Member Functions + void mapLEDsToDrivers(void); + void addLED(LED *p_led); + int getTransistorMCUPinNum(void); + + + private: + // Private Member Variables + uint16_t _transistorMCUPinNum; + LED *_LEDs[LEDS_PER_SCANGROUP]; + uint16_t _index; // Index into the _LEDs array + + // Private Member Functions +}; + + +class PixelColor { + public: + // Constructor + PixelColor(void); + + // Default Destructor + virtual ~PixelColor(); + + // Members + uint8_t _r; + uint8_t _g; + uint8_t _b; + + // Member Functions + + + private: + // Private Member Variables + + // Private Member Functions +}; + + +class Image { + public: + // Constructor + Image(void); + + // Default Destructor + virtual ~Image(); + + // Members + + // Member Functions + PixelColor getPixel(uint16_t x, uint16_t y); + void setPixel(uint16_t x, uint16_t y, PixelColor p_pix); + + + private: + // Private Member Variables + PixelColor _imgPixel[MODULE_WIDTH][MODULE_HEIGHT]; + + // Private Member Functions +}; + + +class LEDModule { + public: + // Constructor + LEDModule(void); + + // Default Destructor + virtual ~LEDModule(); + + // Members + Image _sourceImage; + + // Member Functions + void displayImage(void); + + + private: + // Private Member Variables + uint8_t _rowNum; + uint8_t _colNum; + float _moduleBrightness; + float _displayBrightness; + ScanGroup _scanGroupArray[NUM_SCANGROUPS]; + ScanGroup *_currentScanGroup; + ToshibaTC62D723 _ledDriverArray[NUM_LED_DRIVERS]; + ToshibaTC62D723 *_dataOutDriver; // This is at the begginging of the chain. + // Data is shifted into this driver. + ToshibaTC62D723 *_dataInDriver; // This is at the end of the chain. + // Error messages are received from this driver. + LEDPixel _pixel [MODULE_WIDTH][MODULE_HEIGHT]; + + // Private Member Functions + void adjustImage(void); + void shiftBrightnessDataIn(void); + void enableNextScanGroup(void); + void setPinToValue(int p_pin, int p_val); +}; + + +#endif // __ANTHEM_H__