From 368abfbecaa465436dfc6413b34281b5295f8620 Mon Sep 17 00:00:00 2001 From: Kerboul Date: Wed, 2 Apr 2025 09:23:34 +0200 Subject: [PATCH] =?UTF-8?q?Initialisation=20de=20la=20cam=C3=A9ra=20avec?= =?UTF-8?q?=20des=20valeurs=20par=20d=C3=A9faut=20et=20ajout=20de=20la=20r?= =?UTF-8?q?=C3=A9cup=C3=A9ration=20de=20l'=C3=A9tat=20de=20la=20cam=C3=A9r?= =?UTF-8?q?a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routes/cameraRoutes.js | 95 +++++++++++++++++++++++++++++++++++------- 1 file changed, 79 insertions(+), 16 deletions(-) diff --git a/routes/cameraRoutes.js b/routes/cameraRoutes.js index 4e22ff9..237dc1f 100644 --- a/routes/cameraRoutes.js +++ b/routes/cameraRoutes.js @@ -9,25 +9,93 @@ const serverError = require('../utils/serverError'); const minInterval = 3; // Minutes //const maxInterval = 60; // Minutes -const cameraFile = path.join(__dirname, '../storage/camera.txt'); +var defaultCaptureInterval = 5; // minutes +var defaultCaptureProjectID = -1; // -1 = pas de projet en cours de capture +var defaultCaptureStatus = 0; // 0 = pas de capture, 1 = capture en cours +var defaultMaintenance = 0; -var captureProjectID = -1; -var captureInterval = 0; // Minutes +var captureInterval = defaultCaptureInterval; // intervalle de capture en minutes +var captureProjectID = defaultCaptureProjectID; // ID du projet en cours de capture +var captureStatus = defaultCaptureStatus; // 0 = pas de capture, 1 = capture en cours +var maintenance = defaultMaintenance; // 0 = pas de maintenance, 1 = maintenance -function writeCameraFile() { - const data = { - captureProjectID, - captureInterval +function initCamera() { + const query = 'SELECT * FROM public.camera WHERE id = $1'; + const values = [1]; + + db.query(query, values, (err, result) => { + if (err) { + console.error('Erreur lors de la vérification de l\'entrée caméra:', err); + return; + } + + if (result.rows.length === 0) { + const insertQuery = ` + INSERT INTO public.camera (id, interval, project_id, capture_status, maintenance) + VALUES ($1, $2, $3, $4, $5) + `; + const insertValues = [1, defaultCaptureInterval, defaultCaptureProjectID, defaultCaptureStatus, defaultMaintenance]; + + db.query(insertQuery, insertValues, (err) => { + if (err) { + console.error('Erreur lors de l\'initialisation de la caméra:', err); + } else { + console.log('Caméra initialisée avec les valeurs par défaut.'); + } + }); + } else { + console.log('L\'entrée caméra avec l\'ID 1 existe déjà. Aucune initialisation nécessaire.'); + } + }); +} + +function getCamera() { + // retourner l'état de la caméra + const query = 'SELECT * FROM public.camera WHERE id = $1'; + const values = [1]; + db.query(query, values, (err, result) => { + if (err) { + console.error('Erreur lors de la récupération de l\'entrée caméra:', err); + return; + } + + if (result.rows.length === 0) { + console.log('Aucune entrée caméra trouvée.'); + return; + } + + const camera = result.rows[0]; + captureInterval = camera.interval; + captureProjectID = camera.project_id; + captureStatus = camera.capture_status; + maintenance = camera.maintenance; + + console.log('Caméra récupérée avec succès:', camera); + }); + return { + captureInterval: captureInterval, + captureProjectID: captureProjectID, + captureStatus: captureStatus, + maintenance: maintenance }; - fs.writeFileSync - (cameraFile, JSON.stringify(data, null, 2), 'utf8'); +} + +function printCameraStatus() { + let camera = getCamera(); + console.log('Statut de la caméra:'); + console.log('Intervalle de capture:', camera.captureInterval, 'minutes'); + console.log('ID du projet en cours de capture:', camera.captureProjectID); + console.log('Statut de la capture:', camera.captureStatus === 1 ? 'En cours' : 'Arrêté'); + console.log('Maintenance:', camera.maintenance === 1 ? 'En cours' : 'Aucune'); + console.log('-----------------------------------'); } function isCameraOccupied() { - return captureProjectID != -1; + return getCamera().captureStatus === 1; } -writeCameraFile(); +initCamera(); +printCameraStatus(); router.post('/procedure/start/', async (req, res) => { const { projectId, interval } = req.body; @@ -40,11 +108,6 @@ router.post('/procedure/start/', async (req, res) => { }); function startProcedure(projectId, interval) { - // Vérifier si la caméra est occupée - // Vérifier cohérence des valeurs - // Interroger DB sur l'existence du projet - // Appliquer valeurs - // Changer le statut du projet dans la DB if (isCameraOccupied()) { return { message: 'Caméra Occupée : Le projet ID ' + captureProjectID + ' est déjà en cours de capture.' }; }