view Discovery/Src/logbook_miniLive.c @ 542:6960df7ddb09
Added new t3 view showing first deco stop and tts in parallel:
TTS and deco stop may already be shown individually. Now also available in one view where TTS is limited to 99minutes (switch to hours) to avoid string overlap.
author
Ideenmodellierer
date
Sat, 10 Oct 2020 21:02:05 +0200 (2020-10-10)
parents
5ca177d2df5d
children
0a3836643173
line source
/**+ −
******************************************************************************+ −
* @copyright heinrichs weikamp+ −
* @file logbook_miniLive.c+ −
* @author heinrichs weikamp gmbh+ −
* @date 13-March-2015+ −
* @version V0.0.1+ −
* @since 13-March-2015+ −
* @brief little logbook for during the dive+ −
* @bug+ −
* @warning+ −
******************************************************************************+ −
* @attention+ −
*+ −
* <h2><center>© COPYRIGHT(c) 2015 heinrichs weikamp</center></h2>+ −
*+ −
******************************************************************************+ −
*/+ −
+ −
/* Includes ------------------------------------------------------------------*/+ −
#include "logbook_miniLive.h"+ −
#include "data_exchange.h"+ −
+ −
/*+ −
******************************************************************************+ −
* @brief t7_updateMiniLiveLogbook. / Create depth samples for view during dive+ −
* @author heinrichs weikamp gmbh+ −
* @version V0.0.1+ −
* @date 13-March-2015+ −
******************************************************************************+ −
*+ −
*/+ −
+ −
#define MLLsize (296)+ −
static uint16_t MLLdataDepth[MLLsize];+ −
static uint16_t MLLpointer = 0;+ −
static uint8_t MLLtickIntervallSeconds = 2;+ −
+ −
+ −
uint16_t *getMiniLiveLogbookPointerToData(void)+ −
{+ −
return MLLdataDepth;+ −
}+ −
+ −
+ −
uint16_t getMiniLiveLogbookActualDataLength(void)+ −
{+ −
return MLLpointer;+ −
}+ −
+ −
+ −
+ −
void updateMiniLiveLogbook( _Bool checkOncePerSecond)+ −
{+ −
static uint8_t bDiveMode = 0;+ −
static uint32_t last_second = 0;+ −
static uint8_t secondsCount = 0;+ −
+ −
if(checkOncePerSecond)+ −
{+ −
uint32_t now = current_second();+ −
if( last_second == now)+ −
return;+ −
last_second = now;+ −
}+ −
secondsCount++;+ −
+ −
if(!bDiveMode)+ −
{+ −
if((stateUsed->mode == MODE_DIVE) && (stateUsed->lifeData.dive_time_seconds >= 5))+ −
{+ −
secondsCount = 0;+ −
MLLtickIntervallSeconds = 2;+ −
bDiveMode = 1;+ −
MLLpointer = 1;+ −
for(int i=0;i<MLLsize;i++)+ −
MLLdataDepth[i] = 0;+ −
}+ −
}+ −
else if(stateUsed->mode == MODE_DIVE)+ −
{+ −
bDiveMode = 3;+ −
//+ −
if(secondsCount >= MLLtickIntervallSeconds)+ −
{+ −
secondsCount = 0;+ −
if((MLLpointer >= MLLsize) && (MLLtickIntervallSeconds < 127))+ −
{+ −
MLLpointer = 0;+ −
MLLtickIntervallSeconds *= 2;+ −
for(int i=0;i<MLLsize/2;i++)+ −
{+ −
MLLdataDepth[i] = MLLdataDepth[MLLpointer++];+ −
MLLdataDepth[i] += MLLdataDepth[MLLpointer++];+ −
MLLdataDepth[i] /= 2;+ −
}+ −
MLLpointer = MLLsize/2;+ −
for(int i=MLLsize/2;i<MLLsize;i++)+ −
MLLdataDepth[i] = 0;+ −
}+ −
if(MLLpointer < MLLsize)+ −
MLLdataDepth[MLLpointer++] = (int)(stateUsed->lifeData.depth_meter * 10);+ −
}+ −
}+ −
else if(bDiveMode == 3)+ −
{+ −
//End of Dive+ −
for(int i=0;i<MLLsize;i++)+ −
MLLdataDepth[i] = 0;+ −
bDiveMode = 0;+ −
}+ −
}+ −
+ −
+ −
+ −
/************************ (C) COPYRIGHT heinrichs weikamp *****END OF FILE****/+ −