new graphics and user input

Dependencies:   BSP_DISCO_F769NI

main.cpp

Committer:
asingh2
Date:
2020-07-29
Revision:
3:3a1eea2b8d4d
Parent:
2:2becc6f12303

File content as of revision 3:3a1eea2b8d4d:

#include "mbed.h"
#include "stm32f769i_discovery_lcd.h"
#include "stm32f769i_discovery.h"
#include "stm32f769i_discovery_ts.h"

TS_StateTypeDef  TS_State = {0};

uint32_t Xsize = 0;
uint32_t Ysize = 0;

Serial pc(USBTX, USBRX); // tx, rx
 
AnalogIn Ain(A0);   //Read Analog input
AnalogIn Ain1(A1); //Read Analog input 1
AnalogIn Ain2(A2); //Read Analog input 2
DigitalIn user(USER_BUTTON); //Read user button
DigitalOut myLED(LED1); //Toggle LED on if button is pressed

float ADCdata = 0;
float vibdata = 0;

float datain[10000];
float datain1[10000];
int button_state=0;

/*

    BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
    BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
    BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
    BSP_LCD_SetTextColor(LCD_COLOR_GRAY);
    BSP_LCD_SetTextColor(LCD_COLOR_GREEN);
    BSP_LCD_SetTextColor(LCD_COLOR_RED);
    
*/

int main()
{
    uint16_t x1, y1;
    
    BSP_LCD_Init();
    // BSP_LCD_InitEx(LCD_ORIENTATION_PORTRAIT);
    BSP_LCD_LayerDefaultInit(0, LCD_FB_START_ADDRESS);
    BSP_LCD_SelectLayer(0);

    /* Touchscreen initialization */
    if (BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()) == TS_ERROR) {
        printf("BSP_TS_Init error\n");
}
    Xsize = BSP_LCD_GetXSize();
    Ysize = BSP_LCD_GetYSize();
    BSP_LCD_Clear(LCD_COLOR_ORANGE);
    BSP_LCD_SetTextColor(LCD_COLOR_DARKBLUE);
    BSP_LCD_SetBackColor(LCD_COLOR_ORANGE);
    BSP_LCD_SetFont(&Font24);
    
    BSP_LCD_DisplayStringAt(40,75 , (uint8_t *)"BD", CENTER_MODE);
    BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
    BSP_LCD_DisplayStringAt(0, 250, (uint8_t *)"ThrillSeeker Fistula Health Monitor", CENTER_MODE);
    
    HAL_Delay(2000);
    
        BSP_LCD_Clear(LCD_COLOR_DARKBLUE);
    BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
    BSP_LCD_SetBackColor(LCD_COLOR_DARKBLUE);
    BSP_LCD_SetFont(&Font24);
    BSP_LCD_DisplayStringAt(0, 150, (uint8_t *)"Detection Ready: Place armband on Fistula Arm", CENTER_MODE);
    BSP_LCD_SetTextColor(LCD_COLOR_GREEN);
    BSP_LCD_DisplayStringAt(0, 250, (uint8_t *)"Press OK when ready", CENTER_MODE);
    
    BSP_LCD_FillRect(437, 375, 75, 75);
    BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
    BSP_LCD_DisplayStringAt(72, 400, (uint8_t *)" OK", CENTER_MODE);
    
   
    while (1) {
            
           BSP_TS_GetState(&TS_State);
           if (TS_State.touchDetected) { 
           x1 = TS_State.touchX[0];
            y1 = TS_State.touchY[0];
            pc.printf("Touch Detected x=%d y=%d\n", x1, y1);
              BSP_LCD_SetTextColor(LCD_COLOR_ORANGE);
            BSP_LCD_FillCircle(x1, y1, 2); 
            
            if ((475<x1<525) && (350<y1<400))
            button_state=1;
            //else button_state=0;
            HAL_Delay(100);}
   //button_state=user;
   if(button_state==1)
   {
 ADCdata=Ain;

 vibdata = (Ain1 - Ain2) ;
    button_state=0;
    x1=0;
    y1=0;
         
        
        for(int count1 = 0; count1 < 10000; count1++)
      { datain1[count1]=vibdata;
            if (datain1[count1]>vibdata)
            vibdata=datain1[count1];
            else vibdata=vibdata;
            
 }
 
  for(int count = 0; count < 10000; count++)
      { datain[count]=ADCdata;
            if (datain[count]>ADCdata)
            ADCdata=datain[count];
            else ADCdata=ADCdata;
 }
 
        /*     pc.printf("\n Button State: %d", button_state);
          pc.printf("\n Microphone Data: %f ",ADCdata);
          pc.printf("\n Vibration Data: %f", vibdata);*/
          
 vibdata=abs(vibdata);
            pc.printf("\n Vibration Data: %f", vibdata);
                     
 if (vibdata<0.1) {
     
     vibdata=0; 
    BSP_LCD_Clear(LCD_COLOR_ORANGE);
    BSP_LCD_SetTextColor(LCD_COLOR_GREEN);
    BSP_LCD_SetBackColor(LCD_COLOR_ORANGE); 
     BSP_LCD_DisplayStringAt(0, 150, (uint8_t *)"Fistula is Normal", CENTER_MODE);
     //HAL_Delay(200);
     
     }
     
     else if ((0.1 <= vibdata) && (vibdata <0.2)) {
     vibdata=0; 
    BSP_LCD_Clear(LCD_COLOR_ORANGE);
    BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
    BSP_LCD_SetBackColor(LCD_COLOR_ORANGE);
          BSP_LCD_DisplayStringAt(0, 150, (uint8_t *)"Potential Occlusion to occur soon.", CENTER_MODE);
          BSP_LCD_DisplayStringAt(0, 200, (uint8_t *)"Fistula health at 75%", CENTER_MODE);
     //   HAL_Delay(5000);

          }
         
         else if (vibdata>= 0.2){
      vibdata=0; 
    BSP_LCD_Clear(LCD_COLOR_RED);
    BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
    BSP_LCD_SetBackColor(LCD_COLOR_RED);
            BSP_LCD_DisplayStringAt(0, 150, (uint8_t *)"Abnormality detected: Please Consult Physician", CENTER_MODE);
        //     HAL_Delay(5000);

             }
 vibdata=0;
 /*    if (ADCdata<0.202) {
     
     ADCdata=0;   
    BSP_LCD_Clear(LCD_COLOR_WHITE);
    BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
    BSP_LCD_SetBackColor(LCD_COLOR_GRAY);
    BSP_LCD_SetFont(&Font24);
        BSP_LCD_DisplayStringAt(0, 150, (uint8_t *)"Fistula is Normal", CENTER_MODE);
     HAL_Delay(20000);
     
     }
     
     else if ((0.202 <= ADCdata) && (ADCdata <0.85)) {
     ADCdata=0; 
    BSP_LCD_Clear(LCD_COLOR_WHITE);
    BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
    BSP_LCD_SetBackColor(LCD_COLOR_GRAY);
    BSP_LCD_SetFont(&Font24);

          BSP_LCD_DisplayStringAt(0, 150, (uint8_t *)"Potential Occlusion to occur soon.", CENTER_MODE);
          BSP_LCD_DisplayStringAt(0, 200, (uint8_t *)"Fistula health at xx%", CENTER_MODE);
        HAL_Delay(20000);
          }
         
         else if (ADCdata>= 0.85){
      ADCdata=0; 
    BSP_LCD_Clear(LCD_COLOR_WHITE);
    BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
    BSP_LCD_SetBackColor(LCD_COLOR_GRAY);
    BSP_LCD_SetFont(&Font24);

            BSP_LCD_DisplayStringAt(0, 150, (uint8_t *)"Abnormality detected: Please Consult Physician", CENTER_MODE);
             HAL_Delay(20000);
            
             }*/
            
 }    
}
}