IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Fonction qui calcule la durée écoulée dès le début de formatage d'un disque dur


Sujet :

JavaScript

  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 51
    Par défaut Fonction qui calcule la durée écoulée dès le début de formatage d'un disque dur
    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

  2. #2
    Membre chevronné Avatar de 01001111
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 319
    Par défaut
    Bonjour,

    je pense qu'il faut que tu mettes une condition sur le setTimeout pour éviter le relancement de la fonction sur la valeur wd attendue...
    Sinon ta condition sur le com est commentée, mais je pense que tu l'as fait exprès avant de poster et que ce n'est pas dans ces conditions que tu as eu ce résultat, est-ce bien ça?
    Et pourquoi ce -2 ici?
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            if (Math.floor((val.W_D-timeleft(val.D_T)) < -2) && (val.W_F_S != "Fail")){
    		color = "";
    		progress = '100';
    		message = "Successfully Completed !"; 
    	}

Discussions similaires

  1. [Macro Excel] Fonction qui calcule une formule dans une cellule
    Par Enthau dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/07/2008, 16h31
  2. fonction qui calcule log
    Par acacia dans le forum Débuter
    Réponses: 5
    Dernier message: 15/02/2008, 13h19
  3. fonction qui calcule le nombre de checkbox cochés
    Par namstou3 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/10/2007, 13h55
  4. [Date] Fonction de calcul de durée entre 2 dates
    Par jesus144 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/01/2006, 16h36
  5. fonction qui calcule la factorielle ?
    Par piff62 dans le forum C
    Réponses: 8
    Dernier message: 27/02/2005, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo