diff --git a/alpr-service/main.py b/alpr-service/main.py index d87c526..93e08b4 100644 --- a/alpr-service/main.py +++ b/alpr-service/main.py @@ -50,7 +50,7 @@ def alpr_loop(): # OPTIMIZACIÓN 1: Reducir resolución en hardware cap.set(cv2.CAP_PROP_FRAME_WIDTH, 480) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 360) - cap.set(cv2.CAP_PROP_FPS, 15) + cap.set(cv2.CAP_PROP_FPS, 24) cap.set(cv2.CAP_PROP_BUFFERSIZE, 1) # Mantener el buffer al mínimo last_process_time = 0 diff --git a/backend/src/index.js b/backend/src/index.js index c6fe74c..d40555c 100644 --- a/backend/src/index.js +++ b/backend/src/index.js @@ -101,7 +101,23 @@ app.post('/api/detect', async (req, res) => { const { plate_number } = req.body; console.log(`Detected: ${plate_number}`); + const DUPLICATE_COOLDOWN_MS = 30000; // 30 seconds + try { + // Check for recent duplicate + const lastLog = await prisma.accessLog.findFirst({ + where: { plateNumber: plate_number }, + orderBy: { timestamp: 'desc' } + }); + + if (lastLog) { + const timeDiff = new Date() - new Date(lastLog.timestamp); + if (timeDiff < DUPLICATE_COOLDOWN_MS) { + console.log(`Duplicate detection ignored for ${plate_number} (${timeDiff}ms since last)`); + return res.json({ message: 'Duplicate detection ignored', ignored: true, accessStatus: lastLog.accessStatus }); + } + } + // Check if plate exists let plate = await prisma.plate.findUnique({ where: { number: plate_number }