# Import des modules nécessaires (éventuellement à installer avec le module pip)
import sys
import time
from pythonnet import load
load("coreclr")
import clr
import keyboard

clr.AddReference('EngineIO64') # Chargement du fichier  EngineIO64.DLL

from EngineIO import *

print("Home I/O & Python sont bons amis ! Merci à pythonnet !")

# gestion de la lumière du salon, pièce A
lumiere_salon = MemoryMap.Instance.GetBit(0, MemoryType.Output)

# État initial de la lumière obtenue avec l'atribut Value
print("Lumière initialement allumée ?" + str(lumiere_salon.Value))

for i in range(5): # répétition 5 fois
	lumiere_salon.Value = not lumiere_salon.Value # alternence de l'état de la lumière : allumée/éteinte


	print("Lumière allumée ? " + str(lumiere_salon.Value))

    # Lorsque l'on veut utiliser la valeur attachée à une variable,
    # penser à appleler la méthode update pour mettre à jour cette valeur.
    # La ligne suivante permet d'écrire la nouvelle valeur de lumiere_salon.Value en mémoire.

	MemoryMap.Instance.Update()

    # pause de 1 seconde dans le programme
	time.sleep(1)

# Quand on n'utilise plus les variables utilisées avec MemoryMap, on peut
# appeler la méthode Dispose afin de libérer toutes les ressoruces allouées.
MemoryMap.Instance.Dispose()

print("À bientôt !")
