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/11/02 12:51] – [Extrait] serge
Ligne 29: Ligne 29:
 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 74:
  
 <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