Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1127 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Condition temporelle : comparaition de date + ou - delais.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Condition temporelle : comparaition de date + ou - delais.

n°2259652
par l'anne​au de l'ia
word master
Posté le 04-06-2015 à 01:15:51  profilanswer
 

Bonjour bonsoir.
 
 Je me présente, je rigole.
 
Je dois jouer des note à heure fixes, mais passé un certain délais, je joue pas la note.
 
Voici ma condition avec Ada.
 

Code :
  1. if (Dated_Buffer(Buffer_iter).Hour +
  2.      Dated_Buffer(Buffer_iter).Date) <= Clock then
  3.      if Dated_Buffer(Buffer_iter).Hour +
  4.         Dated_Buffer(Buffer_iter).Date <= Clock - 0.1 then
  5.  
  6.          Driver.Receive(Dated_Buffer(Buffer_Iter).Message);
  7.  
  8.      else
  9.        Lost_Count := Lost_Count + 1;
  10.    end if;
  11. end if;


 
Je ne parvien pas à determiner si je dois placer un + ou un moins et ou pour pas jouer les note passé depuis ? il faudrait même zéro.
 
En tout cas j'ai un problème.
Je vais tester autre chose en attendant votre réponse.
 
 
Et je suis en train de tester ceci :
 

Code :
  1. if (Dated_Buffer(Buffer_iter).Hour +
  2.     Dated_Buffer(Buffer_iter).Date) <= Clock + 0.1 then
  3.    if Dated_Buffer(Buffer_iter).Hour +
  4.       Dated_Buffer(Buffer_iter).Date >= Clock - 0.01 then


Message édité par par l'anneau de l'ia le 04-06-2015 à 01:22:04

---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
mood
Publicité
Posté le 04-06-2015 à 01:15:51  profilanswer
 

n°2259653
par l'anne​au de l'ia
word master
Posté le 04-06-2015 à 01:29:31  profilanswer
 

Comme ça c'est pas mal a priori :
 

Code :
  1. if (Dated_Buffer(Buffer_iter).Hour +
  2.     Dated_Buffer(Buffer_iter).Date) <= Clock + 0.1 then
  3.   if Dated_Buffer(Buffer_iter).Hour +
  4.      Dated_Buffer(Buffer_iter).Date >= Clock + 0.01 then


 
Mais j'ai encode des messages qui remplissent pas les conditions.
 
 


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
n°2259660
par l'anne​au de l'ia
word master
Posté le 04-06-2015 à 08:36:04  profilanswer
 

Bon ! Là j'ai mit ça :
 

Code :
  1. if (Dated_Buffer(Buffer_iter).Hour +
  2.     Dated_Buffer(Buffer_iter).Date) <= Clock - 2.0 then
  3.      if Dated_Buffer(Buffer_iter).Hour +
  4.         Dated_Buffer(Buffer_iter).Date >= Clock - 2.5 then


 
Pendant un moment c'était mieux.
Puis avec le temps ça c'est dégrader, j'arrive encore en retard après 5 minutes. j'ai un problème de timing.


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
n°2259691
par l'anne​au de l'ia
word master
Posté le 04-06-2015 à 16:52:59  profilanswer
 

J'ai fait différemment finalement, j'ai créé un type tache avec une attente active qui découle sur le message à envoyer.

Code :
  1. type Dated_Message_Type;
  2.      task type Event_Type(Dated_Message : access Dated_Message_Type) is
  3.         entry Initialize(Message : in Long; Date : in Time; Hour : in Duration);
  4.         entry Exhausted;
  5.      end Event_Type;
  6.  
  7.  
  8.      type Dated_Message_Type is limited
  9.         record
  10.            Message : Interfaces.C.Long := 0;
  11.            Hour    : Duration := 0.0;
  12.            Date    : Time := Clock;
  13.            Event   : Event_Type(Dated_Message_Type'Access);
  14.         end record;
  15.  
  16.      type Dated_Messages_Set is array (Positive range <> ) of access Dated_Message_Type;
  17.  
  18.      task body Event_Type is
  19.      begin
  20.         accept Initialize(Message : in Long; Date : in Time; Hour : in Duration) do
  21.            Dated_Message.Message := Message;
  22.            Dated_Message.Date := Date;
  23.            Dated_Message.Hour := Hour;
  24.         end Initialize;
  25.         delay until Dated_Message.Date + Dated_Message.Hour;
  26.         Driver.Receive(Dated_Message.Message);
  27.         accept Exhausted;
  28.      end Event_Type;


 
C'est à peu près ce que j'avais fait au départ mais je n'y arrivais pas alors j'ai pris le problème autrement, pour finalement intégrer la solution de départ.


Message édité par par l'anneau de l'ia le 04-06-2015 à 16:53:11

---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Condition temporelle : comparaition de date + ou - delais.

 

Sujets relatifs
variable dans une condition bashConversion date jjmmaa en jj/mm/aaaa
Condition sur une boucle for[Excel 2013] - Recherche date plus récente par ID
[SQL/SQL Server] Date maximale pour calcul suivant une cat/agentAffichage d'une date en format "dd-MM-yyyy"
filtrer un dbgrid avec un champ date videConvertir un String en Date
[Python] Checkbox et condition - Récupération de variableProblème d'algo pour le jour suivant d'une date
Plus de sujets relatifs à : Condition temporelle : comparaition de date + ou - delais.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR