smartcitizen
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
smartcitizen [2020/11/09 22:25] – Benjamin Labomedia | smartcitizen [2020/11/13 09:21] – [Les difficultés rencontrées] serge | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
{{ : | {{ : | ||
- | |||
- | |||
- | |||
---- | ---- | ||
- | + | ===== Kit de mesure SmartCitizen - approches hardware et software ===== | |
- | ====== Kit de mesure SmartCitizen - approches hardware et software | + | |
**Voir [[smartcitizen_hardware_software|la page dédiée aux recherches et expérimentations autour du kit SmartCitizen coté logiciel et matériel]]** : extraction de données, envoi par client mqtt, connexion au réseau Lora, ... | **Voir [[smartcitizen_hardware_software|la page dédiée aux recherches et expérimentations autour du kit SmartCitizen coté logiciel et matériel]]** : extraction de données, envoi par client mqtt, connexion au réseau Lora, ... | ||
Ligne 17: | Ligne 13: | ||
- | ====== Application SmartCitizen Android avec Kivy ====== | + | ===== Application SmartCitizen Android avec Kivy ===== |
<WRAP center round box 60% centeralign> | <WRAP center round box 60% centeralign> | ||
Ligne 42: | Ligne 38: | ||
{{ : | {{ : | ||
- | =====Ressources===== | + | ====Ressources==== |
* **[[https:// | * **[[https:// | ||
* **[[https:// | * **[[https:// | ||
Ligne 51: | Ligne 47: | ||
**{{ :: | **{{ :: | ||
- | =====Les choses non réussies===== | + | ====Les choses non réussies==== |
* Créer les box du menu déroulant dans le main.py alors que ça marche dans [[taposc|TapOSC]] mais sans menu déroulant. | * Créer les box du menu déroulant dans le main.py alors que ça marche dans [[taposc|TapOSC]] mais sans menu déroulant. | ||
* Un simple label transparent au dessus d'un widget | * Un simple label transparent au dessus d'un widget | ||
- | =====Les difficultés rencontrées===== | + | ====Les difficultés rencontrées==== |
===L' | ===L' | ||
- | 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' |
- | mais pas l' | + | |
- | Solution: Un Clock dans A actualise | + | Une solution plus élégante est utilisée dans **[[https:// |
+ | <code python> | ||
+ | class AccelerometerApp(App): | ||
+ | def build(self): | ||
+ | return Accelerometer(self) | ||
+ | |||
+ | class Accelerometer(BoxLayout): | ||
+ | def __init__(self, | ||
+ | super().__init__(**kwargs) | ||
+ | self.app = app | ||
+ | self.app.osc = OSC() | ||
+ | |||
+ | class OSC: | ||
+ | def __init__(self): | ||
+ | self.histo = [] | ||
+ | self.server = OSCThreadServer() | ||
+ | self.server.bind(b'/ | ||
+ | |||
+ | def on_histo(self, | ||
+ | self.histo = .... | ||
+ | |||
+ | class Screen2: | ||
+ | def __init__(self): | ||
+ | self.app = App.get_running_app() # dans __init__() | ||
+ | # et appel de l' | ||
+ | self.app.osc.histo | ||
+ | Clock.schedule_once(self._once, | ||
+ | |||
+ | def _once(self, dt): | ||
+ | Clock.schedule_interval(self.update, | ||
+ | |||
+ | def update(self, | ||
+ | blabla = self.app.osc.histo | ||
+ | # blabla retrouve | ||
+ | </ | ||
===Création du graph dans le kv=== | ===Création du graph dans le kv=== | ||
* [[https:// | * [[https:// | ||
- | * | ||
- | |||
- | |||
- | |||
- | |||
- | =====Widgets Kivy utilisés===== | + | ====Widgets Kivy utilisés==== |
* **ScreenManager: | * **ScreenManager: | ||
Ligne 102: | Ligne 126: | ||
* **[[kivy_garden|Kivy: | * **[[kivy_garden|Kivy: | ||
- | =====buildozer.spec===== | + | ====buildozer.spec==== |
- | < | + | < |
[app] | [app] | ||
title = Smart Citizen | title = Smart Citizen | ||
Ligne 125: | Ligne 149: | ||
</ | </ | ||
- | =====Thread in Kivy===== | + | ====Thread in Kivy==== |
Pour stopper un thread à la fermeture de la fenêtre, le définir comme Salsa du démon | Pour stopper un thread à la fermeture de la fenêtre, le définir comme Salsa du démon | ||
<code python> | <code python> | ||
Ligne 132: | Ligne 156: | ||
thread_update.start() | thread_update.start() | ||
</ | </ | ||
+ | ou\\ | ||
+ | class threading.Thread(group=None, | ||
- | {{tag> kivy python realisations_logicielles sb }} | + | {{tag> |
smartcitizen.txt · Dernière modification : 2020/12/01 17:43 de serge