2017-10-27 04:42



I need to read a serial port to get data using a RS232 cable, and want to send the output to a PHP server, but i found a way using node.js. I searched a lot and also found a solution in PHP but it doesn't work for me. How to do this?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答


  • douzhao7634 douzhao7634 4年前

    If you are on Linux, I would try opening a file descriptor to /dev/your_serial_port. Your php script will probably need permissions (root) to read from this port. You may have a tty group or something similar that allows read from this device. In that case, I would recommend starting your script as root, and using posix_setgid() possibly with posix_getgrnam() to change your process group and not parade around as root.

    $groupInfo = posix_getgrnam("tty");
    if (! isset($groupInfo["gid"])) {
        // "Invalid worker group.
    } else if (! posix_setgid($groupInfo["gid"])) {
        // Failed to change worker group. (privilege required)

    I feel bad that you are probably on windows, so I dug around and I think you can open the file 'com1:' on windows and probably read serial data. If that doesn't work, look for a cli program that can dump serial data to stdout and use something like proc_open to read data from it. I have no windows computer to try anything ;(

    点赞 评论 复制链接分享