Faire des tempo de durée différentes python

Ardue

Premium
Inscription
24 Juin 2015
Messages
711
Réactions
216
Points
9 826
Bonjour,
Je programme un petit script python qui doit s’exécuter par rapport à un programme C++, en gros ce programme doit contrôlé un microcontrôleur (RLY88) qui doit activer deux relais mais dans une tempo différente en pouvant réactiver le relais 1 et même temps que le relais 2 soit activé, exemple le relais doit être activé 2s et le relais 2 5 minutes et que le relais 1 doit pouvoir s'activer même si le relais 2 n'a pas fini sont tempo. Et si possible qui relance pas un tempo sur le relais 2.
Avez-vous des piste à me fournir, merci pur votre aide.

Exemple du programme python.

Python:
import serial
import time
import os
import sys

ma_liaison = serial.Serial('com4') #port com usb

def connectPortail():
    ma_liaison.write(b'\x66') #port 2
    time.sleep(2) #pause 2 seconde
    ma_liaison.write(b'\x70') #fermeture du port 2

    ma_liaison.close() #fermer la liaison

def connectLumiere():
    ma_liaison.write(b'\x65') #port 1
    time.sleep(300) #pause 5 minutes
    ma_liaison.write(b'\x6F') #fermeture

    ma_liaison.close() #fermer la liaison
 

Ardue

Premium
Inscription
24 Juin 2015
Messages
711
Réactions
216
Points
9 826
Salut,

Pas bien compris ta demande à vrai dire, tu veux pouvoir lancer 2 fonctions simultanément en gros non ?
je vais reformuler ça autrement, le but de mon programme python et d'ouvrir deux relais, le premier aura besoin juste d'une tempo de 2 secondes pour que le relais soit ouvert 2 secondes, le deuxième relais aura besoin d'une tempo de 5 minutes pour le relais soit ouvert 5 minutes, le but de ma demande et que si je lance le programme je peut ouvrir le relais 1 sans attendre 5 minutes que le relais 2 se termine, et que à chaque lancement du programme le relais 2 évite de s'accumuler (ex: 5 min +5 + 5+....+ 5=....) le but c'est qui soit bloqué à 5 minutes max .
On m'a parlé d'une solution et de faire deux programme python et d'utilisé des threads mais je trouve la démarche compliqué pour ce que je demande.
 

Spixz

This Is Us
Premium
Inscription
11 Décembre 2011
Messages
3 197
Réactions
847
Points
20 453
je vais reformuler ça autrement, le but de mon programme python et d'ouvrir deux relais, le premier aura besoin juste d'une tempo de 2 secondes pour que le relais soit ouvert 2 secondes, le deuxième relais aura besoin d'une tempo de 5 minutes pour le relais soit ouvert 5 minutes, le but de ma demande et que si je lance le programme je peut ouvrir le relais 1 sans attendre 5 minutes que le relais 2 se termine, et que à chaque lancement du programme le relais 2 évite de s'accumuler (ex: 5 min +5 + 5+....+ 5=....) le but c'est qui soit bloqué à 5 minutes max .
On m'a parlé d'une solution et de faire deux programme python et d'utilisé des threads mais je trouve la démarche compliqué pour ce que je demande.
Même avec cette explication j'ai pas tout compris. Est-ce que tu pourrais faire un schéma qui explique l'état de tes relais au cours du temps ?
J'ai compris que tu souhaitais ouvir et fermé le relai 1 toutes les 2 secondes et faire pareil pour le relai 2 mais toutes les 5 minutes. Ce que je ne comprends pas, c'est la relation entre les deux.
 

Praxis'

Super modérateur
Inscription
7 Février 2016
Messages
9 906
Réactions
4 342
Points
20 421
je vais reformuler ça autrement, le but de mon programme python et d'ouvrir deux relais, le premier aura besoin juste d'une tempo de 2 secondes pour que le relais soit ouvert 2 secondes, le deuxième relais aura besoin d'une tempo de 5 minutes pour le relais soit ouvert 5 minutes, le but de ma demande et que si je lance le programme je peut ouvrir le relais 1 sans attendre 5 minutes que le relais 2 se termine, et que à chaque lancement du programme le relais 2 évite de s'accumuler (ex: 5 min +5 + 5+....+ 5=....) le but c'est qui soit bloqué à 5 minutes max .
On m'a parlé d'une solution et de faire deux programme python et d'utilisé des threads mais je trouve la démarche compliqué pour ce que je demande.
2 process simultané = pas le choix faut des thread.
Même avec cette explication j'ai pas tout compris. Est-ce que tu pourrais faire un schéma qui explique l'état de tes relais au cours du temps ?
J'ai compris que tu souhaitais ouvir et fermé le relai 1 toutes les 2 secondes et faire pareil pour le relai 2 mais toutes les 5 minutes. Ce que je ne comprends pas, c'est la relation entre les deux.
Aucune à priori.
 

Ardue

Premium
Inscription
24 Juin 2015
Messages
711
Réactions
216
Points
9 826
Même avec cette explication j'ai pas tout compris. Est-ce que tu pourrais faire un schéma qui explique l'état de tes relais au cours du temps ?
J'ai compris que tu souhaitais ouvir et fermé le relai 1 toutes les 2 secondes et faire pareil pour le relai 2 mais toutes les 5 minutes. Ce que je ne comprends pas, c'est la relation entre les deux.
En gros j'ai un programme qui lance un script python, ce scripte python doit ouvrir le relais 1 2 seconde qui contrôle une porte, puis le relais 2 5 minutes qui contrôle des lumieres, le problème c'est que le programme qui fait appelle au sript peut se réactivé plusieurs fois, s'il le fait il doit attendre 5 minutes que le script python ce ferme pour pouvoir se lancer et ça ce n'est pas possible, car je doit ouvrir impérativement le relais 1 qui ouvre la porte et si possible évité une addition des temps d'allumage du relais 2 pour les lumières.
2 process simultané = pas le choix faut des thread.

Aucune à priori.
Oui je me doute bien que je n'aurais pas le choix d’utiliser du thread mes je sais que le thread ne s'apprend pas du jour au lendemain, aurais tu quelques tutos ou des conseilles.
 
Haut