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:
@@ -13,7 +13,7 @@ var defaultCaptureInterval = 5; // minutes
|
|||||||
var defaultMaintenance = 0;
|
var defaultMaintenance = 0;
|
||||||
var defaultActive = 0; // 0 = pas de capture, 1 = capture en cours
|
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 query = 'SELECT * FROM public.camera WHERE id = $1';
|
||||||
const values = [1];
|
const values = [1];
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@ async function getCamera() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function printCameraStatus() {
|
async function printCameraStatus() {
|
||||||
let camera = getCamera();
|
let camera = getCamera();
|
||||||
console.log('Statut de la caméra:');
|
console.log('Statut de la caméra:');
|
||||||
console.log('Intervalle de capture:', camera.captureInterval, 'minutes');
|
console.log('Intervalle de capture:', camera.captureInterval, 'minutes');
|
||||||
@@ -78,7 +78,7 @@ function printCameraStatus() {
|
|||||||
console.log('-----------------------------------');
|
console.log('-----------------------------------');
|
||||||
}
|
}
|
||||||
|
|
||||||
function isCameraOccupied() {
|
async function isCameraOccupied() {
|
||||||
try {
|
try {
|
||||||
const query = 'SELECT id FROM public.projects WHERE status = $1 LIMIT 1';
|
const query = 'SELECT id FROM public.projects WHERE status = $1 LIMIT 1';
|
||||||
const values = [1];
|
const values = [1];
|
||||||
@@ -100,8 +100,7 @@ function isCameraOccupied() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getCurrentProject() {
|
async function getCurrentProject() {
|
||||||
// retourner le projet en cours (status 1)
|
|
||||||
try {
|
try {
|
||||||
const query = 'SELECT * FROM public.projects WHERE status = $1 LIMIT 1';
|
const query = 'SELECT * FROM public.projects WHERE status = $1 LIMIT 1';
|
||||||
const values = [1];
|
const values = [1];
|
||||||
@@ -126,8 +125,7 @@ function getCurrentProject() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetProjectStatus() {
|
async function resetProjectStatus() {
|
||||||
// repasser tous les projets en status 1 à 2 (stopped)
|
|
||||||
const query = 'UPDATE public.projects SET status = $1 WHERE status = $2';
|
const query = 'UPDATE public.projects SET status = $1 WHERE status = $2';
|
||||||
const values = [2, 1];
|
const values = [2, 1];
|
||||||
|
|
||||||
@@ -140,8 +138,7 @@ function resetProjectStatus() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function activateCamera() {
|
async function activateCamera() {
|
||||||
// activer la caméra (status 1)
|
|
||||||
const query = 'UPDATE public.camera SET active = $1 WHERE id = $2';
|
const query = 'UPDATE public.camera SET active = $1 WHERE id = $2';
|
||||||
const values = [1, 1];
|
const values = [1, 1];
|
||||||
|
|
||||||
@@ -154,8 +151,7 @@ function activateCamera() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function deactivateCamera() {
|
async function deactivateCamera() {
|
||||||
// désactiver la caméra (status 0)
|
|
||||||
const query = 'UPDATE public.camera SET active = $1 WHERE id = $2';
|
const query = 'UPDATE public.camera SET active = $1 WHERE id = $2';
|
||||||
const values = [0, 1];
|
const values = [0, 1];
|
||||||
|
|
||||||
@@ -180,8 +176,8 @@ async function changeProjectStatus(projectId, status) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
initCamera();
|
await initCamera();
|
||||||
printCameraStatus();
|
await printCameraStatus();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @swagger
|
* @swagger
|
||||||
@@ -222,7 +218,7 @@ router.get('/camera/status', async (req, res) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function setCameraSettings(interval, maintenance) {
|
async function setCameraSettings(interval, maintenance) {
|
||||||
try {
|
try {
|
||||||
const query = `
|
const query = `
|
||||||
UPDATE public.camera
|
UPDATE public.camera
|
||||||
@@ -253,21 +249,21 @@ async function startProcedure(projectId, interval, maintenance) {
|
|||||||
if (cameraOccupied) {
|
if (cameraOccupied) {
|
||||||
return { error: 'Camera is occupied by another project' };
|
return { error: 'Camera is occupied by another project' };
|
||||||
} else {
|
} else {
|
||||||
activateCamera();
|
await activateCamera();
|
||||||
setCameraSettings(interval, maintenance);
|
await setCameraSettings(interval, maintenance);
|
||||||
changeProjectStatus(projectId, 1); // changer le statut du projet en cours à 1 (en cours)
|
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.');
|
console.log('Procédure de capture démarrée avec succès.');
|
||||||
return { message: 'Capture procedure started successfully' };
|
return { message: 'Capture procedure started successfully' };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function stopProcedure() {
|
async function stopProcedure() {
|
||||||
var project = getCurrentProject();
|
var project = await getCurrentProject();
|
||||||
console.log(project);
|
console.log(project);
|
||||||
if (project) {
|
if (project) {
|
||||||
resetProjectStatus(); // réinitialiser le statut du projet en cours
|
await resetProjectStatus(); // réinitialiser le statut du projet en cours
|
||||||
deactivateCamera(); // désactiver la caméra
|
await deactivateCamera(); // désactiver la caméra
|
||||||
changeProjectStatus(project.id, 2); // changer le statut du projet en cours à 2 (terminé)
|
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.');
|
console.log('Procédure de capture arrêtée avec succès.');
|
||||||
return { message: 'Capture procedure stopped successfully' };
|
return { message: 'Capture procedure stopped successfully' };
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -7,12 +7,9 @@ let localCounter = 0;
|
|||||||
|
|
||||||
async function checkAndRemoveInvalidEntries() {
|
async function checkAndRemoveInvalidEntries() {
|
||||||
localCounter = 0;
|
localCounter = 0;
|
||||||
//console.log('[INFO] Vérification et suppression des entrées invalides...');
|
|
||||||
try {
|
try {
|
||||||
const measurementsRes = await db.query('SELECT id, path FROM measurements');
|
const measurementsRes = await db.query('SELECT id, path FROM measurements');
|
||||||
//console.log('Fetched measurements:', measurementsRes.rows);
|
|
||||||
for (const row of measurementsRes.rows) {
|
for (const row of measurementsRes.rows) {
|
||||||
//console.log('Checking file path:', row.path);
|
|
||||||
if (!fs.existsSync(row.path)) {
|
if (!fs.existsSync(row.path)) {
|
||||||
await db.query('DELETE FROM measurements WHERE id = $1', [row.id]);
|
await db.query('DELETE FROM measurements WHERE id = $1', [row.id]);
|
||||||
console.log(`Deleted invalid measurement entry with id: ${row.id}`);
|
console.log(`Deleted invalid measurement entry with id: ${row.id}`);
|
||||||
@@ -26,16 +23,13 @@ async function checkAndRemoveInvalidEntries() {
|
|||||||
for (const imagePath of allImages) {
|
for (const imagePath of allImages) {
|
||||||
const entryRes = await db.query('SELECT id FROM measurements WHERE path = $1', [imagePath]);
|
const entryRes = await db.query('SELECT id FROM measurements WHERE path = $1', [imagePath]);
|
||||||
if (entryRes.rows.length === 0) {
|
if (entryRes.rows.length === 0) {
|
||||||
// Remove the file if the entry does not exist
|
|
||||||
fs.unlinkSync(imagePath);
|
fs.unlinkSync(imagePath);
|
||||||
console.log(`Deleted file at path: ${imagePath} as its database entry does not exist`);
|
console.log(`Deleted file at path: ${imagePath} as its database entry does not exist`);
|
||||||
localCounter++; // Increment counter if entry is deleted
|
localCounter++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (localCounter > 0) {
|
if (localCounter > 0) {
|
||||||
//console.log(`[INFO] ${localCounter} entrées ont été modifiées`);
|
console.log(`[INFO] ${localCounter} entrées ont été modifiées`);
|
||||||
} else {
|
|
||||||
//console.log('[INFO] Aucune entrée n\'a été modifiée.');
|
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('Error checking and removing invalid entries:', err);
|
console.error('Error checking and removing invalid entries:', err);
|
||||||
|
|||||||
Reference in New Issue
Block a user