3 / 3 / 0
Регистрация: 08.10.2010
Сообщений: 114
|
|||||||||||
997 при работе с СОМ портом22.05.2012, 10:29. Показов 5465. Ответов 9
Метки нет Все метки)
(
Всем доброго. Давно не был здесь, но вот представился повод.
Сразу отмечу, что поиск курил. Но, то ли нет моей проблемы, то ли не так искал. Начну по-порядку. Взял я себе плату небольшую и решил побаловаться с ней. Все настроил. Закодил ее. Потом перешел к Delphi. Почитал про работу с COM портами. Сразу отказался от использования компонентов в пользу WinAPI, чтобы четко понимать происходящее и все Тру делать. Для начала все отбыдлокодил, подключение / запись посадил на кнопки без процедур / функций и вроде все заработало. Начал с отправки одного символа. И ОНО сработало. Вот тут пошло первичное оформление кода. Автоматический поиск платы, принудительное подключение к определенному порту и прочие хотелки. По факту написания всех функций и процедур начал тестирование / отладку и тут "на тебе" - 997. Протекает наложенное событие ввода / вывода. Что за хрень? Ладно. Переписываю все заново. Добавляю настройки таймаутов, перехожу в асинхронный режим работы. Тестирую. Та же ерунда. Подумал на плату. Вдруг что пишет в порт, а я не знаю. Сношу код платы, перезаливаю пустой. Очистил ее полностью. Тестирую - 997 [facepalm]. В оформлении кода и оптимизации прошло еще 2 вечера. Потом еще 2 на чтение WinAPI по работе с COM портами и типичными ошибками. Короче, я бессилен. Чувствую, что без опыта коллег мои нервы будут съедены напрочь. Теперь к коду... Подключение к плате:
Добавлено через 10 часов 23 минуты Еще одни момент: сброс порта (Purge) не помогает ни разу...
0
|
22.05.2012, 10:29 | |
Ответы с готовыми решениями:
9
Ошибка при работе с COM-портом Работа с сом-портом Работа с СОМ портом |
![]() |
|
22.05.2012, 10:59 | |
...это значит, что операции ввода-вывода у вас в коде перекрываются http://msdn.microsoft.com/en-u... s.85).aspx. Вы привели весь код?
0
|
3 / 3 / 0
Регистрация: 08.10.2010
Сообщений: 114
|
|
23.05.2012, 15:22 [ТС] | |
2raxp - спасибо, я понимаю, что это значит.
Я не понимаю, откуда это появляется и как с этим бороться. По коду привел все, что участвует. Если нужно, могу скинуть весь код (правда вечером). Но после компиляции я использую лишь кнопку подключения и кнопку записи. Вроде больше ничего не выполняется. 4 дня уже, все перепроверил. Может просто глаз замылен... Добавлено через 1 минуту UPD: CancelIoEx - только сейчас увидел в API, теоретически должно помочь? Добавлено через 21 час 58 минут CancelIO - не помогло, а CancelIoEx не идентифицируется... Кто-нибудь? Чем-нибудь? Добавлено через 5 часов 22 минуты Пойду ка я к Вашим младшим братьям. Лучше маленький форум, но хоть сколько-то эффективный, а не за 2 дня 1 полуживой ответ/вопрос от капитана. Конверсии никакой...
0
|
![]() |
|
23.05.2012, 16:08 | |
Не по теме: ...форум - не чат, как будет время - ответят, никто не обязан мониторить именно вашу тему. Кода полного не дождались, хотя к вечеру обещали, интерес угас. А гадать на кофейной гуще - это к бабкам. Поскольку вы работаете в асинхронном режиме, то ERROR_IO_PENDING (997), который возвращает вам GetLastError() (а эту проверку в вашем коде не наблюдаю), говорит о том, что операция выполняется в фоне и нужно подождать, всего лишь.
0
|
3 / 3 / 0
Регистрация: 08.10.2010
Сообщений: 114
|
|
23.05.2012, 16:24 [ТС] | |
Не по теме: Не по теме: я в курсе, что форум не чат. А полного кода никто и не просил. Я же специально отметил, что если нужно - приведу. Оказалось, что никому не нужно. И я знаю, что нужно это в первую очередь мне, но не имею привычки без повода засирать темы, ибо сам модератор. Проверка GetLastError сидит в процедуре SendError, там комплексный лог генерится, застандартил его, чтобы каждый раз не писать. Если я правильно Вас понял, то смотреть мне нужно либо в сторону снятия if not проверки (что некорректно, но без нее работало - получается в ней проблема), либо, что более вероятно, в сторону WaitForSingleObject. Интересно только: какое оптимальное время для ожидания? И... спасибо
0
|
![]() |
||||
23.05.2012, 17:01 | ||||
![]()
0
|
3 / 3 / 0
Регистрация: 08.10.2010
Сообщений: 114
|
|||||||||||||
24.05.2012, 20:19 [ТС] | |||||||||||||
Добавлено через 1 час 51 минуту
дописал WaitForSingleObject, теперь программа даже за 10 секунд не отправляет 1 символ... Уже крыша едет...
Добавлено через 20 часов 0 минут Блииннн... Добавлено через 4 часа 23 минуты Ладно, продолжаю ждать...
0
|
3 / 3 / 0
Регистрация: 08.10.2010
Сообщений: 114
|
||||||
25.05.2012, 22:51 [ТС] | ||||||
Да ничо особенного
![]()
Не да?
0
|
3 / 3 / 0
Регистрация: 08.10.2010
Сообщений: 114
|
|
28.05.2012, 11:03 [ТС] | |
Может быть все таки кто-нибудь знает в чем дело?
0
|
28.05.2012, 11:03 | |
Помогаю со студенческими работами здесь
10
Работа с сом-портом Работа с СОМ-портом Непонятки при работе с ком-портом Наводки при работе с портом Atmega8515 Управление кодировкой при работе с COM-портом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
![]() |
||||
Использование Keycloak со Spring Boot и интеграция Identity Provider
Javaican 01.07.2025
Два года назад я получил задачу, которая сначала показалась тривиальной: интегрировать корпоративную аутентификацию в микросервисную архитектуру. На тот момент у нас было семь Spring Boot приложений,. . .
|
Содержание темы с примерами на WebGL
8Observer8 01.07.2025
Все примеры из книги Мацуды и Ли в песочнице JSFiddle
Пример выводит точку красного цвета размером 10 пикселей на WebGL 1. 0 и 2. 0
WebGL 1. 0. Передача координаты точки из главной программы в. . .
|
Основы WebGL. Простой треугольник
8Observer8 01.07.2025
Простой треугольник без трансформаций. Для трансформаций можно использовать glMatrix, как в примере: https:/ / plnkr. co/ edit/ qT6ZTwvncLPRamK5?preview
На русском:
. . .
|
Полиглотные микросервисы на C# и .NET
ArchitectMsa 30.06.2025
Полиглотная архитектура появилась не из желания усложнить жизнь разработчикам. Она родилась из практической необходимости решать разные задачи наиболее эффективным способом.
В одном из проектов. . .
|
Стратегии кеширования
Javaican 29.06.2025
Кеширование — это хранение часто запрашиваемых данных в быстром хранилище (обычно в памяти), чтобы не обращаться к более медленному первоисточнику. Казалось бы, все просто. Но за этой простотой. . .
|
Наблюдаемость приложений ASP.NET Core с OpenTelemetry, Prometheus и Grafana
ArchitectMsa 29.06.2025
Наблюдаемость (observability) – это ключевое свойство современной системы, позволяющее понимать её внутреннее состояние на основе внешних данных. Если мониторинг отвечает на вопрос "что случилось?",. . .
|
Четыре главных модели отношений классов в с++
russiannick 28.06.2025
Продолжаю крестовый поход против c++.
ideone. com/ юзаю для проверки валидности кода.
Насчитал 4 модели отношений классов: одиночный класс, равноправные классы, слейв - мастер, терминатор. . . .
|
Вложенные корутины в Unity
GameUnited 28.06.2025
Работа с корутинами в Unity кажется простой до тех пор, пока не начинаешь их вкладывать друг в друга. Я потратил несколько месяцев на изучение этого механизма, и до сих пор иногда ловлю себя на том,. . .
|
Управление Arduino на C# через последовательный порт
Wired 28.06.2025
Когда я впервые попробовал заставить Arduino общаться с моим C# приложением, казалось, что эти два мира существуют параллельно и никогда не пересекутся. Микроконтроллер упорно моргал встроенным. . .
|
Основы OpenGL 3.3 и Qt 6.9. Трансформированный треугольник
8Observer8 27.06.2025
Содержание блога
На русском
https:/ / rutube. ru/ video/ e424497dd6b7ae7e11494027c4b31a54/
https:/ / vkvideo. ru/ video-231040171_456239019
https:/ / www. youtube. com/ watch?v=mfD-ZL7wa_4
|