我正在尝试连接到Ent Tec USB PRO
并从DMX控制器(Obey 10)接收数据。
看起来已连接
[260650.393279] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[260658.258766] usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0
USB-设备
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 8 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0403 ProdID=6001 Rev=06.00
S: Manufacturer=ENTTEC
S: Product=DMX USB PRO
S: SerialNumber=EN211058
C: #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=300mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
#lsmod | grep ftdi_sio
ftdi_sio 53248 0
usbserial 49152 1 ftdi_sio
usbcore 249856 9 usbhid,ehci_hcd,ohci_pci,ftdi_sio,usbserial,xhci_pci,ohci_hcd,xhci_hcd,ehci_pci
PHP - Comm() - > https://github.com/Xowap/PHP-Serial
$serial = new \SerialClass\Comm();
$serial->Comm();
$serial->deviceSet("/dev/ttyUSB0");
if (!$serial->_device) {
die("Connection failed");
}
$serial->confParity("none");
$serial->confBaudRate(9600);
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceClose();
$serial->deviceOpen();
stream_set_timeout($serial->_dHandle, 5);
while ($connection_ok) {
echo "#" . $iterations;
$str = $serial->readPort();
echo "<BR><BR>Str: " . $str;
if ($iterations++ > 1) {
$connection_ok = FALSE;
$serial->deviceClose();
die("<BR><BR>DONE");
} else {
sleep(1);
}
}
它正在运行,没有任何错误。我有一个tail -f /var/log/apache2/error.log
的ssh,它没有显示任何内容。
输出 - 不是很令人兴奋......
#0
Str:
#1
Str:
#2
Str:
DONE
注意,DMX USB PRO
上有灯亮,待机时闪烁。当我在Windows框中使用它时,它在传输数据时会快速闪烁。当我在Debian上运行PHP脚本时,灯熄灭了。这可能是司机问题吗?
https://www.enttec.com/us/products/controls/dmx-usb/dmx-usb-pro/
# lsof | grep /dev/ttyUSB0
不返回任何内容。
我不确定下一步该尝试什么? 如果有人有任何建议我会很感激。
Addtitions:
mkaatman
- 谢谢您的建议。
PHP日志路径error_log = /var/log/php/errors.log
也没有返回任何错误。
Pascal Meunier
- 谢谢您的建议。
我尝试使用波特率和停止位,遗憾的是没有区别。
Ent Tec - 建议9600波特和1个停止位。这适用于Windows。我会尝试所有的主要范围。
未找到解决方案
我改为创建了一个c ++应用程序,输入效果很好。