timeout to prevent blocked process due to serial interface not receiving any data
This commit is contained in:
+2
-1
@@ -2,5 +2,6 @@
|
||||
"device": "/dev/serial/by-id/usb-VictronEnergy_BV_VE_Direct_cable_VEAWDESA-if00-port0",
|
||||
"database": "VEDirect.db",
|
||||
"logfile": "VEDirect.log",
|
||||
"loglevel": "off"
|
||||
"loglevel": "off",
|
||||
"timeout": 30
|
||||
}
|
||||
|
||||
+2
-1
@@ -105,7 +105,8 @@
|
||||
$bytesToRead = $config->bytesToRead;
|
||||
writeLog("Reading $bytesToRead Byte from VE.Direct interface\r\n", 3);
|
||||
$dataStream = "";
|
||||
while(strlen($dataStream) < $bytesToRead)
|
||||
$startTime = time();
|
||||
while(strlen($dataStream) < $bytesToRead && time() < $startTime + $config->timeout)
|
||||
$dataStream .= dio_read($VEinterface, $bytesToRead);
|
||||
dio_close($VEinterface);
|
||||
writeLog($dataStream . "\r\n\r\n", 4);
|
||||
|
||||
Reference in New Issue
Block a user