From 6b6886fa47c112ddcd89fc32bfa7fe6949962cc3 Mon Sep 17 00:00:00 2001 From: Javier Date: Sun, 27 Aug 2023 15:44:20 +0200 Subject: add support for syncing pens with no name --- smartpen.cc | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'smartpen.cc') 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(); -- cgit v1.2.3