movinghead.gif

banniere.gif

movinghead.gif
Accueil du site | Plan du site | Boutique |    
fr en 
 
 
Le protocole DMX512
> Le protocole en bref
> La norme USITT
> Le forum


L’interface USB-DMX512
> Présentation
> Fonctionnement
> Réalisation
> Installation
> Programmation

> Utilisation

> L’entrée DMX512
> Téléchargements
> Datasheets
> Le forum


L’interface USB-DMX512 version 3
> Présentation
> Installation
> Utilisation
> Paramétrage
> Programmation
> Téléchargements
> Logiciels
> F.A.Q.


Le booster DMX
> Présentation
> Fonctionnement
> Réalisation
> Datasheets
> Le forum


Le splitter DMX
> Présentation
> Fonctionnement
> Réalisation
> Datasheets
> Le forum


Le gradateur DMX512
> Présentation
> Fonctionnement
> Réalisation
> Programmation
> Utilisation
> L’extension 8 voies
> Téléchargements
> Datasheets
> Le forum


Le récepteur DMX512 v2
> Présentation
> Fonctionnement
> Réalisation
> Programmation
> Utilisation
> L’extension 8 voies
> Téléchargements
> Datasheets
> Le forum


La carte de puissance 4 voies
> Présentation
> Fonctionnement
> Réalisation
> Utilisation
> Datasheets
> Le forum


Les pages des liens
> Liens francophones
> Liens anglophones
> Liens publicitaires


Les exemples d’application
> Bloc de puissance
> Rampe de 4 PAR38
> Splitter DMX


Le forum du site ...


La boutique virtuelle du site ...


    L’interface USB-DMX512  > Utilisation


L’interface USB-DMX512

→  Utilisation  ←


Signification des leds :

L’interface est équipée de trois leds :
-  une verte,
-  une orange,
-  une rouge.

Ces trois leds indiquent différents modes de fonctionnement de l’interface :

-  aucune led allumée :
L’interface n’est pas connectée.

-  seule la led verte est allumée :
L’interface est connectée et prête à être utilisée. Aucun signal DMX ne sort de l’interface.

-  les leds vertes et oranges sont allumées :
L’interface est en fonctionnement et une trame DMX valide sort de celle-ci.

-  les leds vertes et oranges sont allumées et la led rouge clignotte :
L’interface est en fonctionnement, une trame DMX valide sort de celle-ci et l’entrée DMX est active.

-  les trois leds sont allumées :
L’interface est en mode programmation. Pour en sortir, voir l’article "Programmation" ou me contacter.

Utiliser l’interface et ses DLLs :

Introduction :

Afin de contrôler l’interface USB, une DLL écrite sous Visual C++ existe. Celle-ci est disponible sur le lien suivant et doit être copiée dans le répertoire de l’application qui l’utilise (version du 6 octobre 2006) :

Zip - 50.5 ko

Les points d’entrée de la DLL :

Les points d’entrée représentent l’ensemble des fonctions disponible dans la DLL. Ceux-ci sont au nombre de trois :

-  la fonction d’ouverture de l’interface : int OpenUSB (void) ;
-  la fonction d’envoi de données : int SendUSB (unsigned char* Data) ;
-  la fonction de fermeture de l’interface : int CloseUSB (void) ;

L’ensemble de ces fonctions retournent une valeur différente de zéro en cas d’erreur.

Le tableau "Data" doit être de taille au moins égale au nombre de canaux gérés.

Utilisation de la DLL sous Visual C++ :

Cet exemple décrit l’utilisation de la DLL dans un programme sous Visual C++. Voici les détails relatifs a l’utilisation de la DLL :

LA DECLARATION DES FONCTIONS ET DES VARIABLES GLOBALES :
#define USB_DLL "USB_DLL.DLL"
#define USB_OPEN_ENTRY "OpenUSB"
#define USB_SEND_ENTRY "SendUSB"
#define USB_CLOSE_ENTRY "CloseUSB"

typedef int (*LPFN_OPEN_USB)(void);
typedef int (*LPFN_SEND_USB)(unsigned char *data);
typedef int (*LPFN_CLOSE_USB)(void);

LPFN_OPEN_USB OpenUSB;
LPFN_SEND_USB SendUSB;
LPFN_CLOSE_USB CloseUSB;

HINSTANCE hDLL ;
unsigned char DmxOut[256];
L’INITIALISATION DE LA DLL ET DES VARIABLES GLOBALES :
// Intilisation des données DMX.
memset (DmxOut, 0, sizeof (DmxOut));

// Chargement de la DLL.
hDLL = LoadLibrary( USB_DLL ) ;
if (hDLL != NULL)
{ OpenUSB = (LPFN_OPEN_USB)GetProcAddress(hDLL, USB_OPEN_ENTRY);
if (!OpenUSB)
{ FreeLibrary(hDLL);
hDLL = NULL;
return; }

SendUSB = (LPFN_SEND_USB)GetProcAddress(hDLL, USB_SEND_ENTRY);
if (!SendUSB)
{ FreeLibrary(hDLL);
hDLL = NULL;
return; }

CloseUSB = (LPFN_CLOSE_USB)GetProcAddress(hDLL, USB_CLOSE_ENTRY);
if (!CloseUSB)
{ FreeLibrary(hDLL);
hDLL = NULL;
return; }

// Ouverture de l'interface.
if (OpenUSB())
AfxMessageBox("Interface USB-DMX non trouvée !!!", MB_ICONSTOP);
else
{ CString Texte;
Texte.Format("La librairie '%s' n'a pas été trouvée.\nL'interface USB-DMX ne fonctionnera pas.", USB_DLL);
AfxMessageBox(Texte, MB_ICONSTOP); }
return;
L’ENVOI DE DONNEES A L’INTERFACE :
// Envoi de données.
if (SendUSB(DataOut))
AfxMessageBox("Erreur dans l'envoi des données");
return;
LA FERMETURE DE L’INTERFACE :
// Fermeture de l'interface.
CloseUSB();
// Libération de la DLL.
FreeLibrary(hDLL);
return;

Utilisation de la DLL sous Visual Basic :

Cet exemple décrit l’utilisation de la DLL dans un programme sous Visual Basic.

LA DECLARATION DES FONCTIONS :
Public Declare Function OpenUSB Lib "usb_dll.dll" () As Integer
Public Declare Function CloseUSB Lib "usb_dll.dll" () As Integer
Public Declare Function SendUSB Lib "usb_dll.dll" (ByVar data As String) As Integer

Il suffit ensuite d’appeler les fonctions OpenUSB, SendUSB et CloseUSB à l’endroit où l’on veut dans le code. Chacune de ces fonctions retourne 0 dans le cas d’une réussite de son exécution ou -1 dans le cas contraire.

EXEMPLE D’ENVOI DE DONNEES A L’INTERFACE :
Dim DMXout(512) As Byte
Dim DMXoutStr As String
Private Sub Send_Data()
' Ouverture de l'interface.
OpenUSB

' Préparation des donnnes a transmettre.
Dim i As Integer
For i = 0 To 255
DMXout(i) = i
Next i

' Conversion des données avant l'envoi à la DLL.
DMXoutStr = StrConv(DMXout, vbUnicode)

' Envoi des données.
SendUSB (DMXoutStr)

End Sub

Pour toute question complémentaire, n’hésitez pas à me contacter par mail ...


Rédigé par : (Dernière modification : 9 mai 2008)

Article précédent : Programmation
Article suivant : L’entrée DMX512

Nuxit

Site réalisé avec SPIP (1024x768 pixels).

Site réalisé avec SPIP