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

Method GetChannelValue

lib/mdflib/mdflib/src/ichannelobserver.cpp:106–157  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

104
105template <>
106bool IChannelObserver::GetChannelValue(uint64_t sample, std::string& value, uint64_t array_index) const {
107 bool valid = false;
108 value.clear();
109 switch (channel_.DataType()) {
110 case ChannelDataType::UnsignedIntegerLe:
111 case ChannelDataType::UnsignedIntegerBe: {
112 uint64_t v = 0;
113 valid = GetSampleUnsigned(sample, v, array_index);
114 value = std::to_string(v);
115 break;
116 }
117
118 case ChannelDataType::SignedIntegerLe:
119 case ChannelDataType::SignedIntegerBe: {
120 int64_t v = 0;
121 valid = GetSampleSigned(sample, v, array_index);
122 value = std::to_string(v);
123 break;
124 }
125
126 case ChannelDataType::FloatLe:
127 case ChannelDataType::FloatBe: {
128 double v = 0.0;
129 valid = GetSampleFloat(sample, v, array_index);
130 value = MdfHelper::FormatDouble(
131 v, channel_.IsDecimalUsed() ? channel_.Decimals() : 6);
132 break;
133 }
134
135 case ChannelDataType::StringAscii:
136 case ChannelDataType::StringUTF8:
137 case ChannelDataType::StringUTF16Le:
138 case ChannelDataType::StringUTF16Be:
139 case ChannelDataType::MimeStream:
140 case ChannelDataType::MimeSample:
141 case ChannelDataType::ByteArray: {
142 valid = GetSampleText(sample, value, array_index);
143 break;
144 }
145
146 case ChannelDataType::CanOpenDate:
147 case ChannelDataType::CanOpenTime: {
148 uint64_t ns_since_1970 = 0;
149 valid = GetSampleUnsigned(sample, ns_since_1970, array_index);
150 value = MdfHelper::NsToLocalIsoTime(ns_since_1970);
151 break;
152 }
153 default:
154 break;
155 }
156 return valid;
157}
158
159template <>
160bool IChannelObserver::GetChannelValue(uint64_t sample,

Callers

nothing calls this directly

Calls 4

clearMethod · 0.45
DataTypeMethod · 0.45
IsDecimalUsedMethod · 0.45
DecimalsMethod · 0.45

Tested by

no test coverage detected