bigcode-starcoder2-15b / audi5_rabochi.ino
Dikhan1's picture
Upload 24 files
96a5049 verified
raw
history blame
2.38 kB
#include <WiFi.h>
#include <WebServer.h>
#include <ArduinoJson.h>
#include "engine_control.h"
#include "idle_control.h"
#include "settings_manager.h"
#include "config.h"
// Создаем объекты
EngineControl engineControl;
IdleController idleControl;
SettingsManager settingsManager;
WebServer server(80);
void handleStatus() {
StaticJsonDocument<512> doc;
doc["rpm"] = engineControl.getRPM();
doc["map"] = engineControl.getMAP();
doc["tps"] = engineControl.getTPS();
doc["lambda"] = engineControl.getLambda();
doc["knock_level"] = engineControl.knockLevel;
doc["knock_events"] = engineControl.getKnockEvents();
doc["fuel_correction"] = engineControl.getCurrentFuelCorrection();
doc["ignition_correction"] = engineControl.getCurrentIgnitionCorrection();
doc["engine_temp"] = engineControl.getEngineTemp();
doc["voltage"] = engineControl.getVoltage();
doc["learning_enabled"] = engineControl.isLearningEnabled();
String response;
serializeJson(doc, response);
server.send(200, "application/json", response);
}
void handleIdleRPM() {
if (server.hasArg("rpm")) {
int rpm = server.arg("rpm").toInt();
if (rpm >= 700 && rpm <= 2000) {
idleControl.setTargetRPM(rpm);
server.send(200, "text/plain", "OK");
return;
}
}
server.send(400, "text/plain", "Invalid RPM value");
}
void setup() {
Serial.begin(115200);
// Устанавливаем связь между объектами
idleControl.setEngineControl(&engineControl);
// Инициализация компонентов
engineControl.begin();
idleControl.begin();
// Настройка WiFi
WiFi.softAP("ECU_Config", "12345678");
// Настройка веб-сервера
server.on("/status", HTTP_GET, handleStatus);
server.on("/idle_rpm", HTTP_POST, handleIdleRPM);
server.begin();
}
void loop() {
// Обработка веб-запросов
server.handleClient();
// Обновление состояния двигателя
engineControl.update();
// Обновление РХХ
if (engineControl.getRPM() > 0) {
idleControl.update(engineControl.getRPM());
}
// Задержка для стабильной работы
delay(10);
}