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

MATLAB Discussion :

[serial.fread] gain de performance


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de tubaas
    Homme Profil pro
    Acousticien
    Inscrit en
    Août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 641
    Par défaut [serial.fread] gain de performance
    bonjour
    j'utilise la fonction fread pour lire un port série. je peux avoir 140appels de cette fonction (je ne peux pas m'en passer) et cela me prends 3secondes.
    la fonction fwrite semble beaucoup plus rapide.
    matlab utilise apparemment la fonction JAVA du même nom.
    je voulais savoir s'il y avit un moyen d'optimiser cela ou si le temps était dû à l'attente d'une réponse (je ne sais pas trop comment cela fonctionne).
    ma communication se fait en UART
    si vous avez des préisions à m'apporter sur le fonctionnement de cette fonction et si vous pensez que je peux l'optimiser ou si au contraire les 3s sont incompressibles, merci de votre avis

  2. #2
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Je ne sais pas si tu as lus la doc, mais il existe une autre possibilité avec fscanf, dont voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    s = serial('COM1');
    fopen(s)
    fprintf(s,'*IDN?')
    idn = fscanf(s);
    fclose(s)
    Dans la rubrique contribuez, j'ai donné quelque exemple mais pour piloter le port parallèle. C'est par ici >>

    Voir aussi

  3. #3
    Membre émérite Avatar de tubaas
    Homme Profil pro
    Acousticien
    Inscrit en
    Août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 641
    Par défaut
    salut
    matlab ne connaît pas getvalue (peut-être dans une toolbox que je n'ai pas).
    quand à fscanf je n'arrive pas dutout à lui spécifier le bon format. fread lit apparemment en 'uchar' (unsigned 8bits characters) et je n'arrive pas à retrouver les résultats.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317

  5. #5
    Membre émérite Avatar de tubaas
    Homme Profil pro
    Acousticien
    Inscrit en
    Août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 641
    Par défaut
    merci pour les liens Dut je n'avais même paspensé à regarder la doc
    en fait un simple petit test a répondu à ma question puisque si j'insère un pause avant les opérations de lectures i n'y a pas de problème de performance.
    je suppose que le délai est dû à l'attente du remplissage du buffer avec le nombre de valeurs (octets) attendues.

  6. #6
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Si tu veux montrer le code que tu utilises, on pourra de dire d'avantage

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

Discussions similaires

  1. [TBB] Gain de performances ?
    Par myzu69 dans le forum Threads & Processus
    Réponses: 5
    Dernier message: 28/12/2009, 12h27
  2. Réponses: 1
    Dernier message: 14/10/2009, 12h26
  3. Table access vers Oracle = Gain de performance ?
    Par niavlys77 dans le forum Access
    Réponses: 1
    Dernier message: 17/09/2007, 19h48
  4. [Clé unique/Clé composite] Gain de performances ?
    Par Nounoursonne dans le forum Oracle
    Réponses: 2
    Dernier message: 30/01/2006, 08h59
  5. [Packages]Un véritable gain de performance ?
    Par New dans le forum Oracle
    Réponses: 7
    Dernier message: 28/10/2005, 14h19

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