Modifications

Sauter à la navigation Sauter à la recherche
1 531 octets ajoutés ,  20 mars 2025 à 22:02
Ligne 175 : Ligne 175 :  
# '''Chime Time''' est la représentation, sous forme de tuple, de l'information '''Chime at'''. Le format est, cette fois, sensiblement différent avec {{fname|(Année, Jour, Mois, Heures, Minutes, Secondes, Jour_de_la_semaine, Jour_de_l_annee)}} puisqu'il provient de la fonction {{fname|time.localtime()}}
 
# '''Chime Time''' est la représentation, sous forme de tuple, de l'information '''Chime at'''. Le format est, cette fois, sensiblement différent avec {{fname|(Année, Jour, Mois, Heures, Minutes, Secondes, Jour_de_la_semaine, Jour_de_l_annee)}} puisqu'il provient de la fonction {{fname|time.localtime()}}
   −
=== Quelques explications ===
+
=== Le corps du script ===
 
Commençons par analyser le corps du programme du s'étend des lignes 49 à 80.
 
Commençons par analyser le corps du programme du s'étend des lignes 49 à 80.
   Ligne 198 : Ligne 198 :  
* '''Ligne 80''' : Une pause de 5 secondes est insérée à chaque itération de la boucle {{fname|while}}.
 
* '''Ligne 80''' : Une pause de 5 secondes est insérée à chaque itération de la boucle {{fname|while}}.
    +
=== La fonction next_chime() ===
 +
 +
Pour rappel, en voici la définition:
 +
 +
<syntaxhighlight lang="python" >
 +
def next_chime( _now ):
 +
    """  Calculate Next 1/2 H and Next Hour chimes time
 +
 +
    Parameters:
 +
        _now : rtc datetime  (Y,M,D,wD,h,m,s,ms)
 +
   
 +
    returns:
 +
        Time in seconds (since Jan 1, 2000)
 +
    """
 +
    # mktime datetime (Y,M,D,h,m,s,wD,yD)
 +
    if _now[5]<30: # Minutes < 30 => Chimes at next 30 mins
 +
        mktime_data = ( _now[0], _now[1], _now[2], _now[4], 30, 0, _now[3], 0 )
 +
        chime_type = HALF_HOUR_CHIME
 +
        hour = _now[4]
 +
    else: # Shime next Hour
 +
        chime_type = HOUR_CHIME
 +
        if _now[4]+1 > 23: # > 23H
 +
            # Next day at 00:00
 +
            # Transform in seconds
 +
            mktime_data = ( _now[0], _now[1], _now[2], _now[4], _now[5], _now[6], _now[3], 0 )
 +
            secs = time.mktime( mktime_data )
 +
            # Add a day
 +
            next_day_secs = secs + 24*60+60 + 30*60
 +
            # Decode this new date
 +
            mktime_data = time.localtime( next_day_secs )
 +
            # Zeroing the Hours, Minutes (shime the at first second)
 +
            mktime_data = ( mktime_data[0], mktime_data[1], mktime_data[2], 0, 0, 1, 0, 0 )
 +
            hour = 0
 +
        else:
 +
            # Next Hour & Zeroing minutes, seconds
 +
            mktime_data = ( _now[0], _now[1], _now[2], _now[4]+1, 0, 0, 0, 0 )
 +
            hour = _now[4]+1
 +
   
 +
    # Return seconds, Half or full Hour chime, related Hour
 +
    return time.mktime( mktime_data ), chime_type, hour
 +
</syntaxhighlight>
    
{{P2E-TRAILER}}
 
{{P2E-TRAILER}}
32 920

modifications

Menu de navigation