IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Node-Gyp : C++ -> Node


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Node-Gyp : C++ -> Node
    Bonjour tout le monde !
    Alors voila bientôt 2 semaine que je suis bloqué dans mon projet.
    Je vous préviens de suite, j'ai un mal fou à clarifier mes explications Donc je vais essayer d’être le plus cours et précis possible afin de ne pas vous perdre !!

    0 - Projet :

    Tout d'habord mon projet est un projet scolaire, mon but est de : controler un Ar Drone 2.0 (PARROT) avec un casque Emotiv Epoc+ (par la pensée).
    Le Drone est codé en NodeJS MAIS le casque est codé en C++.

    1 - Demarche:

    La structure du projet est du type :

    Casque -> Serveur Node (envoie donnée)
    Serveur Node -> Drone (envoie ordre)
    Serveur Node -> Client(html) (envoie donnée)
    Donc on suit l'etat du drone via une page html.

    Apres de nombreux essais... La meilleur solution trouvé est :
    J'utilise node-gyp pour transformer ma partie C++ en lib de NODE. Ensuite Je recupere les donnée en NODE puis les traites normalement en NODE (Dans le plus parfait des mondes )

    2- Problemes
    Après déjà un TRÈS TRÈS long moment pour comprendre comment marche node-gyp, j'ai finalement réussi à transformer mon programme c++ en lib pour Node !!

    ILLUSTRATION SIMPLIFIER :

    C++ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    *** codes ***
    mentalCommandAction = static_cast<int>(IS_MentalCommandGetCurrentAction(eState));
    mentalCommandActionPower = IS_MentalCommandGetCurrentActionPower(eState);
    *** codes ***
    Node :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    var Epoc = require('bindings')('index');
     
    Epoc.connect(function(event) {
     
    	if(event.blink > 0){
    		console.log('blink');
    	}
    	if(event.mentalCommandAction > 1){
    		console.log(event.mentalCommandActionPower);
    	}
    	if(event.laugh > 0){
    		console.log('laugh');
    	}
     
    	if(event.smile > 0){
    		console.log('smile');
    	}
    });
    Le probleme reside ICI, certaines variables tel que (event.blink >0) fonctionne parfaitement la variable passe de 0 à 1 en fonction de l'etat !!
    En revanche , mentalCommandAction(Power) reste CONSTAMMENT à 0 !!!!!!!!!!
    Et alors le plus drole est que si je fait tournée exctement les MEMES programmes en c++ ou en node, c'est toujours pareil !!! Les variable tels que mentalAction, time, ... reste à 0 ou une valeur constante !! Et d'autre fonctionnent sans problemes

    (Bon je crois que c'est bon j'ai perdu tout le monde je vais faire un vidéo pour réellement montrer ce qui se passe haha )

    3 - SOLUTIONS ENVISAGEES
    Plusieurs solutions sont envisageable :

    • Je pense a un probleme de convertion de donnée ente c++ et js ? Mais cela est peu probable car normalement les valeur de mentalCommandAction sont 1,2,4,8,16,32.. et mentalCommandActionPower de 0 à 1
    • La fonction EMIT par le casque n'est pas acceptable en JS donc il renvoi une erreur a al fonction (0) et c'est pour cela que j'ai ABSOLUEMENT toujours 0 ?


    EDIT :
    Voici les videos :
    La premiere montre que ca marche tres bien en c++, puis on vois sur la deuxieme que certaines variables ne repondent pas comme il le faut :/
    https://youtu.be/R1c0z5MESsU
    https://youtu.be/a0ZWGErEn48

    CODE SOURCE c++ : https://github.com/XavG/EpocUtils2.0
    CODE SOURCE NodeJS : https://github.com/XavG/node-epocjs

    EDIT2: N'hesitez surtout pas à me dire si certaines chose ne vont pas, des fichiers manquant (j’espère pas) ou autres.

    Voila je suis COMPLETEMENT PERDU !!! Je vais tenter de vous faire un videu puis de relire mon post pour l'eclaircir un peu
    Merci d'avance,

    Xavier

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Re bonjour !!!

    Alors voila j'ai peut être trouvé (sans le faire exprès) la cause du problème.

    En effet pour compiler et exécuté tout ça le programme est accompagné d'un edk.lib (pour compiler) et d'un edk.dll pour s'executé !

    Or aujourd'hui sur le PC d'un amis on a testé mon programme (en node) avec les edk en 32bit et ca marche !!!! (Sur mon ordi c'est 64bit)

    En revanche sur ma machine il refuse de compiler car je suis en 64bit.

    Le probleme peut-il effectivement venir des ces dll et lib ?

    Comment puis-je forcer la compilation en 32bit ? On est donc bien d’accord que le problème viens UNIQUEMENT du dll ? pas de mon code du coup ?

    Merci

Discussions similaires

  1. MathScript Node et MATLAB Script Node sous Labview
    Par caspnover dans le forum LabVIEW
    Réponses: 0
    Dernier message: 07/03/2016, 12h18
  2. Réponses: 4
    Dernier message: 05/01/2016, 23h13
  3. Tester si le node selectionné est un node fils
    Par sihammaster dans le forum VB.NET
    Réponses: 0
    Dernier message: 06/05/2010, 11h44
  4. []générer et LIRE du xml avec vb: sélection d'un node
    Par chris21 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 19/09/2003, 13h14
  5. template match="node() mais pas text()"
    Par Manu_Just dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 26/03/2003, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo