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; | |
| }; | |