A better way to do serial port reads is to first use Bytes at Serial Port (for serpdrv)or VISA Bytes at Serial Port and use the output to determine Bytes to Read. You could then read until bytes to read is equal to zero or set the read to stop when a termination character is seen. For mis-behaving serial devices, doing a serial buffer flush before you write a command to the serial device can also help. The LabVIEW supplied serial VI's aren't very robust in my opinion. There's been a lot of examples posted here that would work a lot better.