lapRecordingType:
Code: Select all
typedef
enum
{
LapRecordingUnknown, // Used for old recordings with unknown state or as null value
LapRecordingManual, // User triggered manual recording
LapRecordingTriggered, // Fully triggered recording with no information on status of track set used
LapRecordingIncomplete // Recording with one end triggered and the other manual (both situations happen)
} LapRecordingType;
Using canonic int mapping (Unknown = 0 etc).
overallDistance:
2D only
positioning:
components are differential, positioning, interpolated
Code: Select all
typedef
enum
{
dsUnknown = 0,
ds2D3D,
dsDGPS,
dsInvalid
} DifferentialStatus;
typedef
enum
{
psNoFix = 0, // Invalid fix
ps2D, // Either a fix measured with a too small number of satellites, or a triangulated fix
ps3D, // Standard measured fix
psVirtual2D3D, // Unknown quality of a fix, mostly used to signal a virtual (generated) fix
ps2DIndoor // Position delivered by some (non-GPS) indoor positioning system
} PositionFixing;
interpolated is either 1 or 0 for true or false. Any fix delivered by the GPS chip and stored "as-is" will come with 0, any fix calculated by LapTimer using interpolation is 1. The later occurs for fixes approximating a trigger line passed.
lap -> date:
true and actually a design flaw; converting it to UTC during an automatic migration would require the time zone for every track; we haven't done that yet
LapTimer uses metric unit internally - including import / export to HLPTRL
fix indexes are ignored during import (out of my head without checking the code)
accuracy GPS:
meters
acceleration:
G values lateral and lineal relative to driving direction in multiples of G; see the Acceleration Handling on
http://www.gps-laptimer.de/documentation
hdop:
set either hdop or accuracy or some default value in case you do not have it (hdop = 1)
OBD synchronization:
LapTimer full interpolates OBD to the (GPS) storage rate
OBD parameters:
this is the raw code doing the OBD export; values not set are not exported
Code: Select all
builder.appendXMLTaggedChannelStorageValue (ENGINE_RPM_CID, recordP->obdFix.rpm1);
builder.appendXMLTaggedChannelStorageValue (ENGINE_MAF_CID, recordP->obdFix.maf100, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_SPEED_CID, recordP->obdFix.obdSpeed10);
builder.appendXMLTaggedChannelStorageValue (ENGINE_TPS_CID, recordP->obdFix.throttlePos100);
builder.appendXMLTaggedChannelStorageValue (ENGINE_FLI_CID, recordP->obdFix.fuelLevel100, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_ECT_CID, recordP->obdFix.coolantTemperature10, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_EOT_CID, recordP->obdFix.oilTemperature10, true);
if (recordP->obdFix.map1)
builder.appendXMLTaggedChannelValue (ENGINE_MAP_CID, 2, recordP->obdFix.map1/100.0);
builder.appendXMLTaggedChannelStorageValue (ENGINE_IAT_CID, recordP->obdFix.iatCelsius40, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_GEAR_CID, recordP->obdFix.gear, true);
if (recordP->obdFix.oilPressureI10)
builder.appendXMLTaggedChannelValue (ENGINE_OILP_CID, 1, recordP->obdFix.oilPressureI10/10.0); // Special version to map kpa to bar in export
if (recordP->obdFix.brakePressureI50)
builder.appendXMLTaggedChannelValue (ENGINE_BRAKEPRESSURE_CID, 1, recordP->obdFix.brakePressureI50/2.0); // Special version to map kpa to bar in export
builder.appendXMLTaggedChannelStorageValue (ENGINE_SPEEDRL_CID, recordP->obdFix.obdSpeedRL10, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_SPEEDRR_CID, recordP->obdFix.obdSpeedRR10, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_SPEEDFL_CID, recordP->obdFix.obdSpeedFL10, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_SPEEDFR_CID, recordP->obdFix.obdSpeedFR10, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_YAWRATE_CID, recordP->obdFix.yawRate100, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_ODOMETER_CID, recordP->obdFix.odometer1000, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_STEERANGLE_CID, recordP->obdFix.steeringWheelAngle10, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_STEERRATE_CID, recordP->obdFix.steeringWheelAngleRate1, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_FIXTYPE_CID, recordP->obdFix.fixType, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_SUPPORTLEVEL_CID, recordP->obdFix.supportLevel, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_DRIVERPOWER_CID, recordP->obdFix.driverPower1000, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_BATTERYTEMP_CID, recordP->obdFix.batteryTemperature10, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_BATTERYVOLTAGE_CID, recordP->obdFix.batteryVoltage100, true);
builder.appendXMLTaggedChannelStorageValue (ENGINE_CONSUMEDPOWER_CID, recordP->obdFix.engineConsumedPower1000, true);
float fields:
please name a sample, I need to look into it; internally, LapTimer is working with integers frequently (100 instead or 1.00)