Rendre plusieurs fonctions asynchrones pour améliorer la gestion des erreurs et assurer un traitement correct des opérations liées à la caméra et aux projets.

This commit is contained in:
2025-04-03 08:41:25 +02:00
parent 12898d67c0
commit ed853ab0f7
2 changed files with 19 additions and 29 deletions

View File

@@ -13,7 +13,7 @@ var defaultCaptureInterval = 5; // minutes
var defaultMaintenance = 0;
var defaultActive = 0; // 0 = pas de capture, 1 = capture en cours
function initCamera() {
async function initCamera() {
const query = 'SELECT * FROM public.camera WHERE id = $1';
const values = [1];
@@ -69,7 +69,7 @@ async function getCamera() {
}
}
function printCameraStatus() {
async function printCameraStatus() {
let camera = getCamera();
console.log('Statut de la caméra:');
console.log('Intervalle de capture:', camera.captureInterval, 'minutes');
@@ -78,7 +78,7 @@ function printCameraStatus() {
console.log('-----------------------------------');
}
function isCameraOccupied() {
async function isCameraOccupied() {
try {
const query = 'SELECT id FROM public.projects WHERE status = $1 LIMIT 1';
const values = [1];
@@ -100,8 +100,7 @@ function isCameraOccupied() {
}
}
function getCurrentProject() {
// retourner le projet en cours (status 1)
async function getCurrentProject() {
try {
const query = 'SELECT * FROM public.projects WHERE status = $1 LIMIT 1';
const values = [1];
@@ -126,8 +125,7 @@ function getCurrentProject() {
}
}
function resetProjectStatus() {
// repasser tous les projets en status 1 à 2 (stopped)
async function resetProjectStatus() {
const query = 'UPDATE public.projects SET status = $1 WHERE status = $2';
const values = [2, 1];
@@ -140,8 +138,7 @@ function resetProjectStatus() {
});
}
function activateCamera() {
// activer la caméra (status 1)
async function activateCamera() {
const query = 'UPDATE public.camera SET active = $1 WHERE id = $2';
const values = [1, 1];
@@ -154,8 +151,7 @@ function activateCamera() {
});
}
function deactivateCamera() {
// désactiver la caméra (status 0)
async function deactivateCamera() {
const query = 'UPDATE public.camera SET active = $1 WHERE id = $2';
const values = [0, 1];
@@ -180,8 +176,8 @@ async function changeProjectStatus(projectId, status) {
}
}
initCamera();
printCameraStatus();
await initCamera();
await printCameraStatus();
/**
* @swagger
@@ -222,7 +218,7 @@ router.get('/camera/status', async (req, res) => {
}
});
function setCameraSettings(interval, maintenance) {
async function setCameraSettings(interval, maintenance) {
try {
const query = `
UPDATE public.camera
@@ -253,21 +249,21 @@ async function startProcedure(projectId, interval, maintenance) {
if (cameraOccupied) {
return { error: 'Camera is occupied by another project' };
} else {
activateCamera();
setCameraSettings(interval, maintenance);
changeProjectStatus(projectId, 1); // changer le statut du projet en cours à 1 (en cours)
await activateCamera();
await setCameraSettings(interval, maintenance);
await changeProjectStatus(projectId, 1); // changer le statut du projet en cours à 1 (en cours)
console.log('Procédure de capture démarrée avec succès.');
return { message: 'Capture procedure started successfully' };
}
}
async function stopProcedure() {
var project = getCurrentProject();
var project = await getCurrentProject();
console.log(project);
if (project) {
resetProjectStatus(); // réinitialiser le statut du projet en cours
deactivateCamera(); // désactiver la caméra
changeProjectStatus(project.id, 2); // changer le statut du projet en cours à 2 (terminé)
await resetProjectStatus(); // réinitialiser le statut du projet en cours
await deactivateCamera(); // désactiver la caméra
await changeProjectStatus(project.id, 2); // changer le statut du projet en cours à 2 (terminé)
console.log('Procédure de capture arrêtée avec succès.');
return { message: 'Capture procedure stopped successfully' };
} else {