From f59e1d4de8d737c41870ab88505b8c739eb0d3f3 Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Thu, 28 Mar 2019 09:38:35 +0100 Subject: [PATCH] plottyfile done --- drv/dot.cpp | 8 ++- drv/dot.h | 13 ++-- drv/dot.o | Bin 1576 -> 3072 bytes drv/plottyfile.cpp | 170 ++++++++++++++++++++++++++++++++++++--------- drv/plottyfile.h | 60 +++++++++++++--- drv/plottyfile.o | Bin 10456 -> 15936 bytes gnuplotscript.gp | 13 ++-- main | Bin 48600 -> 54792 bytes main.cpp | 15 ++-- main.o | Bin 5752 -> 8224 bytes nohup.out | 16 +++++ print | 4 ++ test_plot | Bin 4348 -> 8440 bytes 13 files changed, 235 insertions(+), 64 deletions(-) create mode 100644 nohup.out create mode 100755 print diff --git a/drv/dot.cpp b/drv/dot.cpp index cdd3eda..29e80fd 100644 --- a/drv/dot.cpp +++ b/drv/dot.cpp @@ -1,7 +1,9 @@ #include "dot.h" -Dot::Dot(uint16_t x, uint16_t y, DotColor color) : x(x), y(y), color(color) +Dot::Dot(uint16_t x, uint16_t y, uint8_t curve) : x(x), y(y), curve(curve) { + if(curve >= 64) + throw std::range_error("Kurvenindex muss im Bereich [0, 63] liegen"); } uint16_t Dot::getX() const @@ -14,7 +16,7 @@ uint16_t Dot::getY() const return y; } -DotColor Dot::getColor(void) const +uint8_t Dot::getCurve(void) const { - return color; + return curve; } diff --git a/drv/dot.h b/drv/dot.h index 17f782c..3f2b7f0 100644 --- a/drv/dot.h +++ b/drv/dot.h @@ -2,24 +2,19 @@ #define DOT_H #include - -enum DotColor -{ - PURPLE = 0, - GREEN = 32, -}; +#include class Dot { public: - Dot(uint16_t x, uint16_t y, DotColor color); + Dot(uint16_t x, uint16_t y, uint8_t curve); uint16_t getX(void) const; uint16_t getY(void) const; - DotColor getColor(void) const; + uint8_t getCurve(void) const; private: uint16_t x, y; - DotColor color; + uint8_t curve; }; diff --git a/drv/dot.o b/drv/dot.o index f814b54ebb888ffd94df1b624469428cb68fed4a..dd69b9922ac19e12c99b3c161afa638ea934aa05 100644 GIT binary patch literal 3072 zcmbW3O>7%g5P+Y(DRH4BZuyH8sxG2J1=@$5lqNy~oY;;X#Y&?5DCJL^jr05?Y_GLm zCvFcADS)s5DL0VdP|nzVjvV{_<8&u`{?GxPpt zcl}{HHx~|t1WQP~A$k^5A?^rs2H@Zx-59h4x1H)1{%^@IRgP z)gPiTmfim|@;mxuzj)Q}+COF6oi6$8sbd4bc4_;^Y@5};d^CC?Ax7^EcM1muIeOtE z3<5h7?&$XSnV}Bwg{HfsYUSFtYMIq$qhXe-=B#p6IbSm0iCs3YO}=MV%BrYp;_xsO zk*DTGYRu0_Kbd6mHS^N?RNB2$hwQ=qKTsk+FSae#8{wNn{|Qn|_86$Kv^Mem@Ru zWHD$cr@EcbQlv8@^F)VtJS6@;JTU;k5aE6pIM053*f?52kUw%9kYxz1m^2SVL^P|X z8sf2@p=pLVqgh?GTZe<@ee{Gs0;5mGj{rZXodez(3f{wW;odq~n+A?|5|l*%{djQz z-y6Wc9KgRD!0!y;KM&x~58%H5?{^M=5Z{Czg)8F$=;&YfX|Fa$u5ydU+w=XCM_%?*Lw# z4+KzhujD$rq!(OuY?AfbF1&H971d}~)zN0+{$^kW3%IwdMde-hXXx2)Y4$XXC-LP4 z4CFkW7oIQH(Z7dXxkwzJRIF;|uMkK7vl_of{3YnmY5aBKnCA(Nr-@@8d@phSWsT!& zoB4H(Kdo`X{uA~L8_?riC^#=ZYb=*YL5__jP6{&p>E6~jj%||N3UIE+&jWmqY#|#r zs-C?Cz2|oO5^Jui*wRxiPsnZCvxVGhG=y{=G|)XRr-dx$^HgsZgjW}k;{qXW1w#WAe)=5wj1o#b$ zcZ3b=0fl=Lbo`d+cLJv1I{6q4O`@8P>Nqsam4K$pE&71nC5Ut5{qp;kztt}Q!}$$p zy4=$ZO-El{E`xzNA2uHA5_3*K)8#%HFY6F=UO%rR0StBAn=S@9@cHu?$FaQu3Nj;* zAWDurANvRG6&Uc(KM=o37s}_1=Z~=*&wL*kP8EZu%NWfc+&^JI2L17QWTwX_`@ufG z-x3QfUt}r%D?KUbyne>tfYPu2TD1QIa>V`PU2r__AEybr literal 1576 zcmbu8%}(1u5XZ+!C}}}TTJ=zgN^wsG0jmUp67^773TY}@Q3(<8p-R*Vc2hxOlx!-> z0WMskUh)R*BlN}t|WGAzDrpaD6`-#+(e23bkaB4 z38e!w@C5u(#UJgYMxQd1ajxJ%?rM7CkA0CVT!vY>t43;~#XlRF2{dZ8H}-t9HSEcu zT@kCIxV%yshGFTvR29YYLWBXH^Rm|27FefwYi@QrJH`#>k-y}z8TQ1AtTP&0XFa8{ zT_cafJC1shfxp*x1`wnZJ4HN|l#X0$qLz^cwKENd^FO)`I7;J=OnZ#rnYJI*lfpfG zjXCv~F5F2eP(Om$FJCI1c(TEt&KKC6~W? za<~4Svf_A8i>o*u&V!82W=|c~yIeN7I@f!H+Z=y3xH=bz!H=$VTj*s!@*Sn5cPc>~ zy3z&F8Vo?RgKpRBA?pRw6OGO0@<6)nBM^P>*cD#q!0)?Vk5_t_o5OOti{_1Rcv^LS z4#W4MH2GKfqk8iON*YWs%GK>P23h?5Z~YS1(wuRhQIo0l7o#x#s`Ztp`>J%DgyNST zXxhx(z%gR_ouTyK^g-)HF8OVZ;7v@w)|B|G~-0VFfaCrT16lliN#pEffr20I=?Km?MX8k{FKx?u9 diff --git a/drv/plottyfile.cpp b/drv/plottyfile.cpp index 6137e7b..e55c204 100644 --- a/drv/plottyfile.cpp +++ b/drv/plottyfile.cpp @@ -5,6 +5,131 @@ void PlottyFile::addDot(Dot& dot) dots.push_back(dot); } +void PlottyFile::addDot(Dot dot) +{ + dots.push_back(dot); +} + +void PlottyFile::setFunctionType(FunctionType function_type) +{ + this->function_type = function_type; +} + +void PlottyFile::setQuadrant(uint8_t quadrant) +{ + this->quadrant = quadrant; +} + +void PlottyFile::setRefX(uint16_t ref_x) +{ + this->ref_x = ref_x; +} + +void PlottyFile::setRefY(uint16_t ref_y) +{ + this->ref_y = ref_y; +} + +void PlottyFile::setParaFirstCurve(uint16_t para_first) +{ + this->para_first = para_first; +} + +void PlottyFile::setParaStepWidth(uint16_t para_stepwidth) +{ + this->para_stepwidth = para_stepwidth; +} + +void PlottyFile::setUnitX(std::string unit_x) +{ + this->unit_x = unit_x; +} + +void PlottyFile::setDescX(std::string desc_x) +{ + this->desc_x = desc_x; +} + +void PlottyFile::setUnitY(std::string unit_y) +{ + this->unit_y = unit_y; +} + +void PlottyFile::setDescY(std::string desc_y) +{ + this->desc_y = desc_y; +} + +void PlottyFile::setUnitPara(std::string unit_para) +{ + this->unit_para = unit_para; +} + +void PlottyFile::setDescPara(std::string desc_para) +{ + this->desc_para = desc_para; +} + +FunctionType PlottyFile::getFunctionType() const +{ + return function_type; +} + +uint8_t PlottyFile::getQuadrant() const +{ + return quadrant; +} + +uint16_t PlottyFile::getRefX() const +{ + return ref_x; +} + +uint16_t PlottyFile::getRefY() const +{ + return ref_y; +} + +uint16_t PlottyFile::getParaFirstCurve() const +{ + return para_first; +} + +uint16_t PlottyFile::getParaStepWidth() const +{ + return para_stepwidth; +} + +std::string PlottyFile::getUnitX() const +{ + return unit_x; +} + +std::string PlottyFile::getDescX() const +{ + return desc_x; +} + +std::string PlottyFile::getUnitY() const +{ + return unit_y; +} + +std::string PlottyFile::getDescY() const +{ + return desc_y; +} + +std::string PlottyFile::getUnitPara() const +{ + return unit_para; +} + +std::string PlottyFile::getDescPara() const +{ + return desc_para; +} + void PlottyFile::prepStr(std::string& str, uint8_t len) { if(str.length() > len) @@ -18,41 +143,23 @@ void PlottyFile::prepStr(std::string& str, uint8_t len) } void PlottyFile::writeToFile(std::string filename) -{ - - command = 0x1D; - title = "HTWK-HWLab"; - filetype = "MD"; - version = 1; - subversion = 0; - function_type = 'C'; - quadrant = 1; - ref_x = 5000; - ref_y = 50; - para_first = 1; - para_stepwidth = 1; - unit_x = "Unit X"; - desc_x = "Desc X"; - unit_y = "Unit Y"; - desc_y = "Desc Y"; - unit_para = "Unit P"; - desc_para = "Desc P"; - - prepStr(title, 10); - prepStr(unit_x, 10); - prepStr(desc_x, 20); - prepStr(unit_y, 10); - prepStr(desc_y, 20); - prepStr(unit_para, 10); - prepStr(desc_para, 20); +{ + prepStr(unit_x, STR_LEN_SHORT); + prepStr(desc_x, STR_LEN_LARGE); + prepStr(unit_y, STR_LEN_SHORT); + prepStr(desc_y, STR_LEN_LARGE); + prepStr(unit_para, STR_LEN_SHORT); + prepStr(desc_para, STR_LEN_LARGE); std::ofstream file(filename); + + // write file header file.write(reinterpret_cast(&command), 1); - file.write(title.c_str(), title.length()); - file.write(filetype.c_str(), 2); + file.write(head.c_str(), head.length()); + file.write(filetype.c_str(), filetype.length()); file.write(reinterpret_cast(&version), 2); file.write(reinterpret_cast(&subversion), 2); - file.write(reinterpret_cast(&function_type), 1); + file.put(static_cast(function_type)); file.write(reinterpret_cast(&quadrant), 1); file.write(reinterpret_cast(&ref_x), 2); file.write(reinterpret_cast(&ref_y), 2); @@ -66,12 +173,13 @@ void PlottyFile::writeToFile(std::string filename) file.write(desc_para.c_str(), desc_para.length()); file.write(reinterpret_cast(&eof), 1); + // make sure header size is 256 Byte while(file.tellp() < 256) file.put(0); for(Dot& dot : dots) { - file.put((dot.getX() >> 8) | (static_cast(dot.getColor()) << 2)); + file.put((dot.getX() >> 8) | (static_cast(dot.getCurve()) << 2)); file.put(dot.getX() & 0xFF); file.put(dot.getY() >> 8); file.put(dot.getY() & 0xFF); diff --git a/drv/plottyfile.h b/drv/plottyfile.h index a4fc9e9..5fc7465 100644 --- a/drv/plottyfile.h +++ b/drv/plottyfile.h @@ -7,27 +7,62 @@ #include #include "dot.h" +enum FunctionType +{ + CurveFamily = 'S', + Curve = 'C', + Level = 'P' +}; + class PlottyFile { public: void addDot(Dot& dot); + void addDot(Dot dot); + + void setFunctionType(FunctionType); + void setQuadrant(uint8_t); + void setRefX(uint16_t); + void setRefY(uint16_t); + void setParaFirstCurve(uint16_t); + void setParaStepWidth(uint16_t); + void setUnitX(std::string); + void setDescX(std::string); + void setUnitY(std::string); + void setDescY(std::string); + void setUnitPara(std::string); + void setDescPara(std::string); + + FunctionType getFunctionType(void) const; + uint8_t getQuadrant(void) const; + uint16_t getRefX(void) const; + uint16_t getRefY(void) const; + uint16_t getParaFirstCurve(void) const; + uint16_t getParaStepWidth(void) const; + std::string getUnitX(void) const; + std::string getDescX(void) const; + std::string getUnitY(void) const; + std::string getDescY(void) const; + std::string getUnitPara(void) const; + std::string getDescPara(void) const; + void writeToFile(std::string filename); private: void prepStr(std::string& str, uint8_t len); std::vector dots; - int8_t command; - std::string title; - std::string filetype; - int16_t version; - int16_t subversion; - uint8_t function_type; - uint8_t quadrant; - uint16_t ref_x; - uint16_t ref_y; - uint16_t para_first; - uint16_t para_stepwidth; + int8_t command = 0x1D; + const std::string head = "HTWK-HWLab"; + const std::string filetype = "MD"; + int16_t version = 1; + int16_t subversion = 0; + FunctionType function_type = FunctionType::Curve; + uint8_t quadrant = 1; + uint16_t ref_x = 1023; + uint16_t ref_y = 1023; + uint16_t para_first = 1; + uint16_t para_stepwidth = 1; std::string unit_x; std::string desc_x; std::string unit_y; @@ -35,6 +70,9 @@ private: std::string unit_para; std::string desc_para; const uint8_t eof = 0xD; + + constexpr static uint8_t STR_LEN_SHORT = 10; + constexpr static uint8_t STR_LEN_LARGE = 20; }; #endif // PLOTTYFILE_H diff --git a/drv/plottyfile.o b/drv/plottyfile.o index 2ba7902e590719dccfe6eebf9fcb333215355ff1..33d156269e7be379674e085d407addd3fde7c492 100644 GIT binary patch literal 15936 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 AjQ{`u diff --git a/gnuplotscript.gp b/gnuplotscript.gp index 78ca98e..d474ebe 100644 --- a/gnuplotscript.gp +++ b/gnuplotscript.gp @@ -2,12 +2,13 @@ set margin 10,10 unset key set grid set title '' -set xlabel 'Desc X [Unit X]' -set ylabel 'Desc Y [Unit Y]' -set xrange [0:5000] -set yrange [0:50] -set label at 4995,49 'Desc P [Unit P] = 1' left +set xlabel 'Zeit [t]' +set ylabel 'Spannung [V]' +set xrange [0:1023] +set yrange [0:1023] +set label at 1022,1022 '1' left +set label at 1022,511 '2' left unset output set terminal qt unset output -plot "/tmp/tempfile32" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'Desc P [Unit P] = 1' w l +plot "/tmp/tempfile0" using ($1*1.000000):($2*1.000000) binary format="%int16%int16" endian=big title ' [] = 1' w l,"/tmp/tempfile1" using ($1*1.000000):($2*1.000000) binary format="%int16%int16" endian=big title ' [] = 2' w l diff --git a/main b/main index e2befaa26ffa87dfbf16e8f15af2daac2461115d..06d208848a8883aad2f07ce59e9704070af4b531 100755 GIT binary patch literal 54792 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 A#Q*>R literal 48600 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 diff --git a/main.cpp b/main.cpp index 904cb3b..4942aca 100644 --- a/main.cpp +++ b/main.cpp @@ -23,16 +23,23 @@ int main() drv.analogEingabeSequenz(1, &ba[0], 0, 0, &bb[0], 0, 1023, -1, 1023); PlottyFile pf; - + pf.setUnitX("t"); + pf.setUnitY("V"); + pf.setDescX("Zeit"); + pf.setDescY("Spannung"); for(uint16_t i = 0; i < 1023; i++) { - Dot d(i,i, DotColor::PURPLE); - pf.addDot(d); + pf.addDot(Dot(i,i, 0)); + pf.addDot(Dot(i,i/2, 1)); } pf.writeToFile("test_plot"); - system("./plotty --in test_plot"); + int code = system("./plotty --in test_plot"); + if(code) + { + std::cout << "plotty konnte nicht gestarted werden" << std::endl; + } std::cout << "Schluss." << std::endl; } diff --git a/main.o b/main.o index f84a9e14e55589484197b8e349c000c0043b9233..784978387414586fd98aefac2493fb10a2db0b3a 100644 GIT binary patch literal 8224 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 SKknV7?9Z|Q%WVd>Ecq85n^nvJ literal 5752 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 HAO8CvaknIT literal 4348 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 Y|Hj|^JAd~d{KJ3pPyfZg{5SvpKlRub8UO$Q