[英]Reading & Writing Serial Port COM3 connected using USB to serial connector
[英]Windows USB Serial CMD call using "mode com3: BAUD=38400... instead of PHP call
我问了一个关于 PHP 调用在 Win10 升级到 Win 11 时不再工作的先前问题。它现在奇怪地写入文件而不是设置的 COM 端口(可能是 win11 apache/php 问题,请参阅我的其他问题?) .
曾经工作的代码是:
<?php
`mode com3: BAUD=38400 PARITY=N data=8 stop=1 xon=off`;
file_put_contents(com3, chr(1).chr(255).chr(1).chr(4).chr(64).chr(5));
?>
这曾经可以正常工作,但现在写入一个名为 com3:(
仅供参考: PHP 中的 ` 反引号执行其中的命令 - 这仍然适用于 Win11。
C:\> mode com3: BAUD=38400 PARITY=N data=8 stop=1 xon=off
并且显然可以使用以下命令发送命令:
C:\> set /p x="hello" <nul >\\.\COM3
但我不想发送“你好”,而是想发送与使用 PHP 代码相同的内容:“chr(1).chr(255).chr(1).chr(4).chr(64).chr(5) ))”
任何人都知道如何从 CMD 发送此代码。 因为我将制作另一个脚本来自动执行此操作。
任何建议表示赞赏?
即在 php 我会做类似的事情:
<?php
$scall = chr(1).chr(255).chr(1).chr(4).chr(64).chr(5);
`mode com3: BAUD=38400 PARITY=N data=8 stop=1 xon=off`;
`set /p x="$scall" <nul >\\.\COM3`;
?>
感谢有人知道我将如何更改此 PHP 脚本,以便能够发送这些数值? (可能已经好了;)
仅供参考:在 232 分析仪或某些 USB 串行 COM 端口软件上 - 我会在“DEC”中发送代码,带有“1,255,1,4,64,5”,这也有效......如果有助于设置什么值发送 CMD 提示。
谢谢您的帮助。
这段代码最终有效,以防万一:
<?php
$scall = chr(1).chr(255).chr(0).chr(255).chr(255).chr(5);
file_put_contents(“scom3.txt”, $scall);
`mode com3: BAUD=38400 PARITY=N data=8 stop=1 xon=off`;
`type “scom3.txt” > com3`;
?>
通过“set”和“echo”进行操作是可行的,但由于命令字符似乎发生了变化,因此出现了问题。 因此,通过写入文件并从文件中调用命令,它起作用了。 还必须从 PHP 中删除 COM3 之前的 \\ 转义字符,因为我认为被忽略了。 感谢本网站上的文章: https://batchloaf.wordpress.com/2013/02/12/simple-trick-for-sending-characters-to-a-serial-port-in-windows/
任何人都知道如何直接发送命令以使其不会损坏因此不需要从文件中获取会有所帮助吗? 谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.