M products/BellHybrid/apps/application-bell-settings/models/AboutYourBellModel.cpp => products/BellHybrid/apps/application-bell-settings/models/AboutYourBellModel.cpp +3 -3
@@ 49,9 49,9 @@ namespace app::bell_settings
void AboutYourBellModel::createData()
{
- const auto productSerialNumber = settings.getValue(factoryDataSerialPath, settings::SettingsScope::Global);
- const auto productVersion = settings.getValue(factoryDataVersionPath, settings::SettingsScope::Global);
- const auto productName =
+ const auto &productSerialNumber = settings.getValue(factoryDataSerialPath, settings::SettingsScope::Global);
+ const auto &productVersion = settings.getValue(factoryDataVersionPath, settings::SettingsScope::Global);
+ const auto &productName =
utils::translate("app_bell_settings_about_product") + std::string(" ") + productVersion;
internalData.push_back(
M products/BellHybrid/serial-number-parser/SerialNumberParser.cpp => products/BellHybrid/serial-number-parser/SerialNumberParser.cpp +15 -2
@@ 17,7 17,7 @@
*
*
* New SN is in MMRRCYYWWNNNN form, where:
- * MM - model code, 04 for Harmony;
+ * MM - model code, 04 for Harmony, 05 for Harmony Pro;
* RR - hardware revision, P1, P2, P3...;
* C - case colour; G = gray, B = black;
* YY - production year;
@@ 30,6 30,11 @@ namespace serial_number_parser
{
namespace
{
+ /* Common constants */
+ constexpr auto modelCodeOffset = 0;
+ constexpr auto modelCodeLength = 2;
+ constexpr auto harmonyProModelCode = "05";
+
/* Old serial number constants */
constexpr auto idStringOffset = 0;
constexpr auto idStringLength = 6;
@@ 50,6 55,11 @@ namespace serial_number_parser
return (serialNumber.find_first_not_of("0123456789") == std::string::npos);
}
+ bool isHarmonyPro(const std::string &serialNumber)
+ {
+ return (serialNumber.substr(modelCodeOffset, modelCodeLength) == harmonyProModelCode);
+ }
+
std::optional<VersionMetadata> getDeviceVersionMetadata(const std::string &serialNumber)
{
if (isOldSerialNumberFormat(serialNumber)) {
@@ 69,7 79,10 @@ namespace serial_number_parser
return std::nullopt;
}
- return VersionMetadata(item->second, secondVersion);
+ if (!isHarmonyPro(serialNumber)) {
+ return VersionMetadata(item->second, secondVersion);
+ }
+ return VersionMetadata(item->second, secondProVersion);
}
}
} // namespace serial_number_parser
M products/BellHybrid/serial-number-parser/include/serial-number-parser/Common.hpp => products/BellHybrid/serial-number-parser/include/serial-number-parser/Common.hpp +7 -6
@@ 12,13 12,14 @@ namespace serial_number_parser
constexpr auto unknownSerialNumber = "0000000000000";
- constexpr auto firstVersion = 1;
- constexpr auto secondVersion = 2;
- constexpr auto unknownVersion = 0;
+ constexpr auto unknownVersion = "";
+ constexpr auto firstVersion = "1";
+ constexpr auto secondVersion = "2";
+ constexpr auto secondProVersion = "2 Pro";
using SerialNumber = std::string;
- using CaseColor = std::string;
- using VersionNumber = unsigned;
- using VersionMetadata = std::pair<CaseColor, VersionNumber>;
+ using CaseColour = std::string;
+ using VersionNumber = std::string;
+ using VersionMetadata = std::pair<CaseColour, VersionNumber>;
using DeviceMetadata = std::pair<SerialNumber, VersionMetadata>;
} // namespace serial_number_parser
M products/BellHybrid/services/db/BellFactorySettings.cpp => products/BellHybrid/services/db/BellFactorySettings.cpp +1 -1
@@ 17,7 17,7 @@ namespace settings
factoryData->addRow({Field(factory::serial_number_key), Field(serialNumber.c_str())});
factoryData->addRow({Field(factory::case_colour_key), Field(colour.c_str())});
- factoryData->addRow({Field(factory::device_version_key), Field(std::to_string(version).c_str())});
+ factoryData->addRow({Field(factory::device_version_key), Field(version.c_str())});
return factoryData;
}