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 :

MATLAB Client <--> Activex [Compiler]


Sujet :

MATLAB

  1. #1
    Futur Membre du Club Avatar de lemek
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Points : 5
    Points
    5
    Par défaut MATLAB Client <--> Activex
    Bonjour,
    Est-ce que quelqu'un pourrait m'expliquer le comportement de matlab lorsqu'on utilise les "activex" (Mfile dans Matlab ou compilé en stand-alone). Voici un bout de code utilisé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      actx = actxcontrol('ActiveUSB.ActiveUSB.1', [5 5 300 300], gcf);
      actx.set('Acquire', true)
      actx.set('Display', true)
    Si je roule dans Matlab (avec un Mfile), tout se passe bien, la caméra me montre le Preview à une vitesse très acceptable. Si je compile avec matlab (je suis en Win 7 sp1, 32 bits et Matlab 2013b), le programme EXE fonctionne mais le preview tombe à un frame à toute les 4 secondes!!!

    L'activex vient de la cie ActiveUsb pour le support des caméras Usb3 vision compliant.
    J'ai aussi vu dans la doc que Matlab avait deux façon de "parler" à l'activex: In-Process ou Out-of-Process. Il semble que dans matlab se soit le premier cas qui est rapide alors qu'en mode compilé se soit le Out-Of_process...

    Je saisie mal les dessous du Pourquoi?

  2. #2
    Futur Membre du Club Avatar de lemek
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Points : 5
    Points
    5
    Par défaut C'est la faute du MCR
    Pour faire court, le MCR fonctionne en "monoThread". Ne donnant pas d'accès aux processus asynchrone (Comme le StartCapture de la caméra). Une façon de contourner un peu ce problème peut être d'utiliser la fonction timer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foo = timer('TimerFcn','a=1;', 'TasksToExecute',Inf, 'Period',0.004, 'ExecutionMode','fixedRate');
    start(foo);
    ...
    ne pas oublier de caller quelquepart: stop(foo) et peut-être delete(foo)

    Avec cela, le Preview est fluide!

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

Discussions similaires

  1. Identifier client activeX
    Par DarkVader dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 27/12/2007, 11h45

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