Back to Serial Studio

MDF Lib: include/mdf/ichannelgroup.h Source File

lib/mdflib/docs/manual/html/ichannelgroup_8h_source.html

3.2.715.4 KB
Original Source

| MDF Lib 2.2

Interface against MDF 3/4 files |

Loading...

Searching...

No Matches

ichannelgroup.h

Go to the documentation of this file.

1/*

2 * Copyright 2021 Ingemar Hedvall

3 * SPDX-License-Identifier: MIT

4 */

5

9#pragma once

10#include <algorithm>

11#include <string>

12#include <vector>

13

14#include "ichannel.h"

15#include "samplerecord.h"

16

17#include "mdf/iblock.h"

18#include "mdf/imetadata.h"

19

20namespace mdf {

22namespace CgFlag {

38constexpr uint16_t VlsdChannel = 0x0001;

39

41constexpr uint16_t BusEvent = 0x0002;

42

44constexpr uint16_t PlainBusEvent = 0x0004;

45

47constexpr uint16_t RemoteMaster = 0x0008;

48

50constexpr uint16_t EventSignal = 0x00010;

51} // namespace CgFlag

52

53class ISourceInformation;

54

66class IChannelGroup : public IBlock {

67 public:

68

69virtual void RecordId(uint64_t record_id) = 0;

70 [[nodiscard]] virtual uint64_t RecordId() const = 0;

71

72virtual void Name(const std::string& name) = 0;

73 [[nodiscard]] virtual std::string Name() const = 0;

74

75virtual void Description(const std::string& description)

76 = 0;

77 [[nodiscard]] virtual std::string Description() const = 0;

78

79 [[nodiscard]] virtual uint64_t NofSamples() const

80 = 0;

81virtual void NofSamples(uint64_t nof_samples) = 0;

82

83 [[nodiscard]] virtual uint16_t Flags() const;

84virtual void Flags(uint16_t flags);

85

86 [[nodiscard]] virtual char16_t PathSeparator();

87virtual void PathSeparator(char16_t path_separator);

88

90 [[nodiscard]] virtual std::vector<IChannel*> Channels() const = 0;

91

93 [[nodiscard]] virtual IChannel* CreateChannel() = 0;

94

96 [[nodiscard]] virtual IChannel* CreateChannel(const std::string_view& name);

97

104 [[nodiscard]] virtual IChannel* GetChannel(const std::string_view& name) const;

105

106

108 [[nodiscard]] virtual const IChannel* GetXChannel(

109const IChannel& reference) const = 0;

110

112 [[nodiscard]] virtual ISourceInformation* CreateSourceInformation();

113

114 [[nodiscard]] virtual ISourceInformation* SourceInformation()

115const;

116

118 [[nodiscard]] SampleRecord GetSampleRecord() const;

119

121void ResetSampleCounter() const { sample_ = 0;}

122

123virtual void ClearData();

124void IncrementSample() const;

125

126 [[nodiscard]] size_t Sample() const;

127

129 [[nodiscard]] virtual IMetaData* CreateMetaData();

130

132 [[nodiscard]] virtual IMetaData* MetaData() const;

133

135 [[nodiscard]] virtual const IDataGroup* DataGroup() const = 0;

136

137 protected:

138mutable std::vector<uint8_t>

139sample_buffer_;

140 private:

141mutable size_t sample_ = 0;

142};

143

144} // namespace mdf

mdf::IBlock

Base class for all MDF blocks.

Definition iblock.h:19

mdf::IChannelGroup

Interface against a channel group (CG) block.

Definition ichannelgroup.h:66

mdf::IChannelGroup::PathSeparator

virtual void PathSeparator(char16_t path_separator)

Path separator.

mdf::IChannelGroup::Description

virtual std::string Description() const =0

Description.

mdf::IChannelGroup::NofSamples

virtual uint64_t NofSamples() const =0

Sets number of samples.

mdf::IChannelGroup::PathSeparator

virtual char16_t PathSeparator()

Sets the path separator.

mdf::IChannelGroup::Channels

virtual std::vector< IChannel * > Channels() const =0

Returns a list of channels.

mdf::IChannelGroup::GetChannel

virtual IChannel * GetChannel(const std::string_view &name) const

Returns an existing channels part of name.

mdf::IChannelGroup::sample_buffer_

std::vector< uint8_t > sample_buffer_

Temporary record when saving samples.

Definition ichannelgroup.h:139

mdf::IChannelGroup::ClearData

virtual void ClearData()

Resets all temporary stored samples.

mdf::IChannelGroup::GetXChannel

virtual const IChannel * GetXChannel(const IChannel &reference) const =0

Returns an external reference channel.

mdf::IChannelGroup::IncrementSample

void IncrementSample() const

Add a sample.

mdf::IChannelGroup::Sample

size_t Sample() const

Returns number of samples.

mdf::IChannelGroup::RecordId

virtual uint64_t RecordId() const =0

Record identity.

mdf::IChannelGroup::GetSampleRecord

SampleRecord GetSampleRecord() const

Support function that creates a sample record.

mdf::IChannelGroup::NofSamples

virtual void NofSamples(uint64_t nof_samples)=0

Number of samples.

mdf::IChannelGroup::Description

virtual void Description(const std::string &description)=0

Sets a descriptive text.

mdf::IChannelGroup::RecordId

virtual void RecordId(uint64_t record_id)=0

Sets the record identity.

mdf::IChannelGroup::CreateSourceInformation

virtual ISourceInformation * CreateSourceInformation()

Create a source information (SI) block.

mdf::IChannelGroup::Flags

virtual uint16_t Flags() const

Sets CgFlag.

mdf::IChannelGroup::CreateChannel

virtual IChannel * CreateChannel(const std::string_view &name)

Creates a new channel or returns an existing channel.

mdf::IChannelGroup::Name

virtual void Name(const std::string &name)=0

Sets the name.

mdf::IChannelGroup::CreateChannel

virtual IChannel * CreateChannel()=0

Creates a new channel.

mdf::IChannelGroup::Flags

virtual void Flags(uint16_t flags)

Returns CgFlag.

mdf::IChannelGroup::SourceInformation

virtual ISourceInformation * SourceInformation() const

Returns the source information (SI) block if it exist. *‍/.

mdf::IChannelGroup::Name

virtual std::string Name() const =0

CG name.

mdf::IChannelGroup::CreateMetaData

virtual IMetaData * CreateMetaData()

Creates a meta-data (MD) block.

mdf::IChannelGroup::MetaData

virtual IMetaData * MetaData() const

Returns the meta-data (MD) block if it exist.

mdf::IChannelGroup::ResetSampleCounter

void ResetSampleCounter() const

Resets the internal sample counter. Internal use only.

Definition ichannelgroup.h:121

mdf::IChannelGroup::DataGroup

virtual const IDataGroup * DataGroup() const =0

Returns a pointer to data group (DG) block.

mdf::IChannel

Defines a MDF channel (CN) block.

Definition ichannel.h:126

mdf::IDataGroup

Interface to a data group (DG) block.

Definition idatagroup.h:42

mdf::IMetaData

Interface against an meta data block (MD) in a MDF4 file.

Definition imetadata.h:27

mdf::ISourceInformation

Interface to a source information (SI) block.

Definition isourceinformation.h:51

iblock.h

All MDF blocks inherits from the IBlock class. The interface class is used internally in lists....

ichannel.h

The define an interface against a channel block (CN).

imetadata.h

mdf::CgFlag::PlainBusEvent

constexpr uint16_t PlainBusEvent

Plain bus event flag.

Definition ichannelgroup.h:44

mdf::CgFlag::BusEvent

constexpr uint16_t BusEvent

Bus event flag.

Definition ichannelgroup.h:41

mdf::CgFlag::EventSignal

constexpr uint16_t EventSignal

Event signal group. The group store events not values.

Definition ichannelgroup.h:50

mdf::CgFlag::VlsdChannel

constexpr uint16_t VlsdChannel

Flag is used to indicate the this block is a variable length CG block.

Definition ichannelgroup.h:38

mdf::CgFlag::RemoteMaster

constexpr uint16_t RemoteMaster

Remote master flag.

Definition ichannelgroup.h:47

mdf

Main namespace for the MDF library.

Definition canmessage.h:17

samplerecord.h

mdf::SampleRecord

Simple record buffer structure.

Definition samplerecord.h:20


Generated by 1.12.0