aboutsummaryrefslogtreecommitdiff
path: root/smartpen.cc
diff options
context:
space:
mode:
Diffstat (limited to 'smartpen.cc')
-rw-r--r--smartpen.cc26
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();