Outils pour utilisateurs

Outils du site


smartcitizen

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
smartcitizen [2020/11/12 13:02] sergesmartcitizen [2020/11/13 09:21] – [Les difficultés rencontrées] serge
Ligne 53: Ligne 53:
 ====Les difficultés rencontrées==== ====Les difficultés rencontrées====
 ===L'accès à des variables d'une class depuis une autre=== ===L'accès à des variables d'une class depuis une autre===
-Exemple: la class A peut accéder à la variable self.toto de la class B,\\ +La class A peut accéder à la variable self.toto de la class B, mais pas l'inversela class B ne peut pas accéder à la variable self.truc de la class A. La solution utilisée dans cette application est  un Clock dans A qui actualise la valeur de B.
-mais pas l'inverse la class B ne peut pas accéder à la variable self.truc de la class A.+
  
-SolutionUn Clock dans A actualise la valeur de B.+Une solution plus élégante est utilisée dans **[[https://github.com/sergeLabo/accelerometer/blob/main/main.py|accelerometer: main.py]]** avec 
 +<code python> 
 +class AccelerometerApp(App): 
 +    def build(self): 
 +        return Accelerometer(self) 
 +         
 +class Accelerometer(BoxLayout): 
 +    def __init__(self, app, **kwargs): 
 +        super().__init__(**kwargs) 
 +        self.app = app 
 +        self.app.osc = OSC() 
 +         
 +class OSC: 
 +    def __init__(self): 
 +        self.histo = [] 
 +        self.server = OSCThreadServer() 
 +        self.server.bind(b'/histo', self.on_histo) 
 +         
 +    def on_histo(self, *args): 
 +        self.histo = .... 
 +         
 +class Screen2: 
 +    def __init__(self): 
 +        self.app = App.get_running_app() # dans __init__() 
 +        # et appel de l'attribut histo de OSC avec 
 +        self.app.osc.histo 
 +        Clock.schedule_once(self._once, 1) 
 + 
 +    def _once(self, dt): 
 +        Clock.schedule_interval(self.update, 0.1) 
 +         
 +    def update(self, dt):  
 +        blabla = self.app.osc.histo  
 +        # blabla retrouve la valeur de histo de OSC !!!! 
 +</code>
  
 ===Création du graph dans le kv=== ===Création du graph dans le kv===
Ligne 94: Ligne 127:
  
 ====buildozer.spec==== ====buildozer.spec====
-<code python>+<code text>
 [app] [app]
 title = Smart Citizen title = Smart Citizen
Ligne 123: Ligne 156:
         thread_update.start()         thread_update.start()
 </code> </code>
 +ou\\
 +class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)
  
 {{tag> smartcitizen kivy python realisations_logicielles sb }} {{tag> smartcitizen kivy python realisations_logicielles sb }}
smartcitizen.txt · Dernière modification : 2020/12/01 17:43 de serge