A wrapper Class library for using the touch LCD on the DISCO-F469NI Development board. The class uses the existing BSP class created by Team ST.
Dependencies: BSP_DISCO_F469NI LCD_DISCO_F469NI TS_DISCO_F469NI
DISCOF469LCD.cpp
- Committer:
- grantphillips
- Date:
- 2018-03-01
- Revision:
- 0:d8d53c5e721e
File content as of revision 0:d8d53c5e721e:
#include "DISCOF469LCD.h" #include "mbed.h" /* ***************************************** Public Functions ***************************************** */ DISCOF469LCD::DISCOF469LCD(void) { //mTouches=0; ts.Init(lcd.GetXSize(), lcd.GetYSize()); Clear(LCD_BLACK); } void DISCOF469LCD::Clear(uint32_t Color) { lcd.Clear(Color); } void DISCOF469LCD::DrawPixel(uint16_t Xpos, uint16_t Ypos, uint32_t RGB_Code) { lcd.DrawPixel(Xpos, Ypos, RGB_Code); } uint32_t DISCOF469LCD::ReadPixel(uint16_t Xpos, uint16_t Ypos) { return(lcd.ReadPixel(Xpos, Ypos)); } void DISCOF469LCD::DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint32_t Color) { lcd.SetTextColor(Color); lcd.DrawLine(x1, y1, x2, y2); } void DISCOF469LCD::DrawRectangle(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height, uint32_t Color) { lcd.SetTextColor(Color); lcd.DrawRect(Xpos, Ypos, Width, Height); } void DISCOF469LCD::FillRectangle(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height, uint32_t Color) { lcd.SetTextColor(Color); lcd.FillRect(Xpos, Ypos, Width, Height); } void DISCOF469LCD::DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius, uint32_t Color) { lcd.SetTextColor(Color); lcd.DrawCircle(Xpos, Ypos, Radius); } void DISCOF469LCD::FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius, uint32_t Color) { lcd.SetTextColor(Color); lcd.FillCircle(Xpos, Ypos, Radius); } void DISCOF469LCD::DrawEllipse(uint16_t Xpos, uint16_t Ypos, uint16_t XRadius, uint16_t YRadius, uint32_t Color) { lcd.SetTextColor(Color); lcd.DrawEllipse(Xpos, Ypos, XRadius, YRadius); } void DISCOF469LCD::FillEllipse(uint16_t Xpos, uint16_t Ypos, uint16_t XRadius, uint16_t YRadius, uint32_t Color) { lcd.SetTextColor(Color); lcd.FillEllipse(Xpos, Ypos, XRadius, YRadius); } void DISCOF469LCD::DrawStringAtXY(uint16_t Xpos, uint16_t Ypos, uint8_t FontSize, uint32_t TextColor, uint32_t BackColor, char *Text) { switch(FontSize) { case 0: BSP_LCD_SetFont(&Font8); break; case 1: BSP_LCD_SetFont(&Font12); break; case 2: BSP_LCD_SetFont(&Font16); break; case 3: BSP_LCD_SetFont(&Font20); break; case 4: BSP_LCD_SetFont(&Font24); break; default: BSP_LCD_SetFont(&Font8); } lcd.SetBackColor(BackColor); lcd.SetTextColor(TextColor); lcd.DisplayStringAt(Xpos, Ypos, (uint8_t *)Text, LEFT_MODE); } void DISCOF469LCD::DrawStringAtLine(uint16_t Line, uint8_t FontSize, uint32_t TextColor, uint32_t BackColor, uint8_t Mode, char *Text) { switch(FontSize) { case 0: BSP_LCD_SetFont(&Font8); break; case 1: BSP_LCD_SetFont(&Font12); break; case 2: BSP_LCD_SetFont(&Font16); break; case 3: BSP_LCD_SetFont(&Font20); break; case 4: BSP_LCD_SetFont(&Font24); break; default: BSP_LCD_SetFont(&Font8); } lcd.SetBackColor(BackColor); lcd.SetTextColor(TextColor); switch(Mode) { case 0: lcd.DisplayStringAt(0, LINE(Line), (uint8_t *)Text, LEFT_MODE); break; case 1: lcd.DisplayStringAt(0, LINE(Line), (uint8_t *)Text, CENTER_MODE); break; case 2: lcd.DisplayStringAt(0, LINE(Line), (uint8_t *)Text, RIGHT_MODE); break; default: lcd.DisplayStringAt(0, LINE(Line), (uint8_t *)Text, LEFT_MODE); } } uint8_t DISCOF469LCD::Touches(void) { TS_StateTypeDef TS_State; ts.GetState(&TS_State); return TS_State.touchDetected; } void DISCOF469LCD::GetTouch1(uint16_t *x, uint16_t *y) { TS_StateTypeDef TS_State; ts.GetState(&TS_State); *x = TS_State.touchX[0]; *y = TS_State.touchY[0]; } void DISCOF469LCD::GetTouch2(uint16_t *x, uint16_t *y) { TS_StateTypeDef TS_State; ts.GetState(&TS_State); *x = TS_State.touchX[1]; *y = TS_State.touchY[1]; } /* ***************************************** Private Functions ***************************************** */