![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
dekar |
![]()
Сообщение
#41
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 14.4.2010 Пользователь №: 1632 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Решил всё-таки зарегистрироваться.
Итак 1) serialdeviceinfo.h обёрнут в #ifndef SERIALDEVICEWATCHER_H, что сильно мешает в одном проекте использовать оба класса. 2) Проблемы с lock-файлами остались. Просто теперь класс кладёт на них, что не совсем есть гут. 3) В качестве фичи - советую объединить watcher и info в один класс. Плохо себе представляю watcher без info для использования.f И ещё тут придумал фичу - QByteArray readTimeout (int length, int msec) читает length байт с порта, и их возвращает. Также возвращает те байты, которые успела прочитать за время msec. Удобно для опроса всех портов на предмет наличия определённого ответа. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#42
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
QByteArray readTimeout (int length, int msec) название функции совершенно не ассоциируется с описанием.читает length байт с порта, и их возвращает. Также возвращает те байты, которые успела прочитать за время msec. Удобно для опроса всех портов на предмет наличия определённого ответа. Если откинуть аргументы и оставить только имя, то эта функция всего лишь читает величину таймаута, но почему-то возвращает её в неуклюжем виде. Надо имя пересмотреть |
|
|
kuzulis |
![]()
Сообщение
#43
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата 1) serialdeviceinfo.h обёрнут в #ifndef SERIALDEVICEWATCHER_H, что сильно мешает в одном проекте использовать оба класса. исправил Цитата 2) Проблемы с lock-файлами остались. Просто теперь класс кладёт на них, что не совсем есть гут. изменил Цитата 3) В качестве фичи - советую объединить watcher и info в один класс. Плохо себе представляю watcher без info для использования.f нет.. не объединю... Цитата И ещё тут придумал фичу - QByteArray readTimeout (int length, int msec) читает length байт с порта, и их возвращает. Также возвращает те байты, которые успела прочитать за время msec. Удобно для опроса всех портов на предмет наличия определённого ответа. пока не вижу в этом сакрального смысла |
|
|
dekar |
![]()
Сообщение
#44
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 14.4.2010 Пользователь №: 1632 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вот и новая проблема. Не знаю, насколько она решаема, но...
Дело в том, что watcher не перехватывает события отключения порта, когда он... открыт. И я понимаю почему, он и из системы не пропадает. Собственно вопрос: можно ли с этим чего-либо сделать. И есть ли такая же проблема в венде? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#45
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
dekar |
![]()
Сообщение
#46
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 14.4.2010 Пользователь №: 1632 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
хорошо, если он в системе не пропадает, то как ты определяешь, что он отключен? А очень просто. Надо перехватывать все события udev'а, а не только те, что связаны с rs232 портами. И смотреть, являлось ли отключённое устройство портом. А может быть есть информация о том, есть ли такая же проблема в венде? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#47
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
я использую QxtSerialPort в виндовозе, для отлова отключения преобразователя USB-RS232 при открытом порте всегда проверяю кол-во принятых байт. Драйвер FTDI'ного преобразователя всегда отрицательное значение возвращает.
|
|
|
dekar |
![]()
Сообщение
#48
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 14.4.2010 Пользователь №: 1632 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
хм. Удачно. Только проблемка - у меня не FTDI, а програмный UART на меге 8.
usb 2-1: Product: USB-232 usb 2-1: Manufacturer: www.recursion.jp Буду глядеть, что там с кол-вом принятых байт. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#49
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
ну а на ПК у тебя стандартный (аппаратный) COM-порт?
|
|
|
dekar |
![]()
Сообщение
#50
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 14.4.2010 Пользователь №: 1632 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 1.9.2024, 6:02 |