Le Multithreading Matlab, EASY (1 / 1 étapes)

Étape 1: code

il vous faudra matlab et un éditeur de texte : utilisez soit le bloc-notes qui vient avec windows (recherche de notepad.exe) ou utilisez l’éditeur du fichier m matlab (fichier-nouveau-mfile). Cela a fonctionné avec matlab 6.5 (R13) et matlab 7 (R14), mais je ne parviens pas à l’utiliser avec matlab r2007a.

1) Télécharger le fichier de code et wav attaché à cette étape (Code et Wav File.rar), il s’agit d’un fichier compressé, vous aurez besoin de winzip ou winrar pour le décompresser. NOTE : parce qu’instructables est légèrement retardé ce fichier va télécharger quelque chose comme FLSKW9EFHIK6H6V.tmp, donc vous n’avez pas de le renommer en something.rar (ennuyeux, mais pas de ma faute).
2) Enregistrez tous les deux de ces (fichier code et wav) dans votre répertoire de "travail" de matlab (facilite les choses)
3) ouvrir matlab
4) tapez dans mex mythreadprog.cpp
4,5) NOTE : si c’est la première fois que vous utilisez le compilateur de mex dans matlab, tapez mex-installation avant l’étape 4 pour choisir le compilateur que vous souhaitez utiliser.
5) quand je fais cela sur mon matlab je reçois un « avertissement de ligne de commande », mais il n’est pas l’effet sur n’importe quoi
6) type dans hullo = 1, ceci Initialise une variable utilisée par le fichier mex (si vous ne faites pas cette matlab plantera)
7) pour exécuter le type de fichier mex dans mythreadprog

8) à l’invite de matlab, vous verrez Val #
où # est la valeur de hullo, vous entendrez aussi le fichier wav jouer 7 fois, le temps entre chaque lecture du fichier wav est (1 seconde * hullo), donc dès que vous entendez le son en cours de lecture, vous pouvez modifier la valeur de hullo (hullo = 5, coque = 3, etc.) et vous pouvez entendre le thread mex compte tenu de cela (il y aura différentes longueurs pauses lorsque vous changez la valeur de hullo dans matlab)
Notez que matlab retourne le contrôle à vous immédiatement même si le thread s’exécute toujours en arrière-plan.

9) si vous voulez que le thread d’imprimer les valeurs de variables à l’invite de matlab vous pouvez décommenter _both_ de la lignes labled //---for test--- dans le code

Remarque : Si vous seulement décommentez la mexPrintf dans le thread et pas le sommeil dans le matlab mexFunction plantera. C’est parce que vous désirez envoyer un rappel à matlab après que la mexFunction est terminée. Si vous voulez que le thread d’envoyer des informations vers matlab après l’arrêt de la mexFunction c’est plus compicated (aka. Je ne sais pas comment, il chercher sur google).

#include < windows.h >
#include < stdlib.h > à
#include < string.h >
#include < stdio.h >
#include < conio.h >
#include < process.h > //used pour thread
#include « mex.h »
#include < mmsystem.h > //used pour son
#pragma comment (lib, « winmm.lib ») //used pour son

cdecl Sub MyThread(LPVOID pVoid) ;

//######################################################
###--fonction mex principal--###
//######################################################
void mexFunction (int nlhs, mxArray * plhs,
int nrhs, mxArray *prhs[])
{
int ThreadNr ; nécessaire pour le thread

commencer votre thread
_beginthread (le MyThread, 0, & ThreadNr) ;

---pour le test---
Sleep(20000) ; fera la fonction mex à rester autour pendant 20 secondes, donc vous pouvez voir le mexPrintfs du fil, si vous voulez
}

//################################################
//##########--Thread Code--#########################
//################################################
cdecl Sub MyThread(LPVOID pVoid)
{
déclarez vos variables/pointeurs
int x = 0 ; permet de régler le nombre de tout en boucles
const mxArray * myarray ; utilisé pour aider à extraire la valeur de votre variable matlab
double * TempPointer ; utilisé pour aider à extraire la valeur de votre variable matlab
double Val ; contient la valeur de votre variable matlab

---Vos pointeurs de configuration avant d’entrer dans la boucle du thread, de cette façon, nous n’aurons pas de parler
---à matlab du tout une fois que nous entrons dans le thread (nous avons simplement accéderont matlab
---les emplacementmémoire variables). Cela est utile, car beaucoup de vraiment rapide communication avec
---matlab peut il tomber en panne.
obtenir un pointeur vers un pointeur vers la variable hullo (dont vous devez initialiser dans matlab avant d’exécuter ce prog)
myArray = mexGetVariablePtr (« base », "hullo") ; peut être la base appelant ou global
retire les pointeurs de valeur de la variable hullo, stockez-le dans Val
TempPointer = mxGetPr(myarray) ;

while(x<10)
{
x ++ ;

ici nous sommes accès à emplacement de mémoire de la variable matlab sans avoir à parler à matlab
Val = * TempPointer ;

émettre un signal sonore
PlaySound (« alleluia.wav », NULL, SND_FILENAME | SND_SYNC) ;
attendre entre sons Val secondes
Sleep(1000*Val) ;

---pour le test---
mexPrintf("Val:%f", Val) ;
}
}

Articles Liés

YEAAAUGH, WHHAT ? OKKKAY ! Lil Jon Easy Button

YEAAAUGH, WHHAT ? OKKKAY ! Lil Jon Easy Button

jamais souhaiter la Staples Easy Button (R) pourrait dire quelque chose de mieux que le banal « C'était facile. » ? Que diriez-vous d'un bouton Lil Jon ?YEAAAUGH, OKKKAY !Allons-y!Étape 1: Vous aurez besoin (et où le trouver) : Remarque : vous aurez
Moteur pilote Easy

Moteur pilote Easy

Dans ce instructable je vais vous donner un exemple de code et la présentation pour connecter un moteur de pas à pas de facteur de forme Nema 17 à un Office de contrôleur de moteur Easy Driver puis commander le moteur avec un Arduino Uno.Étape 1: Com
Étui de cuir Easy-peasy de lunettes de soleil !

Étui de cuir Easy-peasy de lunettes de soleil !

Jingle bells, jingle bells !Ahh, temps des fêtes... Vous pouvez être neige de pensée, de couvertures et d'un lait de poule au chaud au coin du feu.Alors pourquoi sur la terre (dans l'hémisphère Sud) j'ai fais une pochette lunettes de soleil que vous
Lavage vaisselle extrême Made Easy !

Lavage vaisselle extrême Made Easy !

Vous avez beaucoup de vaisselle à laver à la main et ont besoin de les faire faire à la hâte ? Alors cette instructable est fait pour vous !** Instructable Voici ma Liste EXHAUSTIVE des trucs, astuces, hacks et techniques pour obtenir--en particulier
« FPV-ing » un bourdon de course : Some Quick & Easy solutions

« FPV-ing » un bourdon de course : Some Quick & Easy solutions

Il existe de nombreuses options pour ajouter une caméra et un émetteur AV à votre drone de course pour atteindre l'expérience « First Person View » (FPV) et profiter de votre drone à l'aide de lunettes et/ou un moniteur comme si vous étiez à bord de
Un theremin clignotant multithread propulsé par VIPER

Un theremin clignotant multithread propulsé par VIPER

Le theremin est un instrument de musique expérimental, inventé par le physicien russe Lev Sergeïevitch Termen dans les années 20. Sans contact physique, deux antennes peuvent détecter la position des mains du joueur theremin dans l'espace et l'utilis
Arduino et Matlab + DHT11

Arduino et Matlab + DHT11

Arduino UNODHT11CONSEIL DE PAIN ET DE LA CONNEXION DES FILSLCD 2 * 16PROG DE MATLAB.
COULEUR détection à l’aide de MATLAB

COULEUR détection à l’aide de MATLAB

Dans cet article je vais vous montrer comment détecter la couleur à l'aide de MATLABÉtape 1: Éléments d'interface graphique utilisé :1. axes2. deux boutons poussoirs3. modifier le texteImages en couleur• Un modèle de couleur est une méthode permettan
Sabre laser ala over-easy

Sabre laser ala over-easy

sous peu de temps pour faire un sabre laser à emmener au cinéma pour regarder la dernière installation de StarWars ? ne vous inquiétez pas. vous ferez votre propre sabre laser en environ 30 minutes ou ainsi et encore capable de faire dans le temps po
Cool les commandes MATLAB

Cool les commandes MATLAB

Dans cet article je vais vous montrercertaines commandes MATLAB coolÉtape 1: Commande eml_asteroids Version de point fixe MATLAB du classique jeu astéroïdes.Le jeu classique des astéroïdes. Même si elle est purement fictif (et pas encore physiquement
Enregistrez votre propre message sur Staples Easy button

Enregistrez votre propre message sur Staples Easy button

J'ai vu quelques autre web postes sur la façon de modifier le bouton agrafes facile pour jouer votre propre message, mais maintenant que Radio Shack a fermé, certains de ces postes ne sont plus valides.Une autre méthode nécessaire d'avoir une pile de
Ultrasons cartographe en utilisant Arduino et MatLab

Ultrasons cartographe en utilisant Arduino et MatLab

Vision est l'un des plus passionnants sens vous pouvez doter votre robot. La capacité de percevoir les obstacles permet à un robot faire une décision éclairée au sujet des mouvements plus amples.Cependant, il n'est également pas les sens plus faciles
Outil d’acquisition image dans MATLAB

Outil d’acquisition image dans MATLAB

Dans cet article je vais démontrer outil d'acquisition image dans matlab.imaqtool(file) démarre l'outil et puis immédiatement lit un fichier de configuration d'outil d'Acquisition d'Image, où le fichier est le nom d'un fichier-IAT que vous avez enreg
DIY « quelque chose » Staples Easy Button (enregistrement vocal)

DIY « quelque chose » Staples Easy Button (enregistrement vocal)

Le bouton agrafes « Facile » est déjà un élément de bureau classique, mais il serait beaucoup plus amusant si il dit tout ce que vous le souhaitez. Je sais que certaines personnes ont déjà fait des hacks comme ça, mais c'est moins cher que la plupart