summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjerome-labidurie <jerome@labidurie.fr>2015-06-08 20:25:01 +0200
committerjerome-labidurie <jerome@labidurie.fr>2015-06-08 20:25:01 +0200
commite33c85fdd2e5addabab39673bb761460684e23a0 (patch)
tree429417013e9d52dbfaab999b80891ba3ecfe9a24
parent108c0521929cab17f708693d1123c8d33c17c8d5 (diff)
Add Garmin Swim ids
Better logging for length message
-rw-r--r--src/FIT.cpp25
-rw-r--r--src/FIT.hpp1
2 files changed, 16 insertions, 10 deletions
diff --git a/src/FIT.cpp b/src/FIT.cpp
index cbf66b9..048b3c1 100644
--- a/src/FIT.cpp
+++ b/src/FIT.cpp
@@ -691,6 +691,7 @@ FIT::FIT()
productMap[ManufacturerGarmin][GarminFR310XT4T] = "Forerunner 310XT 4T";
productMap[ManufacturerGarmin][GarminTraningCenter] = "Traning Center";
productMap[ManufacturerGarmin][GarminConnect] = "Connect";
+ productMap[ManufacturerGarmin][GarminSwim] = "Swim";
manufacturer = 0;
@@ -906,6 +907,8 @@ string FIT::getDataString(uint8_t *ptr, uint8_t size, uint8_t baseType, uint8_t
bool FIT::parse(vector<uint8_t> &fitData, GPX &gpx)
{
+ ostringstream strstrm;
+
LOG(LOG_DBG2) << "Parsing FIT file\n";
FITHeader fitHeader;
@@ -1155,54 +1158,56 @@ bool FIT::parse(vector<uint8_t> &fitData, GPX &gpx)
}
case 101: // Length
{
- LOG(LOG_DBG2) << rd.rfx.globalNum << "." << (unsigned)rf.definitionNum << ": " << messageFieldNameMap[rd.rfx.globalNum][rf.definitionNum];
+ strstrm.clear();
+ strstrm << rd.rfx.globalNum << "." << (unsigned)rf.definitionNum << ": " << messageFieldNameMap[rd.rfx.globalNum][rf.definitionNum] << " (";
switch (rf.definitionNum)
{
case 2 : // Start Time
{
- LOG(LOG_DBG2) << getDataString(ptr, 0, BT_UInt32, rd.rfx.globalNum, rf.definitionNum);
+ strstrm << getDataString(ptr, 0, BT_UInt32, rd.rfx.globalNum, rf.definitionNum);
break;
}
case 3 : // Total Elapsed Time
{
- LOG(LOG_DBG2) << getDataString(ptr, 0, BT_UInt32, rd.rfx.globalNum, rf.definitionNum);
+ strstrm << getDataString(ptr, 0, BT_UInt32, rd.rfx.globalNum, rf.definitionNum);
break;
}
case 4 : // Total Timer Time
{
- LOG(LOG_DBG2) << getDataString(ptr, 0, BT_UInt32, rd.rfx.globalNum, rf.definitionNum);
+ strstrm << getDataString(ptr, 0, BT_UInt32, rd.rfx.globalNum, rf.definitionNum);
break;
}
case 5: // Total Strokes
{
- LOG(LOG_DBG2) << *(uint16_t*)ptr;
+ strstrm << *(uint16_t*)ptr;
break;
}
case 6: // Average Speed
{
// unit: m/s * 1000
double speed = (double)(*(uint16_t*)ptr) / 1000;
- LOG(LOG_DBG2) << speed;
+ strstrm << speed;
break;
}
case 7: // Swimming stroke
{
- LOG(LOG_DBG2) << getDataString(ptr, 0, BT_Enum, rd.rfx.globalNum, rf.definitionNum);
+ strstrm << getDataString(ptr, 0, BT_Enum, rd.rfx.globalNum, rf.definitionNum);
break;
}
case 9: // Average Swimming Cadence
{
- LOG(LOG_DBG2) << (int) *(uint8_t*)ptr;
+ strstrm << (int) *(uint8_t*)ptr;
break;
}
case 12: // Length Type
{
- LOG(LOG_DBG2) << getDataString(ptr, 0, BT_Enum, rd.rfx.globalNum, rf.definitionNum);
+ strstrm << getDataString(ptr, 0, BT_Enum, rd.rfx.globalNum, rf.definitionNum);
break;
}
}
- LOG(LOG_DBG2) << "\n";
+ strstrm << ")\n";
+ LOG(LOG_DBG2) << strstrm.str();
break;
}
}
diff --git a/src/FIT.hpp b/src/FIT.hpp
index a6bb7af..f848cec 100644
--- a/src/FIT.hpp
+++ b/src/FIT.hpp
@@ -270,6 +270,7 @@ enum GarminProducts
GarminFR70 = 1436,
GarminFR310XT4T = 1446,
GarminAMX = 1461,
+ GarminSwim = 1499,
GarminSDM4 = 10007,
GarminTraningCenter = 20119,
GarminConnect = 65534