diff --git a/driver/drv/b15f.cpp b/driver/drv/b15f.cpp index 04f85ff..4a9cae5 100644 --- a/driver/drv/b15f.cpp +++ b/driver/drv/b15f.cpp @@ -152,6 +152,15 @@ std::vector B15F::getBoardInfo(void) return info; } +bool B15F::activateSelfTestMode() +{ + usart.clearInputBuffer(); + usart.writeByte(RQ_ST); + + uint8_t aw = usart.readByte(); + return aw == MSG_OK; +} + bool B15F::digitalWrite0(uint8_t port) { usart.clearInputBuffer(); diff --git a/driver/drv/b15f.h b/driver/drv/b15f.h index c25b028..067f4a6 100644 --- a/driver/drv/b15f.h +++ b/driver/drv/b15f.h @@ -97,6 +97,13 @@ public: * Steuerbefehle für B15 * *************************/ + /** + * Versetzt das Board in den Selbsttest-Modus + * WICHTIG: Es darf dabei nichts an den Klemmen angeschlossen sein! + * \throws DriverException + */ + bool activateSelfTestMode(void); + /** * Setzt den Wert des digitalen Ausgabeports 0 * \param port Wert für gesamten Port @@ -192,6 +199,7 @@ private: constexpr static uint8_t RQ_TEST = 1; constexpr static uint8_t RQ_INFO = 2; constexpr static uint8_t RQ_INT = 3; + constexpr static uint8_t RQ_ST = 4; constexpr static uint8_t RQ_BA0 = 5; constexpr static uint8_t RQ_BA1 = 6; constexpr static uint8_t RQ_BE0 = 7; diff --git a/driver/drv/b15f.o b/driver/drv/b15f.o index d78839d..dcffd38 100644 Binary files a/driver/drv/b15f.o and b/driver/drv/b15f.o differ diff --git a/driver/main b/driver/main index d5d4996..6d56236 100755 Binary files a/driver/main and b/driver/main differ diff --git a/driver/main.cpp b/driver/main.cpp index 1de1036..2575520 100644 --- a/driver/main.cpp +++ b/driver/main.cpp @@ -122,6 +122,8 @@ void kennlinieZweiterQuadrant() void testFunktionen() { B15F& drv = B15F::getInstance(); + drv.activateSelfTestMode(); + return; std::cout << "DIP-Switch: " << (int) drv.readDipSwitch() << std::endl; @@ -157,8 +159,8 @@ void testFunktionen() int main() { testFunktionen(); - kennlinieZweiterQuadrant(); - kennlinieErsterQuadrant(); + //kennlinieZweiterQuadrant(); + //kennlinieErsterQuadrant(); std::cout << "Schluss." << std::endl; } diff --git a/driver/main.o b/driver/main.o index 5b54449..74c1ce5 100644 Binary files a/driver/main.o and b/driver/main.o differ