multi-channel Tuner Studio tooth logger #1284
This commit is contained in:
parent
412fea4648
commit
5f1e4666e2
|
@ -441,9 +441,9 @@
|
|||
#define coastingFuelCutTps_offset_hex c50
|
||||
#define communicationLedPin_offset 1812
|
||||
#define communicationLedPin_offset_hex 714
|
||||
#define COMPOSITE_DATA_LENGTH 2000
|
||||
#define COMPOSITE_PACKET_COUNT 1000
|
||||
#define COMPOSITE_PACKET_SIZE 2
|
||||
#define COMPOSITE_DATA_LENGTH 2500
|
||||
#define COMPOSITE_PACKET_COUNT 500
|
||||
#define COMPOSITE_PACKET_SIZE 5
|
||||
#define CONSOLE_DATA_PROTOCOL_TAG " @"
|
||||
#define consoleLoopPeriodMs_offset 716
|
||||
#define consoleLoopPeriodMs_offset_hex 2cc
|
||||
|
@ -1965,6 +1965,9 @@
|
|||
#define todoClutchDownPinInverted_offset_hex 3d0
|
||||
#define todoClutchUpPinInverted_offset 976
|
||||
#define todoClutchUpPinInverted_offset_hex 3d0
|
||||
#define TOOTH_DATA_LENGTH 2000
|
||||
#define TOOTH_PACKET_COUNT 1000
|
||||
#define TOOTH_PACKET_SIZE 2
|
||||
#define TOP_DEAD_CENTER_MESSAGE "r"
|
||||
#define TOTAL_CONFIG_SIZE 20000
|
||||
#define TOTAL_CONFIG_SIZE_hex 4e20
|
||||
|
|
|
@ -16,17 +16,51 @@
|
|||
#include "efilib.h"
|
||||
#include "tunerstudio_configuration.h"
|
||||
|
||||
static uint16_t buffer[1000] CCM_OPTIONAL;
|
||||
typedef struct __attribute__ ((packed)) {
|
||||
uint16_t timestamp;
|
||||
} tooth_logger_s;
|
||||
|
||||
typedef struct __attribute__ ((packed)) {
|
||||
// the whole order of all packet bytes is reversed, not just the 'endian-swap' integers
|
||||
uint32_t timestamp;
|
||||
// unfortunately all these fields are required by TS...
|
||||
bool priLevel : 1;
|
||||
bool secLevel : 1;
|
||||
bool trigger : 1;
|
||||
bool sync : 1;
|
||||
} composite_logger_s;
|
||||
|
||||
static composite_logger_s buffer[COMPOSITE_PACKET_COUNT] CCM_OPTIONAL;
|
||||
static size_t NextIdx = 0;
|
||||
static volatile bool ToothLoggerEnabled = false;
|
||||
|
||||
static uint32_t lastEdgeTimestamp = 0;
|
||||
|
||||
void SetNextEntry(uint16_t entry) {
|
||||
static bool trigger1 = false;
|
||||
static bool trigger2 = false;
|
||||
|
||||
//char (*__kaboom)[sizeof( composite_logger_s )] = 1;
|
||||
//char (*__kaboom)[sizeof( buffer )] = 1;
|
||||
|
||||
//void SetNextToothEntry(uint16_t entry) {
|
||||
// TS uses big endian, grumble
|
||||
buffer[NextIdx] = SWAP_UINT16(entry);
|
||||
// buffer[NextIdx] = SWAP_UINT16(entry);
|
||||
//NextIdx++;
|
||||
|
||||
|
||||
static void SetNextCompositeEntry(uint32_t nowUs, bool trigger1, bool trigger2) {
|
||||
// TS uses big endian, grumble
|
||||
buffer[NextIdx].timestamp = SWAP_UINT32(nowUs);
|
||||
buffer[NextIdx].priLevel = trigger1;
|
||||
buffer[NextIdx].secLevel = trigger2;
|
||||
// todo:
|
||||
//buffer[NextIdx].sync = isSynced;
|
||||
//buffer[NextIdx].trigger = wtfIsTriggerIdk;
|
||||
|
||||
NextIdx++;
|
||||
|
||||
static_assert(sizeof(composite_logger_s) == COMPOSITE_PACKET_SIZE, "composite packet size");
|
||||
|
||||
// If we hit the end, loop
|
||||
if (NextIdx >= sizeof(buffer) / sizeof(buffer[0])) {
|
||||
NextIdx = 0;
|
||||
|
@ -39,19 +73,41 @@ void LogTriggerTooth(trigger_event_e tooth, efitick_t timestamp) {
|
|||
return;
|
||||
}
|
||||
|
||||
// We currently only support the primary trigger falling edge
|
||||
// (this is the edge that VR sensors are accurate on)
|
||||
// Since VR sensors are the most useful case here, this is okay for now.
|
||||
if (tooth != SHAFT_PRIMARY_FALLING) {
|
||||
return;
|
||||
/*
|
||||
// We currently only support the primary trigger falling edge
|
||||
// (this is the edge that VR sensors are accurate on)
|
||||
// Since VR sensors are the most useful case here, this is okay for now.
|
||||
if (tooth != SHAFT_PRIMARY_FALLING) {
|
||||
return;
|
||||
}
|
||||
|
||||
uint32_t nowUs = NT2US(timestamp);
|
||||
// 10us per LSB - this gives plenty of accuracy, yet fits 655.35 ms in to a uint16
|
||||
uint16_t delta = static_cast<uint16_t>((nowUs - lastEdgeTimestamp) / 10);
|
||||
lastEdgeTimestamp = nowUs;
|
||||
|
||||
SetNextEntry(delta);
|
||||
*/
|
||||
|
||||
switch (tooth) {
|
||||
case SHAFT_PRIMARY_FALLING:
|
||||
trigger1 = false;
|
||||
break;
|
||||
case SHAFT_PRIMARY_RISING:
|
||||
trigger1 = true;
|
||||
break;
|
||||
case SHAFT_SECONDARY_FALLING:
|
||||
trigger2 = false;
|
||||
break;
|
||||
case SHAFT_SECONDARY_RISING:
|
||||
trigger2 = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
uint32_t nowUs = NT2US(timestamp);
|
||||
// 10us per LSB - this gives plenty of accuracy, yet fits 655.35 ms in to a uint16
|
||||
uint16_t delta = static_cast<uint16_t>((nowUs - lastEdgeTimestamp) / 10);
|
||||
lastEdgeTimestamp = nowUs;
|
||||
|
||||
SetNextEntry(delta);
|
||||
SetNextCompositeEntry(nowUs, trigger1, trigger2);
|
||||
}
|
||||
|
||||
void EnableToothLogger() {
|
||||
|
|
|
@ -441,9 +441,9 @@
|
|||
#define coastingFuelCutTps_offset_hex c50
|
||||
#define communicationLedPin_offset 1812
|
||||
#define communicationLedPin_offset_hex 714
|
||||
#define COMPOSITE_DATA_LENGTH 2000
|
||||
#define COMPOSITE_PACKET_COUNT 1000
|
||||
#define COMPOSITE_PACKET_SIZE 2
|
||||
#define COMPOSITE_DATA_LENGTH 2500
|
||||
#define COMPOSITE_PACKET_COUNT 500
|
||||
#define COMPOSITE_PACKET_SIZE 5
|
||||
#define CONSOLE_DATA_PROTOCOL_TAG " @"
|
||||
#define consoleLoopPeriodMs_offset 716
|
||||
#define consoleLoopPeriodMs_offset_hex 2cc
|
||||
|
@ -1965,6 +1965,9 @@
|
|||
#define todoClutchDownPinInverted_offset_hex 3d0
|
||||
#define todoClutchUpPinInverted_offset 976
|
||||
#define todoClutchUpPinInverted_offset_hex 3d0
|
||||
#define TOOTH_DATA_LENGTH 2000
|
||||
#define TOOTH_PACKET_COUNT 1000
|
||||
#define TOOTH_PACKET_SIZE 2
|
||||
#define TOP_DEAD_CENTER_MESSAGE "r"
|
||||
#define TOTAL_CONFIG_SIZE 20000
|
||||
#define TOTAL_CONFIG_SIZE_hex 4e20
|
||||
|
|
|
@ -76,8 +76,12 @@ struct_no_prefix engine_configuration_s
|
|||
#define TRIGGER_TYPE_60_2 8
|
||||
#define TRIGGER_TYPE_36_1 9
|
||||
|
||||
#define COMPOSITE_PACKET_COUNT 1000
|
||||
#define COMPOSITE_PACKET_SIZE 2
|
||||
#define TOOTH_PACKET_COUNT 1000
|
||||
#define TOOTH_PACKET_SIZE 2
|
||||
#define TOOTH_DATA_LENGTH @@TOOTH_PACKET_SIZE@@*@@TOOTH_PACKET_COUNT@@
|
||||
|
||||
#define COMPOSITE_PACKET_COUNT 500
|
||||
#define COMPOSITE_PACKET_SIZE 5
|
||||
#define COMPOSITE_DATA_LENGTH @@COMPOSITE_PACKET_SIZE@@*@@COMPOSITE_PACKET_COUNT@@
|
||||
|
||||
#define MAP_ANGLE_SIZE 8
|
||||
|
|
|
@ -86,7 +86,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon Apr 13 18:58:49 EDT 2020
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon Apr 13 20:23:02 EDT 2020
|
||||
|
||||
pageSize = 20000
|
||||
page = 1
|
||||
|
@ -1275,22 +1275,39 @@ page = 1
|
|||
|
||||
[LoggerDefinition]
|
||||
; valid logger types: composite, tooth, trigger, csv
|
||||
loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
; loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
loggerDef = compositeLogger, "Trigger Logger", composite
|
||||
startCommand = "l\x01"
|
||||
stopCommand = "l\x02"
|
||||
dataReadCommand = "L"
|
||||
dataReadTimeout = 10000 ; time in ms
|
||||
dataReadyCondition = { toothLogReady }
|
||||
; each packet is 2 and we have 1000 of those
|
||||
dataLength = 2000
|
||||
continuousRead = true
|
||||
; each packet is 5 and we have 500 of those
|
||||
dataLength = 2500
|
||||
|
||||
;tooth
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, 2
|
||||
; recordDef = 0, 0, 5
|
||||
|
||||
; uint16 that stores 1/100 second
|
||||
recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
; recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
|
||||
|
||||
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, 5
|
||||
|
||||
; these names are hard-coded inside TS
|
||||
recordField = priLevel, "PriLevel", 0, 1, 1.0, "Flag"
|
||||
recordField = secLevel, "SecLevel", 1, 1, 1.0, "Flag"
|
||||
recordField = trigger, "Trigger", 2, 1, 1.0, "Flag"
|
||||
recordField = sync, "Sync", 3, 1, 1.0, "Flag"
|
||||
recordField = time, "Time", 8, 32, 0.01, "ms"
|
||||
|
||||
; it seems that TS also needs to know the diff.size of a tooth
|
||||
calcField = toothTime, "ToothTime", "ms", { time - pastValue(time, 1) }
|
||||
|
||||
[VeAnalyze]
|
||||
|
||||
; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition
|
||||
|
|
|
@ -109,22 +109,39 @@ enable2ndByteCanID = false
|
|||
|
||||
[LoggerDefinition]
|
||||
; valid logger types: composite, tooth, trigger, csv
|
||||
loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
; loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
loggerDef = compositeLogger, "Trigger Logger", composite
|
||||
startCommand = "l\x01"
|
||||
stopCommand = "l\x02"
|
||||
dataReadCommand = "L"
|
||||
dataReadTimeout = 10000 ; time in ms
|
||||
dataReadyCondition = { toothLogReady }
|
||||
continuousRead = true
|
||||
; each packet is @@COMPOSITE_PACKET_SIZE@@ and we have @@COMPOSITE_PACKET_COUNT@@ of those
|
||||
dataLength = @@COMPOSITE_DATA_LENGTH@@
|
||||
|
||||
;tooth
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, @@COMPOSITE_PACKET_SIZE@@
|
||||
; recordDef = 0, 0, @@COMPOSITE_PACKET_SIZE@@
|
||||
|
||||
; uint16 that stores 1/100 second
|
||||
recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
; recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
|
||||
|
||||
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, @@COMPOSITE_PACKET_SIZE@@
|
||||
|
||||
; these names are hard-coded inside TS
|
||||
recordField = priLevel, "PriLevel", 0, 1, 1.0, "Flag"
|
||||
recordField = secLevel, "SecLevel", 1, 1, 1.0, "Flag"
|
||||
recordField = trigger, "Trigger", 2, 1, 1.0, "Flag"
|
||||
recordField = sync, "Sync", 3, 1, 1.0, "Flag"
|
||||
recordField = time, "Time", 8, 32, 0.01, "ms"
|
||||
|
||||
; it seems that TS also needs to know the diff.size of a tooth
|
||||
calcField = toothTime, "ToothTime", "ms", { time - pastValue(time, 1) }
|
||||
|
||||
[VeAnalyze]
|
||||
|
||||
; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition
|
||||
|
|
|
@ -86,7 +86,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon Apr 13 18:59:01 EDT 2020
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon Apr 13 20:23:08 EDT 2020
|
||||
|
||||
pageSize = 20000
|
||||
page = 1
|
||||
|
@ -1275,22 +1275,39 @@ page = 1
|
|||
|
||||
[LoggerDefinition]
|
||||
; valid logger types: composite, tooth, trigger, csv
|
||||
loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
; loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
loggerDef = compositeLogger, "Trigger Logger", composite
|
||||
startCommand = "l\x01"
|
||||
stopCommand = "l\x02"
|
||||
dataReadCommand = "L"
|
||||
dataReadTimeout = 10000 ; time in ms
|
||||
dataReadyCondition = { toothLogReady }
|
||||
; each packet is 2 and we have 1000 of those
|
||||
dataLength = 2000
|
||||
continuousRead = true
|
||||
; each packet is 5 and we have 500 of those
|
||||
dataLength = 2500
|
||||
|
||||
;tooth
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, 2
|
||||
; recordDef = 0, 0, 5
|
||||
|
||||
; uint16 that stores 1/100 second
|
||||
recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
; recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
|
||||
|
||||
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, 5
|
||||
|
||||
; these names are hard-coded inside TS
|
||||
recordField = priLevel, "PriLevel", 0, 1, 1.0, "Flag"
|
||||
recordField = secLevel, "SecLevel", 1, 1, 1.0, "Flag"
|
||||
recordField = trigger, "Trigger", 2, 1, 1.0, "Flag"
|
||||
recordField = sync, "Sync", 3, 1, 1.0, "Flag"
|
||||
recordField = time, "Time", 8, 32, 0.01, "ms"
|
||||
|
||||
; it seems that TS also needs to know the diff.size of a tooth
|
||||
calcField = toothTime, "ToothTime", "ms", { time - pastValue(time, 1) }
|
||||
|
||||
[VeAnalyze]
|
||||
|
||||
; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition
|
||||
|
|
|
@ -86,7 +86,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kineris_gen_config.bat integration/rusefi_config.txt Mon Apr 13 18:54:34 EDT 2020
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kineris_gen_config.bat integration/rusefi_config.txt Mon Apr 13 20:23:18 EDT 2020
|
||||
|
||||
pageSize = 20000
|
||||
page = 1
|
||||
|
@ -1275,22 +1275,39 @@ page = 1
|
|||
|
||||
[LoggerDefinition]
|
||||
; valid logger types: composite, tooth, trigger, csv
|
||||
loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
; loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
loggerDef = compositeLogger, "Trigger Logger", composite
|
||||
startCommand = "l\x01"
|
||||
stopCommand = "l\x02"
|
||||
dataReadCommand = "L"
|
||||
dataReadTimeout = 10000 ; time in ms
|
||||
dataReadyCondition = { toothLogReady }
|
||||
; each packet is 2 and we have 1000 of those
|
||||
dataLength = 2000
|
||||
continuousRead = true
|
||||
; each packet is 5 and we have 500 of those
|
||||
dataLength = 2500
|
||||
|
||||
;tooth
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, 2
|
||||
; recordDef = 0, 0, 5
|
||||
|
||||
; uint16 that stores 1/100 second
|
||||
recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
; recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
|
||||
|
||||
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, 5
|
||||
|
||||
; these names are hard-coded inside TS
|
||||
recordField = priLevel, "PriLevel", 0, 1, 1.0, "Flag"
|
||||
recordField = secLevel, "SecLevel", 1, 1, 1.0, "Flag"
|
||||
recordField = trigger, "Trigger", 2, 1, 1.0, "Flag"
|
||||
recordField = sync, "Sync", 3, 1, 1.0, "Flag"
|
||||
recordField = time, "Time", 8, 32, 0.01, "ms"
|
||||
|
||||
; it seems that TS also needs to know the diff.size of a tooth
|
||||
calcField = toothTime, "ToothTime", "ms", { time - pastValue(time, 1) }
|
||||
|
||||
[VeAnalyze]
|
||||
|
||||
; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition
|
||||
|
@ -2919,6 +2936,7 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
|||
dialog = allPins1_1
|
||||
field = mc33816_cs, mc33816_cs
|
||||
field = mc33816_rstb, mc33816_rstb
|
||||
field = mc33816_flag0, mc33816_flag0
|
||||
field = high_fuel_pressure_sensor_1, high_fuel_pressure_sensor_1
|
||||
field = high_fuel_pressure_sensor_2, high_fuel_pressure_sensor_2
|
||||
field = mc33816_driven, mc33816_driven
|
||||
|
|
|
@ -86,7 +86,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon Apr 13 18:58:59 EDT 2020
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon Apr 13 20:23:05 EDT 2020
|
||||
|
||||
pageSize = 20000
|
||||
page = 1
|
||||
|
@ -1275,22 +1275,39 @@ page = 1
|
|||
|
||||
[LoggerDefinition]
|
||||
; valid logger types: composite, tooth, trigger, csv
|
||||
loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
; loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
loggerDef = compositeLogger, "Trigger Logger", composite
|
||||
startCommand = "l\x01"
|
||||
stopCommand = "l\x02"
|
||||
dataReadCommand = "L"
|
||||
dataReadTimeout = 10000 ; time in ms
|
||||
dataReadyCondition = { toothLogReady }
|
||||
; each packet is 2 and we have 1000 of those
|
||||
dataLength = 2000
|
||||
continuousRead = true
|
||||
; each packet is 5 and we have 500 of those
|
||||
dataLength = 2500
|
||||
|
||||
;tooth
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, 2
|
||||
; recordDef = 0, 0, 5
|
||||
|
||||
; uint16 that stores 1/100 second
|
||||
recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
; recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
|
||||
|
||||
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, 5
|
||||
|
||||
; these names are hard-coded inside TS
|
||||
recordField = priLevel, "PriLevel", 0, 1, 1.0, "Flag"
|
||||
recordField = secLevel, "SecLevel", 1, 1, 1.0, "Flag"
|
||||
recordField = trigger, "Trigger", 2, 1, 1.0, "Flag"
|
||||
recordField = sync, "Sync", 3, 1, 1.0, "Flag"
|
||||
recordField = time, "Time", 8, 32, 0.01, "ms"
|
||||
|
||||
; it seems that TS also needs to know the diff.size of a tooth
|
||||
calcField = toothTime, "ToothTime", "ms", { time - pastValue(time, 1) }
|
||||
|
||||
[VeAnalyze]
|
||||
|
||||
; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition
|
||||
|
|
|
@ -86,7 +86,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon Apr 13 18:59:03 EDT 2020
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon Apr 13 20:23:12 EDT 2020
|
||||
|
||||
pageSize = 20000
|
||||
page = 1
|
||||
|
@ -1275,22 +1275,39 @@ page = 1
|
|||
|
||||
[LoggerDefinition]
|
||||
; valid logger types: composite, tooth, trigger, csv
|
||||
loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
; loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
loggerDef = compositeLogger, "Trigger Logger", composite
|
||||
startCommand = "l\x01"
|
||||
stopCommand = "l\x02"
|
||||
dataReadCommand = "L"
|
||||
dataReadTimeout = 10000 ; time in ms
|
||||
dataReadyCondition = { toothLogReady }
|
||||
; each packet is 2 and we have 1000 of those
|
||||
dataLength = 2000
|
||||
continuousRead = true
|
||||
; each packet is 5 and we have 500 of those
|
||||
dataLength = 2500
|
||||
|
||||
;tooth
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, 2
|
||||
; recordDef = 0, 0, 5
|
||||
|
||||
; uint16 that stores 1/100 second
|
||||
recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
; recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
|
||||
|
||||
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, 5
|
||||
|
||||
; these names are hard-coded inside TS
|
||||
recordField = priLevel, "PriLevel", 0, 1, 1.0, "Flag"
|
||||
recordField = secLevel, "SecLevel", 1, 1, 1.0, "Flag"
|
||||
recordField = trigger, "Trigger", 2, 1, 1.0, "Flag"
|
||||
recordField = sync, "Sync", 3, 1, 1.0, "Flag"
|
||||
recordField = time, "Time", 8, 32, 0.01, "ms"
|
||||
|
||||
; it seems that TS also needs to know the diff.size of a tooth
|
||||
calcField = toothTime, "ToothTime", "ms", { time - pastValue(time, 1) }
|
||||
|
||||
[VeAnalyze]
|
||||
|
||||
; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition
|
||||
|
|
|
@ -86,7 +86,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon Apr 13 18:59:04 EDT 2020
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon Apr 13 20:23:15 EDT 2020
|
||||
|
||||
pageSize = 20000
|
||||
page = 1
|
||||
|
@ -1275,22 +1275,39 @@ page = 1
|
|||
|
||||
[LoggerDefinition]
|
||||
; valid logger types: composite, tooth, trigger, csv
|
||||
loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
; loggerDef = compositeLogger, "Primary Trigger Logger", tooth
|
||||
loggerDef = compositeLogger, "Trigger Logger", composite
|
||||
startCommand = "l\x01"
|
||||
stopCommand = "l\x02"
|
||||
dataReadCommand = "L"
|
||||
dataReadTimeout = 10000 ; time in ms
|
||||
dataReadyCondition = { toothLogReady }
|
||||
; each packet is 2 and we have 1000 of those
|
||||
dataLength = 2000
|
||||
continuousRead = true
|
||||
; each packet is 5 and we have 500 of those
|
||||
dataLength = 2500
|
||||
|
||||
;tooth
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, 2
|
||||
; recordDef = 0, 0, 5
|
||||
|
||||
; uint16 that stores 1/100 second
|
||||
recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
; recordField = toothTime, "tooth", 0, 16, 0.01, "ms"
|
||||
|
||||
|
||||
|
||||
; recordDef = headerLen, footerLen, recordLen
|
||||
recordDef = 0, 0, 5
|
||||
|
||||
; these names are hard-coded inside TS
|
||||
recordField = priLevel, "PriLevel", 0, 1, 1.0, "Flag"
|
||||
recordField = secLevel, "SecLevel", 1, 1, 1.0, "Flag"
|
||||
recordField = trigger, "Trigger", 2, 1, 1.0, "Flag"
|
||||
recordField = sync, "Sync", 3, 1, 1.0, "Flag"
|
||||
recordField = time, "Time", 8, 32, 0.01, "ms"
|
||||
|
||||
; it seems that TS also needs to know the diff.size of a tooth
|
||||
calcField = toothTime, "ToothTime", "ms", { time - pastValue(time, 1) }
|
||||
|
||||
[VeAnalyze]
|
||||
|
||||
; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.rusefi.config.generated;
|
||||
|
||||
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon Apr 13 18:54:18 EDT 2020
|
||||
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon Apr 13 20:23:02 EDT 2020
|
||||
|
||||
// by class com.rusefi.output.FileJavaFieldsConsumer
|
||||
import com.rusefi.config.*;
|
||||
|
@ -285,9 +285,9 @@ public class Fields {
|
|||
public static final int coastingFuelCutTps_offset = 3152;
|
||||
public static final int communicationLedPin_offset = 1812;
|
||||
public static final int communicationLedPin_offset_hex = 714;
|
||||
public static final int COMPOSITE_DATA_LENGTH = 2000;
|
||||
public static final int COMPOSITE_PACKET_COUNT = 1000;
|
||||
public static final int COMPOSITE_PACKET_SIZE = 2;
|
||||
public static final int COMPOSITE_DATA_LENGTH = 2500;
|
||||
public static final int COMPOSITE_PACKET_COUNT = 500;
|
||||
public static final int COMPOSITE_PACKET_SIZE = 5;
|
||||
public static final String CONSOLE_DATA_PROTOCOL_TAG = " @";
|
||||
public static final int consoleLoopPeriodMs_offset = 716;
|
||||
public static final int consoleSerialRxPin_offset = 1819;
|
||||
|
@ -1293,6 +1293,9 @@ public class Fields {
|
|||
public static final int tle8888spiDevice_offset = 4000;
|
||||
public static final int todoClutchDownPinInverted_offset = 976;
|
||||
public static final int todoClutchUpPinInverted_offset = 976;
|
||||
public static final int TOOTH_DATA_LENGTH = 2000;
|
||||
public static final int TOOTH_PACKET_COUNT = 1000;
|
||||
public static final int TOOTH_PACKET_SIZE = 2;
|
||||
public static final String TOP_DEAD_CENTER_MESSAGE = "r";
|
||||
public static final int TOTAL_CONFIG_SIZE = 20000;
|
||||
public static final int tps1_1AdcChannel_offset = 512;
|
||||
|
|
Loading…
Reference in New Issue