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
73 m_lastPosition = offset + length;73 m_lastPosition = offset + length;
74}74}
75 75
76int32_t TSSCEncoder::FinishBlock()76uint32_t TSSCEncoder::FinishBlock()
77{77{
78 BitStreamFlush();78 BitStreamFlush();
79 return m_position;79 return m_position;
@@ -86,12 +86,17 @@ bool TSSCEncoder::TryAddMeasurement(uint16_t id, int64_t timestamp, uint32_t qua · 6 unmodified lines
86 if (m_lastPosition - m_position < 100)86 if (m_lastPosition - m_position < 100)
87 return false;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 if (point == nullptr)91 if (point == nullptr)
92 {92 {
93 point = NewTSSCPointMetadata();93 point = NewTSSCPointMetadata();
94
95 if (id >= m_points.size())
96 m_points.resize(id + 1, nullptr);
97
94 point->PrevNextPointId1 = static_cast<uint16_t>(id + 1);98 point->PrevNextPointId1 = static_cast<uint16_t>(id + 1);
99
95 m_points[id] = point;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 if (point->PrevQuality1 != quality)115 if (point->PrevQuality1 != quality)
111 WriteQualityChange(quality, point);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 if (point->PrevValue1 == valueRaw)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 else144 else
140 {145 {
141 uint32_t bitsChanged = valueRaw ^ point->PrevValue1;146 const uint32_t bitsChanged = valueRaw ^ point->PrevValue1;
142 147
143 if (bitsChanged <= Bits4)148 if (bitsChanged <= Bits4)
144 {149 {
@@ -223,7 +228,7 @@ TSSCPointMetadataPtr TSSCEncoder::NewTSSCPointMetadata() · 78 unmodified lines
223 228
224void TSSCEncoder::WritePointIdChange(uint16_t id)229void 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 if (bitsChanged <= Bits4)233 if (bitsChanged <= Bits4)
229 {234 {
@@ -311,7 +316,7 @@ void TSSCEncoder::WriteTimestampChange(int64_t timestamp) · 81 unmodified lines
311 }316 }
312 317
313 //Save the smallest delta time318 //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 if (minDelta < m_prevTimeDelta4321 if (minDelta < m_prevTimeDelta4
317 && minDelta != m_prevTimeDelta1322 && 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