Initialisation de la caméra avec des valeurs par défaut et ajout de la récupération de l'état de la caméra
This commit is contained in:
@@ -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.' };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user