annotate Discovery/Src/logbook_miniLive.c @ 604:fb5bb04ad914

Merged menu items of viewport and motion control: viewport and motion control are depending on each other and were listed at the to level of custom view tab. Because motion control is just a one line item it has been moved into the viewport page. As result there is one free line for future custom view options available again.
author Ideenmodellierer
date Wed, 06 Jan 2021 21:01:00 +0100
parents c56ed16dbd39
children ae7f8333c900
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1 /**
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
2 ******************************************************************************
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
3 * @copyright heinrichs weikamp
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
4 * @file logbook_miniLive.c
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
5 * @author heinrichs weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
6 * @date 13-March-2015
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
7 * @version V0.0.1
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
8 * @since 13-March-2015
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
9 * @brief little logbook for during the dive
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
10 * @bug
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
11 * @warning
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
12 ******************************************************************************
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
13 * @attention
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
14 *
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
15 * <h2><center>&copy; COPYRIGHT(c) 2015 heinrichs weikamp</center></h2>
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
16 *
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
17 ******************************************************************************
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
18 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
19
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
20 /* Includes ------------------------------------------------------------------*/
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
21
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
22
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
23 #include <string.h>
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
24 #include "logbook_miniLive.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
25 #include "data_exchange.h"
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
26 #include "logbook.h"
603
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
27 #include "tHome.h"
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
28
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
29 /*
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
30 ******************************************************************************
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
31 * @brief t7_updateMiniLiveLogbook. / Create depth samples for view during dive
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
32 * @author heinrichs weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
33 * @version V0.0.1
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
34 * @date 13-March-2015
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
35 ******************************************************************************
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
36 *
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
37 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
39 #define MLLsize (296)
300
5ca177d2df5d cleanup: remove commented/unused code, make static
Jan Mulder <jlmulder@xs4all.nl>
parents: 38
diff changeset
40 static uint16_t MLLdataDepth[MLLsize];
5ca177d2df5d cleanup: remove commented/unused code, make static
Jan Mulder <jlmulder@xs4all.nl>
parents: 38
diff changeset
41 static uint16_t MLLpointer = 0;
5ca177d2df5d cleanup: remove commented/unused code, make static
Jan Mulder <jlmulder@xs4all.nl>
parents: 38
diff changeset
42 static uint8_t MLLtickIntervallSeconds = 2;
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
43
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
44 /* Replay Block data storage */
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
45 #define DEPTH_DATA_LENGTH (1800u) /* Resolution: 1 hours dive, sampling every 2 seconds */
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
46 uint16_t ReplayDepthData[DEPTH_DATA_LENGTH];
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
47 uint16_t liveDepthData[DEPTH_DATA_LENGTH];
603
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
48 uint16_t liveDecoData[DEPTH_DATA_LENGTH];
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
49 static uint16_t lifeDataIndex = 0;
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
50
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
51 static uint8_t ReplayDataResolution = 2; /* Time represented by one sample (second) */
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
52 static uint16_t ReplayDataLength = 0; /* Number of data entries */
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
53 static uint16_t ReplayDataMaxDepth = 0;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
54 static uint16_t ReplayDataMinutes = 0;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
55 static uint16_t ReplayDataOffset = 0xFFFF; /* Stepbackwards format used by log functions */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
56
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
57 uint16_t *getMiniLiveLogbookPointerToData(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
58 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
59 return MLLdataDepth;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
60 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
61
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
62
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
63 uint16_t getMiniLiveLogbookActualDataLength(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
64 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
65 return MLLpointer;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
66 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
67
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
68 void compressBuffer_uint16(uint16_t* pdata, uint16_t size)
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
69 {
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
70 uint16_t* pTarget = pdata;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
71 uint16_t* pSource = pdata;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
73 uint16_t index = 0;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
74
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
75 for(index = 0; index < size/2; index++)
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
76 {
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
77 *pTarget = *pSource++;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
78 *pTarget += *pSource++;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
79 *pTarget++ /= 2;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
80 }
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
81 memset(pTarget,0,size/2);
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
82 }
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
83
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
84 void updateMiniLiveLogbook( _Bool checkOncePerSecond)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
85 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
86 static uint8_t bDiveMode = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
87 static uint32_t last_second = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
88 static uint8_t secondsCount = 0;
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
89 static uint8_t lifesecondsCount = 0;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
90
603
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
91 const SDecoinfo* pDecoinfo;
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
92 uint8_t stopDepth = 0;
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
93 uint16_t stopTime = 0;
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
94
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
95 if(checkOncePerSecond)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
96 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
97 uint32_t now = current_second();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
98 if( last_second == now)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
99 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
100 last_second = now;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
101 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
102 secondsCount++;
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
103 lifesecondsCount++;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
104
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
105 if(!bDiveMode)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
106 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
107 if((stateUsed->mode == MODE_DIVE) && (stateUsed->lifeData.dive_time_seconds >= 5))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
108 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
109 secondsCount = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
110 MLLtickIntervallSeconds = 2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
111 bDiveMode = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
112 MLLpointer = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
113 for(int i=0;i<MLLsize;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
114 MLLdataDepth[i] = 0;
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
115
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
116 for(lifeDataIndex = 0; lifeDataIndex < DEPTH_DATA_LENGTH; lifeDataIndex++)
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
117 {
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
118 liveDepthData[lifeDataIndex] = 0xFFFF;
603
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
119 liveDecoData[lifeDataIndex] = 0xFFFF;
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
120 }
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
121 lifesecondsCount = 0;
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
122 lifeDataIndex = 0;
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
123 liveDepthData[lifeDataIndex++] = 0; /* start at 0 */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
124 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
125 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
126 else if(stateUsed->mode == MODE_DIVE)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
127 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
128 bDiveMode = 3;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
129 //
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
130 if(secondsCount >= MLLtickIntervallSeconds)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
131 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
132 secondsCount = 0;
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
133 /* in case of a buffer overrun the buffer is divided and the first half is filled with a compressed image of the complete buffer */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
134 if((MLLpointer >= MLLsize) && (MLLtickIntervallSeconds < 127))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
135 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
136 MLLpointer = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
137 MLLtickIntervallSeconds *= 2;
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
138
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
139 compressBuffer_uint16(MLLdataDepth,MLLsize);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
140 MLLpointer = MLLsize/2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
141 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
142 if(MLLpointer < MLLsize)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
143 MLLdataDepth[MLLpointer++] = (int)(stateUsed->lifeData.depth_meter * 10);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
144 }
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
145 if(lifesecondsCount >= ReplayDataResolution)
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
146 {
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
147 lifesecondsCount = 0;
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
148
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
149 if(lifeDataIndex >= DEPTH_DATA_LENGTH) /* compress data */
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
150 {
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
151 ReplayDataResolution *= 2;
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
152 compressBuffer_uint16(liveDepthData,DEPTH_DATA_LENGTH);
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
153 compressBuffer_uint16(ReplayDepthData,DEPTH_DATA_LENGTH); /* also compress Replay data to siplify mapping between live and replay data */
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
154 lifeDataIndex = DEPTH_DATA_LENGTH / 2;
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
155 }
603
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
156 liveDepthData[lifeDataIndex] = (int)(stateUsed->lifeData.depth_meter * 100);
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
157 if(stateUsed->diveSettings.deco_type.ub.standard == VPM_MODE)
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
158 {
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
159 pDecoinfo = &stateUsed->decolistVPM;
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
160 }
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
161 else
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
162 {
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
163 pDecoinfo = &stateUsed->decolistBuehlmann;
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
164 }
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
165 tHome_findNextStop(pDecoinfo->output_stop_length_seconds, &stopDepth, &stopTime);
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
166 if(stopDepth)
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
167 {
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
168 liveDecoData[lifeDataIndex] = stopDepth * 100;
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
169 }
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
170 else
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
171 {
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
172 liveDecoData[lifeDataIndex] = 0xFFFF;
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
173 }
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
174 lifeDataIndex++;
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
175 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
176 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
177 else if(bDiveMode == 3)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
178 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
179 //End of Dive
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
180 for(int i=0;i<MLLsize;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
181 MLLdataDepth[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
182 bDiveMode = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
183 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
184 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
185
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
186 uint8_t prepareReplayLog(uint8_t StepBackwards)
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
187 {
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
188 uint8_t retVal = 0;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
189 uint16_t dataLength = 0;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
190
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
191 SLogbookHeader logbookHeader;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
192
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
193 if(ReplayDataOffset == StepBackwards) /* Entry already selected => reset selection */
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
194 {
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
195 ReplayDataOffset = 0xFFFF;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
196 ReplayDataResolution = 2;
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
197 ReplayDataLength = 0;
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
198 ReplayDataMaxDepth = 0;
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
199 ReplayDataMinutes = 0;
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
200
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
201 retVal = 1;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
202 }
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
203 else
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
204 {
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
205 ReplayDataOffset = StepBackwards;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
206 logbook_getHeader(StepBackwards ,&logbookHeader);
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
207
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
208 dataLength = logbook_readSampleData(StepBackwards, DEPTH_DATA_LENGTH, ReplayDepthData,NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
209
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
210 if( dataLength == DEPTH_DATA_LENGTH) /* log data has been compressed to fit into buffer */
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
211 {
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
212 ReplayDataResolution = (logbookHeader.diveTimeMinutes * 60 + logbookHeader.diveTimeSeconds) / dataLength;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
213 }
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
214 else
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
215 {
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
216 ReplayDataResolution = logbookHeader.samplingRate;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
217 }
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
218 ReplayDataLength = dataLength;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
219 ReplayDataMaxDepth = logbookHeader.maxDepth;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
220 ReplayDataMinutes = logbookHeader.diveTimeMinutes;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
221 if(dataLength != 0)
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
222 {
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
223 retVal = 1;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
224 }
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
225 }
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
226 return retVal;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
227 }
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
228
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
229 uint8_t getReplayInfo(uint16_t** pReplayData, uint16_t* DataLength, uint16_t* MaxDepth, uint16_t* diveMinutes)
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
230 {
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
231 uint8_t retVal = 0;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
232
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
233 if((ReplayDataOffset != 0xFFFF) && (pReplayData != NULL) && (DataLength != NULL) && (MaxDepth != NULL))
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
234 {
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
235 *pReplayData = ReplayDepthData;
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
236 *DataLength = ReplayDataLength;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
237 *MaxDepth = ReplayDataMaxDepth;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
238 *diveMinutes = ReplayDataMinutes;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
239 retVal = 1;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
240 }
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
241
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
242 return retVal;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
243 }
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
244
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
245 uint16_t *getMiniLiveReplayPointerToData(void)
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
246 {
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
247 return liveDepthData;
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
248 }
603
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
249 uint16_t *getMiniLiveDecoPointerToData(void)
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
250 {
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
251 return liveDecoData;
c56ed16dbd39 T3 profile view: Added visualization of deco data
Ideenmodellierer
parents: 602
diff changeset
252 }
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
253 uint16_t getMiniLiveReplayLength(void)
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
254 {
602
2cb0a97a07ad Added replay data scaling in case life data is longer than replay block
Ideenmodellierer
parents: 598
diff changeset
255 return lifeDataIndex;
598
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
256 }
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
257
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
258 uint16_t getReplayOffset(void)
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
259 {
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
260 return ReplayDataOffset;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
261 }
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
262
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
263 uint16_t getReplayDataResolution(void)
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
264 {
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
265 return ReplayDataResolution;
0a3836643173 New replay block for T3 profile:
Ideenmodellierer
parents: 300
diff changeset
266 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
267
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
268 /************************ (C) COPYRIGHT heinrichs weikamp *****END OF FILE****/