From 167e0a3ce848bd8dff1f8750643cd50d8643f462 Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Fri, 5 Apr 2019 12:52:51 +0200 Subject: [PATCH] analoge Ausgabe --- driver/cli | Bin 111704 -> 116200 bytes driver/cli.cpp | 80 +++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 77 insertions(+), 3 deletions(-) diff --git a/driver/cli b/driver/cli index 282399b312f87a0ed91169cab7169da1f648dd3f..bebcfb117ac1a54d34525ce7b89cd99aae32e810 100755 GIT binary patch delta 44877 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 X03Dp{x*MUiy^r(zaO=7c+7bT;2_B$j delta 41511 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 Bh1~!E diff --git a/driver/cli.cpp b/driver/cli.cpp index 114efd6..03ad066 100644 --- a/driver/cli.cpp +++ b/driver/cli.cpp @@ -136,7 +136,19 @@ void show_invalid_port_input(int) { ViewInfo* view = new ViewInfo(); view->setTitle("Falsche Eingabe"); - view->setText("Bitte geben Sie einen Wert aus dem Intervall [00, FF] an."); + view->setText("Bitte geben Sie einen Wert aus dem Intervall [0, FF] an."); + view->setLabelClose("[ Schliessen ]"); + view->repaint(); + + win_stack.push_back(view); + input(0); +} + +void show_invalid_dac_input(int) +{ + ViewInfo* view = new ViewInfo(); + view->setTitle("Falsche Eingabe"); + view->setText("Bitte geben Sie einen Wert aus dem Intervall [0, 1023] an."); view->setLabelClose("[ Schliessen ]"); view->repaint(); @@ -176,6 +188,42 @@ void write_digital_output1(int) } } +void write_analog_output0(int) +{ + try + { + uint16_t port = std::stoi(static_cast(win_stack.back())->getInput()); + if(port > 1023) + throw std::invalid_argument("bad value"); + + B15F& drv = B15F::getInstance(); + drv.analogWrite0(port); + view_back(0); + } + catch(std::invalid_argument& ex) + { + show_invalid_dac_input(0); + } +} + +void write_analog_output1(int) +{ + try + { + uint16_t port = std::stoi(static_cast(win_stack.back())->getInput()); + if(port > 1023) + throw std::invalid_argument("bad value"); + + B15F& drv = B15F::getInstance(); + drv.analogWrite1(port); + view_back(0); + } + catch(std::invalid_argument& ex) + { + show_invalid_dac_input(0); + } +} + void show_digital_output0(int) { ViewPromt* view = new ViewPromt(); @@ -202,6 +250,32 @@ void show_digital_output1(int) input(0); } +void show_analog_output0(int) +{ + ViewPromt* view = new ViewPromt(); + view->setTitle("Analoge Ausgabe AA0"); + view->setMessage("\nEingabe 10-Bit-Wert (0...1023): "); + view->setCancel("[ Zurueck ]", true); + view->setConfirm("[ OK ]", &write_analog_output0); + view->repaint(); + + win_stack.push_back(view); + input(0); +} + +void show_analog_output1(int) +{ + ViewPromt* view = new ViewPromt(); + view->setTitle("Analoge Ausgabe AA1"); + view->setMessage("\nEingabe 10-Bit-Wert (0...1023): "); + view->setCancel("[ Zurueck ]", true); + view->setConfirm("[ OK ]", &write_analog_output1); + view->repaint(); + + win_stack.push_back(view); + input(0); +} + void show_main(int) { ViewSelection* view = new ViewSelection(); @@ -209,8 +283,8 @@ void show_main(int) view->addChoice("[ Monitor - Eingaben beobachten ]", &show_monitor); view->addChoice("[ Digitale Ausgabe BE0 ]", &show_digital_output0); view->addChoice("[ Digitale Ausgabe BE1 ]", &show_digital_output1); - view->addChoice("[ Analoge Ausgabe AA0 ]", &show_monitor); - view->addChoice("[ Analoge Ausgabe AA1 ]", &show_monitor); + view->addChoice("[ Analoge Ausgabe AA0 ]", &show_analog_output0); + view->addChoice("[ Analoge Ausgabe AA1 ]", &show_analog_output1); view->addChoice("[ Informationen ]", &show_info); view->addChoice("", nullptr); view->addChoice("[ Beenden ]", &finish);