From 4364b39f630a45f49373da26b9c00124dd2931b6 Mon Sep 17 00:00:00 2001 From: devfix Date: Thu, 9 May 2019 13:37:15 +0200 Subject: [PATCH] war kein bug --- driver/cli | Bin 126400 -> 131784 bytes driver/cli.cpp | 25 ++++++++++++++++++++-- driver/drv/b15f.cpp | 40 ++++++++++++++++++++++++++++------- driver/drv/b15f.h | 24 ++++++++++++++++++++- driver/drv/driverexception.h | 1 + driver/main | Bin 66200 -> 66904 bytes driver/ui/view_monitor.cpp | 10 ++++++++- firmware/B15F.elf | Bin 16624 -> 16624 bytes 8 files changed, 88 insertions(+), 12 deletions(-) diff --git a/driver/cli b/driver/cli index 1678fd1b37c7573703429204169f6f24a5bbc7fd..3730bca898d6eff5c865a89e42270dfe04e8c4b7 100755 GIT binary patch delta 53243 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 delta 49177 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"Fehler"); + std::string msg(ex.what()); + msg += "\n\nBeende in 5 Sekunden."; + view->setText(msg.c_str()); + view->setLabelClose(""); + view->repaint(); + + std::this_thread::sleep_for(std::chrono::milliseconds(5000)); + + cleanup(); + std::cerr << std::endl << "*** EXCEPTION ***" << std::endl << ex.what() << std::endl; + exit(EXIT_FAILURE); +} + void init() { // init b15 driver @@ -79,6 +96,7 @@ void init() std::cout << std::endl << "Starte in 3s ..." << std::endl; sleep(3); #endif + B15F::setAbortHandler(&abort_handler); // init all ncurses stuff initscr(); @@ -366,8 +384,11 @@ int main() { init(); - show_main(0); + int exit_code = EXIT_SUCCESS; + + show_main(0); cleanup(); - return EXIT_SUCCESS; + + return exit_code; } diff --git a/driver/drv/b15f.cpp b/driver/drv/b15f.cpp index abbf044..79b310b 100644 --- a/driver/drv/b15f.cpp +++ b/driver/drv/b15f.cpp @@ -1,6 +1,7 @@ #include "b15f.h" B15F* B15F::instance = nullptr; +errorhandler_t B15F::errorhandler = nullptr; B15F::B15F() { @@ -228,7 +229,7 @@ uint16_t B15F::analogRead(uint8_t channel) uint16_t adc = usart.readInt(); if(adc > 1023) - throw DriverException("Bad ADC data detected"); + throw DriverException("Bad ADC data detected (1)"); return adc; } @@ -251,7 +252,7 @@ void B15F::analogSequence(uint8_t channel_a, uint16_t* buffer_a, uint32_t offset buffer_a[i] = usart.readInt(); buffer_b[i] = usart.readInt(); if(buffer_a[i] > 1023 || buffer_b[i] > 1023) - throw DriverException("Bad ADC data detected"); + throw DriverException("Bad ADC data detected (2)"); } uint8_t aw = usart.readByte(); @@ -270,6 +271,14 @@ void B15F::delay_us(uint16_t us) { std::this_thread::sleep_for(std::chrono::microseconds(us)); } + +B15F& B15F::getInstance(void) +{ + if(!instance) + instance = new B15F(); + + return *instance; +} // https://stackoverflow.com/a/478960 std::string B15F::exec(std::string cmd) { @@ -284,11 +293,26 @@ std::string B15F::exec(std::string cmd) { } return result; } - -B15F& B15F::getInstance(void) -{ - if(!instance) - instance = new B15F(); - return *instance; + +void B15F::abort(std::string msg) +{ + DriverException ex(msg); + abort(ex); +} + +void B15F::abort(std::exception& ex) +{ + if(errorhandler) + errorhandler(ex); + else + { + std::cerr << "NOTICE: B15F::errorhandler not set" << std::endl; + throw ex; + } +} + +void B15F::setAbortHandler(errorhandler_t func) +{ + errorhandler = func; } diff --git a/driver/drv/b15f.h b/driver/drv/b15f.h index 2ffff03..9cfed2d 100644 --- a/driver/drv/b15f.h +++ b/driver/drv/b15f.h @@ -18,6 +18,9 @@ #include "driverexception.h" #include "timeoutexception.h" +typedef std::function errorhandler_t; + + class B15F { private: @@ -88,7 +91,25 @@ public: * \param cmd Der Befehl */ static std::string exec(std::string cmd); - + + /** + * Multithread sicherer Abbruch des B15F-Treibers + * \param msg Beschreibung der Abbruchursache + */ + static void abort(std::string msg); + + /** + * Multithread sicherer Abbruch des B15F-Treibers + * \param ex Exception als Abbruchursache + */ + static void abort(std::exception& ex); + + /** + * Setzt eine Fehlerbehandlungsroutine für den Treiberabbruch (abort) + * \param func Funktion, die Exception als Parameter bekommt + */ + static void setAbortHandler(errorhandler_t func); + /*************************************/ @@ -184,6 +205,7 @@ private: USART usart; static B15F* instance; + static errorhandler_t errorhandler; // CONSTANTS diff --git a/driver/drv/driverexception.h b/driver/drv/driverexception.h index 05f8e3e..18a88a9 100644 --- a/driver/drv/driverexception.h +++ b/driver/drv/driverexception.h @@ -30,3 +30,4 @@ protected: }; #endif // DRIVEREXCEPTION_H + diff --git a/driver/main b/driver/main index 196b9fa7a83e4592d773f9eee1c36048b3977211..dbfb611d5392b48a16033a82a1a01f0696c3155e 100755 GIT binary patch delta 25540 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 delta 23541 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 VrGI)F`uKkIhv3^A*q?Vh{2w;V6B7Uc diff --git a/driver/ui/view_monitor.cpp b/driver/ui/view_monitor.cpp index 81a7957..ea8b083 100644 --- a/driver/ui/view_monitor.cpp +++ b/driver/ui/view_monitor.cpp @@ -125,7 +125,15 @@ void ViewMonitor::worker() } catch(...) { - drv.reconnect(); + try + { + drv.reconnect(); + } + catch(...) + { + B15F::abort("yoho meine dudes"); + return; + } } } } diff --git a/firmware/B15F.elf b/firmware/B15F.elf index 4360990d90c7849505d3efbe59e9913d09282195..92075313377e91cb13e3f365766d579ab2f4fcb9 100755 GIT binary patch delta 29 kcmey+$oQd=af7WWpOKZ3k(H@AgKuJ`f`a8{Z_%aN0Ft%{?f?J) delta 29 kcmey+$oQd=af7WWpQ)9Jk(H?_gJVIFf`aL0Z_%aN0Ftr@=>Px#