add calibrateWaterTemp for reference later
This commit is contained in:
parent
d9bd3566fb
commit
25c2638ac4
|
@ -24,7 +24,7 @@ volatile uint8_t draw_legend_once=0, normalPeopleTemp=32, blackOutTag=0, waterTe
|
||||||
// start with some initial colors
|
// start with some initial colors
|
||||||
float minTemp = 1.0f;
|
float minTemp = 1.0f;
|
||||||
float maxTemp = 60.0f;
|
float maxTemp = 60.0f;
|
||||||
float centerTemp=0.0f;
|
volatile float centerTemp=0.0f, calibrationWaterTemp=0.0f;
|
||||||
float averageTemp=0.0f;
|
float averageTemp=0.0f;
|
||||||
volatile uint16_t waterSpillLevel=0, waterSpillSpotCount=0;
|
volatile uint16_t waterSpillLevel=0, waterSpillSpotCount=0;
|
||||||
static uint16_t lastWaterSpillSpotCount=0;
|
static uint16_t lastWaterSpillSpotCount=0;
|
||||||
|
@ -39,7 +39,7 @@ int x, y, i, j;
|
||||||
// array for the 32 x 24 measured tempValues
|
// array for the 32 x 24 measured tempValues
|
||||||
static float tempValues[32*24];
|
static float tempValues[32*24];
|
||||||
volatile uint8_t zoneMask[32*24]={0x0}, edgeMask[32*24]={0x0};
|
volatile uint8_t zoneMask[32*24]={0x0}, edgeMask[32*24]={0x0};
|
||||||
|
void setCalibrationWaterTemp(void);
|
||||||
void blackOutFilter(void);
|
void blackOutFilter(void);
|
||||||
static uint16_t TempToColor(float val);
|
static uint16_t TempToColor(float val);
|
||||||
static void setTempScale(void);
|
static void setTempScale(void);
|
||||||
|
@ -48,6 +48,7 @@ static void drawLegend(void);
|
||||||
static void drawMeasurement(void);
|
static void drawMeasurement(void);
|
||||||
static void drawPicture(void);
|
static void drawPicture(void);
|
||||||
static void readTempValues(void);
|
static void readTempValues(void);
|
||||||
|
|
||||||
extern LCD_DrawPropTypeDef DrawProp;
|
extern LCD_DrawPropTypeDef DrawProp;
|
||||||
static uint16_t TempToColor(float val)
|
static uint16_t TempToColor(float val)
|
||||||
{
|
{
|
||||||
|
@ -89,8 +90,20 @@ static uint16_t TempToColor(float val)
|
||||||
// use the displays color mapping function to get 5-6-5 color palette (R=5 bits, G=6 bits, B-5 bits)
|
// use the displays color mapping function to get 5-6-5 color palette (R=5 bits, G=6 bits, B-5 bits)
|
||||||
return BSP_LCD_GetColor565(red, green, blue);
|
return BSP_LCD_GetColor565(red, green, blue);
|
||||||
}
|
}
|
||||||
|
void setCalibrationWaterTemp(void)
|
||||||
|
{
|
||||||
|
char tempbuf[128]="";
|
||||||
|
readTempValues();
|
||||||
|
setTempScale();
|
||||||
|
calibrationWaterTemp = centerTemp;
|
||||||
|
memset(tempbuf,0x0,sizeof(tempbuf));
|
||||||
|
sprintf(tempbuf,(char *)"Calibration Water Temp =%2.2f \r\n", calibrationWaterTemp);
|
||||||
|
APP_LOG(TS_OFF,VLEVEL_L,"%s\r\n",tempbuf);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
static void setTempScale(void) {
|
static void setTempScale(void) {
|
||||||
|
char tempbuf[250]="";
|
||||||
minTemp = 255;
|
minTemp = 255;
|
||||||
maxTemp = 0;
|
maxTemp = 0;
|
||||||
averageTemp =0.0;
|
averageTemp =0.0;
|
||||||
|
@ -103,6 +116,12 @@ static void setTempScale(void) {
|
||||||
}
|
}
|
||||||
averageTemp /= 768;
|
averageTemp /= 768;
|
||||||
|
|
||||||
|
centerTemp = (tempValues[383 - 16] + tempValues[383 - 15] + tempValues[384 + 15] + tempValues[384 + 16]) / 4;
|
||||||
|
|
||||||
|
memset(tempbuf,0x0,sizeof(tempbuf));
|
||||||
|
sprintf(tempbuf,(char *)"AVG Temp=%2.2f CenterTemp=%2.2f normalWaterTemp=%2.2f CalibratedWaterTemp=%2.2f\r\n", (float)averageTemp, (float)centerTemp, (float)normalWaterTemp, (float)calibrationWaterTemp);
|
||||||
|
APP_LOG(TS_OFF,VLEVEL_L,"%s\r\n",tempbuf);
|
||||||
|
|
||||||
if (maxTemp > normalPeopleTemp)
|
if (maxTemp > normalPeopleTemp)
|
||||||
{
|
{
|
||||||
blackOutTag = 1;
|
blackOutTag = 1;
|
||||||
|
@ -182,7 +201,6 @@ static void drawMeasurement(void ) {
|
||||||
memset(tempBuffer,0,sizeof(tempBuffer));
|
memset(tempBuffer,0,sizeof(tempBuffer));
|
||||||
sprintf(tempBuffer,(char *)"%2d", waterSpillSpotCount);
|
sprintf(tempBuffer,(char *)"%2d", waterSpillSpotCount);
|
||||||
BSP_LCD_DisplayStringAt(ST7789V_LCD_PIXEL_WIDTH-60, 15,(uint8_t *)tempBuffer,LEFT_MODE,LCD_COLOR_YELLOW);
|
BSP_LCD_DisplayStringAt(ST7789V_LCD_PIXEL_WIDTH-60, 15,(uint8_t *)tempBuffer,LEFT_MODE,LCD_COLOR_YELLOW);
|
||||||
//APP_LOG(TS_OFF, VLEVEL_L, "%s\r\n",tempBuffer);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -295,8 +313,11 @@ void blackOutFilter(void)
|
||||||
|
|
||||||
//simple edge finding --end
|
//simple edge finding --end
|
||||||
|
|
||||||
|
if (calibrationWaterTemp > 0.0f) { // we have calibrated water temp process done)
|
||||||
|
|
||||||
if ((temp1 + (float)(waterTempThreshold / 10.0)) < max(averageTemp, normalWaterTemp))
|
normalWaterTemp = calibrationWaterTemp;
|
||||||
|
}
|
||||||
|
if ((temp1 + (float)(waterTempThreshold / 10.0)) < min(averageTemp, normalWaterTemp))
|
||||||
{
|
{
|
||||||
if (blackOutTag == 0) {
|
if (blackOutTag == 0) {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue