comparison Discovery/Src/t3.c @ 190:cca59de24fe0

Merged in janlmulder/ostc4/avg-temp (pull request #6) Bugfix: average temperature on arrival from RTE instead of display time
author heinrichsweikamp <bitbucket@heinrichsweikamp.com>
date Fri, 15 Mar 2019 15:48:53 +0000
parents 8b8074080d7b
children 51a3aeffc6b3
comparison
equal deleted inserted replaced
188:ddc21166d25b 190:cca59de24fe0
50 GFX_DrawCfgWindow t3l1; 50 GFX_DrawCfgWindow t3l1;
51 GFX_DrawCfgWindow t3r1; 51 GFX_DrawCfgWindow t3r1;
52 GFX_DrawCfgWindow t3c1; 52 GFX_DrawCfgWindow t3c1;
53 GFX_DrawCfgWindow t3c2; 53 GFX_DrawCfgWindow t3c2;
54 54
55 extern float temperatureLastCall[3];
56 extern uint8_t idTemperatureLastCall;
57
58 uint8_t t3_selection_customview = 0; 55 uint8_t t3_selection_customview = 0;
59 56
60 /* TEM HAS TO MOVE TO GLOBAL--------------------------------------------------*/ 57 /* TEM HAS TO MOVE TO GLOBAL--------------------------------------------------*/
61 58
62 /* Private types -------------------------------------------------------------*/ 59 /* Private types -------------------------------------------------------------*/
505 { 502 {
506 char text[512]; 503 char text[512];
507 uint16_t textpointer = 0; 504 uint16_t textpointer = 0;
508 505
509 // CVIEW_T3_Temperature 506 // CVIEW_T3_Temperature
510 float temperatureThisCall;
511 float temperature; 507 float temperature;
512 508
513 SDivetime TotalDivetime = {0,0,0,0}; 509 SDivetime TotalDivetime = {0,0,0,0};
514 SDivetime LastDivetime = {0,0,0,0}; 510 SDivetime LastDivetime = {0,0,0,0};
515 511
525 { 521 {
526 case CVIEW_T3_Temperature: 522 case CVIEW_T3_Temperature:
527 snprintf(text,TEXTSIZE,"\032\f%c",TXT_Temperature); 523 snprintf(text,TEXTSIZE,"\032\f%c",TXT_Temperature);
528 GFX_write_string(&FontT42,tXc1,text,0); 524 GFX_write_string(&FontT42,tXc1,text,0);
529 525
530 // mean value 526 temperature = unit_temperature_float(stateUsed->lifeData.temperature_celsius);
531 temperatureThisCall = unit_temperature_float(stateUsed->lifeData.temperature_celsius);
532 temperature = (temperatureThisCall + temperatureLastCall[0] + temperatureLastCall[1] + temperatureLastCall[2]) / 4.0f;
533 idTemperatureLastCall++;
534 if(idTemperatureLastCall >= 3)
535 idTemperatureLastCall = 0;
536 temperatureLastCall[idTemperatureLastCall] = temperatureThisCall;
537 textpointer = snprintf(text,TEXTSIZE,"\020\003\016%01.0f\016\016\140",temperature); // "\016\016%01.1f `" + C or F 527 textpointer = snprintf(text,TEXTSIZE,"\020\003\016%01.0f\016\016\140",temperature); // "\016\016%01.1f `" + C or F
538 if(settingsGetPointer()->nonMetricalSystem == 0) 528 if(settingsGetPointer()->nonMetricalSystem == 0)
539 text[textpointer++] = 'C'; 529 text[textpointer++] = 'C';
540 else 530 else
541 text[textpointer++] = 'F'; 531 text[textpointer++] = 'F';
604 594
605 // CVIEW_T3_ppO2andGas 595 // CVIEW_T3_ppO2andGas
606 uint8_t oxygen_percentage = 0; 596 uint8_t oxygen_percentage = 0;
607 597
608 // CVIEW_T3_Temperature 598 // CVIEW_T3_Temperature
609 float temperatureThisCall;
610 float temperature; 599 float temperature;
611 600
612 // CVIEW_T3_GasList 601 // CVIEW_T3_GasList
613 float fPpO2limitHigh, fPpO2limitLow, fPpO2ofGasAtThisDepth; 602 float fPpO2limitHigh, fPpO2limitLow, fPpO2ofGasAtThisDepth;
614 const SGasLine * pGasLine; 603 const SGasLine * pGasLine;
616 uint8_t lineNumber; 605 uint8_t lineNumber;
617 606
618 // CVIEW_T3_StopWatch 607 // CVIEW_T3_StopWatch
619 SDivetime Stopwatch = {0,0,0,0}; 608 SDivetime Stopwatch = {0,0,0,0};
620 float fAverageDepth, fAverageDepthAbsolute; 609 float fAverageDepth, fAverageDepthAbsolute;
621
622 610
623 uint16_t tempWinX0; 611 uint16_t tempWinX0;
624 uint16_t tempWinX1; 612 uint16_t tempWinX1;
625 uint16_t tempWinY0; 613 uint16_t tempWinY0;
626 uint16_t tempWinY1; 614 uint16_t tempWinY1;
747 break; 735 break;
748 736
749 case CVIEW_T3_Temperature: 737 case CVIEW_T3_Temperature:
750 snprintf(text,TEXTSIZE,"\032\f%c",TXT_Temperature); 738 snprintf(text,TEXTSIZE,"\032\f%c",TXT_Temperature);
751 GFX_write_string(&FontT42,tXc1,text,0); 739 GFX_write_string(&FontT42,tXc1,text,0);
752 // mean value 740
753 temperatureThisCall = unit_temperature_float(stateUsed->lifeData.temperature_celsius); 741 temperature = unit_temperature_float(stateUsed->lifeData.temperature_celsius);
754 temperature = (temperatureThisCall + temperatureLastCall[0] + temperatureLastCall[1] + temperatureLastCall[2]) / 4.0f;
755 idTemperatureLastCall++;
756 if(idTemperatureLastCall >= 3)
757 idTemperatureLastCall = 0;
758 temperatureLastCall[idTemperatureLastCall] = temperatureThisCall;
759 textpointer = snprintf(text,TEXTSIZE,"\030\003\016%01.1f \140",temperature); // "\016\016%01.1f `" + C or F 742 textpointer = snprintf(text,TEXTSIZE,"\030\003\016%01.1f \140",temperature); // "\016\016%01.1f `" + C or F
760 if(settingsGetPointer()->nonMetricalSystem == 0) 743 if(settingsGetPointer()->nonMetricalSystem == 0)
761 text[textpointer++] = 'C'; 744 text[textpointer++] = 'C';
762 else 745 else
763 text[textpointer++] = 'F'; 746 text[textpointer++] = 'F';