[mdk-re] [JT] Help need

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_mivlgu=2Emurom=2Eru?=
Ср Окт 3 18:33:10 MSD 2001


On Wed, 3 Oct 2001 20:17:10 +0600
Gosha <gosha на sendmail.ru> wrote:

> Встала такая задачка - нужно сделать доступ с вин-машин к
> com-порту,
> находящемуся на удаленной Linux-машине. Порылся в и-нете.
> Ничего
> подходящего не нашел. У нас есть программист, пишущий на С, но
> он
> никакого отношения к Linux никогда не имел. Но решил
> попробовать.
> Поглядев исходники того, что я нашел по этой теме (того, что
> нас
> не устроило), он взялся за дело.
> Достаточно быстро была написана соответствующая
> программка-демон.
> Все вроде бы заработало. Но столкнулись с такой проблемой.
> Если из ком-порта принимается текстовый файл, то проблем нет,
> а вот если двоичный (по протоколу z-modem), то прием не
> происходит
> из-за "ошибки во время према пакета" (это z-modem сообщает).
> Начали разбираться в чем дело, обнаружили следующее.
> Все дело в любом байте, содержащем 0xFF. Т.е. все байты,
> имеющие коды
> от 0 до 0xFE, проходят без проблем, а вот этот FF почему-то
> приходит
> в удвоенном количестве. Т.е. если, например, попытаться
> принять файл,
> содержащий один байт, равный 0xFF, соответсвенно имеющий длину
> равную
> 1 байту, то из ком-порта, к нашему удивлению, мы получаем 2
> байта,
> равных 0xFF. Мы уже два дня голову ломаем, ничего придумать не
> можем.

Возможно, в настройках termios для порта стоит в c_iflag бит
PARMRK; в этом случае действительно принятый 0xFF удваивается.




Подробная информация о списке рассылки community