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

Java Discussion :

Coupler Java et C


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de khallou2007
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut Coupler Java et C
    Bonjour,

    Je m'en doute que je postule mon problème dans le topic adéquat, mais je laisse au responsables de le rediriger vers le bon en cas où je me suis trompé.

    Je travaille avec deux logiciels STORM et ATMI développé en java et C respectivement. (ils ne sont pas connue, sauf pour le monde de recherche et pour des spécialités très précis).
    le travaille au première temps était de générer un fichier de sortie par Storm et l’intégrer avec ATMI pour faire des calculs sur ce dernière et régénérer un autre fichier; alors c'est simple en java j'ai utilisé FileWriter.. et dans ATMI je fais une lecture simple des donnée (fopen..;sscanf..;conversion des données), et je fais mes calculs.

    Le problème actuellement c'est au lieu de faire ça hors ligne (attendre la simulation du première logiciel terminera pour lancer ATMI avec le fichier généré), je voulais le faire au fur et à mesure c'est à dire couplé les deux logiciel et au lieu d'avoir un fichier de sortie, les valeurs calculer dans STORM seront injecté instantanément dans ATMI et ce dernière retourne la résultat de calcule pour que STORM l'utiliseras dans la prochaine step, de calcule.

    J'espère que mon problème est un peu claire, et à votre avis c'est faisable?
    si oui, comment je peux procéder?

    Merci d'avance pour toutes suggestions
    bien cordialement.

  2. #2
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut
    Sous Linux / Unix : Vous pouvez par exemple , tous simplement travaillé avec un "pipe"

    Le fichier en Sortie coté Storm est le pipe (Considéré aussi comme un fichier)
    et idem pour ATMI en entrée .
    Il faudra , bien sur , "flush-é" la sortie après chaque Ecriture pour prise en compte par "ATMI"

    Les 2 Programmes fonctionnent simultanément , l'un utilisant les données générés par l'autre "via votre pipe"

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    1 ère Possibilité
    ---------------
    Il y a surement mieux, mais tu peux le faire avec des Sockets.
    Du réseau en fait, même si t'es sur la même machine.


    1 - STORM fait son boulot
    2 - ATMI écoute sur le port XXX
    3 - STORM a fini et envoie son résultat à ATMI et se met en attente.
    4 - ATMI calcule, et retourne le résultat à STROM
    5 - STORM utilise le résultat reçu.

    Bien-sur ça implique que tu puisse modifier les 2 logiciels.


    2 ème Possibilité
    ---------------
    Si ATMI fourni des libs de calcul, tu peux utiliser JNI pour utiliser directement ces libs dans java.

  4. #4
    Membre confirmé Avatar de khallou2007
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut
    @argoet: merci pour l'idée, je tavaille souvent avec le "pipe" sous linux mais je connais pas:
    , "flush-é" la sortie après chaque Ecriture
    et ca donne les résultats souhaité?, je donne un exemple
    si la première sortie de STORM est la valeur '15' ATMI la récupère et fait son calcule (par exemple 15*2) et retourne la valeur 30 à Storm pour qu'il génère la deuxième résultat à partir de cette valeur.

    @Mathieu.J: deux bonne idée (avec l'idée de argoet)!!
    je regarde avec les socket malgré que je suis un peu loin du réseau..
    et la deuxième possibilité, ça veut dire quoi
    Si ATMI fourni des libs de calcul
    Merci !!

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Beh si les fonctions de calcul sont disponibles dans des .so (ou des .dll pour windows). CA te permettrait d'exécuter des fonctions de calcul en C depuis Java par exemple.

  6. #6
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut
    Citation Envoyé par khallou2007 Voir le message
    et ca donne les résultats souhaité?, je donne un exemple
    si la première sortie de STORM est la valeur '15' ATMI la récupère et fait son calcule (par exemple 15*2) et retourne la valeur 30 à Storm pour qu'il génère la deuxième résultat à partir de cette valeur.
    Ooops !! Pas vraiment
    Si vous voulez faire cela : il faut alors travailler avec un 2eme Pipe Qui sera La Sortie de ATMI et L'entree de STORM

  7. #7
    Membre confirmé Avatar de khallou2007
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut
    Beh si les fonctions de calcul sont disponibles dans des .so (ou des .dll pour windows). CA te permettrait d'exécuter des fonctions de calcul en C depuis Java par exemple.
    bon les calculs son un peu compliqué..il utilise des librairies externe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <stdlib.h>
    #include <stdio.h>
    #include <math.h>
    #include <gsl/gsl_errno.h>
    #include <gsl/gsl_integration.h>
    #include <gsl/gsl_spline.h>
    #include <gsl/gsl_fft_complex.h>
    #include "atmi.h"
    mais est ce que je peux générer moi même des .so ?? à partir du .c ?

  8. #8
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Oui. Voir avec les experts C pour ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Coupler la puissance de Java EE et PHP grâce à GlassFish
    Par Ricky81 dans le forum Glassfish et Payara
    Réponses: 14
    Dernier message: 07/02/2014, 14h06
  2. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 19h55
  3. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  4. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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