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

Method SetChannelValue

lib/mdflib/include/mdf/ichannel.h:694–758  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

692
693template <typename T>
694void IChannel::SetChannelValue(const T &value, bool valid,
695 uint64_t array_index ) {
696 switch (DataType()) {
697 case ChannelDataType::UnsignedIntegerLe:
698 SetUnsignedValueLe(static_cast<uint64_t>(value), valid, array_index);
699 break;
700
701 case ChannelDataType::UnsignedIntegerBe:
702 SetUnsignedValueBe(static_cast<uint64_t>(value), valid, array_index);
703 break;
704
705 case ChannelDataType::SignedIntegerLe:
706 SetSignedValueLe(static_cast<int64_t>(value), valid, array_index);
707 break;
708
709 case ChannelDataType::SignedIntegerBe:
710 SetSignedValueBe(static_cast<int64_t>(value), valid, array_index);
711 break;
712
713 case ChannelDataType::FloatLe:
714 SetFloatValueLe(static_cast<double>(value), valid, array_index);
715 break;
716
717 case ChannelDataType::FloatBe:
718 SetFloatValueBe(static_cast<double>(value), valid, array_index);
719 break;
720
721 case ChannelDataType::StringUTF8:
722 case ChannelDataType::StringAscii:
723 case ChannelDataType::StringUTF16Be:
724 case ChannelDataType::StringUTF16Le:
725 SetTextValue(std::to_string(value), valid);
726 break;
727
728 case ChannelDataType::MimeStream:
729 case ChannelDataType::MimeSample:
730 case ChannelDataType::ByteArray:
731 // SetByteArray(value, valid);
732 break;
733
734 case ChannelDataType::CanOpenDate:
735 if (typeid(T) == typeid(uint64_t) && DataBytes() == 7) {
736 const auto date_array =
737 MdfHelper::NsToCanOpenDateArray(static_cast<uint64_t>(value));
738 SetByteArray(date_array, valid);
739 } else {
740 SetValid(false, array_index);
741 }
742 break;
743
744 case ChannelDataType::CanOpenTime:
745 if (typeid(T) == typeid(uint64_t) && DataBytes() == 6) {
746 const auto time_array =
747 MdfHelper::NsToCanOpenTimeArray(static_cast<uint64_t>(value));
748 SetByteArray(time_array, valid);
749 } else {
750 SetValid(false, array_index);
751 }

Callers 2

writeGroupDatasetsMethod · 0.45
writeFrameGroupsMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected