Ajout de la gestion des projets dans les procédures de démarrage et d'arrêt de la caméra, incluant la vérification de l'état du projet en cours et la mise à jour du statut du projet.
This commit is contained in:
@@ -73,10 +73,20 @@ async function confirm_stop_procedure() { // côté caméra
|
||||
idle: true,
|
||||
}
|
||||
await database_manager.capture.edit_camera(1, new_settings);
|
||||
let project_settings = {
|
||||
status: 0,
|
||||
}
|
||||
let current_project = await database_manager.project.find_current_rendering_project();
|
||||
if (current_project) {
|
||||
await database_manager.project.edit_project_by_id(current_project.id, project_settings);
|
||||
console.log("Project : " + current_project.id + " stopped.");
|
||||
} else {
|
||||
console.log("No project to stop.");
|
||||
}
|
||||
console.log("Camera stopped.");
|
||||
}
|
||||
|
||||
async function start_procedure(interval, nb_images) {
|
||||
async function start_procedure(project_id, interval, nb_images) {
|
||||
let new_settings = {
|
||||
interval: interval,
|
||||
nb_images: nb_images,
|
||||
@@ -85,6 +95,16 @@ async function start_procedure(interval, nb_images) {
|
||||
}
|
||||
console.log("Starting Procedure with settings:", new_settings);
|
||||
await database_manager.capture.edit_camera(1, new_settings);
|
||||
let project_settings = {
|
||||
status: 1,
|
||||
}
|
||||
let existing_project = await database_manager.project.find_current_rendering_project();
|
||||
if (existing_project) {
|
||||
throw new Error("A project is already being rendered. Please stop it before starting a new one.");
|
||||
} else {
|
||||
await database_manager.project.edit_project_by_id(project_id, project_settings);
|
||||
console.log("Project : " + project_id + " started.");
|
||||
}
|
||||
console.log("Camera started.");
|
||||
}
|
||||
|
||||
@@ -105,12 +125,12 @@ async function deactivate_maintenance() {
|
||||
}
|
||||
|
||||
router.post('/procedure/start', async (req, res) => {
|
||||
const { interval, nb_images } = req.body;
|
||||
const { project_id, interval, nb_images } = req.body;
|
||||
if (!interval || !nb_images) {
|
||||
return res.status(400).json({ error: 'Interval and number of images are required' });
|
||||
}
|
||||
try {
|
||||
await start_procedure(interval, nb_images);
|
||||
await start_procedure(project_id, interval, nb_images);
|
||||
res.json({ message: 'Camera started successfully', settings: { interval, nb_images } });
|
||||
} catch (error) {
|
||||
serverError.sendError('Error starting camera procedure:', res, error, 500);
|
||||
@@ -173,6 +193,8 @@ router.post('/camera/stop', async (req, res) => {
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* project_id:
|
||||
* type: integer
|
||||
* interval:
|
||||
* type: integer
|
||||
* nb_images:
|
||||
|
||||
Reference in New Issue
Block a user