Spaces:
Running
Running
struct CylinderState { | |
unsigned long lastSparkTime; | |
bool isInjecting; | |
uint8_t pin; | |
float advance; | |
float detonationLevel; | |
}; | |
struct EngineError { | |
bool detonationError; | |
bool temperatureError; | |
bool mapError; | |
bool lambdaError; | |
bool throttleError; | |
uint8_t errorCode; | |
}; | |
struct EngineData { | |
float rpm; | |
float map; | |
float temp; | |
float lambda; | |
float detonationLevel1; | |
float detonationLevel2; | |
float combinedDetonationLevel; | |
}; | |
struct ThrottleConfig { | |
float minPosition; | |
float maxPosition; | |
float idlePosition; | |
float speedPulseRatio; | |
float ignitionMap[16][16]; | |
}; | |
struct ThrottleLearnData { | |
float idlePositions[16]; | |
uint16_t idleSamples[16]; | |
float detonationHistory1[10]; | |
float detonationHistory2[10]; | |
int detonationHistoryIndex1; | |
int detonationHistoryIndex2; | |
}; | |
struct ThrottleDiagnostics { | |
bool isCalibrated; | |
bool isStuck; | |
bool isOverloaded; | |
float current; | |
float voltage; | |
float detonationCorrection; | |
}; | |
struct IgnitionMap { | |
float advance[16][16]; | |
float rpmAxis[16]; | |
float loadAxis[16]; | |
float detonationMap[16][16]; | |
float lambdaMap[16][16]; | |
}; | |
struct LearningData { | |
float advanceCorrections[16][16]; | |
uint32_t samples[16][16]; | |
float detonationHistory[100]; | |
uint8_t detonationIndex; | |
}; | |
struct EngineConfig { | |
float idleRPM; | |
float idleRPMCold; | |
float warmupTemp; | |
float maxRPM; | |
float minRPM; | |
float maxAdvance; | |
float minAdvance; | |
float maxInjection; | |
float minInjection; | |
float detonationThreshold; | |
float learningRate; | |
float maxDetonationCorrection; | |
}; | |
// Структура для хранения конфигурации | |
struct ConfigData { | |
uint8_t version; | |
// Базовые таблицы | |
float fuelTable[16][16]; // Базовая таблица топливоподачи | |
float ignitionTable[16][16]; // Базовая таблица УОЗ | |
// Таблицы обучения | |
float fuelLearning[16][16]; // Таблица коррекции топливоподачи | |
float ignitionLearning[16][16]; // Таблица коррекции УОЗ | |
// Константы впрыска | |
float injectionTimeMin; | |
float injectionTimeMax; | |
float injectionPressure; | |
float injectorFlow; | |
float injectorDeadtime; | |
float injectorVoltage; | |
float injectorCorrection; | |
float startInjectionTime; | |
float startRpmThreshold; | |
// Лямбда | |
float lambdaTarget; | |
float lambdaCorrectionMin; | |
float lambdaCorrectionMax; | |
float lambdaCorrectionStep; | |
// Холостой ход | |
float idleRpmMin; | |
float idleRpmMax; | |
float idleAdvanceMin; | |
float idleAdvanceMax; | |
float idleAdvanceStep; | |
float idleAdvanceInterval; | |
float idleTargetRpm; // Целевые обороты ХХ | |
float idleKp; // Коэффициент P для ПИД | |
float idleKi; // Коэффициент I для ПИД | |
float idleKd; // Коэффициент D для ПИД | |
// Коррекции | |
bool tempCorrectionEnabled; | |
bool lambdaCorrectionEnabled; | |
bool idleAdvanceLearningEnabled; | |
bool throttleAdaptationEnabled; | |
bool hotEngineCorrectionEnabled; | |
bool accelPumpEnabled; | |
// Зажигание | |
String ignitionType; | |
int coilCount; | |
float sparkDuration; | |
float maxAdvance; | |
float minAdvance; | |
float mechanicalAdvance; | |
float dwellTime; | |
// Температура | |
float coldStartTemp; | |
float hotEngineTemp; | |
uint32_t checksum; | |
}; | |
// Настройки РХХ | |
struct IdleSettings { | |
float targetRPM; | |
float valveMinPosition; | |
float valveMaxPosition; | |
float rpmTolerance; | |
float kp; | |
float ki; | |
float kd; | |
}; | |
// Системные настройки | |
struct SystemSettings { | |
uint32_t version; | |
IdleSettings idle; | |
float minAdvance; | |
float maxAdvance; | |
float injectionTimeMin; | |
float injectionTimeMax; | |
float idleRpmMin; | |
float idleRpmMax; | |
}; | |
// Данные обучения | |
struct LearningData2 { | |
float fuelCorrections[16][16]; | |
float ignitionCorrections[16][16]; | |
uint32_t cellHits[16][16]; | |
uint32_t version; | |
}; | |