Здравствуйте! Помогите решить проблему. В ком-порт передаётся пакет данных. Во время его передачи может возникнуть необходимость срочно отправить другой пакет. Есть ли какая-нибудь возможность приостановить уже идущую передачу, отправить срочную информацмю, а потом вернуться к прерванной передаче?
man 3 termios
/TCOFLUSH
>man 3 termios
>/TCOFLUSHНасколько я понимаю, так можно прервать текущую передачу, очистив буферы. Но мне надо после передачи срочного сообщения вернуться к прерванной передаче с того места, где она была остановлена. А если использовать /TCOFLUSH придётся передавать всё сначала. Может как-нибудь можно узнать сколько байт уже передано?
>>man 3 termios
>>/TCOFLUSH
>
>Насколько я понимаю, так можно прервать текущую передачу, очистив буферы. Но мне
>надо после передачи срочного сообщения вернуться к прерванной передаче с того
>места, где она была остановлена. А если использовать /TCOFLUSH придётся передавать
>всё сначала. Может как-нибудь можно узнать сколько байт уже передано?К сожалению, скорее всего, нет. Как вариант, наверно можно попробовать отправлять пакеты небольшими порциями такими, чтобы задержка на отправку одной порции была не существенна. И самому высчитывать, сколько уже успели переслать до того, как пришел запрос на передачу срочного пакета.
Или у вас такая задача, что в таком случае задержка даже в один байт будет критична?
для таких вещей обычно протокол пакетной передачи придумывают