Oubli dans commit précédent
authorThomas Pietrzak <thomas.pietrzak@gmail.com>
Wed, 27 Apr 2022 21:29:10 +0000 (23:29 +0200)
committerThomas Pietrzak <thomas.pietrzak@gmail.com>
Wed, 27 Apr 2022 21:29:10 +0000 (23:29 +0200)
TactonDebug/AngleTester/angletester.cpp

index 86ee55a84a30c356fad8f429479aea2da83c7bc5..714f954d3c6583dc9067f7864ad8b39ba82ad409 100644 (file)
-#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