|
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 8
|
||||||
Не работает драйвер для работы приема/передачи по ком порту24.06.2011, 15:40. Показов 4419. Ответов 14
Метки нет (Все метки)
Господа, прошу совета или помощи. Который день мучаюсь, все никак не решу проблемку...
Суть дела - пишу драйвер для работы приема/передачи по ком порту. Вот исходник:
0
|
||||||
| 24.06.2011, 15:40 | |
|
Ответы с готовыми решениями:
14
MIDI, FT232, драйвер ком-миди от Roland. Не работает. Использование DLL для приема-передачи данных в разных приложениях Определения скорости передачи и приема по сети для процесса в Windows |
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 24.06.2011, 20:32 | |
|
Стесняюсь спросить... А там точно есть что читать?
0
|
|
|
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 8
|
|
| 25.06.2011, 01:08 [ТС] | |
|
Вообще, честно говоря, если б не было, то в любом случае возвращалось бы 0...
Ну а вообще стоит заглушка для проверки работоспособности, я думаю было бы глупо публиковать сюда, если бы дело было в этом ![]() Мне не понятно почему порт на запись работает, флаги устанавливаются, а на чтение не хочет... Просто может кто-то кто сталкивался поможет, а то честно уже прям печаль берет...
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
||
| 25.06.2011, 10:06 | ||
|
Заглушка это железка? А скажем cu или tip с ней прекрасно работают?
0
|
||
|
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 8
|
|
| 25.06.2011, 15:39 [ТС] | |
|
Если я правильно понимаю, если стоит флаг nonblock, то собственно как раз и должен возвращаться 0, если никаких байтов прочитано не было... но уж точно не -1 и порт временно недоступен, разве нет?
Проблема-то не в том, что байты не приходят, а в том, что порт при наличии nonblock все равно временно недоступен для чтения... P.S: если я в чем-то глубоко заблуждаюсь, прошу разъяснить моменты, буду очень благодарен... P.P.S: по существу заглушка спаяна для теста приема-передачи, она отлично работает с такими программами ... хотя в принципе для проверки этого кода должно быть вполне достаточно соединить 2 и 3 pin...
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 25.06.2011, 17:47 | |
|
Заблуждаетесь, глубоко...
с O_NONBLOCK read() как раз вернет -1 и EAGAIN если читать нечего. 0 это EOF (в не зависимости от того установлен O_NONBLOCK или нет) и если не ошибаюсь в случае заглушки 0 там просто не удивить т.к. DCD всегда присутствует. Во общем просто попробуйте сделать poll/select перед чтением/записью или уберите O_NONBLOCK
1
|
|
|
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 8
|
|
| 27.06.2011, 00:47 [ТС] | |
|
ладно, спасибо что уделили время...
Просто странно - запись ведь проходит, по идее ведь есть что считывать
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
||
| 27.06.2011, 09:39 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 8
|
|
| 27.06.2011, 13:05 [ТС] | |
|
Я просто если честно, в отладчике смотрю буфер, значение n_write, как раз 5 на n_write и буферу передалось Hello.
P.S: а нет ли у вас случаем какой-нибудь шпаргалки по poll? А то нормальную документацию я не нашел, а сам не так давно начал со всем этим работать, пока куча непонятного...
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
||||||
| 27.06.2011, 13:51 | ||||||
|
Кроме man poll ничего в голову не приходит...
0
|
||||||
|
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 8
|
||||||
| 28.06.2011, 01:26 [ТС] | ||||||
|
бррр... результаты все равно не радуют..
при FNDELAY -1 port temp unavaible, при fcntl(fd, F_SETFL,0) виснет на чтении...Добавлено через 2 минуты Если не сложно кому-нибудь, проверьте у себя плз, может у меня с машиной что-то не то... пробовал канонический ввод, raw mode, все равно ничего нет...
0
|
||||||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 28.06.2011, 15:43 | |
|
Вы уж определитесь ко второй странице чего желаете...
Канонический режим: read()/poll(POLLIN) будет спать вечно, т.к. в вашем Hello нет \n/EOF/EOL. Не канонический режим: 1. O_NONBLOCK не установлен - работать будут VMIN(у вас 1байт) и VTIME(у вас 1сек) следующим образом: read спит пока не появиться VMIN байт, как только в буфере накопилось VMIN байт данных, запускается таймер VTIME, если по истечении VTIME больше ничего не пришло, то read вернет прочитанное, иначе таймер перезапускается. 2. O_NONBLOCK установлен - read вернет прочитанное либо -1. ЗЫ: poll() в качестве таймаута перед write() прикольно...
0
|
|
|
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 8
|
||||||
| 28.06.2011, 17:08 [ТС] | ||||||
|
сделал вроде все как вы сказали, все равно -1
, read source temporarily unavaible...
0
|
||||||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 28.06.2011, 17:33 | |
|
Вы уж простите, но такой фигни я не говорил... Пытайтесь хотя бы капельку понимать что вы пишите в своей программе.
Ну вот объясните мне, какого хрена сначала poll() незнамо чего, а только потом инициализация структуры??? Зачем делать fcntl(fd, F_SETFL, O_NONBLOCK); если файл уже открыт с O_NONBLOCK??? Для чего вы ставите ECHOE и прочие флаги??? Нафига сохранять настройки порта если они никогда не восстанавливаются в программе? Что по вашему выведет printf(buffer); если произойдет чудо и прога заработает? И в конце концов я уже 2 раза повторил, что канонический режим и O_NONBLOCK с вашим "Hello" не дружат. Вот "man termios\n" будет работать, а "Hello" нет...
0
|
|
|
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 8
|
|
| 28.06.2011, 18:14 [ТС] | |
|
знаете, в этом вся проблема нашей страны - все считают что если человек не понял объяснения, значит он тупой, а это совсем не так, просто умение объяснять понятно - очень редкий дар. Да и потом - у всех разный опыт программирования, да и вообще работы в частности, и объяснения на одном уровне не обязательно соответствуют уровню, на котором сейчас человек и, казалось бы понятные для вас вещи, могут быть не такими уж понятными, а принцип - "ну тогда и не суйся" вот это апогей таланта, если б учителя вам в школе говорили - не суйся, многого бы вы достигли? они-то точно побольше знали, но тем не менее показывали ошибки и приводили пример, хоть могли этого вполне и не делать - книга есть - читай...
В любом случае спасибо, и, если уж вас так задевает мой непрофессионализм извините за возможно потраченные ваши нервы...
0
|
|
| 28.06.2011, 18:14 | |
|
Помогаю со студенческими работами здесь
15
Сделать замер времени,которое потребовалось для приема / передачи используя таймер Как читать 9-й бит по ком порту? Разные скорости приема и передачи Поделитесь программой приема/передачи файла
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|