diff --git a/Semaine_7/ESP32/leds_commands/tests/pyhton/connectESPV2.py b/Semaine_7/ESP32/leds_commands/tests/pyhton/connectESPV2.py new file mode 100644 index 0000000..9d46218 --- /dev/null +++ b/Semaine_7/ESP32/leds_commands/tests/pyhton/connectESPV2.py @@ -0,0 +1,53 @@ +import socket +import sys +import threading +import select + +# Adresse du serveur +SERVER_IP = "192.168.1.105" +SERVER_PORT = 1234 + +def recv_loop(sock): + """Écoute les données reçues du socket et les affiche en hexadécimal""" + while True: + try: + data = sock.recv(1024) + if not data: + print("Déconnecté du serveur") + break + print("Reçu :", ' '.join(f"{b:02X}" for b in data)) + except Exception as e: + print("Erreur réception :", e) + break + +def main(): + # Connexion au serveur + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.connect((SERVER_IP, SERVER_PORT)) + print(f"Connecté à {SERVER_IP}:{SERVER_PORT}") + + # Lancer la boucle de réception dans un thread séparé + threading.Thread(target=recv_loop, args=(sock,), daemon=True).start() + + print("Tape des chiffres hexadécimaux (0-9, A-F). Ctrl+C pour quitter.") + try: + while True: + # Lire un seul caractère sans attente (mode ligne) + rlist, _, _ = select.select([sys.stdin], [], [], 0.1) + if rlist: + char = sys.stdin.readline().strip().upper() + if len(char) == 0: + continue + for c in char: + if c in "0123456789ABCDEF": + value = int(c, 16) + sock.send(bytes([value])) + print(f"Envoyé : {value:02X}") + else: + print(f"Ignoré : {c} (non hexadécimal)") + except KeyboardInterrupt: + print("\nDéconnexion") + sock.close() + +if __name__ == "__main__": + main()