diff options
Diffstat (limited to 'smartpen.cc')
-rw-r--r-- | smartpen.cc | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/smartpen.cc b/smartpen.cc index 686170d..12e2ac2 100644 --- a/smartpen.cc +++ b/smartpen.cc @@ -87,7 +87,7 @@ QByteArray Smartpen::getObject(const QString &name) QByteArray Smartpen::getParameter(Parameter parameter) { - QString objectName = QString("ppdata?key=pp%1").arg(uint(parameter), 4, 16); + QString objectName = QString("ppdata?key=pp%1").arg(uint(parameter), 4, 16, QChar('0')); QByteArray data = getObject(objectName); QXmlStreamReader r(data); @@ -109,14 +109,34 @@ QByteArray Smartpen::getParameter(Parameter parameter) return QByteArray(); } +Smartpen::PenId Smartpen::getPenId() +{ + PenId id; + QByteArray value = getParameter(Parameter::Id); + if (value.isEmpty() || value.size() != 1 + sizeof(Smartpen::PenId)) { + qWarning() << "got invalid value for pen id: " << value.toHex(); + return 0; + } + QDataStream ds(value); + ds.setByteOrder(QDataStream::BigEndian); + ds.skipRawData(1); // Unclear what first byte is + ds >> id; + return id; +} + +QString Smartpen::getPenSerial() +{ + return toPenSerial(getPenId()); +} + QString Smartpen::getPenName() { - return QString::fromUtf8(getParameter(PenName)); + return QString::fromUtf8(getParameter(Parameter::Name)); } Smartpen::PenTime Smartpen::getPenTime(Parameter parameter) { - Smartpen::PenTime time; + PenTime time; QByteArray value = getParameter(parameter); if (value.isEmpty() || value.size() != sizeof(Smartpen::PenTime)) { qWarning() << "got invalid value for pen time: " << value.toHex(); |