[Pkg-running-devel] [openambit] 113/131: Use new cadence parameters in header
Christian Perrier
bubulle at moszumanska.debian.org
Thu Jul 17 20:19:16 UTC 2014
This is an automated email from the git hooks/post-receive script.
bubulle pushed a commit to branch master
in repository openambit.
commit b89a1f656b6176afe65841f406bf9f94606ba8d6
Author: Emil Ljungdahl <emil at kratern.se>
Date: Tue May 27 22:08:48 2014 +0200
Use new cadence parameters in header
---
src/openambit/logstore.cpp | 65 ++++++++++++++++++++++-------
src/openambit/movescount/movescountjson.cpp | 4 +-
src/openambit/movescount/movescountxml.cpp | 5 ++-
3 files changed, 54 insertions(+), 20 deletions(-)
diff --git a/src/openambit/logstore.cpp b/src/openambit/logstore.cpp
index 0d9c9c2..502ad2e 100644
--- a/src/openambit/logstore.cpp
+++ b/src/openambit/logstore.cpp
@@ -562,6 +562,22 @@ void LogStore::XMLReader::readLogHeader()
}
}
}
+ else if (xml.name() == "Cadence") {
+ while (xml.readNextStartElement()) {
+ if (xml.name() == "Avg") {
+ logEntry->logEntry->header.cadence_avg = xml.readElementText().toUInt();
+ }
+ else if (xml.name() == "Max") {
+ logEntry->logEntry->header.cadence_max = xml.readElementText().toUInt();
+ }
+ else if (xml.name() == "MaxTime") {
+ logEntry->logEntry->header.cadence_max_time = xml.readElementText().toUInt();
+ }
+ else {
+ xml.skipCurrentElement();
+ }
+ }
+ }
else if (xml.name() == "Altitude") {
while (xml.readNextStartElement()) {
if (xml.name() == "Max") {
@@ -670,7 +686,14 @@ void LogStore::XMLReader::readLogHeader()
else if (xml.name() == "Unknown3") {
QByteArray val = xml.readElementText().toLocal8Bit();
const char *c_str = val.data();
- for (int i=0; i<6 && i<val.length()/2; i++) {
+ // Handle previously unknown cadence data
+ if (val.length() == 12) {
+ sscanf(c_str, "%2hhx", &logEntry->logEntry->header.cadence_max);
+ c_str += 2 * sizeof(char);
+ sscanf(c_str, "%2hhx", &logEntry->logEntry->header.cadence_avg);
+ c_str += 2 * sizeof(char);
+ }
+ for (int i=0; i<4 && i<val.length()/2; i++) {
sscanf(c_str, "%2hhx", &logEntry->logEntry->header.unknown3[i]);
c_str += 2 * sizeof(char);
}
@@ -678,7 +701,18 @@ void LogStore::XMLReader::readLogHeader()
else if (xml.name() == "Unknown4") {
QByteArray val = xml.readElementText().toLocal8Bit();
const char *c_str = val.data();
- for (int i=0; i<8 && i<val.length()/2; i++) {
+ // Handle previously unknown cadence data
+ if (val.length() == 16) {
+ uint32_t cadence_max_time = 0;
+ uint8_t tmpval;
+ for (int i=0; i<4; i++) {
+ sscanf(c_str, "%2hhx", &tmpval);
+ cadence_max_time |= (tmpval << (8*(3-i)));
+ c_str += 2 * sizeof(char);
+ }
+ logEntry->logEntry->header.cadence_max_time = cadence_max_time;
+ }
+ for (int i=0; i<4 && i<val.length()/2; i++) {
sscanf(c_str, "%2hhx", &logEntry->logEntry->header.unknown4[i]);
c_str += 2 * sizeof(char);
}
@@ -1316,6 +1350,11 @@ bool LogStore::XMLWriter::writeLogEntry()
xml.writeTextElement("Max", QString("%1").arg(logEntry->header.speed_max));
xml.writeTextElement("MaxTime", QString("%1").arg(logEntry->header.speed_max_time));
xml.writeEndElement();
+ xml.writeStartElement("Cadence");
+ xml.writeTextElement("Avg", QString("%1").arg(logEntry->header.cadence_avg));
+ xml.writeTextElement("Max", QString("%1").arg(logEntry->header.cadence_max));
+ xml.writeTextElement("MaxTime", QString("%1").arg(logEntry->header.cadence_max_time));
+ xml.writeEndElement();
xml.writeStartElement("Altitude");
xml.writeTextElement("Max", QString("%1").arg(logEntry->header.altitude_max));
xml.writeTextElement("Min", QString("%1").arg(logEntry->header.altitude_min));
@@ -1355,21 +1394,15 @@ bool LogStore::XMLWriter::writeLogEntry()
xml.writeTextElement("Unknown1", hexstring);
hexstring = hexstring.sprintf("%02x", logEntry->header.unknown2);
xml.writeTextElement("Unknown2", hexstring);
- hexstring = hexstring.sprintf("%02x%02x%02x%02x%02x%02x", logEntry->header.unknown3[0],
- logEntry->header.unknown3[1],
- logEntry->header.unknown3[2],
- logEntry->header.unknown3[3],
- logEntry->header.unknown3[4],
- logEntry->header.unknown3[5]);
+ hexstring = hexstring.sprintf("%02x%02x%02x%02x", logEntry->header.unknown3[0],
+ logEntry->header.unknown3[1],
+ logEntry->header.unknown3[2],
+ logEntry->header.unknown3[3]);
xml.writeTextElement("Unknown3", hexstring);
- hexstring = hexstring.sprintf("%02x%02x%02x%02x%02x%02x%02x%02x", logEntry->header.unknown4[0],
- logEntry->header.unknown4[1],
- logEntry->header.unknown4[2],
- logEntry->header.unknown4[3],
- logEntry->header.unknown4[4],
- logEntry->header.unknown4[5],
- logEntry->header.unknown4[6],
- logEntry->header.unknown4[7]);
+ hexstring = hexstring.sprintf("%02x%02x%02x%02x", logEntry->header.unknown4[0],
+ logEntry->header.unknown4[1],
+ logEntry->header.unknown4[2],
+ logEntry->header.unknown4[3]);
xml.writeTextElement("Unknown4", hexstring);
hexstring = hexstring.sprintf("%02x%02x%02x%02x", logEntry->header.unknown5[0],
logEntry->header.unknown5[1],
diff --git a/src/openambit/movescount/movescountjson.cpp b/src/openambit/movescount/movescountjson.cpp
index 1503dd9..bbb30b7 100644
--- a/src/openambit/movescount/movescountjson.cpp
+++ b/src/openambit/movescount/movescountjson.cpp
@@ -233,7 +233,7 @@ int MovesCountJSON::generateLogData(LogEntry *logEntry, QByteArray &output)
content.insert("ActivityID", logEntry->logEntry->header.activity_type);
content.insert("AscentAltitude", (double)logEntry->logEntry->header.ascent);
content.insert("AscentTime", (double)logEntry->logEntry->header.ascent_time/1000.0);
- content.insert("AvgCadence", QVariant::Invalid);
+ content.insert("AvgCadence", logEntry->logEntry->header.cadence_avg);
content.insert("AvgHR", logEntry->logEntry->header.heartrate_avg);
content.insert("AvgSpeed", (double)logEntry->logEntry->header.speed_avg/3600.0);
content.insert("DescentAltitude", (double)logEntry->logEntry->header.descent);
@@ -261,7 +261,7 @@ int MovesCountJSON::generateLogData(LogEntry *logEntry, QByteArray &output)
if (logEntry->logEntry->header.altitude_min >= -1000 && logEntry->logEntry->header.altitude_min <= 10000)
content.insert("LowAltitude", (double)logEntry->logEntry->header.altitude_min);
content.insert("Marks", marksContent);
- content.insert("MaxCadence", QVariant::Invalid);
+ content.insert("MaxCadence", logEntry->logEntry->header.cadence_max);
content.insert("MaxSpeed", (double)logEntry->logEntry->header.speed_max/3600.0);
if (logEntry->logEntry->header.temperature_max >= -1000 && logEntry->logEntry->header.temperature_max <= 1000) {
content.insert("MaxTemp", (double)logEntry->logEntry->header.temperature_max/10.0);
diff --git a/src/openambit/movescount/movescountxml.cpp b/src/openambit/movescount/movescountxml.cpp
index b23b6e2..523bfd1 100644
--- a/src/openambit/movescount/movescountxml.cpp
+++ b/src/openambit/movescount/movescountxml.cpp
@@ -217,9 +217,10 @@ bool MovesCountXML::XMLWriter::writeLogEntry()
xml.writeTextElement("Max", QString::number((double)logEntry->logEntry->header.speed_max/3600.0, 'g', 16));
xml.writeTextElement("MaxTime", QString::number((double)logEntry->logEntry->header.speed_max_time/1000.0, 'g', 16));
xml.writeEndElement();
- // We have no idea about cadence yet, but we better include an empty tag!
xml.writeStartElement("Cadence");
- xml.writeTextElement("MaxTime", QString::number(0));
+ xml.writeTextElement("Avg", QString::number((double)logEntry->logEntry->header.cadence_avg/60.0, 'g', 16));
+ xml.writeTextElement("Max", QString::number((double)logEntry->logEntry->header.cadence_max/60.0, 'g', 16));
+ xml.writeTextElement("MaxTime", QString::number((double)logEntry->logEntry->header.cadence_max_time/1000.0, 'g', 16));
xml.writeEndElement();
xml.writeStartElement("Altitude");
xml.writeTextElement("Max", QString("%1").arg(logEntry->logEntry->header.altitude_max));
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-running/openambit.git
More information about the Pkg-running-devel
mailing list