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?
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 ;(