Implement checking sensor version

This commit is contained in:
BlackMark 2020-07-04 22:59:47 +02:00
parent 6c50eb6f84
commit 7c54a080d1
2 changed files with 19 additions and 1 deletions

View File

@ -1,5 +1,7 @@
#include "sensor_driver.hpp"
#include <regex>
#include <QSerialPort>
#include <QSerialPortInfo>
#include <QtDebug>
@ -146,5 +148,20 @@ bool SensorDriver::isValidSensor(const QString& serialPortName) const
return false;
}
return false;
const auto version = parseVersionResponse(response);
return version == "AdaptiveBrightness v1.2";
}
std::string SensorDriver::parseVersionResponse(const QByteArray& response) const
{
const auto versionRegex = std::regex("[a-zA-Z]+ v[0-9]\\.[0-9]");
const auto strResponse = response.toStdString();
std::smatch versionMatch;
if(std::regex_search(strResponse, versionMatch, versionRegex)) {
qDebug(ltr("Found version match: '%1'").arg(QString().fromStdString(versionMatch[0].str())));
return versionMatch[0];
}
return {};
}

View File

@ -29,4 +29,5 @@ class SensorDriver {
private:
bool getSensorCommandResponse(const QString& serialPortName, QByteArray command, QByteArray& response) const;
bool isValidSensor(const QString& serialPortName) const;
std::string parseVersionResponse(const QByteArray& response) const;
};