From e0a4be76859fb212ea5733b402faa5243e5534ae Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Fri, 5 Apr 2019 14:33:15 +0200 Subject: [PATCH] promt improved --- driver/cli | Bin 121296 -> 126216 bytes driver/cli.cpp | 57 ++++++++++++++++++++++++++++++++--- driver/drv/b15f.cpp | 6 ++-- driver/main | Bin 66192 -> 0 bytes driver/ui/view.cpp | 4 +++ driver/ui/view.h | 6 ++-- driver/ui/view_info.cpp | 4 +-- driver/ui/view_info.h | 4 +-- driver/ui/view_monitor.cpp | 2 +- driver/ui/view_monitor.h | 2 +- driver/ui/view_promt.cpp | 17 ++++++++--- driver/ui/view_promt.h | 8 ++--- driver/ui/view_selection.cpp | 6 ++-- driver/ui/view_selection.h | 4 +-- 14 files changed, 91 insertions(+), 29 deletions(-) delete mode 100755 driver/main diff --git a/driver/cli b/driver/cli index d0c668b416f9bf42dbd9fc27fe47a22696970012..699162a138ff917f751b96160bb850efc4aff54e 100755 GIT binary patch literal 126216 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 delta 48865 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 diff --git a/driver/cli.cpp b/driver/cli.cpp index 0947d0c..506e143 100644 --- a/driver/cli.cpp +++ b/driver/cli.cpp @@ -108,14 +108,18 @@ void finish(int) void view_back(int) { - win_stack.pop_back(); + if(win_stack.size()) + { + delete win_stack.back(); + win_stack.pop_back(); + } if(win_stack.size()) win_stack.back()->repaint(); } void input(int) { - std::function nextCall; + call_t nextCall; int key; do { @@ -136,7 +140,7 @@ void show_info(int) { ViewInfo* view = new ViewInfo(); view->setTitle("Info"); - view->setText("Informationen zu Board 15 Famulus Edition\nEs war einmal"); + view->setText("Informationen zu Board 15 Famulus Edition\nEs war einmal..."); view->setLabelClose("[ Zurueck ]"); view->repaint(); @@ -184,7 +188,10 @@ void write_digital_output0(int) { try { - uint8_t port = std::stoi(static_cast(win_stack.back())->getInput(), 0, 16); + int d = std::stoi(static_cast(win_stack.back())->getInput(), 0, 16); + if(d > 255 || 0 > d) + throw std::invalid_argument("bad value"); + uint8_t port = static_cast(d); B15F& drv = B15F::getInstance(); drv.digitalWrite0(port); @@ -200,7 +207,10 @@ void write_digital_output1(int) { try { - uint8_t port = std::stoi(static_cast(win_stack.back())->getInput(), 0, 16); + int d = std::stoi(static_cast(win_stack.back())->getInput(), 0, 16); + if(d > 255 || 0 > d) + throw std::invalid_argument("bad value"); + uint8_t port = static_cast(d); B15F& drv = B15F::getInstance(); drv.digitalWrite1(port); @@ -300,6 +310,42 @@ void show_analog_output1(int) input(0); } + +void stop_selftest(int) +{ + B15F& drv = B15F::getInstance(); + drv.discard(); +} + +void start_selftest(int) +{ + B15F& drv = B15F::getInstance(); + drv.activateSelfTestMode(); + + ViewInfo* view = new ViewInfo(); + view->setTitle("Selbsttest aktiv"); + view->setText("Das B15 befindet sich jetzt im Selbsttestmodus.\n \nSelbsttest:\nZu Beginn geht der Reihe nach jede LED von BA0 bis BA1 an.\nDanach leuchten die LEDs an AA0 und AA1 kurz auf.\nZum Schluss spiegelt in einer Endlosschleife:\n* BA0 Port BE0\n* BA1 die DIP-Schalter S7\n* AA0 ADC0\n* AA1 ADC1"); + view->setLabelClose("[ Selbsttest Beenden ]"); + view->setCall(&stop_selftest); + view->repaint(); + + win_stack.push_back(view); + input(0); +} + +void show_selftest(int) +{ + ViewInfo* view = new ViewInfo(); + view->setTitle("Selbsttest"); + view->setText("Bitte entfernen Sie jetzt alle Draehte von den Anschlussklemmen und bestaetigen\nmit Enter."); + view->setLabelClose("[ Weiter ]"); + view->setCall(&start_selftest); + view->repaint(); + + win_stack.push_back(view); + input(0); +} + void show_main(int) { ViewSelection* view = new ViewSelection(); @@ -309,6 +355,7 @@ void show_main(int) view->addChoice("[ Digitale Ausgabe BE1 ]", &show_digital_output1); view->addChoice("[ Analoge Ausgabe AA0 ]", &show_analog_output0); view->addChoice("[ Analoge Ausgabe AA1 ]", &show_analog_output1); + view->addChoice("[ Selbsttest des B15 ]", &show_selftest); view->addChoice("[ Informationen ]", &show_info); view->addChoice("", nullptr); view->addChoice("[ Beenden ]", &finish); diff --git a/driver/drv/b15f.cpp b/driver/drv/b15f.cpp index 4348642..43a4a6d 100644 --- a/driver/drv/b15f.cpp +++ b/driver/drv/b15f.cpp @@ -55,8 +55,6 @@ void B15F::init() void B15F::reconnect() { - std::cout << PRE << "Verbindung unterbrochen, stelle Verbindung neu her: " << std::flush; - uint8_t tries = RECONNECT_TRIES; while(tries--) { @@ -228,6 +226,8 @@ uint16_t B15F::analogRead(uint8_t channel) usart.writeByte(RQ_ADC); usart.writeByte(channel); uint16_t adc = usart.readInt(); + if(adc > 1023) + throw DriverException("Bad ADC data detected"); delay_us(1); return adc; } @@ -251,7 +251,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) - std::cout << PRE << "bad data detected" << std::endl; + throw DriverException("Bad ADC data detected"); } uint8_t aw = usart.readByte(); diff --git a/driver/main b/driver/main deleted file mode 100755 index 09368ac1a2fdf01d303bb5f606d738e379852fe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66192 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 u^k}P~wqN^2<4fC)%UO8ykL=~s*dLeA< diff --git a/driver/ui/view.cpp b/driver/ui/view.cpp index cc50010..d84baf7 100644 --- a/driver/ui/view.cpp +++ b/driver/ui/view.cpp @@ -13,6 +13,10 @@ View::View() keypad(win, TRUE); } +View::~View() +{ +} + void View::setWinContext(WINDOW* win) { View::win = win; diff --git a/driver/ui/view.h b/driver/ui/view.h index 7c8fc31..4bf2ab5 100644 --- a/driver/ui/view.h +++ b/driver/ui/view.h @@ -11,11 +11,13 @@ #include extern std::string ERR_MSG; +typedef std::function call_t; class View { public: View(void); + virtual ~View(void); static void setWinContext(WINDOW* win); static WINDOW* getWinContext(void); @@ -26,14 +28,14 @@ public: virtual void repaint(void); virtual void draw(void) = 0; - virtual std::function keypress(int& key) = 0; + virtual call_t keypress(int& key) = 0; protected: int width, height; int start_x = 0, start_y = 0; std::string title; - std::vector> calls; + std::vector calls; static WINDOW* win; constexpr static int KEY_ENT = 10; diff --git a/driver/ui/view_info.cpp b/driver/ui/view_info.cpp index 0528d45..056ef0f 100644 --- a/driver/ui/view_info.cpp +++ b/driver/ui/view_info.cpp @@ -15,7 +15,7 @@ void ViewInfo::setLabelClose(std::string label) this->label_close = label; } -void ViewInfo::setCall(std::function call) +void ViewInfo::setCall(call_t call) { calls[0] = call; } @@ -34,7 +34,7 @@ void ViewInfo::draw() wattroff(win, A_REVERSE); } -std::function ViewInfo::keypress(int& key) +call_t ViewInfo::keypress(int& key) { switch(key) { diff --git a/driver/ui/view_info.h b/driver/ui/view_info.h index 755dfe4..be5cbf4 100644 --- a/driver/ui/view_info.h +++ b/driver/ui/view_info.h @@ -9,9 +9,9 @@ public: ViewInfo(void); virtual void setText(std::string text); virtual void setLabelClose(std::string label);; - virtual void setCall(std::function call); + virtual void setCall(call_t call); virtual void draw(void) override; - virtual std::function keypress(int& key) override; + virtual call_t keypress(int& key) override; protected: std::string text; diff --git a/driver/ui/view_monitor.cpp b/driver/ui/view_monitor.cpp index 8f32b61..0dc03cf 100644 --- a/driver/ui/view_monitor.cpp +++ b/driver/ui/view_monitor.cpp @@ -4,7 +4,7 @@ ViewMonitor::ViewMonitor() : t_worker(&ViewMonitor::worker, this) { } -std::function ViewMonitor::keypress(int& key) +call_t ViewMonitor::keypress(int& key) { switch(key) { diff --git a/driver/ui/view_monitor.h b/driver/ui/view_monitor.h index bb64cda..33552bf 100644 --- a/driver/ui/view_monitor.h +++ b/driver/ui/view_monitor.h @@ -13,7 +13,7 @@ class ViewMonitor : public ViewInfo public: ViewMonitor(void); - virtual std::function keypress(int& key) override; + virtual call_t keypress(int& key) override; private: std::string fancyDigitalString(uint8_t& b); diff --git a/driver/ui/view_promt.cpp b/driver/ui/view_promt.cpp index 241dfe3..57ab60d 100644 --- a/driver/ui/view_promt.cpp +++ b/driver/ui/view_promt.cpp @@ -2,12 +2,18 @@ void ViewPromt::draw() { + curs_set(2); // show cursor + int li = text_offset_y; + int ci = 0; for(std::string line : str_split(message + input, "\n")) - mvwprintw(win, li++, text_offset_x, "%s", line.c_str()); + { + mvwprintw(win, ++li, text_offset_x, "%s", line.c_str()); + ci = line.length() + text_offset_x; + } button_offset_x = (width - label_cancel.length() - sep.length() - label_confirm.length()) / 2; - button_offset_y = height - text_offset_y + 1; + button_offset_y = height - text_offset_y; if(selection == 0) { @@ -25,6 +31,7 @@ void ViewPromt::draw() mvwprintw(win, button_offset_y, button_offset_x + label_cancel.length() + sep.length(), "%s", label_confirm.c_str()); wattroff(win, A_REVERSE); } + wmove(win, li, ci); } void ViewPromt::setMessage(std::string message) @@ -99,7 +106,8 @@ std::function ViewPromt::keypress(int& key) if(selection == 0) // exit key = -1; // do return from view else - ret = call_confirm; + ret = call_confirm; + curs_set(0); // hide cursor again break; default: break; @@ -108,6 +116,7 @@ std::function ViewPromt::keypress(int& key) if(key >= ' ' && key <= '~') input += (char) key; - repaint(); + if(key != KEY_ENT) + repaint(); return ret; } diff --git a/driver/ui/view_promt.h b/driver/ui/view_promt.h index d48be9c..fb74100 100644 --- a/driver/ui/view_promt.h +++ b/driver/ui/view_promt.h @@ -10,10 +10,10 @@ class ViewPromt : public View public: virtual void draw(void) override; virtual void setMessage(std::string message); - virtual void setConfirm(std::string name, std::function call); + virtual void setConfirm(std::string name, call_t call); virtual void setCancel(std::string name, bool cancelable); virtual std::string getInput(void); - virtual std::function keypress(int& key) override; + virtual call_t keypress(int& key) override; protected: size_t selection = 1; @@ -22,11 +22,11 @@ protected: std::string label_confirm = "[ OK ]"; std::string sep = " "; std::string label_cancel = "[ Cancel ]"; - std::function call_confirm = nullptr; + call_t call_confirm = nullptr; bool cancelable = true; int button_offset_x = 0, button_offset_y = 0; constexpr static int text_offset_x = 2; - constexpr static int text_offset_y = 3; + constexpr static int text_offset_y = 2; }; #endif // VIEW_PROMT_H diff --git a/driver/ui/view_selection.cpp b/driver/ui/view_selection.cpp index 88c30c7..5b947bd 100644 --- a/driver/ui/view_selection.cpp +++ b/driver/ui/view_selection.cpp @@ -13,15 +13,15 @@ void ViewSelection::draw() } } -void ViewSelection::addChoice(std::string name, std::function call) +void ViewSelection::addChoice(std::string name, call_t call) { choices.push_back(name); calls.push_back(call); } -std::function ViewSelection::keypress(int& key) +call_t ViewSelection::keypress(int& key) { - std::function ret = nullptr; + call_t ret = nullptr; switch(key) { case KEY_UP: diff --git a/driver/ui/view_selection.h b/driver/ui/view_selection.h index 5079b2f..4963f73 100644 --- a/driver/ui/view_selection.h +++ b/driver/ui/view_selection.h @@ -9,8 +9,8 @@ class ViewSelection : public View { public: virtual void draw(void) override; - virtual void addChoice(std::string name, std::function call); - virtual std::function keypress(int& key) override; + virtual void addChoice(std::string name, call_t call); + virtual call_t keypress(int& key) override; protected: