Skip to content

Commit badb527

Browse files
committed
fix delay data can
1 parent 55725ca commit badb527

2 files changed

Lines changed: 91 additions & 87 deletions

File tree

.DS_Store

0 Bytes
Binary file not shown.

src/ESP32_DevkitC_3.5_SPI.ino

Lines changed: 91 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@ void setup()
8484
{
8585

8686
CAN0.setCANPins(GPIO_NUM_17, GPIO_NUM_16); // RX, TX
87-
CAN0.begin(500000); // 500Kbps
87+
CAN0.begin(1000000); // 1Mbps
8888
CAN0.watchFor(0x360); // RPM, MAP, TPS
89-
// CAN0.watchFor(0x361); // Fuel Pressure
89+
CAN0.watchFor(0x361); // Fuel Pressure
9090
CAN0.watchFor(0x368); // AFR 01
9191
// CAN0.watchFor(0x370); // VSS
9292
CAN0.watchFor(0x372); // Voltage
@@ -142,19 +142,19 @@ void setup()
142142

143143
void loop()
144144
{
145-
if (millis() - lastPrintTime >= 1000)
146-
{ // Interval 1000ms
147-
lastPrintTime = millis();
148-
if (commMode == COMM_CAN)
149-
{
150-
Serial.print("CAN mode aktif. ");
151-
}
152-
else
153-
{
154-
Serial.print("Serial mode aktif. ");
155-
}
156-
Serial.printf("RPM: %d, MAP: %d, TPS: %d, VSS: %.2f, CLT: %.2f, IAT: %.2f, FP: %d, AFR: %.2f, Bat: %.2f\n", rpm, mapData, tps, vss, clt, iat, fp, afrConv, bat);
157-
}
145+
// if (millis() - lastPrintTime >= 1000)
146+
// { // Interval 1000ms
147+
// lastPrintTime = millis();
148+
// if (commMode == COMM_CAN)
149+
// {
150+
// Serial.print("CAN mode aktif. ");
151+
// }
152+
// else
153+
// {
154+
// Serial.print("Serial mode aktif. ");
155+
// }
156+
// Serial.printf("RPM: %d, MAP: %d, TPS: %d, VSS: %.2f, CLT: %.2f, IAT: %.2f, FP: %d, AFR: %.2f, Bat: %.2f\n", rpm, mapData, tps, vss, clt, iat, fp, afrConv, bat);
157+
// }
158158
if (commMode == COMM_CAN)
159159
{
160160
handleCANCommunication();
@@ -164,47 +164,51 @@ void loop()
164164
handleSerialCommunication();
165165
}
166166

167-
drawData();
168-
169-
if (millis() - lastClientCheck >= 1000)
170-
{
171-
lastClientCheck = millis();
172-
int clientCount = WiFi.softAPgetStationNum();
173-
174-
if (clientCount > 0)
175-
{
176-
clientConnected = true;
177-
lastClientCheck = millis(); // Reset timer jika ada koneksi
178-
}
179-
else if (millis() - lastClientCheckTimeout > wifiTimeout)
180-
{
181-
clientConnected = false;
182-
lastClientCheckTimeout = millis();
183-
}
184-
185-
// Matikan WiFi jika RPM > 100 atau tidak ada perangkat terkoneksi selama 30 detik
186-
if ((rpm > 100 || !clientConnected) && wifiActive)
187-
{
188-
WiFi.mode(WIFI_OFF);
189-
server.stop();
190-
wifiActive = false;
191-
}
192-
// Nyalakan kembali WiFi jika RPM ≤ 100 dan ada perangkat yang terkoneksi
193-
else if (rpm <= 100 && clientConnected && !wifiActive)
194-
{
195-
WiFi.mode(WIFI_AP);
196-
WiFi.softAPConfig(ip, ip, netmask);
197-
WiFi.softAP(ssid, password);
198-
server.begin();
199-
wifiActive = true;
200-
server.handleClient();
201-
}
167+
static uint32_t lastDraw = 0;
168+
if (millis() - lastDraw > 100) { // Update every 100ms
169+
drawData();
170+
lastDraw = millis();
202171
}
203172

204-
if (rpm <= 100 && wifiActive)
205-
{
206-
server.handleClient();
207-
}
173+
// if (millis() - lastClientCheck >= 1000)
174+
// {
175+
// lastClientCheck = millis();
176+
// int clientCount = WiFi.softAPgetStationNum();
177+
178+
// if (clientCount > 0)
179+
// {
180+
// clientConnected = true;
181+
// lastClientCheck = millis(); // Reset timer jika ada koneksi
182+
// }
183+
// else if (millis() - lastClientCheckTimeout > wifiTimeout)
184+
// {
185+
// clientConnected = false;
186+
// lastClientCheckTimeout = millis();
187+
// }
188+
189+
// // Matikan WiFi jika RPM > 100 atau tidak ada perangkat terkoneksi selama 30 detik
190+
// if ((rpm > 100 || !clientConnected) && wifiActive)
191+
// {
192+
// WiFi.mode(WIFI_OFF);
193+
// server.stop();
194+
// wifiActive = false;
195+
// }
196+
// // Nyalakan kembali WiFi jika RPM ≤ 100 dan ada perangkat yang terkoneksi
197+
// else if (rpm <= 100 && clientConnected && !wifiActive)
198+
// {
199+
// WiFi.mode(WIFI_AP);
200+
// WiFi.softAPConfig(ip, ip, netmask);
201+
// WiFi.softAP(ssid, password);
202+
// server.begin();
203+
// wifiActive = true;
204+
// server.handleClient();
205+
// }
206+
// }
207+
208+
// if (rpm <= 100 && wifiActive)
209+
// {
210+
// server.handleClient();
211+
// }
208212
}
209213

210214
void handleCANCommunication()
@@ -219,15 +223,15 @@ void handleCANCommunication()
219223
CAN_FRAME can_message;
220224
if (CAN0.read(can_message))
221225
{
222-
// Serial.print("ID: ");
223-
// Serial.print(can_message.id, HEX);
224-
// Serial.print(" Data: ");
225-
// for (int i = 0; i < can_message.length; i++)
226-
// {
227-
// Serial.print(can_message.data.byte[i], HEX);
228-
// Serial.print(" ");
229-
// }
230-
// Serial.println();
226+
Serial.print("ID: ");
227+
Serial.print(can_message.id, HEX);
228+
Serial.print(" Data: ");
229+
for (int i = 0; i < can_message.length; i++)
230+
{
231+
Serial.print(can_message.data.byte[i], HEX);
232+
Serial.print(" ");
233+
}
234+
Serial.println();
231235

232236
// Proses data berdasarkan ID
233237
switch (can_message.id)
@@ -287,30 +291,30 @@ void handleCANCommunication()
287291
}
288292
}
289293

290-
if (currentTime - lastPrintTime >= 1000)
291-
{ // Interval 1000ms
292-
Serial.print("RPM: ");
293-
Serial.print(rpm);
294-
Serial.print(" MAP: ");
295-
Serial.print(mapData);
296-
Serial.print(" kPa TPS: ");
297-
Serial.print(tps);
298-
Serial.print(" % Fuel Pressure: ");
299-
Serial.print(fp);
300-
Serial.print(" kPa AFR: ");
301-
Serial.print(afrConv, 2);
302-
Serial.print(" VSS: ");
303-
Serial.print(vss);
304-
Serial.print(" km/h Voltage: ");
305-
Serial.print(bat, 2);
306-
Serial.print(" V CLT: ");
307-
Serial.print(clt);
308-
Serial.print(" °C IAT: ");
309-
Serial.print(iat);
310-
Serial.println(" °C");
311-
312-
lastPrintTime = currentTime;
313-
}
294+
// if (currentTime - lastPrintTime >= 1000)
295+
// { // Interval 1000ms
296+
// Serial.print("RPM: ");
297+
// Serial.print(rpm);
298+
// Serial.print(" MAP: ");
299+
// Serial.print(mapData);
300+
// Serial.print(" kPa TPS: ");
301+
// Serial.print(tps);
302+
// Serial.print(" % Fuel Pressure: ");
303+
// Serial.print(fp);
304+
// Serial.print(" kPa AFR: ");
305+
// Serial.print(afrConv, 2);
306+
// Serial.print(" VSS: ");
307+
// Serial.print(vss);
308+
// Serial.print(" km/h Voltage: ");
309+
// Serial.print(bat, 2);
310+
// Serial.print(" V CLT: ");
311+
// Serial.print(clt);
312+
// Serial.print(" °C IAT: ");
313+
// Serial.print(iat);
314+
// Serial.println(" °C");
315+
316+
// lastPrintTime = currentTime;
317+
// }
314318
}
315319

316320
void handleSerialCommunication()

0 commit comments

Comments
 (0)