Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux上使用javascript或php的串口通信_Php_Linux_Serial Port_Low Level - Fatal编程技术网

linux上使用javascript或php的串口通信

linux上使用javascript或php的串口通信,php,linux,serial-port,low-level,Php,Linux,Serial Port,Low Level,我正在建立一个在线POS,并试图与爱普生tm-t88iv热敏打印机建立低级通信。没有直接打印文件,只有十六进制或ascii可以以特定格式发送到硬件进行打印。所有这些都是在ubuntu 13.10和12.04的linux环境中完成的 现在的问题是我无法与打印机建立通信。我曾经尝试过使用Jzebra和其他java-to-javascript库,但没有成功,所以我换到了一个更熟悉的环境,尝试使用带有状态检查代码的php串行类,但什么都没有发生 include 'src/PhpSerial.php';

我正在建立一个在线POS,并试图与爱普生tm-t88iv热敏打印机建立低级通信。没有直接打印文件,只有十六进制或ascii可以以特定格式发送到硬件进行打印。所有这些都是在ubuntu 13.10和12.04的linux环境中完成的

现在的问题是我无法与打印机建立通信。我曾经尝试过使用Jzebra和其他java-to-javascript库,但没有成功,所以我换到了一个更熟悉的环境,尝试使用带有状态检查代码的php串行类,但什么都没有发生

include 'src/PhpSerial.php';

// Let's start the class
$serial = new PhpSerial;

$serial->deviceSet("/dev/ttyUSB0");
$serial->confBaudRate(38400);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");

$serial->deviceOpen();

$serial->sendMessage("\x02\x81\x1B\x02\x01\x03\x5C\x5C");

$read = $serial->readPort();

var_dump($read);
返回一个空字符串。此外,打印机未接收设置为十六进制转储状态的十六进制数,以打印其接收的每个十六进制数

我不确定这是编码还是硬件问题。我试着安装cutecom与串行端口通信,但也没有得到任何答案。我还尝试直接从shell执行一些stty命令,但也没有得到任何结果

如果有人能解释为什么会发生这种情况,或者他有类似的经历,那就太好了

谢谢


p、 d:据我所知,我正在使用一根多产的pl2303串行到usb电缆进行连接,并正确安装了该电缆。

听起来您的问题不在于javascript、java或PHP。。。如果无法使用串行终端程序(即minicom或cutecom)与打印机通信,则也无法使用更高级的工具。这里的类似设置可能会有所帮助:您是否尝试过使用“echo DATA>/dev/ttyUSB0”?它到打印机了吗?放置调试语句,检查错误,传播它们。感谢您的帮助,我通过更改/dev/ttyUSB0上的chmod解决了这个问题,而且我发送的十六进制代码也有问题。最后是编程和设置两方面的问题。可能与、、等重复。