This is good information.
My problem comes, however, with a device that delivers a data payload that is of varying length and ends with a CRC, rather than any terminating character. In this case, I want the timeout but to still retain the buffer data, which will be of variable length. On timeout, however, no data is transferred to the buffer. It seems as though 'transfer to buffer on timeout' should be an option.