-#include "angletester.h"\r
+#include "AngleTester.h"\r
\r
#include <cmath>\r
+#include <algorithm>\r
+using namespace std;\r
+\r
+#include <QLabel>\r
+#include <QPainter>\r
+#include <QVBoxLayout>\r
+#include <QFormLayout>\r
+#include <QPoint>\r
+\r
+#include "DMTactileDisplay.h"\r
\r
AngleTester::AngleTester(QWidget *parent, Qt::WindowFlags flags)\r
- : QMainWindow(parent, flags)\r
+: QMainWindow(parent, flags), \r
+ _angle(new DMTactileDisplay()), \r
+ _frequency(new QSpinBox()), \r
+ _tfrequency(new QSpinBox()), \r
+ _play(new QPushButton()),\r
+ _stop(new QPushButton())\r
{\r
- try\r
- {\r
- //_tactonPlayer = new TactonPlayer("COM4");\r
- _tactonPlayer = new TactonPlayer("/dev/tty.usbserial-FTFRHUAO"); // Mac USB serial cable\r
- }\r
- catch(...)\r
- {\r
- _tactonPlayer = NULL;\r
- }\r
+ try\r
+ {\r
+ //_tactonPlayer = new TactonPlayer("COM4");\r
+ _tactonPlayer = new TactonPlayer("/dev/tty.usbserial-FTFRHUAO"); // Mac USB serial cable\r
+ }\r
+ catch(...)\r
+ {\r
+ _tactonPlayer = NULL;\r
+ }\r
+\r
+ //setupUi(this);\r
+ \r
+ resize(500, 600);\r
+ QWidget *centralWidget = new QWidget(this);\r
+ QVBoxLayout *verticalLayout = new QVBoxLayout(centralWidget);\r
+ verticalLayout->setSpacing(6);\r
+ verticalLayout->setContentsMargins(11, 11, 11, 11);\r
+ _angle->setMaximum(359);\r
+ _angle->setTracking(true);\r
+ _angle->setInvertedAppearance(false);\r
+ _angle->setInvertedControls(false);\r
+ _angle->setWrapping(true);\r
+ _angle->setNotchTarget(30.0);\r
+ //_angle->setNotchesVisible(true);\r
+\r
+ verticalLayout->addWidget(_angle);\r
\r
- setupUi(this);\r
+ QFormLayout * formLayout = new QFormLayout();\r
+ formLayout->setSpacing(6);\r
\r
- layout()->setSizeConstraint(QLayout::SetFixedSize);\r
+ QLabel *frequencyLabel = new QLabel(centralWidget);\r
+ frequencyLabel->setText("Background frequency");\r
+ _frequency->setMaximum(500);\r
+ _frequency->setValue(100);\r
+ formLayout->setWidget(0, QFormLayout::LabelRole, frequencyLabel);\r
+ formLayout->setWidget(0, QFormLayout::FieldRole, _frequency);\r
\r
- setFrequency(_frequency->value());\r
+ QLabel *tfrequencyLabel = new QLabel(centralWidget);\r
+ tfrequencyLabel->setText("Target frequency");\r
+ formLayout->setWidget(1, QFormLayout::LabelRole, tfrequencyLabel);\r
+ _tfrequency->setMaximum(500);\r
+ _tfrequency->setValue(250);\r
+ formLayout->setWidget(1, QFormLayout::FieldRole, _tfrequency);\r
+/*\r
+ _play->setText("Play");\r
+ _stop->setText("Stop");\r
+ formLayout->setWidget(2, QFormLayout::FieldRole, _play);\r
+ formLayout->setWidget(2, QFormLayout::LabelRole, _stop);\r
+*/\r
+ verticalLayout->addLayout(formLayout);\r
+ setCentralWidget(centralWidget);\r
\r
- connect(_play, SIGNAL(clicked(bool)), this, SLOT(play(bool)));\r
- connect(_stop, SIGNAL(clicked(bool)), this, SLOT(stop(bool)));\r
+ //layout()->setSizeConstraint(QLayout::SetFixedSize);\r
\r
- connect(_angle, SIGNAL(valueChanged(int)), this, SLOT(setAngle(int)));\r
- connect(_frequency, SIGNAL(valueChanged(int)), this, SLOT(setFrequency(int)));\r
+ _angle->addTarget(Target(10, 60));\r
+ _angle->addTarget(Target(100, 150));\r
+ _angle->addTarget(Target(200, 250));\r
+\r
+ setFrequency(_frequency->value());\r
+\r
+// connect(_play, SIGNAL(clicked(bool)), this, SLOT(play(bool)));\r
+// connect(_stop, SIGNAL(clicked(bool)), this, SLOT(stop(bool)));\r
+\r
+ //connect(_angle, SIGNAL(valueChanged(int)), this, SLOT(setAngle(int)));\r
+ connect(_angle, SIGNAL(updateAll(int, DMTactileDisplay::Hover)), this, SLOT(setOutput(int, DMTactileDisplay::Hover)));\r
+ connect(_angle, SIGNAL(stop()), this, SLOT(stop()));\r
+ connect(_frequency, SIGNAL(valueChanged(int)), this, SLOT(setFrequency(int)));\r
}\r
\r
AngleTester::~AngleTester()\r
{\r
-\r
}\r
\r
void AngleTester::setFrequency(int frequency)\r
{\r
- _tactonPlayer->setFrequency(frequency);\r
+ _tactonPlayer->setFrequency(frequency);\r
}\r
\r
-void AngleTester::setAngle(int angle)\r
+void AngleTester::setOutput(int angle, DMTactileDisplay::Hover hover)\r
{\r
- _tactonPlayer->playAngle(angle);\r
- return;\r
+ if (hover == DMTactileDisplay::OnTarget)\r
+ _tactonPlayer->setFrequency(_tfrequency->value());\r
+ else\r
+ _tactonPlayer->setFrequency(_frequency->value());\r
+ _tactonPlayer->playAngle(angle);\r
+ return;\r
}\r
\r
void AngleTester::play(bool)\r
{\r
- setFrequency(_frequency->value());\r
- setAngle(_angle->value());\r
+// setFrequency(_frequency->value());\r
+// setAngle(_angle->value());\r
}\r
\r
void AngleTester::stop(bool)\r
{\r
- _tactonPlayer->stopBuzz();\r
+ _tactonPlayer->stopBuzz();\r
}\r