Outils pour utilisateurs

Outils du site


kivy_oscpy

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
Prochaine révisionLes deux révisions suivantes
kivy_oscpy [2020/11/02 12:41] – [Extrait] sergekivy_oscpy [2020/12/04 10:17] – [Kivy: oscpy] serge
Ligne 2: Ligne 2:
 <WRAP center round box 60% centeralign> <WRAP center round box 60% centeralign>
 **{{tagpage>kivy|Toutes les pages Kivy}}** **{{tagpage>kivy|Toutes les pages Kivy}}**
-**[[http://translate.google.com/translate?hl=&sl=auto&tl=en&u=https%3A%2F%2Fressources.labomedia.org%2Fapprendre_kivy_en_images|English Version]]**+**[[http://translate.google.com/translate?hl=&sl=auto&tl=en&u=https%3A%2F%2Fressources.labomedia.org%2Fkivy_oscpy|English Version]]**
  
 **[[les_pages_kivy_en_details|Les pages Kivy en détails]]** **[[les_pages_kivy_en_details|Les pages Kivy en détails]]**
 </WRAP> </WRAP>
 <WRAP center round box 60% centeralign> <WRAP center round box 60% centeralign>
-**A modern implementation of OSC for python 3**+**A modern implementation of OSC for python 3**\\  
 +**C'est maintenu par les développeurs Kivy, c'est bien fait.**
 </WRAP> </WRAP>
  
 Ce package python fait partie du projet Kivy, mais il peut être utilisé indépendamment.  Ce package python fait partie du projet Kivy, mais il peut être utilisé indépendamment. 
- 
-**C'est maintenu par les développeurs Kivy, c'est bien fait.** 
  
 ===== Ressources ===== ===== Ressources =====
Ligne 26: Ligne 25:
   * **[[https://github.com/sergeLabo/accelerometer_service_osc|accelerometer_service_osc]]**   * **[[https://github.com/sergeLabo/accelerometer_service_osc|accelerometer_service_osc]]**
  
-====Extrait====+====Extraits====
 Il n'est pas possible d'avoir 2 serveurs sur le même port sur une même machine, chaque script à un  serveur pour recevoir et un client pour envoyer. Il n'est pas possible d'avoir 2 serveurs sur le même port sur une même machine, chaque script à un  serveur pour recevoir et un client pour envoyer.
  
-J'ai écrit quelque part que l'OSC ne supporte pas l'**UTF-8**. Si la 'envoi et la réception se fiat en python sans utiliser de bibliothèque tierce, il suffit d'encoder (en bytes) le string avec <code python> "à@éèù".encode('utf-8')</code> et de décoder avec+J'ai écrit quelque part que l'OSC ne supporte pas l'**UTF-8**. Si l'envoi et la réception se fait en python sans utiliser de bibliothèque tierce, il suffit d'encoder (en bytes) le string, ce qui est réalisé dans l'exemple ci-dessous avec<code python> "à@éèù".encode('utf-8')</code> et de décoder avec
 <code python>data.decode('utf-8')</code> <code python>data.decode('utf-8')</code>
  
Ligne 74: Ligne 73:
  
 <code python> <code python>
 +... 
 +from oscpy.client import OSCClient 
 +from oscpy.server import OSCThreadServer 
 +... 
 +class AccelerometerService: 
 +    ... 
 +    def init_osc(self): 
 +        """Le serveur peut envoyer 
 +        mais impossible d'avoir 2 serveurs sur le même port. 
 +        """ 
 +        self.server = OSCThreadServer() 
 +        self.server.listen('localhost', port=3001, default=True) 
 +        # Les callbacks du serveur 
 +        self.server.bind(b'/activity', self.on_activity) 
 +        self.server.bind(b'/stop', self.on_stop) 
 +        self.server.bind(b'/sensor_enable', self.on_sensor_enable) 
 +        # Un simple client 
 +        self.client = OSCClient(b'localhost', 3003) 
 +    ... 
 +    def on_activity(self, msg): 
 +        print("activity", msg) 
 +        self.activity = int(msg)  
 +    ... 
 +    def get_acceleration(self): 
 +        if self.status: 
 +            a, b, c = 0,0,0 
 +            ... 
 +            if self.sensor_enabled != 0: 
 +                # Set dans les arrays 
 +                self.acc_x[self.num] = a 
 +                self.acc_y[self.num] = b 
 +                self.acc_z[self.num] = c 
 +                self.acc_act[self.num] = self.activity 
 +                acc_message = [a, b, c, self.activity, self.num] 
 +                self.client.send_message(b'/acc', acc_message) 
 +    ...    
 +    def run(self): 
 +        while self.loop: 
 +            self.get_acceleration() 
 +            sleep(0.02) 
 +             
 +if __name__ == '__main__': 
 +    ACCELEROMETER = AccelerometerService() 
 +    ACCELEROMETER.run()            
 </code> </code>
  
-=== buildozer.spec === 
-[[https://github.com/sergeLabo/accelerometer_service_osc/blob/main/buildozer.spec|buildozer.spec]] 
  
 {{tag>kivy osc protocole_reseau python sb}} {{tag>kivy osc protocole_reseau python sb}}
kivy_oscpy.txt · Dernière modification : 2021/08/05 07:30 de serge