MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / ConvertValueToText

Method ConvertValueToText

lib/mdflib/mdflib/src/cc4block.cpp:346–386  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

344}
345
346bool Cc4Block::ConvertValueToText(double channel_value,
347 std::string& eng_value) const {
348 if (ref_list_.empty()) {
349 return false;
350 }
351 // First iterate to find the ref
352 size_t ref_index = ref_list_.size() - 1; // Default CC/TX
353 for (uint16_t n = 0; n < nof_values_; ++n) {
354 if (n >= value_list_.size()) {
355 break;
356 }
357 const auto key = Parameter(n);
358 if (channel_value == key) {
359 ref_index = n;
360 break;
361 }
362 }
363 if (ref_index >= ref_list_.size()) {
364 return false;
365 }
366 const auto& block = ref_list_[ref_index];
367 if (!block) {
368 eng_value.clear();
369 eng_value.shrink_to_fit();
370 } else if (block->BlockType() == "TX") {
371 const auto* tx = dynamic_cast<const Tx4Block*>(block.get());
372 if (tx == nullptr) {
373 return false;
374 }
375 eng_value = tx->Text();
376 } else if (block->BlockType() == "CC") {
377 const auto* cc = dynamic_cast<const IChannelConversion*>(block.get());
378 if (cc == nullptr) {
379 return false;
380 }
381 return cc->Convert(channel_value, eng_value);
382 } else {
383 return false;
384 }
385 return true;
386}
387
388bool Cc4Block::ConvertValueRangeToText(double channel_value,
389 std::string& eng_value) const {

Callers

nothing calls this directly

Calls 7

emptyMethod · 0.80
sizeMethod · 0.45
clearMethod · 0.45
BlockTypeMethod · 0.45
getMethod · 0.45
TextMethod · 0.45
ConvertMethod · 0.45

Tested by

no test coverage detected