Russian Qt Forum
Ноябрь 25, 2024, 06:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Чем заменить COM-server  (Прочитано 4055 раз)
Alex_C
Гость
« : Август 14, 2012, 15:29 »

Есть программа под винду для считывания телеметрии с приборов. Написана на Дельфи. Работает она как COM-server. Все просто и понятно.
Есть необходимость сделать ее кросс-платформенной. Как проще сделать? Сделать ее как dll - но вот не уверен, что я смогу реализовать все, что есть в COM-server'е через интерфейс dll. А есть ли какие другие решения?
Записан
Bepec
Гость
« Ответ #1 : Август 14, 2012, 15:44 »

Как ком-сервер. В смысле она общается с приборами по COM порту и выводит(выводит ли?) телеметрию и сохраняет её.

Тогда всё просто - достаточно будет переписать её на Qt. Насчёт кроссплатформенности Delfi у меня большиииие сомнения Веселый

PS работа с комом - QtSerialPort(как то так). На форуме лежит темка про него. Разработчик прилагается. Работает великолепно Веселый
Записан
Странник
Гость
« Ответ #2 : Август 14, 2012, 15:45 »

недавно на форуме мелькала информация о Qt Service Framework, можете поинтересоваться. но доступен он будет в Qt 5.
а с dll в чем затык?
p.s.
что касается кроссплатформенности Delphi - Kylix сдох? он, кстати, на Qt был основан, помнится = )
Записан
Alex_C
Гость
« Ответ #3 : Август 14, 2012, 16:04 »

Я тут наверное немного неправильно выразился - программу с дельфи переписать на Qt конечно же Улыбающийся . На Qt с ком-портами уже разобрался - тут все ок! Сама программа (что работает с ус-вами) уже переписана на Qt. Но естественно это пробный вариант - теперь необходимо организовать интерфейс этой программы для взаимодействия с другими программами. Т.е. программа получила данные с ус-ва - передала их другой программе. В винде это очень удобно делается с помощью технологии COM. Но естественно для кросс-платформенности она не подойдет. Вот собственно и озадачился - а что использовать? При этом под виндой эта программа должна без проблем взаимодействовать с программами, написанными не только на Qt - а и на том же дельфи, к примеру.
Записан
Странник
Гость
« Ответ #4 : Август 14, 2012, 16:47 »

Я тут наверное немного неправильно выразился - программу с дельфи переписать на Qt конечно же Улыбающийся . На Qt с ком-портами уже разобрался - тут все ок! Сама программа (что работает с ус-вами) уже переписана на Qt. Но естественно это пробный вариант - теперь необходимо организовать интерфейс этой программы для взаимодействия с другими программами. Т.е. программа получила данные с ус-ва - передала их другой программе. В винде это очень удобно делается с помощью технологии COM. Но естественно для кросс-платформенности она не подойдет. Вот собственно и озадачился - а что использовать? При этом под виндой эта программа должна без проблем взаимодействовать с программами, написанными не только на Qt - а и на том же дельфи, к примеру.
Qt Service Framework - COM под Windows, DBus под *nix. или локальные сокеты, но тут придется поморочиться с сериализацией.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #5 : Август 14, 2012, 17:01 »

или локальные сокеты, но тут придется поморочиться с сериализацией.

Для сериализации можно использовать protobuf
Записан
Bepec
Гость
« Ответ #6 : Август 14, 2012, 17:02 »

Выбор у тебя афигенный. Начиная от межпроцессового взаимодействия, заканчивая dbus ом
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #7 : Август 14, 2012, 20:22 »

В зависмости от данных - QSharedMemory, QLocalSockets.
Если другие программы на Qt, то и сериализацию без зазрений совести можно использовать Qt'шную.
Записан
Alex_C
Гость
« Ответ #8 : Август 15, 2012, 08:01 »

Всем большое спасибо за советы!
Удаляюсь изучать мат. часть - потом уже задам конкретные вопросы по указанным выше реализациям! Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.061 секунд. Запросов: 22.