Bonjour,
Est ce que quelqu’un pourrait m’arranger le code s'il vous plait, pour que, quand je lance le programme cela écrit les donnée reçu et quand un client se connecte sur le serveur, la partie du programme qui écrit dans le fichier texte s'arrête et passe à la suite du programme, transmission etc …
Voici le programme complet :
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | #!/usr/bin/python # -*- coding: utf-8 -*- import serial import time import socket import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) GPIO.setup(11,GPIO.OUT) GPIO.setup(16,GPIO.OUT) boucle=1 boucle2=1 Principal=1 c=0 ser = serial.Serial('/dev/ttyAMA0', baudrate=1200, timeout=0.1,bytesize=7) def receive(): while True: try: time.sleep(0.01) state = ser.readline() return state except: pass time.sleep(0.1) while True: while boucle==1: boucle2=1 #LED rouge GPIO.output(11,True) GPIO.output(16,False) #Initialisation du serveur ConnexionPrincipale=socket.socket(socket.AF_INET, socket.SOCK_STREAM) ConnexionPrincipale.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) ConnexionPrincipale.bind(('', 20000)) ConnexionPrincipale.listen(5) print("Le serveur écoute à présent sur le port 20000") print("Attente d'un client ... ") print("") #Quand le client se connecte ConnexionClient, InfosConnexion = ConnexionPrincipale.accept() MessageRecu = "Client connectee" print(MessageRecu) print("") c=1 #Ecriture des données while Principal==1: if c!=0: #print("lol") Principal=0 break m = open('dataFile.txt','a') PI = open('PI.txt','a') puissance=0 COMPTEUR = receive() m.write(COMPTEUR) m.close() m = open('DataFile.txt','a') fichier = open('DataFile.txt', 'r') for ligne in fichier: if "APAA" in ligne: donnee=ligne.split(" ") if abs(int(donnee[1])-puissance) <40: puissance=int( donnee[1]) print(donnee[1]) PI.write(puissance) #LED verte GPIO.output(11,False) GPIO.output(16,True) #Boucle message while boucle2 == 1: MessageRecu = ConnexionClient.recv(1024) #Puissance instantanée if MessageRecu.startswith(b'PI'): g = open("PI.txt", "r") print("") print("Demande...") while 1: data=g.readline() if not data: break print (data) ConnexionClient.send(data) print("Message envoyée") #Consommation éléctrique if MessageRecu.startswith(b'CE'): g = open("CE.txt", "r") print("") print("Demande...") while 1: data=g.readline() if not data: break print (data) ConnexionClient.send(data) print("Message envoyée") #Reinitialisation if MessageRecu.startswith(b'Fin'): boucle2 = 0 print("Fermeture de la connexion") ConnexionClient.close() #Les 2 LEDS éteintes GPIO.output(11,False) GPIO.output(16,False) |
+0
-0