Skip to content

Commit 10248f6

Browse files
Updated DynamicMetadataPublish sample to accept numeric input for the total number of devices to define in the metadata.
1 parent 8db6061 commit 10248f6

File tree

2 files changed

+28
-23
lines changed

2 files changed

+28
-23
lines changed

src/samples/DynamicMetadataPublish/DynamicMetadataPublish.cpp

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,19 @@ int main(int argc, char* argv[])
4343
{
4444
cout << "Usage:" << endl;
4545
cout << " InstancePublish PORT [AutoUpdateMetadata?]" << endl;
46-
}
47-
else
48-
{
49-
// Get port.
50-
stringstream(argv[1]) >> port;
46+
return 0;
5147
}
5248

49+
// Get port.
50+
stringstream(argv[1]) >> port;
51+
5352
if (argc > 2)
5453
autoUpdateMetadata = ParseBoolean(argv[2]);
5554
else
56-
autoUpdateMetadata = true;
55+
autoUpdateMetadata = false;
5756

5857
PublisherHandler* publisher = new PublisherHandler("Publisher");
58+
string line;
5959

6060
if (publisher->Start(port, false))
6161
{
@@ -72,29 +72,28 @@ int main(int argc, char* argv[])
7272
publisher->StatusMessage("Metadata update timer stopped: reached configured device limit of " + ToString(MaxDeviceCount) + ".");
7373
}
7474
},
75-
true);
75+
true);
7676

7777
metadataUpdate.Start();
7878

79-
string line;
8079
getline(cin, line);
8180

8281
metadataUpdate.Stop();
8382
}
8483
else
8584
{
86-
int key = 0;
85+
cout << "At any time, enter the number of devices to define in meta-data and press enter to update meta-data. Type 'exit' and press enter to quit.\r\n\r\n";
8786

88-
while (key != 10)
87+
getline(cin, line);
88+
89+
while (line != "exit")
8990
{
90-
// Space bar then Enter will update metadata
91-
if (key == 32)
92-
{
93-
publisher->DefineMetadata(++deviceCount);
94-
getchar();
95-
}
91+
int32_t devices;
92+
93+
if (TryParseInt32(line, devices))
94+
publisher->DefineMetadata(devices);
9695

97-
key = getchar();
96+
getline(cin, line);
9897
}
9998
}
10099
}

src/samples/DynamicMetadataPublish/PublisherHandler.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,12 @@ void PublisherHandler::DefineMetadata(int32_t devices)
8585
// these Guid values would need to persist between runs defining a permanent association between the
8686
// defined metadata and the identifier...
8787

88+
m_deviceMetadata.clear();
89+
m_measurementMetadata.clear();
90+
m_phasorMetadata.clear();
91+
8892
// Add device metadata incrementally so that Guids remain consistent for duration of publisher lifetime...
89-
for (int32_t i = static_cast<int>(m_deviceMetadata.size()); i < devices; i++)
93+
for (int32_t i = 0; i < devices; i++)
9094
{
9195
DeviceMetadataPtr device1Metadata = NewSharedPtr<DeviceMetadata>();
9296
const datetime_t timestamp = UtcNow();
@@ -174,6 +178,8 @@ void PublisherHandler::DefineMetadata(int32_t devices)
174178

175179
// Pass meta-data to publisher instance for proper conditioning
176180
PublisherInstance::DefineMetadata(m_deviceMetadata, m_measurementMetadata, m_phasorMetadata, m_metadataVersion);
181+
182+
StatusMessage("Meta-data update complete.");
177183
}
178184

179185
bool PublisherHandler::Start(uint16_t port, bool ipV6)
@@ -242,13 +248,13 @@ bool PublisherHandler::Start(uint16_t port, bool ipV6)
242248
// Publish measurements
243249
PublishMeasurements(measurements);
244250

245-
// Display a processing message every few seconds
246-
const bool showMessage = m_processCount + count >= (m_processCount / interval + 1) * interval && GetTotalMeasurementsSent() > 0;
247-
m_processCount += count;
251+
//// Display a processing message every few seconds
252+
//const bool showMessage = m_processCount + count >= (m_processCount / interval + 1) * interval && GetTotalMeasurementsSent() > 0;
253+
//m_processCount += count;
248254

249255

250-
if (showMessage)
251-
StatusMessage(ToString(GetTotalMeasurementsSent()) + " measurements published so far...\n");
256+
//if (showMessage)
257+
// StatusMessage(ToString(GetTotalMeasurementsSent()) + " measurements published so far...\n");
252258
},
253259
true);
254260

0 commit comments

Comments
 (0)