History

TimeSeriesPlatformLibrary: Updated data publisher to properly process TSSC style subscriptions.

J. Ritchie Carroll committed 7 years ago

Commit 68088da1 parent fb978dc5 files · +164 −55Browse files

Showing the changes to Source/Libraries/TimeSeriesPlatformLibrary/Transport/TSSCEncoder.cpp (1 of 5 files). Show all

Unified · Split

Source/Libraries/TimeSeriesPlatformLibrary/Transport/TSSCEncoder.cpp+11−6
@@ -73,7 +73,7 @@ void TSSCEncoder::SetBuffer(uint8_t* data, uint32_t offset, uint32_t length) · 72 unmodified lines
7373 m_lastPosition = offset + length;
7474 }
7575
76−int32_t TSSCEncoder::FinishBlock()
76+uint32_t TSSCEncoder::FinishBlock()
7777 {
7878 BitStreamFlush();
7979 return m_position;
@@ -86,12 +86,17 @@ bool TSSCEncoder::TryAddMeasurement(uint16_t id, int64_t timestamp, uint32_t qua · 6 unmodified lines
8686 if (m_lastPosition - m_position < 100)
8787 return false;
8888
89− TSSCPointMetadataPtr point = m_points[id];
89+ TSSCPointMetadataPtr point = id >= m_points.size() ? nullptr : m_points[id];
9090
9191 if (point == nullptr)
9292 {
9393 point = NewTSSCPointMetadata();
94+
95+ if (id >= m_points.size())
96+ m_points.resize(id + 1, nullptr);
97+
9498 point->PrevNextPointId1 = static_cast<uint16_t>(id + 1);
99+
95100 m_points[id] = point;
96101 }
97102
@@ -110,7 +115,7 @@ bool TSSCEncoder::TryAddMeasurement(uint16_t id, int64_t timestamp, uint32_t qua · 12 unmodified lines
110115 if (point->PrevQuality1 != quality)
111116 WriteQualityChange(quality, point);
112117
113− uint32_t valueRaw = *reinterpret_cast<uint32_t*>(&value);
118+ const uint32_t valueRaw = *reinterpret_cast<uint32_t*>(&value);
114119
115120 if (point->PrevValue1 == valueRaw)
116121 {
@@ -138,7 +143,7 @@ bool TSSCEncoder::TryAddMeasurement(uint16_t id, int64_t timestamp, uint32_t qua · 21 unmodified lines
138143 }
139144 else
140145 {
141− uint32_t bitsChanged = valueRaw ^ point->PrevValue1;
146+ const uint32_t bitsChanged = valueRaw ^ point->PrevValue1;
142147
143148 if (bitsChanged <= Bits4)
144149 {
@@ -223,7 +228,7 @@ TSSCPointMetadataPtr TSSCEncoder::NewTSSCPointMetadata() · 78 unmodified lines
223228
224229 void TSSCEncoder::WritePointIdChange(uint16_t id)
225230 {
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);
227232
228233 if (bitsChanged <= Bits4)
229234 {
@@ -311,7 +316,7 @@ void TSSCEncoder::WriteTimestampChange(int64_t timestamp) · 81 unmodified lines
311316 }
312317
313318 //Save the smallest delta time
314− int64_t minDelta = abs(m_prevTimestamp1 - timestamp);
319+ const int64_t minDelta = abs(m_prevTimestamp1 - timestamp);
315320
316321 if (minDelta < m_prevTimeDelta4
317322 && minDelta != m_prevTimeDelta1

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t