Dr. Davis and Dr. Dyer special studies robotics project
Dependencies: BSP_DISCO_F469NI LCD_DISCO_F469NI TS_DISCO_F469NI mbed Motordriver
Fork of Configurable_Robots by
Classes/RobotMVC/RobotView.cpp@8:1173b502b316, 2017-02-08 (annotated)
- Committer:
- blu12758
- Date:
- Wed Feb 08 20:31:20 2017 +0000
- Revision:
- 8:1173b502b316
- Parent:
- 7:0f8c3dfbbb86
- Child:
- 9:4ae116881502
touchscreen working
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
blu12758 | 7:0f8c3dfbbb86 | 1 | //OU Configurable Robot Project |
blu12758 | 7:0f8c3dfbbb86 | 2 | //Spring 2017 |
blu12758 | 7:0f8c3dfbbb86 | 3 | //William Bonner |
blu12758 | 7:0f8c3dfbbb86 | 4 | |
blu12758 | 7:0f8c3dfbbb86 | 5 | #include "RobotView.h" |
blu12758 | 7:0f8c3dfbbb86 | 6 | |
blu12758 | 7:0f8c3dfbbb86 | 7 | //Constructors/Destructors |
blu12758 | 7:0f8c3dfbbb86 | 8 | RobotView::~RobotView() |
blu12758 | 7:0f8c3dfbbb86 | 9 | { |
blu12758 | 7:0f8c3dfbbb86 | 10 | //#TODO |
blu12758 | 7:0f8c3dfbbb86 | 11 | } |
blu12758 | 7:0f8c3dfbbb86 | 12 | RobotView::RobotView() |
blu12758 | 7:0f8c3dfbbb86 | 13 | { |
blu12758 | 7:0f8c3dfbbb86 | 14 | _page = 0; |
blu12758 | 7:0f8c3dfbbb86 | 15 | } |
blu12758 | 7:0f8c3dfbbb86 | 16 | |
blu12758 | 7:0f8c3dfbbb86 | 17 | //Initialize the screen to display the robot menu |
blu12758 | 7:0f8c3dfbbb86 | 18 | void RobotView::init() |
blu12758 | 7:0f8c3dfbbb86 | 19 | { |
blu12758 | 8:1173b502b316 | 20 | //Show splash screen |
blu12758 | 7:0f8c3dfbbb86 | 21 | update(); |
blu12758 | 8:1173b502b316 | 22 | wait(1); |
blu12758 | 8:1173b502b316 | 23 | |
blu12758 | 8:1173b502b316 | 24 | //Initialize touchscreen and display results |
blu12758 | 8:1173b502b316 | 25 | uint8_t status = _ts.Init(_lcd.GetXSize(), _lcd.GetYSize()); |
blu12758 | 8:1173b502b316 | 26 | if (status != TS_OK) { |
blu12758 | 8:1173b502b316 | 27 | _lcd.Clear(LCD_COLOR_RED); |
blu12758 | 8:1173b502b316 | 28 | _lcd.SetBackColor(LCD_COLOR_RED); |
blu12758 | 8:1173b502b316 | 29 | _lcd.SetTextColor(LCD_COLOR_WHITE); |
blu12758 | 8:1173b502b316 | 30 | _lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE); |
blu12758 | 8:1173b502b316 | 31 | } else { |
blu12758 | 8:1173b502b316 | 32 | _lcd.Clear(LCD_COLOR_GREEN); |
blu12758 | 8:1173b502b316 | 33 | _lcd.SetBackColor(LCD_COLOR_GREEN); |
blu12758 | 8:1173b502b316 | 34 | _lcd.SetTextColor(LCD_COLOR_WHITE); |
blu12758 | 8:1173b502b316 | 35 | _lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT OK", CENTER_MODE); |
blu12758 | 8:1173b502b316 | 36 | } |
blu12758 | 8:1173b502b316 | 37 | wait(1); |
blu12758 | 7:0f8c3dfbbb86 | 38 | } |
blu12758 | 7:0f8c3dfbbb86 | 39 | |
blu12758 | 7:0f8c3dfbbb86 | 40 | //Write the current page to the lcd |
blu12758 | 7:0f8c3dfbbb86 | 41 | void RobotView::update() |
blu12758 | 7:0f8c3dfbbb86 | 42 | { |
blu12758 | 8:1173b502b316 | 43 | //Clear Screen |
blu12758 | 8:1173b502b316 | 44 | clear(); |
blu12758 | 8:1173b502b316 | 45 | |
blu12758 | 7:0f8c3dfbbb86 | 46 | switch(_page) |
blu12758 | 7:0f8c3dfbbb86 | 47 | { |
blu12758 | 8:1173b502b316 | 48 | case 0://Welcome Screen |
blu12758 | 7:0f8c3dfbbb86 | 49 | _lcd.DisplayStringAt(0, LINE(7), (uint8_t *)"Configurable Robot", CENTER_MODE); |
blu12758 | 7:0f8c3dfbbb86 | 50 | _lcd.DisplayStringAt(0, LINE(8), (uint8_t *)"University of Oklahoma", CENTER_MODE); |
blu12758 | 7:0f8c3dfbbb86 | 51 | break; |
blu12758 | 8:1173b502b316 | 52 | case 1://Main Menu |
blu12758 | 8:1173b502b316 | 53 | _lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"Configurable Robot", CENTER_MODE); |
blu12758 | 8:1173b502b316 | 54 | _lcd.DisplayStringAt(0, LINE(2), (uint8_t *)"University of Oklahoma", CENTER_MODE); |
blu12758 | 8:1173b502b316 | 55 | _lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"Line Follower", CENTER_MODE); |
blu12758 | 8:1173b502b316 | 56 | _lcd.DisplayStringAt(0, LINE(8), (uint8_t *)"Object Avoidance", CENTER_MODE); |
blu12758 | 8:1173b502b316 | 57 | _lcd.DisplayStringAt(0, LINE(11), (uint8_t *)"Object Seeking", CENTER_MODE); |
blu12758 | 8:1173b502b316 | 58 | _lcd.DisplayStringAt(0, LINE(14), (uint8_t *)"Light Avoidance", CENTER_MODE); |
blu12758 | 8:1173b502b316 | 59 | _lcd.DisplayStringAt(0, LINE(17), (uint8_t *)"TV Remote Control", CENTER_MODE); |
blu12758 | 8:1173b502b316 | 60 | _lcd.DisplayStringAt(0, LINE(20), (uint8_t *)"Wiimote Control", CENTER_MODE); |
blu12758 | 7:0f8c3dfbbb86 | 61 | default: |
blu12758 | 7:0f8c3dfbbb86 | 62 | break; |
blu12758 | 7:0f8c3dfbbb86 | 63 | } |
blu12758 | 8:1173b502b316 | 64 | |
blu12758 | 8:1173b502b316 | 65 | //#TODO Display supply voltage |
blu12758 | 7:0f8c3dfbbb86 | 66 | } |
blu12758 | 8:1173b502b316 | 67 | |
blu12758 | 8:1173b502b316 | 68 | //Clear the screen |
blu12758 | 8:1173b502b316 | 69 | void RobotView::clear() |
blu12758 | 8:1173b502b316 | 70 | { |
blu12758 | 8:1173b502b316 | 71 | _lcd.Clear(LCD_COLOR_WHITE); |
blu12758 | 8:1173b502b316 | 72 | _lcd.SetBackColor(LCD_COLOR_WHITE); |
blu12758 | 8:1173b502b316 | 73 | _lcd.SetTextColor(LCD_COLOR_BLUE); |
blu12758 | 8:1173b502b316 | 74 | } |
blu12758 | 8:1173b502b316 | 75 | |
blu12758 | 7:0f8c3dfbbb86 | 76 | //Check for touches on the screen |
blu12758 | 8:1173b502b316 | 77 | bool RobotView::listen() |
blu12758 | 7:0f8c3dfbbb86 | 78 | { |
blu12758 | 8:1173b502b316 | 79 | _ts.GetState(&TS_State); |
blu12758 | 8:1173b502b316 | 80 | if (TS_State.touchDetected) |
blu12758 | 8:1173b502b316 | 81 | { |
blu12758 | 8:1173b502b316 | 82 | ts_x = TS_State.touchX[0]; |
blu12758 | 8:1173b502b316 | 83 | ts_y = TS_State.touchY[0]; |
blu12758 | 8:1173b502b316 | 84 | return true; |
blu12758 | 8:1173b502b316 | 85 | } |
blu12758 | 8:1173b502b316 | 86 | return false; |
blu12758 | 7:0f8c3dfbbb86 | 87 | } |