diff --git a/logic/include/model/Console.h b/logic/include/model/Console.h index 9951ef4..c29cf1b 100644 --- a/logic/include/model/Console.h +++ b/logic/include/model/Console.h @@ -4,6 +4,7 @@ #include #include "Pushbutton.h" +#include "RotayButton.h" class DataSender; @@ -13,7 +14,8 @@ class Console: public QObject private: DataSender* _dataSender; - PushButton _dual; + PushButton _dual, _quad; + // RotayButton _Js1; public: Console(); @@ -21,7 +23,8 @@ public: void test(); void pressDual(); void releaseDual(); - + void pressQuad(); + void releaseQuad(); signals: void dualLedChanged(int value); diff --git a/logic/src/model/Console.cpp b/logic/src/model/Console.cpp index 84faa54..5fe664a 100644 --- a/logic/src/model/Console.cpp +++ b/logic/src/model/Console.cpp @@ -3,7 +3,9 @@ #include Console::Console() : - _dual(0x1D, static_cast(0x82)) + _dual(0x1D, static_cast(0x82)), + _quad(0x1C, static_cast(0x81)) + { @@ -40,3 +42,17 @@ void Console::releaseDual() } //******************************************************************************** +void Console::pressQuad() +{ + auto arr = _quad.press(); + _dataSender->send(arr); +} + +//******************************************************************************** +void Console::releaseQuad() +{ + auto arr = _quad.release(); + _dataSender->send(arr); +} + +//******************************************************************************** diff --git a/test/tst_console.cpp b/test/tst_console.cpp index 773c56b..71b7770 100644 --- a/test/tst_console.cpp +++ b/test/tst_console.cpp @@ -15,6 +15,8 @@ private slots: void test_case1(); void pressDual_test_case(); void releaseDual_test_case(); + void pressQuad_test_case(); + void releaseQuad_test_case(); }; @@ -89,6 +91,49 @@ void ConsoleTest::releaseDual_test_case() QCOMPARE(t->consoleData, arr); } +//******************************************************************************** +void ConsoleTest::pressQuad_test_case() +{ + Console c; + auto t = new TestDataSender; + c.injectDataSender(t); + c.pressQuad(); + QByteArray arr; + + arr.resize(8); + arr[0] = 0x00; + arr[1] = 0x01; + arr[2] = 0x04; + arr[3] = 0x1C; + arr[4] = 0x01; + arr[5] = 0x00; + arr[6] = 0x00; + arr[7] = 0x00; + QCOMPARE(t->consoleData, arr); +} + +//******************************************************************************** +void ConsoleTest::releaseQuad_test_case() +{ + Console c; + auto t = new TestDataSender; + c.injectDataSender(t); + c.releaseQuad(); + QByteArray arr; + + arr.resize(8); + arr[0] = 0x00; + arr[1] = 0x01; + arr[2] = 0x04; + arr[3] = 0x1C; + arr[4] = 0x00; + arr[5] = 0x00; + arr[6] = 0x00; + arr[7] = 0x00; + + QCOMPARE(t->consoleData, arr); +} + QTEST_APPLESS_MAIN(ConsoleTest) #include "tst_console.moc"