Больше всего подходит режим 3, т.к. не известно, сколько байт и когда придёт. Тамаут не более 100 мс, поставить вызов функции в бесконечный цикл и принятые байты накапливать в буфере и анализировать на конец строки.
Режим 2 вроде делает то-же, но отлаживаться лучше на режиме 3.