Название: Чем заменить COM-server Отправлено: Alex_C от Август 14, 2012, 15:29 Есть программа под винду для считывания телеметрии с приборов. Написана на Дельфи. Работает она как COM-server. Все просто и понятно.
Есть необходимость сделать ее кросс-платформенной. Как проще сделать? Сделать ее как dll - но вот не уверен, что я смогу реализовать все, что есть в COM-server'е через интерфейс dll. А есть ли какие другие решения? Название: Re: Чем заменить COM-server Отправлено: Bepec от Август 14, 2012, 15:44 Как ком-сервер. В смысле она общается с приборами по COM порту и выводит(выводит ли?) телеметрию и сохраняет её.
Тогда всё просто - достаточно будет переписать её на Qt. Насчёт кроссплатформенности Delfi у меня большиииие сомнения :D PS работа с комом - QtSerialPort(как то так). На форуме лежит темка про него. Разработчик прилагается. Работает великолепно :D Название: Re: Чем заменить COM-server Отправлено: Странник от Август 14, 2012, 15:45 недавно на форуме мелькала информация о Qt Service Framework, можете поинтересоваться. но доступен он будет в Qt 5.
а с dll в чем затык? p.s. что касается кроссплатформенности Delphi - Kylix сдох? он, кстати, на Qt был основан, помнится = ) Название: Re: Чем заменить COM-server Отправлено: Alex_C от Август 14, 2012, 16:04 Я тут наверное немного неправильно выразился - программу с дельфи переписать на Qt конечно же :) . На Qt с ком-портами уже разобрался - тут все ок! Сама программа (что работает с ус-вами) уже переписана на Qt. Но естественно это пробный вариант - теперь необходимо организовать интерфейс этой программы для взаимодействия с другими программами. Т.е. программа получила данные с ус-ва - передала их другой программе. В винде это очень удобно делается с помощью технологии COM. Но естественно для кросс-платформенности она не подойдет. Вот собственно и озадачился - а что использовать? При этом под виндой эта программа должна без проблем взаимодействовать с программами, написанными не только на Qt - а и на том же дельфи, к примеру.
Название: Re: Чем заменить COM-server Отправлено: Странник от Август 14, 2012, 16:47 Я тут наверное немного неправильно выразился - программу с дельфи переписать на Qt конечно же :) . На Qt с ком-портами уже разобрался - тут все ок! Сама программа (что работает с ус-вами) уже переписана на Qt. Но естественно это пробный вариант - теперь необходимо организовать интерфейс этой программы для взаимодействия с другими программами. Т.е. программа получила данные с ус-ва - передала их другой программе. В винде это очень удобно делается с помощью технологии COM. Но естественно для кросс-платформенности она не подойдет. Вот собственно и озадачился - а что использовать? При этом под виндой эта программа должна без проблем взаимодействовать с программами, написанными не только на Qt - а и на том же дельфи, к примеру. Qt Service Framework - COM под Windows, DBus под *nix. или локальные сокеты, но тут придется поморочиться с сериализацией.Название: Re: Чем заменить COM-server Отправлено: Alex Custov от Август 14, 2012, 17:01 или локальные сокеты, но тут придется поморочиться с сериализацией. Для сериализации можно использовать protobuf Название: Re: Чем заменить COM-server Отправлено: Bepec от Август 14, 2012, 17:02 Выбор у тебя афигенный. Начиная от межпроцессового взаимодействия, заканчивая dbus ом
Название: Re: Чем заменить COM-server Отправлено: LisandreL от Август 14, 2012, 20:22 В зависмости от данных - QSharedMemory, QLocalSockets.
Если другие программы на Qt, то и сериализацию без зазрений совести можно использовать Qt'шную. Название: Re: Чем заменить COM-server Отправлено: Alex_C от Август 15, 2012, 08:01 Всем большое спасибо за советы!
Удаляюсь изучать мат. часть - потом уже задам конкретные вопросы по указанным выше реализациям! :) |