/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright 2013 - 2022, nymea GmbH * Contact: contact@nymea.io * * This file is part of nymea. * This project including source code and documentation is protected by * copyright law, and remains the property of nymea GmbH. All rights, including * reproduction, publication, editing and translation, are reserved. The use of * this project is subject to the terms of a license agreement to be concluded * with nymea GmbH in accordance with the terms of use of nymea GmbH, available * under https://nymea.io/license * * GNU Lesser General Public License Usage * Alternatively, this project may be redistributed and/or modified under the * terms of the GNU Lesser General Public License as published by the Free * Software Foundation; version 3. This project is distributed in the hope that * it will be useful, but WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this project. If not, see . * * For any further details and any questions please contact us under * contact@nymea.io or see our FAQ/Licensing Information on * https://nymea.io/license/faq * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #ifndef KEBAPRODUCTINFO_H #define KEBAPRODUCTINFO_H #include #include class KebaProductInfo { Q_GADGET public: enum Connector { ConnectorSocket, ConnectorCable }; Q_ENUM(Connector) enum ConnectorType { Type1, Type2, Shutter }; Q_ENUM(ConnectorType) enum ConnectorCurrent { Current13A = 1, Current16A = 2, Current20A = 3, Current32A = 4 }; Q_ENUM(ConnectorCurrent) enum Cable { NoCable = 0, Cable4m = 1, Cable6m = 4, Cable5m = 5, Cable5p5m = 7 }; Q_ENUM(Cable) enum Series { SeriesE, SeriesB, SeriesC, SeriesA, SeriesXWlan, SeriesXWlan3G, SeriesXWlan4G, SeriesX3G, SeriesX4G }; Q_ENUM(Series) enum Meter { NoMeter, MeterNotCalibrated, MeterCalibrated, MeterCalibratedNationalCertified }; Q_ENUM(Meter) enum Authorization { NoAuthorization, Rfid, Key }; Q_ENUM(Authorization) KebaProductInfo(const QString &productString); bool isValid() const; QString productString() const; // Porperties in the string QString manufacturer() const; // KC (KeConnect), BMW... QString model() const; // P30 QString countryCode() const; // E Connector connector() const; // Socket / Cable ConnectorType connectorType() const; // Type 1 / Type 2 ConnectorCurrent current() const; // 13A, 16A ... Cable cable() const; // 4m, 6m... Series series() const; // x, c, a... int phaseCount() const; // 1 or 3 Meter meter() const; // No meter, Calibrated, ... Authorization authorization() const; bool germanEdition() const; private: bool m_isValid = true; QString m_productString; QString m_manufacturer; QString m_model; QString m_countryCode; Connector m_connector; ConnectorType m_connectorType; ConnectorCurrent m_current; Cable m_cable; Series m_series; int m_phaseCount; Meter m_meter; Authorization m_authorization; bool m_germanEdition = false; }; #endif // KEBAPRODUCTINFO_H