Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
smarthome:stage_d_ete_2020_simsvirtualhome [2020/07/31 08:59]
mliang [Comment lancer mon capteur]
smarthome:stage_d_ete_2020_simsvirtualhome [2020/07/31 09:47]
mliang [Comment lancer mon capteur]
Line 28: Line 28:
  
 Version du simulateur : exec_linux_07_01_Data. ​ Version du simulateur : exec_linux_07_01_Data. ​
 +
 +Version de Python : Python3.
 ===== Work ===== ===== Work =====
  
Line 41: Line 43:
  
 === Analyse du programme === === Analyse du programme ===
 +
 +**1. Génération du fichier configuration.txt**
 +
  
  configuration_dict = {}  configuration_dict = {}
Line 56: Line 61:
      file.write('​}'​)      file.write('​}'​)
  
-  configuration_dict = {} +Tout d'abordon génère automatiquement ​configuration.txt ​qui contient tous les objets qui ont des états grâce à ce code sur unity_demo.ipynb.
-  for unit in hasstate_array:​ +
-    if len(unit['states'​]) == 1: +
-        configuration_dict[(unit['​id'​]id_object_room[unit['​id'​]])] = 1 +
-    else: +
-        configuration_dict[(unit['​id'​],​ id_object_room[unit['​id'​]],​ '​door'​)] = 1 +
-        configuration_dict[(unit['​id'​],​ id_object_room[unit['​id'​]],​ '​plug'​)] = 1 +
-#​print(configuration_dict) +
-with open('configuration.txt', '​w'​) as file: +
-    file.write('​{'​) +
-    for key, value in configuration_dict.items():​ +
-        file.write(str(key)+':​ '​+str(value)+',​\n'​) +
-    file.write('​}'​) +
-{{:​smarthome:​generate_config.png?400|}}+
  
-//​Illustration 1 : Génération du fichier ​configuration.txt//+**2. configuration.txt**
  
-Tout d'abordon génère automatiquement configuration.txt qui contient tous les objets qui ont des états grâce à ce code sur unity_demo.ipynb.+ {(25, '​closet_livingroom'​):​ 1, 
 + (67, '​tablelamp_livingroom'​):​ 1, 
 + (77, '​book_livingroom'​):​ 1, 
 + (78, '​book_livingroom'​):​ 1, 
 + (81, '​facecream_livingroom'​):​ 1, 
 + (92, '​lightswitch_livingroom'​):​ 1, 
 + (97, '​tv_livingroom'​):​ 1, 
 + (98, '​computer_livingroom'​):​ 1, 
 + (120, '​door_kitchen'​):​ 1, 
 + (132, '​kitchencabinets_kitchen'​):​ 1, 
 + (133, '​kitchencabinets_kitchen'​):​ 1, 
 + (134, '​kitchencounter_kitchen'​):​ 1, 
 + (136, '​faucet_kitchencounter'​):​ 1, 
 + (138, '​stove_kitchen',​ '​door'​):​ 1, 
 + (138, '​stove_kitchen',​ '​plug'​):​ 1, 
 + (140, '​dishwasher_kitchen',​ '​door'​):​ 1, 
 + (140, '​dishwasher_kitchen',​ '​plug'​):​ 1, 
 + (141, '​fridge_kitchen'​):​ 1, 
 + (142, '​toaster_kitchencounter'​):​ 1, 
 + (145, '​coffeemaker_kitchen',​ 'door'): 1,
  
-{{:​smarthome:​configuration.png?400|}}+Voici configuration.txt. On peut voir id, nom de classe et le lieu de l'​objet. Le chiffre 0 ou 1 indique que le capteur est activé ou désactivé.
  
-//​Illustration 2 : configuration.txt//+**3 Fonction main()** 
 +  def main(): 
 +       
 +      comm = simulatorComm() 
 +       
 +      configuration = readConfig("​configuration.txt") 
 +       
 +      state_dict = initializeState_dict(configuration) 
 +       
 +      while True: 
 +           
 +          graph = getGraph(comm) 
 +           
 +          writeState(state_dict,​ graph) 
 +           
 +          time.sleep(1)
  
-Voici configuration.txtOn peut voir id, nom de classe ​et le lieu de l'​objetLe chiffre 0 ou indique le capteur activé ou désactivé.+C'est mon programme de capteur« state_dict » est un dictionnaire qui contient tous les capteurs activésEnsuite une boucle infinie permet ​de détecter ​et de noter si les états se changentEnfin, « time.sleep(1) » pour faire une pause d'une seconde.
  
-{{:​smarthome:​main_fonction.png?​400|}}+**Problème**
  
-//​Illustration 3 : Fonction main()//+Par contre, la variable « graphe » sur le simulateur ne se change pas lorsque l'on exécute un script. On ne peut détecter le changement que par la variable « graphe ». Par conséquent,​ on ne peut pas avoir le changement des états en exécutant des scripts. C'est le problème du simulateur et on est en train de contacter le créateur du simulateur pour une nouvelle version.
  
-C'est mon programme de capteur. « state_dict » est un dictionnaire qui contient tous les capteurs activés. Ensuite une boucle infinie permet de détecter et de noter si les états se changent. Enfin« time.sleep(1) » pour faire une pause d'une seconde.+Avant que le créateur répare le problèmeon propose deux solutions secondaires :
  
-Par contre, le graphe sur le simulateur ne se change pas lorsque l'on exécute un scriptC'est le problème du simulateur et on est en train de contacter ​le créateur ​du simulateur pour une nouvelle version.+  - Soit on ajoute « save_scene_states=True » dans « comm.render_script » donc on le changement des états. Pour le temps du changement, on génère ​une vidéo et le calcule à partir de la durée de la vidéo, quel frame et la fréquence image.
  
 +  - Soit on le fait par la méthode "​Evolving Graph"​.
 ===== Results ===== ===== Results =====
  
 +Les données des capteurs seront enregistrées sur states.csv comme cela :
  
-Les données des capteurs seront enregistrées sur states.csv. + 07/​21/​20 21:​30:​33 353 ON 
 + 07/​21/​20 21:​30:​33 354 CLOSED 
 + 07/​21/​20 21:​30:​33 354 OFF 
 + 07/​21/​20 21:​32:​06 146 ON 
 + 07/​21/​20 21:​32:​06 354 ON 
 + 07/​21/​20 21:​34:​34 146 OFF 
 + 07/​21/​20 21:​37:​41 25 CLOSED 
 + 07/​21/​20 21:​37:​57 25 CLOSED 
 + 07/​21/​20 21:​38:​33 25 CLOSED 
 + 07/​21/​20 21:​38:​33 67 ON
  
 {{tag>​project software}} {{tag>​project software}}
  • smarthome/stage_d_ete_2020_simsvirtualhome.txt
  • Last modified: 2020/07/31 13:05
  • by mai