boonnano 1
C++ library giving usage access to the Boon Logic Nano technology
 
Loading...
Searching...
No Matches
boonconfig.h
Go to the documentation of this file.
1
2#pragma once
3
4#include <cstdint>
5#include <vector>
6#include <string>
7#include "nanoutil.h"
8
9const int MAX_CONFIG_ERROR_STRING = 500;
10
11#define MAX_FEATURE_LABEL_LENGTH 32
12
14
18 public:
28 CFeatureConfig(float MinVal = -1, float MaxVal = -1, uint16_t Weight = 1, const char *Label = nullptr);
29
35 CFeatureConfig(const CFeatureConfig &SourceFeatureConfig);
36
42 void CopyFrom(const CFeatureConfig &Other);
43
52 std::string GetStatusString(int CurrentIndent = 0, int AdditionalIndent = 4) const;
53
65 bool Serialize(const char *VarPath, const char *ThisVarName, struct archive *Archive, bool IsLoading);
66
68 uint16_t m_Weight;
69 float m_MinVal;
70 float m_MaxVal;
71};
72
73const uint16_t NF_UNINITIALIZED = 0;
74const uint16_t NF_FLOAT = 1;
75const uint16_t NF_INT = 2;
76const uint16_t NF_NATIVE = 3;
77
78#define MIN_PERCENT_VARIATION 0.001
79#define MAX_PERCENT_VARIATION 0.20
80#define PERCENT_VARIATION_INCREMENT 0.001
81
83
87 public:
89
97
109 bool Serialize(const char *VarPath, const char *ThisVarName, struct archive *Archive, bool IsLoading);
110
119 std::string GetStatusString(int CurrentIndent = 0, int AdditionalIndent = 4) const;
120
128 uint64_t GetNumOfValuesFromNumOfBytes(uint64_t ByteCount) const;
129
137 uint64_t GetNumOfBytesFromNumOfValues(uint64_t NumValues) const;
138
146 uint64_t GetNumOfSensorFusionVectorsFromNumOfBytes(uint64_t ByteCount) const;
147
155 uint64_t GetNumOfBytesFromNumOfSensorFusionVectors(uint64_t NumVectors) const;
156
164 uint64_t GetNumOfPatternsFromNumOfBytes(uint64_t ByteCount) const;
165
173 uint64_t GetNumOfBytesFromNumOfPatterns(uint64_t NumPatterns) const;
174
182 uint64_t GetNumOfPatternsFromNumOfValues(uint64_t ValueCount) const;
183
191 uint64_t GetNumOfPatternsFromNumOfSensorFusionVectors(uint64_t SampleCount) const;
192
200 uint64_t GetPatternStartByteFromPatternIndex(uint64_t PatternIndex) const;
201
208 uint16_t GetValueSizeInBytes() const;
209
217
225 uint16_t GetPatternSizeInBytes() const;
226
233 uint16_t GetPatternSizeInValues() const;
234
244 bool SetParameters(uint16_t NumericFormat, float PercentVariation, uint16_t StreamingWindowSize);
245
258 bool AddFeature(float MinVal, float MaxVal, uint16_t Weight, const char *Label = nullptr, uint16_t NumInstances = 1);
259
269 bool AddFeature(CFeatureConfig &FC, uint16_t NumInstances = 1);
270
277 void GetFeature(size_t Index, CFeatureConfig &FC);
278
286 const CFeatureConfig &GetFeature(size_t Index);
287
291 void Reset();
292
299 uint16_t GetNumOfFeatures() const;
300
306 void CopyFrom(const CNanoConfigParameters &Other);
307
311 void Display();
312
318 float GetNanoClippingPercentage(float *Pattern);
319
326
334 bool IterateFeatures(uint16_t PatternLength);
335
336 std::vector<CFeatureConfig> m_FeatureConfigArray;
340
341 private:
342 char m_ErrorMsg[MAX_CONFIG_ERROR_STRING];
343};
const uint16_t NF_FLOAT
Numeric code for float data type.
Definition boonconfig.h:74
const uint16_t NF_UNINITIALIZED
Initial default value before data type is set (not an actual valid data type)
Definition boonconfig.h:73
const int MAX_CONFIG_ERROR_STRING
Maximum string length for config error messages.
Definition boonconfig.h:9
const uint16_t NF_NATIVE
Numeric code for unsigned integer data type.
Definition boonconfig.h:76
#define MAX_FEATURE_LABEL_LENGTH
Maximum string length for feature label.
Definition boonconfig.h:11
const uint16_t NF_INT
Numeric code for integer data type.
Definition boonconfig.h:75
CFeatureConfig(const CFeatureConfig &SourceFeatureConfig)
Initialize feature config with object.
CFeatureConfig(float MinVal=-1, float MaxVal=-1, uint16_t Weight=1, const char *Label=nullptr)
Initialize feature config with values.
void CopyFrom(const CFeatureConfig &Other)
Copy feature config into current object.
std::string GetStatusString(int CurrentIndent=0, int AdditionalIndent=4) const
Print string of object.
bool Serialize(const char *VarPath, const char *ThisVarName, struct archive *Archive, bool IsLoading)
Config object for a single feature.
Definition boonconfig.h:17
float m_MaxVal
Feature maximum bound.
Definition boonconfig.h:70
char m_Label[MAX_FEATURE_LABEL_LENGTH]
Feature label.
Definition boonconfig.h:67
float m_MinVal
Feature minimum bound.
Definition boonconfig.h:69
uint16_t m_Weight
Feature weight.
Definition boonconfig.h:68
bool IterateFeatures(uint16_t PatternLength)
Loop through features.
std::string GetStatusString(int CurrentIndent=0, int AdditionalIndent=4) const
Print string of object.
bool AddFeature(CFeatureConfig &FC, uint16_t NumInstances=1)
Add feature config to overall config.
uint64_t GetNumOfValuesFromNumOfBytes(uint64_t ByteCount) const
uint16_t GetSensorFusionVectorSizeInBytes() const
Byte size of one row of data.
uint16_t GetPatternSizeInBytes() const
Byte size of complete pattern.
uint64_t GetNumOfPatternsFromNumOfSensorFusionVectors(uint64_t SampleCount) const
void Reset()
Clears object parameters.
bool Serialize(const char *VarPath, const char *ThisVarName, struct archive *Archive, bool IsLoading)
uint64_t GetNumOfBytesFromNumOfPatterns(uint64_t NumPatterns) const
void Display()
Print string of the config parameters.
void GetFeature(size_t Index, CFeatureConfig &FC)
Get feature config at given index.
uint64_t GetNumOfBytesFromNumOfValues(uint64_t NumValues) const
uint64_t GetNumOfPatternsFromNumOfBytes(uint64_t ByteCount) const
CNanoConfigParameters(const CNanoConfigParameters &SourceNCP)
Initialize using parameters from given object.
char * GetErrorMessage()
Get last error message.
float GetNanoClippingPercentage(float *Pattern)
Calculate range clipping percentage for the given pattern.
uint16_t GetPatternSizeInValues() const
Length of pattern.
const CFeatureConfig & GetFeature(size_t Index)
Return feature config at given index.
uint64_t GetNumOfSensorFusionVectorsFromNumOfBytes(uint64_t ByteCount) const
uint64_t GetPatternStartByteFromPatternIndex(uint64_t PatternIndex) const
Pattern index -> pattern start byte.
uint16_t GetValueSizeInBytes() const
Byte size of a value.
bool AddFeature(float MinVal, float MaxVal, uint16_t Weight, const char *Label=nullptr, uint16_t NumInstances=1)
Add feature values to overall config.
bool SetParameters(uint16_t NumericFormat, float PercentVariation, uint16_t StreamingWindowSize)
Initialize base config values.
uint64_t GetNumOfPatternsFromNumOfValues(uint64_t ValueCount) const
void CopyFrom(const CNanoConfigParameters &Other)
Copy parameters from given object.
uint16_t GetNumOfFeatures() const
Gets the number of features configured.
uint64_t GetNumOfBytesFromNumOfSensorFusionVectors(uint64_t NumVectors) const
Main object for configuration.
Definition boonconfig.h:86
std::vector< CFeatureConfig > m_FeatureConfigArray
Array of config objects for each feature.
Definition boonconfig.h:336
float m_PercentVariation
Variation allowed within a cluster.
Definition boonconfig.h:338
uint16_t m_StreamingWindowSize
Number of fusion vectors to use in one pattern.
Definition boonconfig.h:339
uint16_t m_NumericFormat
Data type is one of uint16, int16, float32.
Definition boonconfig.h:337