Решено.
Спасибо,
gae, ваши замечания помогли. Действительно, модем присылал байты, которые ВСЕ были меньше 0x80! Видимо, я неправильно настроил COM-порт. И, видимо, COM-порт надо было перевести в
неканонический режим. Это можно сделать одной командой
cfmakeraw:
Код:
termios attr = {0};
cfmakeraw(&attr);
cfsetispeed(&attr, B9600);
cfsetospeed(&attr, B9600);
Теперь ответ выглядит красиво и контрольная сумма не врёт:
Код:
<< 10 41 01 11 04 01 04 5C 16
>> 68 06 06 68 01 01 74 79 9C 40 CB 16
Чему я очень рад!
