Page 1 sur 1

Utilisation d'un Datetime.TimeDelta en incrustation d'image pour un minuteuri

Posté : lun. 7 oct. 2019 12:02
par henrig
Bonjour,
je n'arrive pas à intégrer une valeur de temps < Datetime.TimeDelta> dans une chaine de caractère ?
En détail :
J'utilise un RPI 3 + une camera avec Jessie et Python comme soft pour surveiller le déroulement d'impression 3D d'une machine qui se trouve 3 pièces plus loin,
J'ai utilisé un temps OCTOPRINT mais je loupais pas mal de pièces à cause de la liaison entre la carte mère de cette imprimante 3D(une Velleman K8400) et le RPI qui pourtant a sa propre source d'alimentation, donc j'ai déconnecter et je n'utilise plus que la camera,
Comme on peut le voir sur une image j'affiche l'heure en incrustation dans l'image (et aussi la température du RPI, mais pas quand j'ai pris la photo
incrustation.jpg
incrustation.jpg (73.26 Kio) Vu 377 fois
j'ai imprimé, câbler et relier au RPI quatre roues codeuse sur lesquelles j'affiche la durée d'impression( qui vient du trancheur REPETIER quand je compile mon objet 3D à imprimer en GCODE),
les Roues en question(Je ne résiste pas à l'envie de partager mon œuvre avec vous :mrgreen: ) :
Image
En Python j'additionne ce qui est sur les roues codeuses à l'heure courante, c'est à dire au moment où je débute l'impression , ce qui me donne l'heure de fin de la tâche et ensuite je soustrais l'heure de fin de tâche avec l'heure courante, ce qui me donne le temps restant à imprimer
Tous ceci fonctionne parfaitement et pour faire les additions/soustraction j'utilise la fonction TIMEDELTA,
Mais je n'arrive pas à intègre mon résultat dans mon incrustation d'image de ma camera, J'ai déjà quelques valeurs dans cette chaine et il me faut rajouter ce TIMEDLTA ?
Voici ou devrai se trouver ma valeur récalcitrante, juste après temps restant :

Code : Tout sélectionner

camera.annotate_text = dt.datetime.now().strftime('%d-%B-%Y %H:%M:%S\n') + ('temps restant : ') + ('Temperature RPI %0.1f' % chaleur)
Merci par avance de votre aide SI VOUS AVEZ UNE SOLUTION ou d'autres suggestions.
Henri

Re: Utilisation d'un Datetime.TimeDelta en incrustation d'image pour un minuteur

Posté : dim. 17 nov. 2019 08:25
par cbalo
Bonjour,
Il te faut trouver la durée restante exprimée par exemple en seconde.
Puis tu formates ces secondes pour un affichage à ta sauce.

Ou : plus malin
Ajoute tes secondes restantes au 1er janvier de l'an 1 ,0h00:00
d=datetime.datetime(1,1,1)+datetime.timedelta(seconds=nbe_secondes_restantes))
puis utilises strftime pour formater ton affichage (en H:M:S) en retirant 1 jour (car qu'on est parti du 1er janvier)
print("%.2d:%.2d:%.2d" % ( d.hour+(d.day-1)*24, d.minute, d.second))

Re: Utilisation d'un Datetime.TimeDelta en incrustation d'image pour un minuteur

Posté : dim. 17 nov. 2019 18:10
par henrig
Bonsoir,
Ceci tourne depuis quelques semaines, tout est OK coté PYTHON, mais le slicer REPETIER ne me ramène pas vraiment une bonne durée après tranchage d'un fichier(+10%),
Donc ceci enlève un peut d'intérêt et d'attrait à ce montage, c'est tout de même bon comme exercice.
J'y ai rajouté deux fonctions par ces roues codeuses pour moi utiles : 9900 = SHUTDOWN et 9800 = REBOOT (comme je n'imprimerai jamais au-delàs de 48/72 h max ;) )
Merci à Tous de votre intérêt,
Cordialement,
Henri
Image