Управление потоком RTS/CTS простое, как палка, точнее, как две палки, поскольку сигналов всетаки два.
RTS - это Ваш выходной сигнал, который подключен к входному пину CTS на стороне Вашего абонента. Имея возможность и желание принимать данные Вы устанавливаете RTS в активное состояние, а абонент, анализируя CTS понимает, что Вы готовы и если у него есть, что сказать - передает данные. Если Вы не успеваете переваривать поток данных, которым Вас кормят и буфер у Вас не резиновый, то установив RTS в неактивное состояние, даете абоненту понять, что надо-бы остановиться.
CTS - это Ваш входной сигнал, который подключен к выходному пину RTS на стороне Вашего абонента. Ну и все точно так-же, но наоборот - этой линией Вы не управляете, но обязательно анализируете.
Т.о. схема проста:
- можете принимать -> установите RTS;
- не можете принимать -> сбросьте RTS;
- хотите передавать -> проверьте CTS:
- активен -> передавайте;
- не активен -> надо ждать.