From 0f71e121fa8c553fc7b3e37cdd1a9b3e6f8a5930 Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Wed, 27 Mar 2019 15:48:24 +0100 Subject: [PATCH] boardinfo --- Makefile | 2 +- drv/b15f.cpp | 36 +++++++++++++++++++ drv/b15f.h | 2 ++ drv/b15f.o | Bin 42288 -> 50896 bytes drv/plottyfile.cpp | 84 +++++++++++++++++++++++++++++++++++++++++++++ drv/plottyfile.h | 35 +++++++++++++++++++ drv/plottyfile.o | Bin 0 -> 9552 bytes gnuplotscript.gp | 21 +++--------- main | Bin 33448 -> 48296 bytes main.cpp | 6 +++- main.o | Bin 3224 -> 5472 bytes test_plot | Bin 0 -> 8440 bytes 12 files changed, 168 insertions(+), 18 deletions(-) create mode 100644 drv/plottyfile.cpp create mode 100644 drv/plottyfile.h create mode 100644 drv/plottyfile.o create mode 100644 test_plot diff --git a/Makefile b/Makefile index d84f459..d0bc5e0 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ COMPILER_PATH = g++ OUTPUT = main CFLAGS = -std=c++14 -O3 LDFLAGS = -OBJECTS = main.o drv/b15f.o +OBJECTS = main.o drv/b15f.o drv/plottyfile.o COMPILE = $(COMPILER_PATH) $(CFLAGS) diff --git a/drv/b15f.cpp b/drv/b15f.cpp index 46a0fa0..71bfcbf 100644 --- a/drv/b15f.cpp +++ b/drv/b15f.cpp @@ -50,6 +50,10 @@ void B15F::init() if(tries == 0) throw DriverException("Verbindungstest fehlgeschlagen. Neueste Version im Einsatz?"); std::cout << "OK" << std::endl; + + // Gib board info aus + std::vector info = getBoardInfo(); + std::cout << PRE << "AVR Firmware Version: " << info[0] << " um " << info[1] << " Uhr (" << info[2] << ")" << std::endl; } @@ -115,6 +119,38 @@ bool B15F::testIntConv() } +std::vector B15F::getBoardInfo(void) +{ + try + { + std::vector info; + + writeByte(RQ_INFO); + uint8_t n = readByte(); + while(n--) + { + uint8_t len = readByte(); + std::string str; + + while(len--) + str += static_cast(readByte()); + + info.push_back(str); + } + + uint8_t aw = readByte(); + + if(aw != MSG_OK) + throw DriverException("Board Info fehlerhalft"); + + return info; + } + catch(DriverException& de) + { + reconnect(); + return getBoardInfo(); + } +} bool B15F::digitaleAusgabe0(uint8_t port) { diff --git a/drv/b15f.h b/drv/b15f.h index 65d0c53..1d9d3ad 100644 --- a/drv/b15f.h +++ b/drv/b15f.h @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -25,6 +26,7 @@ public: void discard(void); bool testConnection(void); bool testIntConv(void); + std::vector getBoardInfo(void); // Board Befehle bool digitaleAusgabe0(uint8_t); diff --git a/drv/b15f.o b/drv/b15f.o index fe7f7ddbeabb4c6da201458377c78fb4994eb6bb..2af31635a23a29701735af90df4d7af0c8c94163 100644 GIT binary patch literal 50896 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 diff --git a/drv/plottyfile.cpp b/drv/plottyfile.cpp new file mode 100644 index 0000000..380e8cc --- /dev/null +++ b/drv/plottyfile.cpp @@ -0,0 +1,84 @@ +#include "plottyfile.h" + +void PlottyFile::prepStr(std::string& str, uint8_t len) +{ + if(str.length() > len) + throw std::runtime_error("Zu grosser String."); + + if(str.length() != len) + str += '\n'; + + while(str.length() < len) + str += '\0'; +} + +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); + + std::ofstream file(filename); + file.write(reinterpret_cast(&command), 1); + file.write(title.c_str(), title.length()); + file.write(filetype.c_str(), 2); + file.write(reinterpret_cast(&version), 2); + file.write(reinterpret_cast(&subversion), 2); + file.write(reinterpret_cast(&function_type), 1); + file.write(reinterpret_cast(&quadrant), 1); + file.write(reinterpret_cast(&ref_x), 2); + file.write(reinterpret_cast(&ref_y), 2); + file.write(reinterpret_cast(¶_first), 2); + file.write(reinterpret_cast(¶_stepwidth), 2); + file.write(unit_x.c_str(), unit_x.length()); + file.write(desc_x.c_str(), desc_x.length()); + file.write(unit_y.c_str(), unit_y.length()); + file.write(desc_y.c_str(), desc_y.length()); + file.write(unit_para.c_str(), unit_para.length()); + file.write(desc_para.c_str(), desc_para.length()); + file.write(reinterpret_cast(&eof), 1); + + while(file.tellp() < 256) + file.put(0); + + for(uint16_t i = 0; i < 1023; i++) + { + file.put(i >> 8); + file.put(i & 0xFF); + file.put(1); + file.put(0); + } + + for(uint16_t i = 0; i < 1023; i++) + { + file.put((i >> 8) | 128); + file.put(i & 0xFF); + file.put(2); + file.put(0); + } + + file.close(); +} diff --git a/drv/plottyfile.h b/drv/plottyfile.h new file mode 100644 index 0000000..bae5ed6 --- /dev/null +++ b/drv/plottyfile.h @@ -0,0 +1,35 @@ +#ifndef PLOTTYFILE_H +#define PLOTTYFILE_H + +#include +#include +#include + +class PlottyFile +{ +public: + void writeToFile(std::string filename); +private: + void prepStr(std::string& str, uint8_t len); + + 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; + std::string unit_x; + std::string desc_x; + std::string unit_y; + std::string desc_y; + std::string unit_para; + std::string desc_para; + const uint8_t eof = 0xD; +}; + +#endif // PLOTTYFILE_H diff --git a/drv/plottyfile.o b/drv/plottyfile.o new file mode 100644 index 0000000000000000000000000000000000000000..caa1ba716ac2ab3c7612e6a1654e9d45ed29b05d GIT binary patch literal 9552 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 MgvM|0zkRI#4=UH|uK)l5 literal 0 HcmV?d00001 diff --git a/gnuplotscript.gp b/gnuplotscript.gp index 8f3b0d1..5fccc88 100644 --- a/gnuplotscript.gp +++ b/gnuplotscript.gp @@ -2,24 +2,13 @@ set margin 10,10 unset key set grid set title '' -set xlabel 'UDrain [mV]' -set ylabel 'IDrain [mA]' +set xlabel 'Desc X [Unit X]' +set ylabel 'Desc Y [Unit Y]' set xrange [0:5000] set yrange [0:50] -set label at 2785,31 'UGS [Digit ] = 125' left -set label at 2663,28 'UGS [Digit ] = 150' left -set label at 2614,25 'UGS [Digit ] = 175' left -set label at 2541,18 'UGS [Digit ] = 200' left -set label at 2565,21 'UGS [Digit ] = 225' left -set label at 2468,13 'UGS [Digit ] = 250' left -set label at 2492,15 'UGS [Digit ] = 275' left -set label at 2443,11 'UGS [Digit ] = 300' left -set label at 2443,11 'UGS [Digit ] = 325' left -set label at 2394,8 'UGS [Digit ] = 350' left -set label at 2297,4 'UGS [Digit ] = 375' left -set label at 2297,4 'UGS [Digit ] = 400' left -set label at 2297,4 'UGS [Digit ] = 400' left +set label at 4995,12 'Desc P [Unit P] = 1' left +set label at 4995,25 'Desc P [Unit P] = 2' left unset output set terminal qt unset output -plot "/tmp/tempfile0" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 100' w l,"/tmp/tempfile1" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 125' w l,"/tmp/tempfile2" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 150' w l,"/tmp/tempfile3" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 175' w l,"/tmp/tempfile4" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 200' w l,"/tmp/tempfile5" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 225' w l,"/tmp/tempfile6" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 250' w l,"/tmp/tempfile7" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 275' w l,"/tmp/tempfile8" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 300' w l,"/tmp/tempfile9" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 325' w l,"/tmp/tempfile10" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 350' w l,"/tmp/tempfile11" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 375' w l,"/tmp/tempfile12" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 400' w l,"/tmp/tempfile13" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'UGS [Digit ] = 425' w l +plot "/tmp/tempfile0" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'Desc P [Unit P] = 1' w l,"/tmp/tempfile32" using ($1*4.887586):($2*0.048876) binary format="%int16%int16" endian=big title 'Desc P [Unit P] = 2' w l diff --git a/main b/main index 1b8f4ad55ffc4c0b2779b307588184e495605b77..38a175e559ac42212d17e01b286b1551372ebdf4 100755 GIT binary patch literal 48296 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 diff --git a/main.cpp b/main.cpp index f14fd10..b1a36b2 100644 --- a/main.cpp +++ b/main.cpp @@ -1,5 +1,6 @@ #include #include "drv/b15f.h" +#include "drv/plottyfile.h" int main() { @@ -21,7 +22,10 @@ int main() uint16_t bb[1024]; drv.analogEingabeSequenz(1, &ba[0], 0, 0, &bb[0], 0, 1023, -1, 1023); - system("./plotty --in graph"); + PlottyFile pf; + pf.writeToFile("test_plot"); + + system("./plotty --in test_plot"); std::cout << "Schluss." << std::endl; } diff --git a/main.o b/main.o index b3c3644afaa7b7924dad06d4fbb52326dcc5adf8..c773a0e192c9a61c1cc7c8d3495a535ec2745238 100644 GIT binary patch literal 5472 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 Ieg_WtFLx9p7XSbN literal 0 HcmV?d00001