Bonjour à tous ,
je suis en cours de développez une application web qui permet le monitoring temps réel du formatage des disque dur :
je vous explique le principe tout d'abord et ce qu'il faut avoir :
J’insère un disque avec une Date D_T : Date d'insertion
W_D: Durée Estimée pour le formatage: (en minutes )
Timeleft: durée restante
donc dés l'insertion du disque dans la machine : La Durée wd: wiping duration (Ecoulé ) commence de Zero en s'incrémentant jusqu'a W_D se termine.
Sauf que je peux avoir un evenement généré par arduino sur ma BD y'a un cas lorsque Com ( colonne dans ma bd de type Enum ( 0, 1,2 ), Donc si Com=0 : wd s'incremente jusqu'a atteindre la Valeur W_D (estimée)
Sinon ( com= 1 ou 2) Wd doit s'arrêter à la valeur ou elle arrive avant que Com change et Timeleft devient Zéro

Maintenant ce que j'ai fait c'est ceci:
wd ça s'incrémente jusqu'a meme atteindre la valeur W_D et s'incremente toujours
et la condition sur le com n'est pas prise en considération.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
function timeleft(date){
	date2 = new Date(date);
	var tmp=Date.now()-date2;
	tmp = Math.floor(tmp/1000);
	var sec = tmp % 60;                    // Extraction du nombre de secondes
        tmp = Math.floor((tmp-sec)/60); 		// Nombre de secondes entre les 2 dates
	return tmp;
}
code en ajax:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
var wd ;
console.log(data);
$.each(data,function(index,val){
	html+= '<tr><td>'+val.SN+'</td>';
	html+='<td>'+val.Model+'</td>';
	html+='<td>'+val.Capacity+'</td>';
	html+='<td>'+val.Slot_Pos+'</td>';
	html+='<td>'+val.ID_Mach+'</td>';
	html+='<td>'+val.ID_op+'</td>';
	html+='<td>'+val.W_D+'</td>';
	if (val.W_D > timeleft(val.D_T)){
		html+='<td>'+Math.floor(val.W_D-timeleft(val.D_T))+'</td>';}
	else{
		html+='<td> 0 </td>';}
	if(val.W_F_S == "Fail"){
		color = "red";
		message = 'Failed';
	}
	if (i == 0 && val.W_F_S == "Fail"){
		progress = modifValues(val.D_T,val.W_D).toFixed(0);
		i++;
	}
	if ( (val.W_F_S != "Fail") && (modifValues(val.D_T,val.W_D).toFixed(0) < 100)){
		color = "orange";
		progress = modifValues(val.D_T,val.W_D).toFixed(0);
		message = modifValues(val.D_T,val.W_D).toFixed(0)+'%';
	} 
	if (Math.floor((val.W_D-timeleft(val.D_T)) < -2) && (val.W_F_S != "Fail")){
		color = "";
		progress = '100';
		message = "Successfully Completed !"; 
	}
	//if(val.com==0 ){ wd=val.W_D-Math.floor(val.W_D-timeleft(val.D_T)) ;} else  wd =(timeleft(val.DT_Update)-timeleft(val.D_T)) ;
	html+='<td>'+timeleft(val.D_T)+'</td>';
	html+='<td colspan="4"><div class="meter '+color+'"><span style="width: '+ progress +'%;">'+message+'</span></div></td>';
	//html+='<td><div id="progress"><p><strong>'+ modifValues(val.D_T,val.W_D).toFixed(0) +'%</strong></p><progress value=' +  modifValues(val.D_T,val.W_D)+ ' min="0" max="100"></progress></div></td></tr>'
});
$("#keywords tbody").html(html);
}
});
setTimeout(ma_function,3000);
}
Merci pour vos conseils et propositions d'avance