Привет форумчанам!
Попал в такую ситуацию: мне скоро придется выпускной проект на курсах C++ защищать. Из предоставленных тем подошла только "разработка программы обмена текстовыми сообщениями для локальной сети". Ну тут вроде все понятно...есть сокеты, есть qt4 а значит есть и кросплатформенность! Это мне в плюс пойдет. Но вот что было дальше...
На работе (я инженер) шеф ни с того ни с сего кинул мне на стол техзадание. Разработать надо программу снятия показаний с теплосчетчика. Теплосчетчик (slave) соединен с клиентом который им управляет (master) а клиент в свою очередь подключен к компу через обычный COM порт. И тут я задумался...С одной стороны это интересней чем чат для локалки но с другой я не представляю как вообще происходит работа с COM портами и есть ли какая-то реализация этой работы в qt4? Писать программу надо под оффтопик но если я возьму ее в качестве дипломного проекта то желательно кросплатформенную сделать...
Отсюда вопрос: как вы считаете если знания неахти а времени мало стоит ли пробовать браться за вариант "опрос теплосчетчика" или остановиться на "чате для локалки"??? Сложно ли происходит работа с COM портом если нужно на примитивном уровне просто кидать на него команды и принимать данные? Можно ли для создания такой программы пользовать qt4? (фейс программы без qt я точно сделать не смогу). То есть обеспечит ли библиотека qt кросплатформенность в работе с COM портом? И что можно почитать конкретно по работе с COM и по реализации com портов в qt (если есть такое)???
QT4 и работа с COM портами (помогите выбрать!)
Модератор: Модераторы разделов
-
blackdevil
- Бывший модератор
- Сообщения: 2751
- Статус: Добровольный помощник
- ОС: Ubuntu (lts)
QT4 и работа с COM портами
Простые решения для Ubuntu-подобных систем: смотрим тут
-
sergio
- Сообщения: 436
- Статус: Интересующийся новичок
- ОС: Debian GNU/Linux 4 & 5
Re: QT4 и работа с COM портами
blackdevil писал(а): ↑09.10.2007 22:02но с другой я не представляю как вообще происходит работа с COM портами и есть ли какая-то реализация этой работы в qt4? Писать программу надо под оффтопик но если я возьму ее в качестве дипломного проекта то желательно кросплатформенную сделать...
Товарисчъ, гугль'з ё френд.
Самый прямолинейный запрос, почти по-русски.
Для оффтопика RTFMSDN, как обычно, гуглим по вкусу.
Не надо ожидать, что все на свете найдется в Куте. Но если вдруг - то где документация по куте тоже известно, и форумов целевых имеется. Наприм. http://prog.org.ru/forum/index.php - там даже по-русски.
Успехов.
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
-
Denjs
- Сообщения: 1685
- ОС: SuSe 10.2
Re: QT4 и работа с COM портами
а что мешает работать с ком-портом по схеме как с обычным файлом? - в rdesktop например в модуле serial.c так открывается/пишется/читается:
ну там конечно много всего связанного с ioctl(), таймаутами и т.п.... - см код модуля...
я к тому, что какая разница - под QT это или просто под C++? это же фактически базовые функции...
Код: Выделить всё
serial_fd = open(g_rdpdr_device[device_id].local_path, O_RDWR | O_NOCTTY | O_NONBLOCK);
...
*result = write(handle, data, length);
...
*result = read(handle, data, length);ну там конечно много всего связанного с ioctl(), таймаутами и т.п.... - см код модуля...
я к тому, что какая разница - под QT это или просто под C++? это же фактически базовые функции...
-
blackdevil
- Бывший модератор
- Сообщения: 2751
- Статус: Добровольный помощник
- ОС: Ubuntu (lts)
Re: QT4 и работа с COM портами
Да вопрос то весь в том сложнее ли работать с ком портами или работать с сокетами...боюсь неуспеть...ладно буду гугл мучать...ждите технической темы на счет программы 
а в оффтопике разве можно так делать? Просто если будет платформозависимая прога то думаю про линь придется забыть...
Хмм...кажется действительно вся работа идет через read/write...
а что мешает работать с ком-портом по схеме как с обычным файлом?
а в оффтопике разве можно так делать? Просто если будет платформозависимая прога то думаю про линь придется забыть...
Хмм...кажется действительно вся работа идет через read/write...
Простые решения для Ubuntu-подобных систем: смотрим тут
-
sergio
- Сообщения: 436
- Статус: Интересующийся новичок
- ОС: Debian GNU/Linux 4 & 5
Re: QT4 и работа с COM портами
blackdevil писал(а): ↑10.10.2007 16:21а в оффтопике разве можно так делать? Просто если будет платформозависимая прога то думаю про линь придется забыть...
Отчего-то мне думается, что платформозависимый код отправки приема и присмотра за ошибками может быть вынесен в несколько функций... не составит и 10% от общего объема...
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
-
blackdevil
- Бывший модератор
- Сообщения: 2751
- Статус: Добровольный помощник
- ОС: Ubuntu (lts)
Re: QT4 и работа с COM портами
А как Вы считаете за какой период времени (в среднем) вообще реально написать такую вот незамысловатую программу из одного окна с парой кнопочек считывающую/посылающую команды на COM порт?
Простые решения для Ubuntu-подобных систем: смотрим тут
-
vantaker
- Сообщения: 166
Re: QT4 и работа с COM портами
Для начала я бы потряс производителя счетчика (и/или железок, из которых он сделан) на предмет софта. Часто эти производители комплектуют свои железки ПО, иногда кросс-платформенным, иногда даже с исходниками. Вобщем посмотреть, как они эту задачу решают/рекомендуют решать
-
blackdevil
- Бывший модератор
- Сообщения: 2751
- Статус: Добровольный помощник
- ОС: Ubuntu (lts)
Re: QT4 и работа с COM портами
Ну рабочий софт у меня уже на машине стоит...исходные коды думаю мне вряд ли просто так отдадут ))
Дело-то в чем заключается...эти 2 программы считывают огромное число параметров, поэтому одна выдает результат через минут 10 а другая через несколько десятков секунд...А предназначение узла учета тепла в том, что если будет аварийная ситуация (утечка тепла) то в трубах резко начнет падать давление и разница количества тепла тоже изменится, поэтому нужно сделать такую софтину которая через каждые секунд 5 запрашивает у теплосчетчика 2-3 параметра и отображает их, то есть показания отображаются можно сказать в режиме реального времени и не надо сидеть и постоянно давить на кнопку "обновить данные"...
п.с. может техзадание отсканированное к теме приложить? Хоть сказали бы мне сложная ли работа...? А то я сижу в растерянности, ищу материал по работе с портами а может это все мне вообще не под силу реализовать...еще не известно как работу проги проверять буду, на теплосчетчике это делать опасно...стоит он немало и посылать ему непонятные запросы нежелательно!
Дело-то в чем заключается...эти 2 программы считывают огромное число параметров, поэтому одна выдает результат через минут 10 а другая через несколько десятков секунд...А предназначение узла учета тепла в том, что если будет аварийная ситуация (утечка тепла) то в трубах резко начнет падать давление и разница количества тепла тоже изменится, поэтому нужно сделать такую софтину которая через каждые секунд 5 запрашивает у теплосчетчика 2-3 параметра и отображает их, то есть показания отображаются можно сказать в режиме реального времени и не надо сидеть и постоянно давить на кнопку "обновить данные"...
п.с. может техзадание отсканированное к теме приложить? Хоть сказали бы мне сложная ли работа...? А то я сижу в растерянности, ищу материал по работе с портами а может это все мне вообще не под силу реализовать...еще не известно как работу проги проверять буду, на теплосчетчике это делать опасно...стоит он немало и посылать ему непонятные запросы нежелательно!
Простые решения для Ubuntu-подобных систем: смотрим тут
-
Denjs
- Сообщения: 1685
- ОС: SuSe 10.2
Re: QT4 и работа с COM портами
blackdevil писал(а): ↑10.10.2007 16:21а в оффтопике разве можно так делать? Просто если будет платформозависимая прога то думаю про линь придется забыть...
Хмм...кажется действительно вся работа идет через read/write...
ну может не истинно так..но где-то так... то что ком-порт можно открыть как яайл - однозначно да.
но по поводу установок и параметров... я кажется api функциями в свое время пользовался... (писал на delphi)...
в любом случае - если ioctl не заработает под оффтопиком - платформо-зависимый код можно вынести в 3-5 функций и в отдельный модуль. имхо (открыть, читать, писать, параметрыСтавить, закрыть)...
-
sergio
- Сообщения: 436
- Статус: Интересующийся новичок
- ОС: Debian GNU/Linux 4 & 5
Re: QT4 и работа с COM портами
Под оффтопиком (который еще 9х), подключенность модема проверялась неплохо (при отсутствие более надежных средств) примерно так:
Код: Выделить всё
copy autoexec.bat com2Мож чего напутал, давно дело было, но смысл думаю ясен. Модем мигал в ответ лампочками.
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
-
blackdevil
- Бывший модератор
- Сообщения: 2751
- Статус: Добровольный помощник
- ОС: Ubuntu (lts)
Re: QT4 и работа с COM портами
Ого! Вот это дело
Спасибки огромное! Сам тоже накопал материала много (для оффтопика), так как все же писаться программа будет видимо под него. Хотя если посмотреть на последнюю ссылочку...не все еще потеряно )) Спасибо всем еще раз! Тему можно закрывать. По самой программе если что попрошу конкретной помощи в другой теме.
Простые решения для Ubuntu-подобных систем: смотрим тут