标签: dmx512

FTDI与USB设备的通信 - 目标C.

我正在尝试与Enttec USB DMX Pro进行通信.主要是接收DMX.

他们在这里发布了一个Visual C++版本,但我对如何转换为Obj-c感到有点困惑.Enttec写道,"使用适用于Mac的FTDI库与PRO交谈,并参考D2XX编程指南打开并与设备通信." Objective-C的所有示例应用程序都在那里?有没有简单的方法与Enttec DMX USB Pro进行通信?

objective-c dmx512 ftdi

7
推荐指数
1
解决办法
1万
查看次数

照明USB OpenDMX FTD2XX DMXking

几个快速问题.我有一个DMX王USB照明控制器,我正试图控制.

它基于Open DMX协议(来自Entec),提供ac#class.我已经将设备插入RGB设备,如果我用他们的驱动程序测试USB设备,它连接到COM4,当我将他们的软件切换到发送模式时,我可以设置单独的DMX通道.

使用他们的OpenDMX类,进行一些修改(核心是相同的,我刚刚添加了一些额外的错误检查,我可以找到设备,查询它的信息等.当我打开设备时,我得到一个句柄.我可以写使用FT_Write到那个设备但不管我做什么,实际上没有灯亮起来.

以下是一些相关的代码片段:

public static byte[] buffer;

[DllImport("FTD2XX.dll")]
public static extern FT_STATUS FT_Open(UInt32 uiPort, ref uint ftHandle);
[DllImport("FTD2XX.dll")]
public static extern FT_STATUS FT_Write(uint ftHandle, IntPtr lpBuffer, UInt32 dwBytesToRead, ref UInt32 lpdwBytesWritten);

public static void writeData()
{
    while (!done)
    {
        try
        {
            initOpenDMX();
            status = FT_SetBreakOn(handle);
            status = FT_SetBreakOff(handle);
            bytesWritten = write(handle, buffer, buffer.Length);
            if (bytesWritten == 0)
            {
                break;
            }

            System.Threading.Thread.Sleep(25);
        }
        catch (Exception)
        {
            break;
        }
    }
    Connected = false;
    done = false;
}
Run Code Online (Sandbox Code Playgroud)

所有状态都以FT_Ok的形式返回,bytesWritten返回为512(此USB控制器上的通道数)

我一直在想我错过了将设备设置为传输模式或类似的设备(它只有一个DMX插槽)

public …
Run Code Online (Sandbox Code Playgroud)

c# pinvoke dmx512

3
推荐指数
1
解决办法
9664
查看次数

标签 统计

dmx512 ×2

c# ×1

ftdi ×1

objective-c ×1

pinvoke ×1