add water spill level out of 32*24
This commit is contained in:
parent
211c62c184
commit
81c3189ecd
|
@ -25,6 +25,7 @@ float minTemp = 1.0f;
|
||||||
float maxTemp = 60.0f;
|
float maxTemp = 60.0f;
|
||||||
float centerTemp=0.0f;
|
float centerTemp=0.0f;
|
||||||
float averageTemp=0.0f;
|
float averageTemp=0.0f;
|
||||||
|
volatile uint16_t waterSpillCount=0;
|
||||||
|
|
||||||
char tempBuffer[128];
|
char tempBuffer[128];
|
||||||
// variables for interpolated colors
|
// variables for interpolated colors
|
||||||
|
@ -147,11 +148,11 @@ static void drawLegend(void)
|
||||||
memset(tempBuffer,0,sizeof(tempBuffer));
|
memset(tempBuffer,0,sizeof(tempBuffer));
|
||||||
DrawProp.BackColor = LCD_COLOR_BLACK;
|
DrawProp.BackColor = LCD_COLOR_BLACK;
|
||||||
sprintf(tempBuffer,(char *)"Yunhorn Technology");
|
sprintf(tempBuffer,(char *)"Yunhorn Technology");
|
||||||
BSP_LCD_DisplayStringAt(20,ST7789V_LCD_PIXEL_HEIGHT,(uint8_t *)tempBuffer,LEFT_MODE,LCD_COLOR_DARKBLUE);
|
BSP_LCD_DisplayStringAt(20,ST7789V_LCD_PIXEL_HEIGHT+2,(uint8_t *)tempBuffer,LEFT_MODE,LCD_COLOR_DARKBLUE);
|
||||||
|
|
||||||
memset(tempBuffer,0,sizeof(tempBuffer));
|
memset(tempBuffer,0,sizeof(tempBuffer));
|
||||||
sprintf(tempBuffer,(char *)"F10.Male#1.WashBasin");
|
sprintf(tempBuffer,(char *)"F10.Male#1.Zone#1");
|
||||||
BSP_LCD_DisplayStringAt(8, 15,(uint8_t *)tempBuffer,LEFT_MODE,LCD_COLOR_WHITE);
|
BSP_LCD_DisplayStringAt(22, 15,(uint8_t *)tempBuffer,LEFT_MODE,LCD_COLOR_DARKBLUE);
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
BSP_LCD_SetFont(&Font16);
|
BSP_LCD_SetFont(&Font16);
|
||||||
|
@ -176,42 +177,11 @@ static void drawMeasurement(void ) {
|
||||||
// Measure and print center temperature
|
// Measure and print center temperature
|
||||||
centerTemp = (tempValues[383 - 16] + tempValues[383 - 15] + tempValues[384 + 15] + tempValues[384 + 16]) / 4;
|
centerTemp = (tempValues[383 - 16] + tempValues[383 - 15] + tempValues[384 + 15] + tempValues[384 + 16]) / 4;
|
||||||
|
|
||||||
#if 0
|
|
||||||
BSP_LCD_DrawHLine(0,246,ST7789V_LCD_PIXEL_WIDTH, LCD_COLOR_LIGHTBLUE);
|
|
||||||
BSP_LCD_DrawHLine(0,245,ST7789V_LCD_PIXEL_WIDTH, LCD_COLOR_LIGHTBLUE);
|
|
||||||
|
|
||||||
BSP_LCD_SetFont(&Font16);
|
|
||||||
memset(tempBuffer,0,sizeof(tempBuffer));
|
|
||||||
DrawProp.BackColor = LCD_COLOR_BLACK;
|
|
||||||
sprintf(tempBuffer,(char *)"Yunhorn Technology");
|
|
||||||
BSP_LCD_DisplayStringAt(20,ST7789V_LCD_PIXEL_HEIGHT,(uint8_t *)tempBuffer,LEFT_MODE,LCD_COLOR_BLUE);
|
|
||||||
|
|
||||||
memset(tempBuffer,0,sizeof(tempBuffer));
|
|
||||||
sprintf(tempBuffer,(char *)"F10.Male#1.WashBasin",centerTemp);
|
|
||||||
BSP_LCD_DisplayStringAt(8, ST7789V_LCD_PIXEL_HEIGHT-16,(uint8_t *)tempBuffer,LEFT_MODE,LCD_COLOR_WHITE);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
memset(tempBuffer,0,sizeof(tempBuffer));
|
|
||||||
sprintf(tempBuffer,(char *)"%2.2f ",centerTemp);
|
|
||||||
BSP_LCD_DisplayStringAt(60,260,(uint8_t *)tempBuffer,LEFT_MODE,LCD_COLOR_RED);
|
|
||||||
|
|
||||||
memset(tempBuffer,0,sizeof(tempBuffer));
|
|
||||||
sprintf(tempBuffer,(char *)"%2.2f ",averageTemp);
|
|
||||||
BSP_LCD_DisplayStringAt(120,260,(uint8_t *)tempBuffer,LEFT_MODE,LCD_COLOR_BLUE);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void drawPicture(void) {
|
static void drawPicture(void)
|
||||||
#if 0
|
{
|
||||||
float temp1=0.0;
|
|
||||||
uint8_t blackdot=0;
|
|
||||||
averageTemp = 0.0;
|
|
||||||
for (i=0; i<32*24; i++)
|
|
||||||
averageTemp += tempValues[i];
|
|
||||||
averageTemp /= 768;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
BSP_LCD_FillRect(0,2*16+6, ST7789V_LCD_PIXEL_WIDTH, ST7789V_LCD_PIXEL_HEIGHT-32, LCD_COLOR_BLACK);
|
BSP_LCD_FillRect(0,2*16+6, ST7789V_LCD_PIXEL_WIDTH, ST7789V_LCD_PIXEL_HEIGHT-32, LCD_COLOR_BLACK);
|
||||||
// ignore edge of FOV
|
// ignore edge of FOV
|
||||||
|
@ -223,6 +193,7 @@ averageTemp = 0.0;
|
||||||
if (zoneMask[y*32+x] > 3) {
|
if (zoneMask[y*32+x] > 3) {
|
||||||
//APP_LOG(TS_OFF,VLEVEL_L,"\r\n X=%d Y=%d Count=%d\r\n",x,y,zoneMask[y*32+x]);
|
//APP_LOG(TS_OFF,VLEVEL_L,"\r\n X=%d Y=%d Count=%d\r\n",x,y,zoneMask[y*32+x]);
|
||||||
BSP_LCD_FillRect(x*8, y*11+16, 4, 4, LCD_COLOR_GREEN);
|
BSP_LCD_FillRect(x*8, y*11+16, 4, 4, LCD_COLOR_GREEN);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -250,15 +221,6 @@ static void readTempValues(void)
|
||||||
|
|
||||||
MLX90640_CalculateTo(mlx90640Frame, &mlx90640, EMMISIVITY, tr, tempValues);
|
MLX90640_CalculateTo(mlx90640Frame, &mlx90640, EMMISIVITY, tr, tempValues);
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
APP_LOG(TS_OFF,VLEVEL_L, "\r\n\n\n");
|
|
||||||
for (uint8_t y=0; y < 24; y++) {
|
|
||||||
for (uint8_t x=0; x<32; x++) {
|
|
||||||
APP_LOG(TS_OFF, VLEVEL_L, "%c ", (uint8_t)((((float)tempValues[y*32+x]- 25.0)) + 0x30));
|
|
||||||
}
|
|
||||||
APP_LOG(TS_OFF,VLEVEL_L, "\r\n");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
void blackOutFilter(void)
|
void blackOutFilter(void)
|
||||||
{
|
{
|
||||||
|
@ -268,6 +230,7 @@ void blackOutFilter(void)
|
||||||
{
|
{
|
||||||
blackOutTag =0;
|
blackOutTag =0;
|
||||||
// ignore edge of FOV
|
// ignore edge of FOV
|
||||||
|
waterSpillCount =0;
|
||||||
for (y=2; y<22; y++)
|
for (y=2; y<22; y++)
|
||||||
{
|
{
|
||||||
for (x=2; x<30; x++)
|
for (x=2; x<30; x++)
|
||||||
|
@ -277,6 +240,7 @@ void blackOutFilter(void)
|
||||||
{
|
{
|
||||||
zoneMask[y*32+x] ++;
|
zoneMask[y*32+x] ++;
|
||||||
//APP_LOG(TS_OFF, VLEVEL_L, "Detect Zone X=%d Y=%d Count=%d T=%2.2f \r\n", x, y, zoneMask[y*32+x], (int)(temp1+waterTempThreshold/10.0));
|
//APP_LOG(TS_OFF, VLEVEL_L, "Detect Zone X=%d Y=%d Count=%d T=%2.2f \r\n", x, y, zoneMask[y*32+x], (int)(temp1+waterTempThreshold/10.0));
|
||||||
|
waterSpillCount ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -291,6 +255,7 @@ void blackOutFilter(void)
|
||||||
if (detectCycle ++ > 20)
|
if (detectCycle ++ > 20)
|
||||||
{
|
{
|
||||||
detectCycle = 0;
|
detectCycle = 0;
|
||||||
|
|
||||||
memset((void *)zoneMask,0,sizeof(zoneMask));
|
memset((void *)zoneMask,0,sizeof(zoneMask));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -316,6 +281,8 @@ void mlx90640_display_process(void)
|
||||||
LCD_BL_OFF();
|
LCD_BL_OFF();
|
||||||
// BSP_LCD_DisplayOff();
|
// BSP_LCD_DisplayOff();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
APP_LOG(TS_OFF, VLEVEL_L, "Water Spill Detected Level = %d of %d, \r\n", waterSpillCount, 30*20);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mlx90640_display_init(void){
|
void mlx90640_display_init(void){
|
||||||
|
|
|
@ -212,14 +212,14 @@ void st7789v_Init(void)
|
||||||
*/
|
*/
|
||||||
void st7789v_DisplayOn(void)
|
void st7789v_DisplayOn(void)
|
||||||
{
|
{
|
||||||
//uint8_t data = 0;
|
uint8_t data = 0;
|
||||||
LCD_IO_WriteReg(0x13);/* Partial off (Normal): NORON */
|
LCD_IO_WriteReg(0x13);/* Partial off (Normal): NORON */
|
||||||
LCD_Delay(10);
|
LCD_Delay(10);
|
||||||
LCD_IO_WriteReg(0x29);/* Display on: DISPON */
|
LCD_IO_WriteReg(0x29);/* Display on: DISPON */
|
||||||
LCD_Delay(10);
|
LCD_Delay(10);
|
||||||
// LCD_IO_WriteReg(0x36);/* Memory data access control: MADCTL */
|
LCD_IO_WriteReg(0x36);/* Memory data access control: MADCTL */
|
||||||
// data = 0xC0;
|
data = 0xC0;
|
||||||
// LCD_IO_WriteMultipleData(&data, 1);
|
LCD_IO_WriteMultipleData(&data, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -229,14 +229,14 @@ void st7789v_DisplayOn(void)
|
||||||
*/
|
*/
|
||||||
void st7789v_DisplayOff(void)
|
void st7789v_DisplayOff(void)
|
||||||
{
|
{
|
||||||
// uint8_t data = 0;
|
uint8_t data = 0;
|
||||||
LCD_IO_WriteReg(0x13);/* Partial off (Normal): NORON */
|
LCD_IO_WriteReg(0x13);/* Partial off (Normal): NORON */
|
||||||
LCD_Delay(10);
|
LCD_Delay(10);
|
||||||
LCD_IO_WriteReg(0x28);/* Display off: DISPOFF */
|
LCD_IO_WriteReg(0x28);/* Display off: DISPOFF */
|
||||||
LCD_Delay(10);
|
LCD_Delay(10);
|
||||||
// LCD_IO_WriteReg(0x36);/* Memory data access control: MADCTL */
|
LCD_IO_WriteReg(0x36);/* Memory data access control: MADCTL */
|
||||||
// data = 0xC0;
|
data = 0xC0;
|
||||||
// LCD_IO_WriteMultipleData(&data, 1);
|
LCD_IO_WriteMultipleData(&data, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue