megaDMX SDK

Objetivo do software

Em alguns casos como projetos especiais ou aplicações dedicadas pode ser necessário fazer o acesso direto a interface sem utilizar o software megaDMX ou outro software de luz para fazer a comunicação com a interface.

Para utilizar as interface USB diretamente com uma linguagem de programação foi desenvolvido o software megaDMX SDK.

O megaDMX SDK é um arquivo DLL para Windows, que pode ser utilizado em qualquer linguagem de programação.

dmxusblib.dll

O arquivo dmxusblib.dll faz a comunicação com a interface, para funcionar corretamente esta DLL precisa do outro arquivo FTD2XX.dll, além disso os drivers para interface USB devem ser instalados.

Veja como instalar os drivers nesse link.

Os drivers também são fornecidos no SDK na pasta drivers_usb.

Se os drivers USB não forem instalados a DLL não irá funcionar.

Funções da DLL

A sequencia correta para conexão com a interface USB é:

  1. Verificar se a interface está conectada;
  2. Buscar o numero ID da interface;
  3. Abrir a comunicação com a interface;

A DLL funcionará apenas para 1 interface conectada, não sendo possível conectar mais interfaces USB simultâneamente.

Verificar se a interface está conectada

Para verificar se a interface USB está conectada utilize a função:

int getDMXUSBInterfacesCount 

este método retorna o número de interfaces conectadas no computador.

Exemplo:

int i;
i = getDMXUSBInferfacesCount;
// i = 2 – existem 2 interfaces conetadas no computador.

Buscar o número ID da interface

A função

int getDMXUSBInterfaceId( int index ) 

retorna o número ID da interface de acordo com o índice informado, se o valor informado para o índice for maior que o resultado de getDMXUSBInferfacesCount, o retorno da função será -1.

O índice começa em 0

Exemplo:

int i;
i = getDMXUSBInferfacesCount;
// i = 2 – existem 2 interfaces conectadas.
int id;
id = getDMXUSBInterfaceId( 0 );
// id=17 – busca o ID da primeira interface conectada.
id = getDMXUSBInterfaceId( 1 );
// id=289 – busca o ID da segunda interface conectada.
id = getDMXUSBInterfaceId( 3 );
// id=-1 – ERRO pois existem apenas 2 interface conectadas.

Abrir a comunicação com a interface

Para abrir a comunicação com a interface USB use a função

int openDMXUSBInterfaceById( int id )

para descobrir o ID da interface use a função getDMXUSBInterfaceId( int index ) mostrada anteriormente. Caso o ID seja inválido o resultado da função será -1.

Exemplo:

int i;
i = getDMXUSBInferfacesCount;
// i = 2 – existem 2 interfaces conectadas.
int id;
id = getDMXUSBInterfaceId( 0 );
// id=17 – busca o ID da primeira interface conectada.
int r;
r = openDMXUSBInferfaceById( id );
// r = 0 – comunicação iniciada
r = openDMXUSBInferfaceById( 20 );
// r = -1 – ID Não encontrado

Outras funções

int closeDMXUSBInterface

Termina a comunicação com a interface USB. Se a comunicação já estiver terminada retorna -1.

int setDMXChannel( int channel )

Define o valor interno para um ponteiro informando o número do canal DMX desejado, esse número deve ser entre 1 e 512. Esse comando é utilizado em conjunto com a função setDMXValue.

int setDMXValue( int value )

Atribui um valor a um canal DMX entre 0 e 255.

int getDMXUSBInterfaceStatus

Retorna a quantidade de frames por segundo envidos pela interface para linha DMX. Se a comunicação estiver terminada retorna -1.

int getInterfaceStatus

Retorna o status da interface:

  1. 0 ou -1:erro.
  2. 1:OK.
  3. 2:interface SA no modo Stand Alone (Display <> 0).
int getInterfaceType

Retorna o tipo da interface conectada:

  1. -1:erro;
  2. 0:megaDMX USB interface;
  3. 1:megaDMX SA interface.

Exemplo:

int i;
i = getDMXUSBInferfacesCount;
// i = 2 – existem 2 interfaces conectadas.
int id;
id = getDMXUSBInterfaceId( 0 );
// id=17 – busca o ID da primeira interface conectada.
int r;
r = openDMXUSBInferfaceById( id );
// r = 0 – comunicação iniciada
int status;
status = getDMXUSBInterfaceStatus;
// status = 25 – 25 fps.
setDMXChannel ( 10 );
setDMXValue( 144 );
// canal DMX 10 com valor 144
setDMXChannel ( 1 );
setDMXValue( 255 );
// canal DMX 1 com valor 255
r = closeDMXUSBInterface;
// r = 0 – encerra comunicação
status = getDMXUSBInterfaceStatus;
// status = -1 – Erro sem comunicação com a interface.

Exemplos

Na pasta de instalação do SDK são fornecidos vários exemplos em diferentes linguagens de programação.

Distribuição

Para distribuir o SDK com a sua solução de iluminação envie apenas os drivers USB e o arquivo dmxusblib.dll.

megadmxsdk1300/start.txt · Última modificação: 2010/08/03 22:05 (edição externa)