Code sensor IR

Dependencies:   BSP_DISCO_F746NG

Committer:
stephane_m
Date:
Thu Jun 25 16:51:20 2020 +0000
Revision:
0:8c1b74ecac29
Code capteur IR

Who changed what in which revision?

UserRevisionLine numberNew contents of line
stephane_m 0:8c1b74ecac29 1 #include "view.h"
stephane_m 0:8c1b74ecac29 2 #include "stm32746g_discovery_lcd.h"
stephane_m 0:8c1b74ecac29 3 #include "mbed.h"
stephane_m 0:8c1b74ecac29 4 #include "button.h"
stephane_m 0:8c1b74ecac29 5 #include <list>
stephane_m 0:8c1b74ecac29 6 #include "entrer-limiter.h"
stephane_m 0:8c1b74ecac29 7
stephane_m 0:8c1b74ecac29 8 View::View(int width, int height, uint32_t bgColor)
stephane_m 0:8c1b74ecac29 9 : m_width(width), m_height(height), m_bgColor(bgColor)
stephane_m 0:8c1b74ecac29 10 {
stephane_m 0:8c1b74ecac29 11 Button *butDefault = new Button(100, 200, 150, 40, LCD_COLOR_GREEN,2);
stephane_m 0:8c1b74ecac29 12 Button *but = new Button(250,200, 150, 40, LCD_COLOR_BLUE,2);
stephane_m 0:8c1b74ecac29 13 but->setText("-1" );
stephane_m 0:8c1b74ecac29 14 butDefault->setText("reset");
stephane_m 0:8c1b74ecac29 15 m_buttonList.push_front(butDefault);
stephane_m 0:8c1b74ecac29 16 m_buttonList.push_front(but);
stephane_m 0:8c1b74ecac29 17 m_bgColor = LCD_COLOR_RED;
stephane_m 0:8c1b74ecac29 18 draw();
stephane_m 0:8c1b74ecac29 19
stephane_m 0:8c1b74ecac29 20 }
stephane_m 0:8c1b74ecac29 21
stephane_m 0:8c1b74ecac29 22 View::~View()
stephane_m 0:8c1b74ecac29 23 {
stephane_m 0:8c1b74ecac29 24 for (Button * it : m_buttonList) {
stephane_m 0:8c1b74ecac29 25 delete it;
stephane_m 0:8c1b74ecac29 26 }
stephane_m 0:8c1b74ecac29 27 m_buttonList.clear();
stephane_m 0:8c1b74ecac29 28 }
stephane_m 0:8c1b74ecac29 29
stephane_m 0:8c1b74ecac29 30 void View::drawImage(int offsetX, int offsetY)
stephane_m 0:8c1b74ecac29 31 {
stephane_m 0:8c1b74ecac29 32 int x = 0;
stephane_m 0:8c1b74ecac29 33 int y = 0;
stephane_m 0:8c1b74ecac29 34 uint32_t* dataPtr = (uint32_t*)entrerlimiter.data;
stephane_m 0:8c1b74ecac29 35 while(y < entrerlimiter.height) {
stephane_m 0:8c1b74ecac29 36 while(x < entrerlimiter.width) {
stephane_m 0:8c1b74ecac29 37 BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
stephane_m 0:8c1b74ecac29 38 dataPtr++;
stephane_m 0:8c1b74ecac29 39 x++;
stephane_m 0:8c1b74ecac29 40 }
stephane_m 0:8c1b74ecac29 41 x = 0;
stephane_m 0:8c1b74ecac29 42 y++;
stephane_m 0:8c1b74ecac29 43 }
stephane_m 0:8c1b74ecac29 44 }
stephane_m 0:8c1b74ecac29 45
stephane_m 0:8c1b74ecac29 46 void View::contain(int x, int y)
stephane_m 0:8c1b74ecac29 47 {
stephane_m 0:8c1b74ecac29 48 int idBut = 0;
stephane_m 0:8c1b74ecac29 49 for (Button *it : m_buttonList) {
stephane_m 0:8c1b74ecac29 50 bool memoetat = it->etat();
stephane_m 0:8c1b74ecac29 51 if (it->contain(x,y)) {
stephane_m 0:8c1b74ecac29 52 if (idBut == 0) {
stephane_m 0:8c1b74ecac29 53 if (!memoetat) {
stephane_m 0:8c1b74ecac29 54 *i=*i-1;
stephane_m 0:8c1b74ecac29 55 }
stephane_m 0:8c1b74ecac29 56 } else {
stephane_m 0:8c1b74ecac29 57 if (!memoetat) {
stephane_m 0:8c1b74ecac29 58 *i=0;
stephane_m 0:8c1b74ecac29 59 }
stephane_m 0:8c1b74ecac29 60 }
stephane_m 0:8c1b74ecac29 61 }
stephane_m 0:8c1b74ecac29 62 idBut++;
stephane_m 0:8c1b74ecac29 63 }
stephane_m 0:8c1b74ecac29 64 }
stephane_m 0:8c1b74ecac29 65
stephane_m 0:8c1b74ecac29 66 void View::draw()
stephane_m 0:8c1b74ecac29 67 {
stephane_m 0:8c1b74ecac29 68 BSP_LCD_Clear(m_bgColor);
stephane_m 0:8c1b74ecac29 69 for (Button *it : m_buttonList) {
stephane_m 0:8c1b74ecac29 70 it->draw();
stephane_m 0:8c1b74ecac29 71 }
stephane_m 0:8c1b74ecac29 72
stephane_m 0:8c1b74ecac29 73 }