2121using namespace trikGui ;
2222
2323SensorsSelectionWidget::SensorsSelectionWidget (trikControl::BrickInterface &brick
24- , trikControl::SensorInterface::Type type
24+ , SensorType type
2525 , QWidget *parent)
2626 : TrikGuiDialog(parent)
2727 , mTitle(tr(" Select sensors for testing:" ))
28+ , mSensorType(type)
2829 , mBrick(brick)
2930{
30- QStringList ports = mBrick .sensorPorts (type);
31+ QStringList ports;
32+
33+ switch (type) {
34+ case SensorType::analogSensor: {
35+ ports = mBrick .sensorPorts (trikControl::SensorInterface::Type::analogSensor);
36+ }
37+ case SensorType::digitalSensor: {
38+ ports = mBrick .sensorPorts (trikControl::SensorInterface::Type::digitalSensor);
39+ }
40+ case SensorType::encoder: {
41+ ports = mBrick .encoderPorts ();
42+ }
43+ }
44+
45+ ports.sort ();
46+
3147 for (const QString &port : ports) {
3248 QListWidgetItem *item = new QListWidgetItem (port, &mList );
3349 item->setFlags (item->flags () | Qt::ItemIsUserCheckable);
@@ -48,17 +64,17 @@ SensorsSelectionWidget::SensorsSelectionWidget(trikControl::BrickInterface &bric
4864 setLayout (&mLayout );
4965}
5066
51- QString SensorsSelectionWidget::menuEntry (trikControl::SensorInterface::Type type)
67+ QString SensorsSelectionWidget::menuEntry (SensorType type)
5268{
5369 switch (type) {
54- case trikControl::SensorInterface::Type ::analogSensor: {
70+ case SensorType ::analogSensor: {
5571 return tr (" Test analog sensors" );
5672 }
57- case trikControl::SensorInterface::Type ::digitalSensor: {
73+ case SensorType ::digitalSensor: {
5874 return tr (" Test digital sensors" );
5975 }
60- case trikControl::SensorInterface::Type::specialSensor : {
61- return QString ( );
76+ case SensorType::encoder : {
77+ return tr ( " Test encoders " );
6278 }
6379 }
6480
@@ -110,7 +126,12 @@ void SensorsSelectionWidget::startTesting()
110126 }
111127 }
112128
113- SensorsWidget sensorsWidget (mBrick , ports);
129+ const auto sensorType = mSensorType == SensorType::analogSensor || mSensorType == SensorType::digitalSensor
130+ ? SensorsWidget::SensorType::analogOrDigitalSensor
131+ : SensorsWidget::SensorType::encoder
132+ ;
133+
134+ SensorsWidget sensorsWidget (mBrick , ports, sensorType);
114135 emit newWidget (sensorsWidget);
115136 if (sensorsWidget.exec () == TrikGuiDialog::goHomeExit) {
116137 goHome ();
0 commit comments