Nissan VVT trigger decoder fix #2887

TDD is amazing we are done here!
This commit is contained in:
Andrey 2021-07-03 12:43:01 -04:00
parent 3853e7721a
commit b67b1f424f
3 changed files with 14 additions and 9 deletions

View File

@ -13,4 +13,7 @@ void setHellen121nissan(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->trigger.type = TT_NISSAN_VQ;
engineConfiguration->vvtMode[0] = VVT_NISSAN_VQ;
engineConfiguration->vvtOffsets[0] = NISSAN_VQ_VVT_OFFSET;
engineConfiguration->vvtOffsets[1 * CAMS_PER_BANK] = NISSAN_VQ_VVT_OFFSET - NISSAN_VQ_CAM_OFFSET;
}

View File

@ -9,4 +9,7 @@
#include "engine_configuration.h"
#define NISSAN_VQ_VVT_OFFSET -27.5
#define NISSAN_VQ_CAM_OFFSET 360
void setHellen121nissan(DECLARE_CONFIG_PARAMETER_SIGNATURE);

View File

@ -7,6 +7,7 @@
#include "engine_test_helper.h"
#include "trigger_nissan.h"
#include "nissan_vq.h"
class TriggerCallback {
public:
@ -71,8 +72,6 @@ TEST(nissan, vq_vvt) {
int cyclesCount = 36;
angle_t offsetBetweenCams = 360;
{
static TriggerWaveform crank;
initializeNissanVQcrank(&crank);
@ -84,6 +83,8 @@ TEST(nissan, vq_vvt) {
// crank being FOUR_STROKE_THREE_TIMES_CRANK_SENSOR means 120 degrees cycle duration which does not match cam shaft cycle duration
float vvtTimeScale = 1 / 1.5;
angle_t testVvtOffset = 2;
{
static TriggerWaveform vvt;
initializeNissanVQvvt(&vvt);
@ -92,7 +93,7 @@ TEST(nissan, vq_vvt) {
/* timeScale */ vvtTimeScale,
cyclesCount / 6, true,
/* vvtBankIndex */ 0,
/* vvtOffset */ 0
/* vvtOffset */ testVvtOffset
PASS_ENGINE_PARAMETER_SUFFIX);
}
@ -104,7 +105,7 @@ TEST(nissan, vq_vvt) {
/* timeScale */ vvtTimeScale,
cyclesCount / 6, true,
/* vvtBankIndex */1,
/* vvtOffset */ offsetBetweenCams
/* vvtOffset */ testVvtOffset + NISSAN_VQ_CAM_OFFSET
PASS_ENGINE_PARAMETER_SUFFIX);
}
@ -121,10 +122,8 @@ TEST(nissan, vq_vvt) {
ASSERT_TRUE(tc->vvtState[0][0].getShaftSynchronized());
ASSERT_TRUE(tc->vvtState[1][0].getShaftSynchronized());
angle_t firstVVTangle = 27.5;
ASSERT_NEAR(firstVVTangle, tc->vvtPosition[0][0], EPS2D);
ASSERT_NEAR(firstVVTangle + offsetBetweenCams, tc->vvtPosition[1][0], EPS2D);
ASSERT_NEAR(-testVvtOffset, tc->vvtPosition[0][0], EPS2D);
ASSERT_NEAR(-testVvtOffset, tc->vvtPosition[1][0], EPS2D);
// todo
EXPECT_EQ(1, eth.recentWarnings()->getCount());
EXPECT_EQ(0, eth.recentWarnings()->getCount());
}