Connexion entre deux RaspberryPi


30 posts   Page 2 of 2   1, 2
by YCN- » Fri May 19, 2017 8:36 am
jelopo wrote:Encore une autre approche mais plus geek : utiliser la durée de vie d'un string dans un serveur redis.
(il faut installer un serveur Redis : # apt-get install redis-server et c'est tout )


C'est vrai que c'est cool, mais le problème de cette approche c'est qu'elle n'est pas standard et c'est un usage détourné. C'est une solution de hacker qui ne l'aidera pas à apprendre grand chose. En stage il vaut mieux apprendre des choses "classiques" afin de les réutiliser dans toutes les situations.
Je dois avouer que l'idée est bonne mais pas forcément très appropriée.

YCN-
Posts: 222
Joined: Fri Jun 10, 2016 3:18 pm
by jelopo » Fri May 19, 2017 7:35 pm
@YCN, c'est vrai j'ai complètement zappé l'aspect scolaire de la chose. :oops:
D'ailleurs depuis le temps que je suis sorti de ce cursus, je ne connais pas du tout les contraintes et attentes que l'on peut avoir pour un stage....

A+
Posts: 1089
Joined: Wed Oct 17, 2012 7:53 pm
by Tomichouno » Mon May 22, 2017 2:32 am
jelopo wrote:@Tomichouno
- si le serveur reçoit un second 1 pendant ces 60 secondes, alors la LED le délai de 60 secondes recommence.

C'est ce que je pensait vouloir dire !

Du coté réglage PIR il y a quelque chose ?

A+


Non pas de réglage au niveau du PIR ...
Posts: 17
Joined: Fri Apr 28, 2017 1:44 am
by Tomichouno » Mon May 22, 2017 2:33 am
YCN- wrote:
Tomichouno wrote:Ce que j'aimerais réussir à faire, c'est :
- le serveur reçoit un 1, il allume la LED pendant 60 seconde mais il continue à recevoir la trame de 0 et de 1 que le client lui envoie et continue à l'examiner.
- si le serveur reçoit un second 1 pendant ces 60 secondes, alors la LED le délai de 60 secondes recommence.


Garde le serveur d'un côté et utilise un thread pour la led. Ca donnerait un truc comme ça. Attention ça ne compilera pas cest juste pour le concept :

Code: Select all
int my_var;



void fnt_thread_led (void){

   while (1) {
      if ( my_var ) {
         ALLUME_LED(LED);
         sleep(60);
      }
      else {
         sleep(0.5);
      }
   }
}



int main (void) {

   thread my_thread ;
   start_thread ( my_thread , fnt_thread_led);

   while (1) {
      int receive = get_data(); // get_data() c'est tout ce que tu fais avec ton serveur pour recevoir la réponse
      if (receive){
         my_var = 1;
      }
      else {
         my_var = 0;
      }
      sleep (0.5);
   }
}


J'ai vu que tu faisais du python même si ce code est C-like je suppose que tu devrais pouvoir le comprendre. Tout ce qui est thread, ou start thread il faut que tu regardes comment ça se fait en python (cf le lien à la fin de ma réponse). Mais globalement un thread c'est un sous programme que tu vas lancer à l'interieur de ton programme et qui va avoir une vie quasiment indépendante du programme principal, même si ils partagent le même environnement (aka les variables sont partagés, et de même pour les fonctions ect...). Ce que j'ai fait n'est pas très légal puisque l'on est sensé avoir des protection de variables partagés, mais dans un cas simple comme le tiens tu n'en as pas vraiment besoin.

YCN-

-> thread en python : https://openclassrooms.com/courses/appr ... -threading


D'accord, merci pour l'info, je vais me pencher là dessus ! ;-)
Posts: 17
Joined: Fri Apr 28, 2017 1:44 am
by Tomichouno » Mon May 22, 2017 2:39 am
Et pour répondre à vos autres messages :

En effet je pensais que la méthode du thread est plus adaptée à mon stage !

Je vous remercie de l'intérêt que vous porter à mon projet ! :D

Je n'hésiterai pas à vous tenir au courant quand j'aurai terminé.
Posts: 17
Joined: Fri Apr 28, 2017 1:44 am