Device: modify wheel size configuration

fixes #986
This commit is contained in:
Damien
2014-12-10 20:56:58 +01:00
parent 5d13307f96
commit 1a4765016c
6 changed files with 109 additions and 102 deletions

View File

@@ -23,6 +23,8 @@
#include "DeviceTypes.h"
#include "DeviceConfiguration.h"
#define PI M_PI
//
// Model for the device list, populates tie deviceList QTableView
//
@@ -159,3 +161,30 @@ DeviceConfigurations::writeConfig(QList<DeviceConfiguration> Configuration)
}
}
const QStringList
WheelSize::RIM_SIZES = QStringList() << "--" << "700c/29er" << "650b/27.5\"" << "650c" << "26\"";
static const float RIM_DIAMETERS[] = {0, 622, 571, 559};
const QStringList
WheelSize::TIRE_SIZES = QStringList() << "--" << "20mm" << "23mm" << "25mm" << "28mm" << "1.00\"" << "1.50\"" << "1.75\"" << "1.90\"" << "1.95\"" << "2.00\"" << "2.10\"" << "2.125\"";
// -- 20mm 23mm 25mm 28mm 1.00" 1.50" 1.75" 1.90" 1.95" 2.00" 2.10" 2.125"
static const float TIRE_DIAMETERS[] = {0, 40, 46, 50, 56, 50.8, 76.2, 88.9, 96.5, 99, 101.6, 106.7, 108};
int
WheelSize::calcPerimeter(int rimSizeIndex, int tireSizeIndex)
{
// http://www.bikecalc.com/wheel_size_math
if (rimSizeIndex>0 && rimSizeIndex<4 && tireSizeIndex<14) {
float rim = RIM_DIAMETERS[rimSizeIndex];
float tire = TIRE_DIAMETERS[tireSizeIndex];
if (rim>0 && tire>0) {
return round((rim+tire) * PI);
}
}
return 0;
}