Showing the changes to Source/Libraries/TimeSeriesPlatformLibrary/Transport/TSSCEncoder.cpp (1 of 5 files). Show all
Unified · Split
| @@ -73,7 +73,7 @@ void TSSCEncoder::SetBuffer(uint8_t* data, uint32_t offset, uint32_t length) · 72 unmodified lines | ||
| 73 | 73 | m_lastPosition = offset + length; |
| 74 | 74 | } |
| 75 | 75 | |
| 76 | −int32_t TSSCEncoder::FinishBlock() | |
| 76 | +uint32_t TSSCEncoder::FinishBlock() | |
| 77 | 77 | { |
| 78 | 78 | BitStreamFlush(); |
| 79 | 79 | return m_position; |
| @@ -86,12 +86,17 @@ bool TSSCEncoder::TryAddMeasurement(uint16_t id, int64_t timestamp, uint32_t qua · 6 unmodified lines | ||
| 86 | 86 | if (m_lastPosition - m_position < 100) |
| 87 | 87 | return false; |
| 88 | 88 | |
| 89 | − TSSCPointMetadataPtr point = m_points[id]; | |
| 89 | + TSSCPointMetadataPtr point = id >= m_points.size() ? nullptr : m_points[id]; | |
| 90 | 90 | |
| 91 | 91 | if (point == nullptr) |
| 92 | 92 | { |
| 93 | 93 | point = NewTSSCPointMetadata(); |
| 94 | + | |
| 95 | + if (id >= m_points.size()) | |
| 96 | + m_points.resize(id + 1, nullptr); | |
| 97 | + | |
| 94 | 98 | point->PrevNextPointId1 = static_cast<uint16_t>(id + 1); |
| 99 | + | |
| 95 | 100 | m_points[id] = point; |
| 96 | 101 | } |
| 97 | 102 | |
| @@ -110,7 +115,7 @@ bool TSSCEncoder::TryAddMeasurement(uint16_t id, int64_t timestamp, uint32_t qua · 12 unmodified lines | ||
| 110 | 115 | if (point->PrevQuality1 != quality) |
| 111 | 116 | WriteQualityChange(quality, point); |
| 112 | 117 | |
| 113 | − uint32_t valueRaw = *reinterpret_cast<uint32_t*>(&value); | |
| 118 | + const uint32_t valueRaw = *reinterpret_cast<uint32_t*>(&value); | |
| 114 | 119 | |
| 115 | 120 | if (point->PrevValue1 == valueRaw) |
| 116 | 121 | { |
| @@ -138,7 +143,7 @@ bool TSSCEncoder::TryAddMeasurement(uint16_t id, int64_t timestamp, uint32_t qua · 21 unmodified lines | ||
| 138 | 143 | } |
| 139 | 144 | else |
| 140 | 145 | { |
| 141 | − uint32_t bitsChanged = valueRaw ^ point->PrevValue1; | |
| 146 | + const uint32_t bitsChanged = valueRaw ^ point->PrevValue1; | |
| 142 | 147 | |
| 143 | 148 | if (bitsChanged <= Bits4) |
| 144 | 149 | { |
| @@ -223,7 +228,7 @@ TSSCPointMetadataPtr TSSCEncoder::NewTSSCPointMetadata() · 78 unmodified lines | ||
| 223 | 228 | |
| 224 | 229 | void TSSCEncoder::WritePointIdChange(uint16_t id) |
| 225 | 230 | { |
| 226 | − uint32_t bitsChanged = static_cast<uint32_t>(id ^ m_lastPoint->PrevNextPointId1); | |
| 231 | + const uint32_t bitsChanged = static_cast<uint32_t>(id ^ m_lastPoint->PrevNextPointId1); | |
| 227 | 232 | |
| 228 | 233 | if (bitsChanged <= Bits4) |
| 229 | 234 | { |
| @@ -311,7 +316,7 @@ void TSSCEncoder::WriteTimestampChange(int64_t timestamp) · 81 unmodified lines | ||
| 311 | 316 | } |
| 312 | 317 | |
| 313 | 318 | //Save the smallest delta time |
| 314 | − int64_t minDelta = abs(m_prevTimestamp1 - timestamp); | |
| 319 | + const int64_t minDelta = abs(m_prevTimestamp1 - timestamp); | |
| 315 | 320 | |
| 316 | 321 | if (minDelta < m_prevTimeDelta4 |
| 317 | 322 | && minDelta != m_prevTimeDelta1 |