Важная информация
Показано с 1 по 4 из 4

Тема: Проблема работы com-port с ReadFile и DCB structure после MS Hyper-Terminal

  1. #1 Проблема работы com-port с ReadFile и DCB structure после MS Hyper-Terminal 
    Новичок
    Регистрация
    31.10.2017
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 2 раз(а) в 1 сообщении
    Доброго времени суток!

    Столкнулся с непонятной проблемой.
    Имеется сканер штрих-кодов CipherLab 1000.
    Он настроен корректно, забегу вперед.
    Для чистоты эксперимента удаляем порт из системы, переустанавливаем.

    Смотрим, что у нас в ОС.
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Далее делаем

    C++ Code:
    1. GetCommState(hCom, &dcb);


    Смотрим результат:
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Уже странно...

    Ладно, присваиваю свои значения, и отправляю...
    C++ Code:
    1. SetCommState(hCom, &dcb);


    Смотрю результат...
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Вроде не плохо, под сканер...

    Но вот не задача, сканирую, ничего не происходит... Висит и висит
    C++ Code:
    1. ReadFile(hCom, &Buffer, 100, &dwBytesOfRead, NULL)


    Никакой реакции....

    А теперь самое странное!
    Запускаю например MS Hyper Terminal просто connect к порту, да же не считываю данные сканером, закрываю программу.

    Запускаю заново свою программу, проверяю состояние структуры... Она Аналогична. Какие настройки порта мог сменить Hyper Terminal. И как их менять мне?
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    И о чудо... Моя программа работает, никаких подвисаний, читает "файл" (порт) летом... Штрих код прилетает, всё хорошо, всё корректно.

    Не могу понять в чем дело, заметил что запись идет успешно в любом случае, но там то это бесполезно, это же сканер...

    Какие мысли? где искать проблему?
    Ответить с цитированием  
     

  2. #2  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Цитата Сообщение от Kenny™ Посмотреть сообщение
    Какие мысли? где искать проблему?
    Что значит висит? Функция ReadFile повисла? Если так, то косяк в этой функции или в тех данных, которые вы ей
    отправляете, внимательно всё проверьте и то сколько данных с устройства приходит и должно приходить.
    Если висит где-то в другом месте тогда дескриптор проверьте, если там что-то не так, тогда
    посмотрите по https://msdn.microsoft.com/ru-ru/lib...(v=vs.85).aspx.

    Плюс у устройства есть ещё USB, на COM свет не сошёлся.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  3. Пользователь сказал cпасибо:

    Free Admin (02.11.2017)

  4. #3  
    Новичок
    Регистрация
    31.10.2017
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 2 раз(а) в 1 сообщении
    Проблема, решена. Конечно же, про COMMTIMEOUTS забыл... Я то и смотрю, что Hyper-Terminal ее инициализирует в порт, а моя программа нет.

    Сделал так...

    C++ Code:
    1. #define TIMEOUT 0
    2.  
    3. CommTimeOuts.ReadIntervalTimeout = 10;
    4. CommTimeOuts.ReadTotalTimeoutMultiplier = 0;
    5. CommTimeOuts.ReadTotalTimeoutConstant = TIMEOUT;
    6. CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
    7. CommTimeOuts.WriteTotalTimeoutConstant = TIMEOUT;
    Ответить с цитированием  
     

  5. 2 пользователя(ей) сказали cпасибо:

    >Quiet Snow< (16.07.2018), Free Admin (16.07.2018)

  6. #4  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Kenny™, спасибо за ценную информацию.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 13.03.2015, 19:21
  2. asus проблемы после переустановки
    от kid в разделе Операционные системы
    Ответов: 4
    Последнее сообщение: 22.10.2014, 17:07
  3. Serial port 9bit ?
    от djeki7 в разделе .NET
    Ответов: 0
    Последнее сообщение: 11.08.2014, 11:44
  4. Нужна помощь по СХД и Hyper-V
    от Loneli20 в разделе Сети
    Ответов: 0
    Последнее сообщение: 10.09.2013, 13:51
  5. drupal: После обновления страницы с товаром на commerceBox - товар не отображается
    от Максим Логвиненко в разделе Системы управления контентом
    Ответов: 6
    Последнее сообщение: 13.07.2013, 18:56
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •