auto-sync
This commit is contained in:
parent
b9c2e7a107
commit
4afecfc1e8
|
@ -198,8 +198,8 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat
|
||||||
engineConfiguration->vbattDividerCoeff = ((float) (8.2 + 33)) / 8.2 * 2;
|
engineConfiguration->vbattDividerCoeff = ((float) (8.2 + 33)) / 8.2 * 2;
|
||||||
|
|
||||||
// Frankenso low out #1: PE6
|
// Frankenso low out #1: PE6
|
||||||
// Frankenso low out #2: PE5 coolant fan relay
|
// Frankenso low out #2: PE5
|
||||||
// Frankenso low out #3: PD7
|
// Frankenso low out #3: PD7 coolant fan relay
|
||||||
// Frankenso low out #4: PC13 idle valve solenoid
|
// Frankenso low out #4: PC13 idle valve solenoid
|
||||||
// Frankenso low out #5: PE3 fuel pump relay
|
// Frankenso low out #5: PE3 fuel pump relay
|
||||||
// Frankenso low out #6: PE4
|
// Frankenso low out #6: PE4
|
||||||
|
@ -210,7 +210,7 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat
|
||||||
// Frankenso low out #11: PB8 injector #1
|
// Frankenso low out #11: PB8 injector #1
|
||||||
// Frankenso low out #12: PB7 injector #4
|
// Frankenso low out #12: PB7 injector #4
|
||||||
|
|
||||||
boardConfiguration->fanPin = GPIOE_6;
|
boardConfiguration->fanPin = GPIOD_7;
|
||||||
|
|
||||||
boardConfiguration->injectionPins[0] = GPIOB_8;
|
boardConfiguration->injectionPins[0] = GPIOB_8;
|
||||||
boardConfiguration->injectionPins[1] = GPIOB_9;
|
boardConfiguration->injectionPins[1] = GPIOB_9;
|
||||||
|
@ -246,12 +246,13 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat
|
||||||
engineConfiguration->map.sensor.hwChannel = EFI_ADC_0;
|
engineConfiguration->map.sensor.hwChannel = EFI_ADC_0;
|
||||||
|
|
||||||
boardConfiguration->adcHwChannelEnabled[0] = ADC_FAST; // ADC0 - PA0 - MAP
|
boardConfiguration->adcHwChannelEnabled[0] = ADC_FAST; // ADC0 - PA0 - MAP
|
||||||
boardConfiguration->adcHwChannelEnabled[1] = ADC_SLOW; // TPS
|
boardConfiguration->adcHwChannelEnabled[1] = ADC_SLOW;
|
||||||
boardConfiguration->adcHwChannelEnabled[4] = ADC_SLOW;
|
boardConfiguration->adcHwChannelEnabled[4] = ADC_SLOW;
|
||||||
boardConfiguration->adcHwChannelEnabled[11] = ADC_SLOW; // IAT
|
boardConfiguration->adcHwChannelEnabled[11] = ADC_SLOW; // IAT
|
||||||
boardConfiguration->adcHwChannelEnabled[12] = ADC_SLOW; // CLT
|
boardConfiguration->adcHwChannelEnabled[12] = ADC_SLOW; // CLT
|
||||||
boardConfiguration->adcHwChannelEnabled[13] = ADC_SLOW; // AFR
|
boardConfiguration->adcHwChannelEnabled[13] = ADC_SLOW; // AFR
|
||||||
boardConfiguration->adcHwChannelEnabled[14] = ADC_SLOW; // VBatt
|
boardConfiguration->adcHwChannelEnabled[14] = ADC_SLOW; // VBatt
|
||||||
|
boardConfiguration->adcHwChannelEnabled[15] = ADC_SLOW; // TPS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -126,18 +126,18 @@ void setDefaultConfiguration(engine_configuration_s *engineConfiguration, board_
|
||||||
engineConfiguration->cltFuelCorr[i] = 1; // this correction is a multiplier
|
engineConfiguration->cltFuelCorr[i] = 1; // this correction is a multiplier
|
||||||
}
|
}
|
||||||
|
|
||||||
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -40, 1.5);
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -40, 1.5);
|
||||||
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -30, 1.5);
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -30, 1.5);
|
||||||
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -20, 1.42);
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -20, 1.42);
|
||||||
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -10, 1.36);
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -10, 1.36);
|
||||||
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 0, 1.28);
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 0, 1.28);
|
||||||
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 10, 1.19);
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 10, 1.19);
|
||||||
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 20, 1.12);
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 20, 1.12);
|
||||||
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 30, 1.10);
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 30, 1.10);
|
||||||
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 40, 1.06);
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 40, 1.06);
|
||||||
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 50, 1.06);
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 50, 1.06);
|
||||||
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 60, 1.03);
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 60, 1.03);
|
||||||
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 70, 1.01);
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 70, 1.01);
|
||||||
|
|
||||||
for (int i = 0; i < VBAT_INJECTOR_CURVE_SIZE; i++) {
|
for (int i = 0; i < VBAT_INJECTOR_CURVE_SIZE; i++) {
|
||||||
engineConfiguration->battInjectorLagCorrBins[i] = 12 - VBAT_INJECTOR_CURVE_SIZE / 2 + i;
|
engineConfiguration->battInjectorLagCorrBins[i] = 12 - VBAT_INJECTOR_CURVE_SIZE / 2 + i;
|
||||||
|
@ -170,7 +170,6 @@ void setDefaultConfiguration(engine_configuration_s *engineConfiguration, board_
|
||||||
engineConfiguration->rpmHardLimit = 7000;
|
engineConfiguration->rpmHardLimit = 7000;
|
||||||
engineConfiguration->crankingSettings.crankingRpm = 550;
|
engineConfiguration->crankingSettings.crankingRpm = 550;
|
||||||
|
|
||||||
|
|
||||||
engineConfiguration->crankingFuelCoef[0] = 5; // base cranking fuel adjustment coefficient
|
engineConfiguration->crankingFuelCoef[0] = 5; // base cranking fuel adjustment coefficient
|
||||||
engineConfiguration->crankingFuelBins[0] = -20; // temperature in C
|
engineConfiguration->crankingFuelBins[0] = -20; // temperature in C
|
||||||
engineConfiguration->crankingFuelCoef[1] = 3.7;
|
engineConfiguration->crankingFuelCoef[1] = 3.7;
|
||||||
|
|
|
@ -153,6 +153,8 @@ static void fanRelayControl(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isCurrentlyOn != newValue) {
|
if (isCurrentlyOn != newValue) {
|
||||||
|
if (isRunningBenchTest())
|
||||||
|
return; // let's not mess with bench testing
|
||||||
scheduleMsg(&logger, "FAN relay: %s", newValue ? "ON" : "OFF");
|
scheduleMsg(&logger, "FAN relay: %s", newValue ? "ON" : "OFF");
|
||||||
setOutputPinValue(FAN_RELAY, newValue);
|
setOutputPinValue(FAN_RELAY, newValue);
|
||||||
}
|
}
|
||||||
|
@ -209,6 +211,8 @@ static void setPinState(io_pin_e ioPin, LEElement *element, Engine *engine) {
|
||||||
} else {
|
} else {
|
||||||
int value = calc.getValue2(element, engine);
|
int value = calc.getValue2(element, engine);
|
||||||
if (value != getOutputPinValue(ioPin)) {
|
if (value != getOutputPinValue(ioPin)) {
|
||||||
|
if (isRunningBenchTest())
|
||||||
|
return; // let's not mess with bench testing
|
||||||
scheduleMsg(&logger, "setting %s %s", getIo_pin_e(ioPin), boolToString(value));
|
scheduleMsg(&logger, "setting %s %s", getIo_pin_e(ioPin), boolToString(value));
|
||||||
setOutputPinValue(ioPin, value);
|
setOutputPinValue(ioPin, value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,6 @@
|
||||||
static Logging logger;
|
static Logging logger;
|
||||||
|
|
||||||
EXTERN_ENGINE;
|
EXTERN_ENGINE;
|
||||||
extern board_configuration_s *boardConfiguration;
|
|
||||||
|
|
||||||
static bool_t isRunningBench = false;
|
static bool_t isRunningBench = false;
|
||||||
|
|
||||||
|
@ -49,14 +48,10 @@ void assertCylinderId(int cylinderId, const char *msg) {
|
||||||
// we are here only in case of a fatal issue - at this point it is fine to make some blocking i-o
|
// we are here only in case of a fatal issue - at this point it is fine to make some blocking i-o
|
||||||
//scheduleSimpleMsg(&logger, "cid=", cylinderId);
|
//scheduleSimpleMsg(&logger, "cid=", cylinderId);
|
||||||
print("ERROR [%s] cid=%d\r\n", msg, cylinderId);
|
print("ERROR [%s] cid=%d\r\n", msg, cylinderId);
|
||||||
efiAssertVoid(FALSE, "Cylinder ID");
|
efiAssertVoid(false, "Cylinder ID");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
///**
|
|
||||||
// * This method schedules asynchronous fuel squirt
|
|
||||||
// */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param cylinderId - from 1 to NUMBER_OF_CYLINDERS
|
* @param cylinderId - from 1 to NUMBER_OF_CYLINDERS
|
||||||
*/
|
*/
|
||||||
|
@ -138,7 +133,7 @@ static void fanbench(Engine *engine) {
|
||||||
brainPin = boardConfiguration->fanPin;
|
brainPin = boardConfiguration->fanPin;
|
||||||
pinX = FAN_RELAY;
|
pinX = FAN_RELAY;
|
||||||
|
|
||||||
delayMs = 1000;
|
delayMs = 0;
|
||||||
onTime = 3000;
|
onTime = 3000;
|
||||||
offTime = 0;
|
offTime = 0;
|
||||||
count = 1;
|
count = 1;
|
||||||
|
@ -150,7 +145,7 @@ static void fuelpumpbench(void) {
|
||||||
brainPin = boardConfiguration->fuelPumpPin;
|
brainPin = boardConfiguration->fuelPumpPin;
|
||||||
pinX = FUEL_PUMP_RELAY;
|
pinX = FUEL_PUMP_RELAY;
|
||||||
|
|
||||||
delayMs = 1000;
|
delayMs = 0;
|
||||||
onTime = 3000;
|
onTime = 3000;
|
||||||
offTime = 0;
|
offTime = 0;
|
||||||
count = 1;
|
count = 1;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// This file was generated by Version2Header
|
// This file was generated by Version2Header
|
||||||
// Wed Nov 26 17:54:29 EST 2014
|
// Sat Nov 29 23:31:29 EST 2014
|
||||||
#ifndef VCS_VERSION
|
#ifndef VCS_VERSION
|
||||||
#define VCS_VERSION "5615"
|
#define VCS_VERSION "5638"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -18,6 +18,22 @@ EngineTestHelper::EngineTestHelper(engine_type_e engineType) {
|
||||||
engine.engineConfiguration = &persistentConfig.engineConfiguration;
|
engine.engineConfiguration = &persistentConfig.engineConfiguration;
|
||||||
ec2.engineConfiguration = &persistentConfig.engineConfiguration;
|
ec2.engineConfiguration = &persistentConfig.engineConfiguration;
|
||||||
|
|
||||||
|
engine_configuration_s *engineConfiguration = ec;
|
||||||
|
|
||||||
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -40, 1.5);
|
||||||
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -30, 1.5);
|
||||||
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -20, 1.42);
|
||||||
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -10, 1.36);
|
||||||
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 0, 1.28);
|
||||||
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 10, 1.19);
|
||||||
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 20, 1.12);
|
||||||
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 30, 1.10);
|
||||||
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 40, 1.06);
|
||||||
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 50, 1.06);
|
||||||
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 60, 1.03);
|
||||||
|
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 70, 1.01);
|
||||||
|
|
||||||
|
|
||||||
engine.engineConfiguration2 = &ec2;
|
engine.engineConfiguration2 = &ec2;
|
||||||
|
|
||||||
prepareFuelMap(engine.engineConfiguration);
|
prepareFuelMap(engine.engineConfiguration);
|
||||||
|
|
|
@ -50,14 +50,14 @@ uint64_t getTimeNowNt(void) {
|
||||||
return getTimeNowUs() * US_TO_NT_MULTIPLIER;
|
return getTimeNowUs() * US_TO_NT_MULTIPLIER;
|
||||||
}
|
}
|
||||||
|
|
||||||
void assertEqualsM(const char *msg, float expected, float actual) {
|
void assertEqualsM2(const char *msg, float expected, float actual, float EPS) {
|
||||||
if (cisnan(actual) && !cisnan(expected)) {
|
if (cisnan(actual) && !cisnan(expected)) {
|
||||||
printf("Assert failed: %s %.4f while expected %.4f\r\n", msg, actual, expected);
|
printf("Assert failed: %s %.4f while expected %.4f\r\n", msg, actual, expected);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
float delta = absF(actual - expected);
|
float delta = absF(actual - expected);
|
||||||
if (delta > 0.0001) {
|
if (delta > EPS) {
|
||||||
printf("delta: %.7f\r\n", delta);
|
printf("delta: %.7f\r\n", delta);
|
||||||
printf("Unexpected: %s %.4f while expected %.4f\r\n", msg, actual, expected);
|
printf("Unexpected: %s %.4f while expected %.4f\r\n", msg, actual, expected);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
|
@ -65,6 +65,11 @@ void assertEqualsM(const char *msg, float expected, float actual) {
|
||||||
printf("Validated %s: %f\r\n", msg, expected);
|
printf("Validated %s: %f\r\n", msg, expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void assertEqualsM(const char *msg, float expected, float actual) {
|
||||||
|
assertEqualsM2(msg, expected, actual, 0.0001);
|
||||||
|
}
|
||||||
|
|
||||||
void assertEquals(float expected, float actual) {
|
void assertEquals(float expected, float actual) {
|
||||||
assertEqualsM("", expected, actual);
|
assertEqualsM("", expected, actual);
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ void print(const char *fmt, ...);
|
||||||
|
|
||||||
#define chDbgCheck(x, y) chDbgAssert(x, y, NULL)
|
#define chDbgCheck(x, y) chDbgAssert(x, y, NULL)
|
||||||
|
|
||||||
|
void assertEqualsM2(const char *msg, float expected, float actual, float EPS);
|
||||||
void assertEqualsM(const char *msg, float expected, float actual);
|
void assertEqualsM(const char *msg, float expected, float actual);
|
||||||
void assertEquals(float expected, float actual);
|
void assertEquals(float expected, float actual);
|
||||||
void assertTrue(float actual);
|
void assertTrue(float actual);
|
||||||
|
|
|
@ -59,7 +59,7 @@ void testFuelMap(void) {
|
||||||
// because all the correction tables are zero
|
// because all the correction tables are zero
|
||||||
printf("*************************************************** getRunningFuel 1\r\n");
|
printf("*************************************************** getRunningFuel 1\r\n");
|
||||||
float baseFuel = getBaseTableFuel(eth.engine.engineConfiguration, 5, getEngineLoadT(PASS_ENGINE_PARAMETER_F));
|
float baseFuel = getBaseTableFuel(eth.engine.engineConfiguration, 5, getEngineLoadT(PASS_ENGINE_PARAMETER_F));
|
||||||
assertEqualsM("base fuel", 5.0, getRunningFuel(baseFuel, 5 PASS_ENGINE_PARAMETER));
|
assertEqualsM("base fuel", 5.05, getRunningFuel(baseFuel, 5 PASS_ENGINE_PARAMETER));
|
||||||
|
|
||||||
printf("*************************************************** setting IAT table\r\n");
|
printf("*************************************************** setting IAT table\r\n");
|
||||||
for (int i = 0; i < IAT_CURVE_SIZE; i++) {
|
for (int i = 0; i < IAT_CURVE_SIZE; i++) {
|
||||||
|
|
|
@ -432,7 +432,7 @@ static void testRpmCalculator(void) {
|
||||||
assertEqualsM("queue size 3", 6, schedulingQueue.size());
|
assertEqualsM("queue size 3", 6, schedulingQueue.size());
|
||||||
assertEqualsM("ev 3", 259777, schedulingQueue.getForUnitText(0)->momentX);
|
assertEqualsM("ev 3", 259777, schedulingQueue.getForUnitText(0)->momentX);
|
||||||
assertEquals(259277, schedulingQueue.getForUnitText(1)->momentX);
|
assertEquals(259277, schedulingQueue.getForUnitText(1)->momentX);
|
||||||
assertEqualsM("ev 5", 261333, schedulingQueue.getForUnitText(2)->momentX);
|
assertEqualsM2("ev 5", 261362, schedulingQueue.getForUnitText(2)->momentX, 2);
|
||||||
assertEqualsM("3/3", 258333, schedulingQueue.getForUnitText(3)->momentX);
|
assertEqualsM("3/3", 258333, schedulingQueue.getForUnitText(3)->momentX);
|
||||||
schedulingQueue.clear();
|
schedulingQueue.clear();
|
||||||
|
|
||||||
|
@ -458,7 +458,7 @@ static void testRpmCalculator(void) {
|
||||||
assertEqualsM("queue size 6", 6, schedulingQueue.size());
|
assertEqualsM("queue size 6", 6, schedulingQueue.size());
|
||||||
assertEqualsM("6/0", 286444, schedulingQueue.getForUnitText(0)->momentX);
|
assertEqualsM("6/0", 286444, schedulingQueue.getForUnitText(0)->momentX);
|
||||||
assertEqualsM("6/1", 285944, schedulingQueue.getForUnitText(1)->momentX);
|
assertEqualsM("6/1", 285944, schedulingQueue.getForUnitText(1)->momentX);
|
||||||
assertEqualsM("6/2", 288000, schedulingQueue.getForUnitText(2)->momentX);
|
assertEqualsM2("6/2", 288029, schedulingQueue.getForUnitText(2)->momentX, 1);
|
||||||
schedulingQueue.clear();
|
schedulingQueue.clear();
|
||||||
|
|
||||||
timeNow += 5000;
|
timeNow += 5000;
|
||||||
|
@ -471,7 +471,7 @@ static void testRpmCalculator(void) {
|
||||||
assertEqualsM("queue size 8", 6, schedulingQueue.size());
|
assertEqualsM("queue size 8", 6, schedulingQueue.size());
|
||||||
assertEqualsM("8/0", 299777, schedulingQueue.getForUnitText(0)->momentX);
|
assertEqualsM("8/0", 299777, schedulingQueue.getForUnitText(0)->momentX);
|
||||||
assertEqualsM("8/1", 299277, schedulingQueue.getForUnitText(1)->momentX);
|
assertEqualsM("8/1", 299277, schedulingQueue.getForUnitText(1)->momentX);
|
||||||
assertEqualsM("8/2", 301333, schedulingQueue.getForUnitText(2)->momentX);
|
assertEqualsM2("8/2", 301362, schedulingQueue.getForUnitText(2)->momentX, 1);
|
||||||
assertEqualsM("8/3", 298333, schedulingQueue.getForUnitText(3)->momentX);
|
assertEqualsM("8/3", 298333, schedulingQueue.getForUnitText(3)->momentX);
|
||||||
schedulingQueue.clear();
|
schedulingQueue.clear();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue