@@ -43,8 +43,8 @@ static int continuousCalibrationSampleRate = 10000000;
4343
4444static int bufferSize = 1 ;
4545static int cycleCount = 11 ;
46- static int samplesPerCycle = 256 ;
47- static int totalSamplesCount = cycleCount * samplesPerCycle ;
46+ static int samplesPerCycle = 24 ;
47+ static int totalSamplesCount = 256 ;
4848static bool isStartMotor = false ;
4949static bool isPostCalibration = false ;
5050static bool isCalculatedCoeff = false ;
@@ -312,7 +312,7 @@ ToolTemplate *HarmonicCalibration::createAcquisitionWidget()
312312 QLabel *motorRPMLabel = new QLabel (" Motor RPM" , motorRPMWidget);
313313 Style::setStyle (motorRPMLabel, style::properties::label::subtle);
314314 acquisitionMotorRPMLineEdit = new QLineEdit (QString::number (motor_rpm), motorRPMWidget);
315- connectLineEditToRPM (acquisitionMotorRPMLineEdit, motor_rpm);
315+ connectLineEditToRPM (acquisitionMotorRPMLineEdit, motor_rpm, 1 , fast_motor_rpm );
316316 motorRPMLayout->addWidget (motorRPMLabel);
317317 motorRPMLayout->addWidget (acquisitionMotorRPMLineEdit);
318318
@@ -1325,18 +1325,18 @@ ToolTemplate *HarmonicCalibration::createCalibrationWidget()
13251325 calibrationCycleCountLayout->addWidget (calibrationCycleCountLabel);
13261326 calibrationCycleCountLayout->addWidget (calibrationCycleCountLineEdit);
13271327
1328- QWidget *calibrationSamplesPerCycleWidget = new QWidget (calibrationDatasetConfigCollapseSection);
1329- QVBoxLayout *calibrationSamplesPerCycleLayout = new QVBoxLayout (calibrationSamplesPerCycleWidget );
1330- calibrationSamplesPerCycleWidget ->setLayout (calibrationSamplesPerCycleLayout );
1331- calibrationSamplesPerCycleLayout ->setMargin (0 );
1332- calibrationSamplesPerCycleLayout ->setSpacing (0 );
1333- QLabel *calibrationSamplesPerCycleLabel = new QLabel (" Samples Per Cycle " , calibrationSamplesPerCycleWidget );
1334- Style::setStyle (calibrationSamplesPerCycleLabel , style::properties::label::subtle);
1335- calibrationSamplesPerCycleLineEdit = new QLineEdit (calibrationSamplesPerCycleWidget );
1336- calibrationSamplesPerCycleLineEdit ->setText (QString::number (samplesPerCycle ));
1337- connectLineEditToNumber (calibrationSamplesPerCycleLineEdit, samplesPerCycle , 1 , 256 );
1338- calibrationSamplesPerCycleLayout ->addWidget (calibrationSamplesPerCycleLabel );
1339- calibrationSamplesPerCycleLayout ->addWidget (calibrationSamplesPerCycleLineEdit );
1328+ QWidget *calibrationTotalSamplesWidget = new QWidget (calibrationDatasetConfigCollapseSection);
1329+ QVBoxLayout *calibrationTotalSamplesLayout = new QVBoxLayout (calibrationTotalSamplesWidget );
1330+ calibrationTotalSamplesWidget ->setLayout (calibrationTotalSamplesLayout );
1331+ calibrationTotalSamplesLayout ->setMargin (0 );
1332+ calibrationTotalSamplesLayout ->setSpacing (0 );
1333+ QLabel *calibrationTotalSamplesLabel = new QLabel (" Total Samples " , calibrationTotalSamplesWidget );
1334+ Style::setStyle (calibrationTotalSamplesLabel , style::properties::label::subtle);
1335+ calibrationTotalSamplesLineEdit = new QLineEdit (calibrationTotalSamplesWidget );
1336+ calibrationTotalSamplesLineEdit ->setText (QString::number (totalSamplesCount ));
1337+ connectLineEditToNumber (calibrationTotalSamplesLineEdit, totalSamplesCount , 1 , 8192 );
1338+ calibrationTotalSamplesLayout ->addWidget (calibrationTotalSamplesLabel );
1339+ calibrationTotalSamplesLayout ->addWidget (calibrationTotalSamplesLineEdit );
13401340
13411341 QWidget *motorRPMWidget = new QWidget (calibrationDatasetConfigCollapseSection);
13421342 QVBoxLayout *motorRPMLayout = new QVBoxLayout (motorRPMWidget);
@@ -1346,7 +1346,7 @@ ToolTemplate *HarmonicCalibration::createCalibrationWidget()
13461346 QLabel *motorRPMLabel = new QLabel (" Motor RPM" , motorRPMWidget);
13471347 Style::setStyle (motorRPMLabel, style::properties::label::subtle);
13481348 calibrationMotorRPMLineEdit = new QLineEdit (QString::number (motor_rpm), motorRPMWidget);
1349- connectLineEditToRPM (calibrationMotorRPMLineEdit, motor_rpm);
1349+ connectLineEditToRPM (calibrationMotorRPMLineEdit, motor_rpm, 1 , fast_motor_rpm );
13501350 motorRPMLayout->addWidget (motorRPMLabel);
13511351 motorRPMLayout->addWidget (calibrationMotorRPMLineEdit);
13521352
@@ -1367,7 +1367,7 @@ ToolTemplate *HarmonicCalibration::createCalibrationWidget()
13671367 calibrationDatasetConfigCollapseSection->contentLayout ()->setSpacing (8 );
13681368 calibrationDatasetConfigCollapseSection->contentLayout ()->addWidget (calibrationModeMenuCombo);
13691369 calibrationDatasetConfigCollapseSection->contentLayout ()->addWidget (calibrationCycleCountWidget);
1370- calibrationDatasetConfigCollapseSection->contentLayout ()->addWidget (calibrationSamplesPerCycleWidget );
1370+ calibrationDatasetConfigCollapseSection->contentLayout ()->addWidget (calibrationTotalSamplesWidget );
13711371 calibrationDatasetConfigCollapseSection->contentLayout ()->addWidget (motorRPMWidget);
13721372 calibrationDatasetConfigCollapseSection->contentLayout ()->addWidget (motorDirectionWidget);
13731373
@@ -1487,7 +1487,6 @@ ToolTemplate *HarmonicCalibration::createCalibrationWidget()
14871487 stopMotor ();
14881488 isStartMotor = false ;
14891489 toggleTabSwitching (true );
1490- toggleCalibrationControls (true );
14911490
14921491 if (isPostCalibration) {
14931492 graphPostDataList = m_admtController->streamBufferedValues ;
@@ -2561,7 +2560,7 @@ void HarmonicCalibration::getDeviceFaultStatus(int sampleRate)
25612560 success = false ;
25622561
25632562 if (!success) {
2564- StatusBarManager::pushUrgentMessage (" Could not read device, disconnecting device" );
2563+ StatusBarManager::pushMessage (" Could not read device, disconnecting device" );
25652564 Q_EMIT m_admtController->requestDisconnect ();
25662565 break ;
25672566 }
@@ -2723,8 +2722,10 @@ void HarmonicCalibration::updateLineEditValues()
27232722 if (count == static_cast <double >(UINT64_MAX)) {
27242723 countValueLabel->setText (" N/A" );
27252724 } else {
2726- if (count == -10 )
2727- countValueLabel->setText (" Invalid turn count" );
2725+ if (count == 54 )
2726+ countValueLabel->setText (" Invalid turn count (54)" );
2727+ else if (count == -9 )
2728+ countValueLabel->setText (" Invalid turn count (-9)" );
27282729 else
27292730 countValueLabel->setText (QString::number (count));
27302731 }
@@ -3257,7 +3258,8 @@ void HarmonicCalibration::getCalibrationSamples()
32573258
32583259void HarmonicCalibration::startCalibration ()
32593260{
3260- totalSamplesCount = cycleCount * samplesPerCycle;
3261+ // totalSamplesCount = cycleCount * samplesPerCycle;
3262+ samplesPerCycle = ceil (totalSamplesCount / cycleCount);
32613263 graphPostDataList.reserve (totalSamplesCount);
32623264 graphPostDataList.squeeze ();
32633265 graphDataList.reserve (totalSamplesCount);
@@ -3542,6 +3544,10 @@ void HarmonicCalibration::resetAllCalibrationState()
35423544 isCalculatedCoeff = false ;
35433545 resetToZero = true ;
35443546 displayCalculatedCoeff ();
3547+
3548+ clearHarmonicRegisters ();
3549+
3550+ toggleCalibrationControls (true );
35453551}
35463552
35473553void HarmonicCalibration::computeSineCosineOfAngles (QVector<double > graphDataList)
@@ -4108,7 +4114,7 @@ void HarmonicCalibration::toggleCalibrationControls(bool value)
41084114{
41094115 calibrationModeMenuCombo->setEnabled (value);
41104116 calibrationCycleCountLineEdit->setEnabled (value);
4111- calibrationSamplesPerCycleLineEdit ->setEnabled (value);
4117+ calibrationTotalSamplesLineEdit ->setEnabled (value);
41124118 calibrationMotorRPMLineEdit->setEnabled (value);
41134119 calibrationMotorDirectionSwitch->setEnabled (value);
41144120}
@@ -5115,15 +5121,12 @@ void HarmonicCalibration::connectRegisterBlockToRegistry(RegisterBlockWidget *wi
51155121 }
51165122}
51175123
5118- void HarmonicCalibration::connectLineEditToRPM (QLineEdit *lineEdit, double &variable)
5124+ void HarmonicCalibration::connectLineEditToRPM (QLineEdit *lineEdit, double &variable, double min, double max )
51195125{
5120- QDoubleValidator *validator = new QDoubleValidator (this );
5121- validator->setNotation (QDoubleValidator::StandardNotation);
5122- lineEdit->setValidator (validator);
5123- connect (lineEdit, &QLineEdit::editingFinished, this , [this , lineEdit, &variable]() {
5126+ connect (lineEdit, &QLineEdit::editingFinished, this , [this , lineEdit, min, max, &variable]() {
51245127 bool ok;
51255128 double value = lineEdit->text ().toDouble (&ok);
5126- if (ok && variable != value) {
5129+ if (ok && variable != value && value >= min && value <= max ) {
51275130 variable = value;
51285131 rotate_vmax = convertRPStoVMAX (convertRPMtoRPS (variable));
51295132 writeMotorAttributeValue (ADMTController::MotorAttribute::ROTATE_VMAX, rotate_vmax);
0 commit comments