API dokumentacija
U ovom odjeljku su prikazane funkcije koje se koriste za interfejs sa programima koji koriste ovu biblioteku.
Globalni simboli
Defines
-
DEVLIB_EXPORT
Napomena
Simbol DEVLIB_EXPORT je potrebno staviti ispred deklaracije svake klase i
funkcije kako bi se biblioteka ispravno kompajlirala i mogla koristiti.
Klasa ValueSpec
#include "devlib/value.h"
-
class Devlib::ValueSpec
Public Functions
-
ValueSpec() = default
-
ValueSpec(const QString &type, const QStringList range, const QString &unit = "")
-
QString getValueType() const
-
QStringList getValueRange() const
-
QString getUnit() const
-
bool isFloat() const
-
bool isInt() const
-
bool isBool() const
-
bool isVoid() const
-
bool isCustomEnum() const
-
float getMinFloat() const
-
float getMaxFloat() const
-
int getMinInt() const
-
int getMaxInt() const
-
void setValueType(const QString &type)
-
void setValueRange(const QStringList &range)
-
void setSpec(const QString &type, const QStringList &range)
-
void setSpec(const QString &type, const QStringList &range, const QString &unit)
-
void setUnit(const QString &unit)
Public Static Functions
-
static bool isValidType(const QString &type)
-
static bool isValidSpec(const QString &type, const QStringList &range)
Friends
- friend class Data
- friend friend QStringList _parseValueRange (const QJsonValue &valueRange, const QString &valueType)
-
ValueSpec() = default
-
class Devlib::ValueSpec
Value specification. A tuple of (valueType, valueRange, unit).
This class contains the definition of a value type, along with its range of possible values and unit of measurement.
Public Functions
-
ValueSpec() = default
Default constructor
-
ValueSpec(const QString &type, const QStringList range, const QString &unit = "")
Create a value spec.
- Parameters
type – The value type.
range – The range of possible values.
unit – [optional] The unit of measurement
- Throws
std::logic_error – If the parameters do not make a valid
ValueSpec.
-
QString getValueType() const
-
QStringList getValueRange() const
-
QString getUnit() const
-
bool isFloat() const
-
bool isInt() const
-
bool isBool() const
-
bool isVoid() const
-
bool isCustomEnum() const
-
float getMinFloat() const
Return the minimum value of this
ValueSpecif it is of type float.- Throws
std::logic_error – If this
ValueSpecis not of type float.
-
float getMaxFloat() const
Return the maximum value of this
ValueSpecif it is of typefloat.- Throws
std::logic_error – If this
ValueSpecis not of typefloat.
-
int getMinInt() const
Return the minimum value of this
ValueSpecif it is of typeint.- Throws
std::logic_error – If this
ValueSpecis not of typeint.
-
int getMaxInt() const
Return the maximum value of this
ValueSpecif it is of typeint.- Throws
std::logic_error – If this
ValueSpecis not of typeint.
-
void setValueType(const QString &type)
setValueType
- Throws
std::logic_error – If
typeis not compatible with the value range of this object.
-
void setValueRange(const QStringList &range)
setValueRange
- Throws
std::logic_error – If
rangeis not compatible with the value type of this object.
-
void setSpec(const QString &type, const QStringList &range)
-
void setSpec(const QString &type, const QStringList &range, const QString &unit)
-
void setUnit(const QString &unit)
Public Static Functions
-
static bool isValidType(const QString &type)
Test if
typeis a valid C++ identifier.
-
static bool isValidSpec(const QString &type, const QStringList &range)
Test if the pair (
type,range) can be used to create a validValueSpec.
Friends
- friend class Data
- friend friend QStringList _parseValueRange (const QJsonValue &valueRange, const QString &valueType)
-
ValueSpec() = default
Klasa Data
#include "devlib/data.h"
-
class Devlib::Data
A value that can be received from a device.
Public Functions
-
Data() = default
-
Data(const QString &name, const QString &friendlyName, const ValueSpec &valueSpec)
-
QString getName() const
-
QString getFriendlyName() const
-
ValueSpec &getValueSpec()
-
ValueSpec getValueSpec() const
-
void setName(const QString &name)
-
void setFriendlyName(const QString &name)
-
void setValueSpec(const ValueSpec &spec)
-
Data() = default
Struktura Condition
#include "devlib/function.h"
Dijagram klasa
-
struct Devlib::Condition
A condition to enable a device function.
It is always of the format (value of dataName) = value.
This class is meant to be used by the GUI/logic module. It not of interest for device programmers.
Public Members
-
QString dataName
-
QString value
-
QString dataName
Klasa Function i podklase
#include "devlib/function.h"
Dijagram klasa
-
class Devlib::Function
Subclassed by Devlib::MultiFunction, Devlib::SingleFunction
Public Functions
-
virtual bool isSingleFunction() const = 0
-
virtual bool isMultiFunction() const
-
virtual QList<SingleFunction*> getSingleFunctions() = 0
-
virtual QList<const SingleFunction*> getSingleFunctions() const = 0
-
virtual bool isSingleFunction() const = 0
-
class Devlib::Function
A function that a device can perform.
Subclassed by Devlib::MultiFunction, Devlib::SingleFunction
Public Functions
-
virtual bool isSingleFunction() const = 0
-
virtual bool isMultiFunction() const
-
virtual QList<SingleFunction*> getSingleFunctions() = 0
-
virtual QList<const SingleFunction*> getSingleFunctions() const = 0
-
virtual bool isSingleFunction() const = 0
-
class Devlib::SingleFunction : public Devlib::Function
Public Functions
-
SingleFunction()
-
virtual ~SingleFunction() = default
-
SingleFunction(const QString &name, const QString &friendlyName, const ValueSpec &valueSpec, const Condition &condition = {})
-
QString getName() const
-
QString getFriendlyName() const
-
virtual bool isSingleFunction() const override
-
virtual QList<SingleFunction*> getSingleFunctions() override
-
virtual QList<const SingleFunction*> getSingleFunctions() const override
-
void setName(const QString &name)
-
void setFriendlyName(const QString &friendly)
-
SingleFunction()
-
class Devlib::SingleFunction : public Devlib::Function
An atomic function that is not made up of any subfunctions.
Public Functions
-
SingleFunction()
-
virtual ~SingleFunction() = default
-
SingleFunction(const QString &name, const QString &friendlyName, const ValueSpec &valueSpec, const Condition &condition = {})
-
QString getName() const
-
QString getFriendlyName() const
-
ValueSpec getValueSpec() const
-
Condition getCondition() const
-
virtual bool isSingleFunction() const override
-
virtual QList<SingleFunction*> getSingleFunctions() override
-
virtual QList<const SingleFunction*> getSingleFunctions() const override
-
void setName(const QString &name)
-
void setFriendlyName(const QString &friendly)
-
void setValueSpec(const ValueSpec &spec)
-
void setCondition(const Condition &condition)
-
SingleFunction()
-
class Devlib::MultiFunction : public Devlib::Function
Public Functions
-
MultiFunction() = default
-
MultiFunction(const QList<SingleFunction*> &subfunctions)
-
virtual ~MultiFunction() = default
-
virtual bool isSingleFunction() const override
-
virtual QList<SingleFunction*> getSingleFunctions() override
-
virtual QList<const SingleFunction*> getSingleFunctions() const override
-
void setSubfunctions(const QList<SingleFunction*> &subfunctions)
-
MultiFunction() = default
-
class Devlib::MultiFunction : public Devlib::Function
A function that is wholly made up of other subfunctions.
Public Functions
-
MultiFunction() = default
-
MultiFunction(const QList<SingleFunction*> &subfunctions)
-
virtual ~MultiFunction() = default
-
virtual bool isSingleFunction() const override
-
virtual QList<SingleFunction*> getSingleFunctions() override
-
virtual QList<const SingleFunction*> getSingleFunctions() const override
-
void setSubfunctions(const QList<SingleFunction*> &subfunctions)
-
MultiFunction() = default
Klasa Device
#include "devlib/device.h"
-
class Devlib::Device
Public Functions
-
virtual ~Device()
-
QString getName() const
-
QString getVendorId() const
-
QString getModel() const
-
QString getDescription() const
-
QString operator[](const QString &attr) const
-
QMap<QString, QString> getAttributes() const
-
void setAttribute(const QString &attr, const QString &value)
-
void setName(const QString &name)
-
void setVendorId(const QString &id)
-
void setModel(const QString &id)
-
void setDescription(const QString &serialNo)
Public Static Functions
-
static QStringList textualAttributeNames()
-
virtual ~Device()
-
class Devlib::Device
Public Functions
-
virtual ~Device()
-
QString getName() const
-
QString getVendorId() const
-
QString getModel() const
-
QString getDescription() const
-
QList<Data*> &getData()
-
QList<const Data*> getData() const
-
QList<Function*> &getFunctions()
-
QList<const Function*> getFunctions() const
-
QString operator[](const QString &attr) const
-
QMap<QString, QString> getAttributes() const
-
void setAttribute(const QString &attr, const QString &value)
-
void setName(const QString &name)
-
void setVendorId(const QString &id)
-
void setModel(const QString &id)
-
void setDescription(const QString &serialNo)
-
void setData(const QList<Data*> &data)
-
void setFunctions(const QList<Function*> &functions)
Public Static Functions
-
static QStringList textualAttributeNames()
-
virtual ~Device()
Funkcije za rad sa JSON
#include "devlib/json.h"
-
namespace Devlib
Functions
- Device DEVLIB_EXPORT jsonParseDevice (const QString &factoryFile)
- Data DEVLIB_EXPORT * jsonParseData (const QJsonObject &data)
- SingleFunction DEVLIB_EXPORT * jsonParseFunction (const QJsonObject &func)
- MultiFunction DEVLIB_EXPORT * jsonParseFunction (const QJsonArray &func)
- Condition DEVLIB_EXPORT jsonParseCondition (const QString &cond)
- ValueSpec DEVLIB_EXPORT jsonParseValueSpec (const QJsonObject &obj)
-
namespace Devlib
Functions
- Device DEVLIB_EXPORT jsonParseDevice (const QString &factoryFile)
Parse the contents of factory_device.json and user_device.json and return a
Deviceobject.If the parameter
factoryFileis an empty string, a device with default values will be returned.- Throws
std::logic_error – If the file cannot be parsed into a device.
- Data DEVLIB_EXPORT * jsonParseData (const QJsonObject &data)
Parse a device data object and return a
Dataobject.- Throws
std::logic_error – If
datacannot be parsed into a validDataobject.
- SingleFunction DEVLIB_EXPORT * jsonParseFunction (const QJsonObject &func)
Parse a JSON object
funcand return aSingleFunction.- Throws
std::logic_error – If
funccannot be parsed into a validSingleFunctionobject.
- MultiFunction DEVLIB_EXPORT * jsonParseFunction (const QJsonArray &func)
Parse a JSON object
funcand return aMultiFunction.- Throws
std::logic_error – If
funccontains invalidSingleFunctionobjects.
- Condition DEVLIB_EXPORT jsonParseCondition (const QString &cond)
Parse the JSON object
condand return aConditionobject.- Throws
std::logic_error – If
condcannot be parsed into a validCondition.
- ValueSpec DEVLIB_EXPORT jsonParseValueSpec (const QJsonObject &obj)
Parse the JSON object
valueSpecand return aValueSpecobject.- Parameters
valueSpec – The data or function object containing the attributes
valueType,valueRangeandunit. TheValueSpecobject is created asValueSpec(valueType, valueRange, unit). Some of these can be omitted, which will implicitly set them to their default value (confer the device representation specification).- Throws
std::logic_error – If
valueSpecdoes not contain a validValueSpec.