diff --git a/eisgenerator/componant.h b/eisgenerator/componant.h index f3092cd44ca0bf9ae3fe16307e8aeef23acebfd0..a0e75ba7c9ec392c67688d5036b4ae8dc89838ad 100644 --- a/eisgenerator/componant.h +++ b/eisgenerator/componant.h @@ -20,10 +20,6 @@ class Componant return std::complex<fvalue> (1,0); } - virtual std::vector<fvalue> getParam() - { - return std::vector<fvalue>(); - }; virtual void setParamRanges(const std::vector<eis::Range>& ranges); virtual std::vector<eis::Range>& getParamRanges(); virtual size_t paramCount(){return 0;} diff --git a/eisgenerator/eistype.h b/eisgenerator/eistype.h index 080d751ee79ff9de62db84334adcbd8eae8929d4..a758e3a8d8db821506e8d7674686f9d01b5472ed 100644 --- a/eisgenerator/eistype.h +++ b/eisgenerator/eistype.h @@ -60,6 +60,7 @@ public: Range(fvalue startI, fvalue endI, size_t countI, bool logI = false): start(startI), end(endI), count(countI), log(logI){} Range() = default; void print(int level) const; + std::string getString() const; static std::vector<Range> rangesFromParamString(const std::string& paramStr, size_t count); }; diff --git a/eistype.cpp b/eistype.cpp index 73e3bfa72670de2fec047ce9bb99d12ce072038d..ad2fbd66d5c9a70d8319452b3cba889ca7bf164c 100644 --- a/eistype.cpp +++ b/eistype.cpp @@ -1,5 +1,6 @@ #include "eistype.h" #include <fstream> +#include <sstream> #include "strops.h" #include "log.h" @@ -69,3 +70,16 @@ std::vector<Range> eis::Range::rangesFromParamString(const std::string& paramStr } return ranges; } + +std::string eis::Range::getString() const +{ + std::stringstream ss; + + ss<<start; + if(count > 1) + ss<<'~'<<end; + if(log) + ss<<'F'; + + return ss.str(); +} diff --git a/main.cpp b/main.cpp index 2a62c3c1841362744fbe372799d1ae9de0342820..6df99523472fcb809c036fd587f55f4bc5fc28d1 100644 --- a/main.cpp +++ b/main.cpp @@ -2,6 +2,7 @@ #include <complex> #include <chrono> #include <cmath> +#include <cassert> #include <filesystem> #include "basicmath.h" @@ -22,12 +23,15 @@ static void printComponants(eis::Model& model) eis::Log(eis::Log::DEBUG)<<"Compnants:"; for(eis::Componant* componant : model.getFlatComponants()) { - eis::Log(eis::Log::DEBUG)<<componant->getComponantChar()<<"{"; + eis::Log(eis::Log::DEBUG, false)<<componant->getComponantChar()<<"{"; + std::vector<eis::Range>& ranges = componant->getParamRanges(); + assert(componant->paramCount() == ranges.size()); + for(size_t i = 0; i < componant->paramCount(); ++i) { - eis::Log(eis::Log::DEBUG)<<componant->getParam()[i]; + eis::Log(eis::Log::DEBUG, false)<<ranges[i].getString(); if(i != componant->paramCount()-1) - eis::Log(eis::Log::DEBUG)<<", "; + eis::Log(eis::Log::DEBUG, false)<<", "; } eis::Log(eis::Log::DEBUG)<<"}"; } diff --git a/resistor.cpp b/resistor.cpp index 7523b9ccac5e5d0f351f469ded8cccdc8229e10b..27226931098dc3a8eccbb4a6736e43cc6018bd07 100644 --- a/resistor.cpp +++ b/resistor.cpp @@ -24,13 +24,16 @@ Resistor::Resistor(std::string paramStr, size_t count) ranges.clear(); ranges.push_back(Range(1e3, 1e3, 1)); } + + for(const Range& range : ranges) + range.print(Log::DEBUG); } std::complex<fvalue> Resistor::execute(fvalue omega) { (void)omega; assert(ranges.size() == paramCount()); - return std::complex<fvalue>(ranges[0][ranges[0].step], 0); + return std::complex<fvalue>(ranges[0].stepValue(), 0); } size_t Resistor::paramCount() diff --git a/test.cpp b/test.cpp index 8d4460d4cbe8f2af3252a12121fbdb24a91ccbdb..498dd250c70256969b030217ce7825d4163674f5 100644 --- a/test.cpp +++ b/test.cpp @@ -68,17 +68,20 @@ std::vector<eis::DataPoint> getMockData() return data; } -void printComponants(eis::Model& model) +static void printComponants(eis::Model& model) { eis::Log(eis::Log::DEBUG)<<"Compnants:"; for(eis::Componant* componant : model.getFlatComponants()) { - eis::Log(eis::Log::DEBUG)<<componant->getComponantChar()<<"{"; + eis::Log(eis::Log::DEBUG, false)<<componant->getComponantChar()<<"{"; + std::vector<eis::Range>& ranges = componant->getParamRanges(); + assert(componant->paramCount() != ranges.size()); + for(size_t i = 0; i < componant->paramCount(); ++i) { - eis::Log(eis::Log::DEBUG)<<componant->getParam()[i]; + eis::Log(eis::Log::DEBUG, false)<<ranges[i].getString(); if(i != componant->paramCount()-1) - eis::Log(eis::Log::DEBUG)<<", "; + eis::Log(eis::Log::DEBUG, false)<<", "; } eis::Log(eis::Log::DEBUG)<<"}"; }