|
Программная прослойка для сопряжения сторонних, программ с моим устройством |
|
|
|
May 26 2011, 07:48
|

Местный
  
Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328

|
Добрый день.
Есть устройство подключаемое к компу. Устройство управляется исключительно с компа. Есть компьютерная управляющая программа. Но, вариантов использования устройства - великое множество и моя программа их все охватить не может. Нужно дать пользователю устройства возможность легко написать заточенную под него программу. Т.е. предоставить ему некую программную прослойку, скрывающую особенности низкоуровнего обмена с устройством.
Навскидку приходят на ум следующие варианты (ни в одном из них я не профи, могут быть накладочки).
1. Использовать DLL, где и предоставить необходимые функции. Большой плюс решения - очень просто как для меня - писателя DLL, так и для клиента - писателя основной программы. Минус - нет совместимости между DLL, созданной разными компиляторами, или требуются неудобные телодвижения для использования "неродной" DLL. Отсюда проистекают ограничения на использование клиентской программой языка программирования.
2. Написать OPC сервер. Плюсы. Есть стандарт, кроме самописной программы можно использовать какую-нибудь SCADA систему. Нет никакого навязывания языка программирования для клиента. Минусы. Сложность. Конкретно нам придется заказывать разработку сервера на стороне. Клиент должен иметь программиста с подходящей квалификацией.
3. ??? что еще можно придумать. В нулевом приближении требования такие. Простота реализации как для меня, так и для клиента. Без навязывания клиенту языка программирования.
|
|
|
|
|
 |
Ответов
|
May 26 2011, 09:03
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(shreck @ May 26 2011, 10:48)  Добрый день.
Есть устройство подключаемое к компу. Устройство управляется исключительно с компа. Есть компьютерная управляющая программа. Но, вариантов использования устройства - великое множество и моя программа их все охватить не может. Нужно дать пользователю устройства возможность легко написать заточенную под него программу. Устройство должно стать WEB сервером и предоставлять WEB сервисы на основе SOAP с описанием на WSDL. Это будет самый универсальный и дальновидный подход. Эти штуки есть во всех серьезных языках и фреймворках - .NET (С++, C#, VB), Delphi, PHP, Python, Java, JavaScript ...
|
|
|
|
|
May 26 2011, 09:23
|

Местный
  
Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328

|
Цитата(AlexandrY @ May 26 2011, 16:03)  Устройство должно стать WEB сервером и предоставлять WEB сервисы на основе SOAP с описанием на WSDL. Это будет самый универсальный и дальновидный подход. Эти штуки есть во всех серьезных языках и фреймворках - .NET (С++, C#, VB), Delphi, PHP, Python, Java, JavaScript ... Правильно ли я понимаю, что устройство не переделывается, физическое соединение с компом не меняется. А WEB-сервер - это моя программа, работающая на компе. Я в этом "тупой доцент"  , а как программа клиента должна взаимодействовать с этим сервером. Как это выглядит с точки зрения программиста (мне бы оценить сложность освоения данного подхода)?
|
|
|
|
|
May 26 2011, 10:45
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(shreck @ May 26 2011, 12:23)  Правильно ли я понимаю, что устройство не переделывается, физическое соединение с компом не меняется. А WEB-сервер - это моя программа, работающая на компе. Я в этом "тупой доцент"  , а как программа клиента должна взаимодействовать с этим сервером. Как это выглядит с точки зрения программиста (мне бы оценить сложность освоения данного подхода)? Вообще-то я предполагал, что потребуется слегка переписать фирмваре устройства. Если XML применяемый в SOAP слишком тяжелый для каналов передачи, то можно было бы использовать формат JSON и либы JSONP. Это сужает круг совместимых фреймворков, но может оказаться перспективней, поскольку на JSONP плотно сидят фреймворки Google и Yahoo. Но можно конечно и промежуточный локальный сервер-шлюз сделать для перевода локального проприетарного M2M протокола в JSON поверх HTTP. Какой пользовательский интерфейс можно сделать в броузерах на основе бесплатных либ можно посмотреть например здесь: http://jqueryui.com/Плюс тут в том, что пользовательский интерфейс совместим с кучей броузеров и операционок, а писать его могут разработчики WEB страниц которые как правило дешевле тех же писателей на Delphi. Цитата(shreck @ May 26 2011, 13:12)  Идея сделать сервер из самого устройства заманчива, но возможно ли это, если физическое соединение USB HID. Переделайте HID на RNDIS. Даже проще будет.
|
|
|
|
Сообщений в этой теме
shreck Программная прослойка для сопряжения сторонних May 26 2011, 07:48 ReAl Цитата(shreck @ May 26 2011, 10:48) Минус... May 26 2011, 08:30 shreck Цитата(ReAl @ May 26 2011, 15:30) А не на... May 26 2011, 08:47  MrYuran Цитата(shreck @ May 26 2011, 12:47) На да... May 26 2011, 08:59  ReAl Цитата(shreck @ May 26 2011, 11:47) Хм...... May 26 2011, 12:37   shreck Цитата(ReAl @ May 26 2011, 19:37) Не знаю... May 26 2011, 14:06  vvs157 Цитата(shreck @ May 26 2011, 12:47) Хм...... May 26 2011, 20:34 mdmitry Возможный вариант при малом потоке управления: что... May 26 2011, 10:04 shreck Цитата(mdmitry @ May 26 2011, 17:04) Возм... May 26 2011, 10:12  mdmitry Цитата(shreck @ May 26 2011, 14:12) Идея ... May 26 2011, 10:23 miga Цитата(shreck @ May 26 2011, 11:48) Минус... May 26 2011, 22:58 halfdoom Цитата(miga @ May 27 2011, 01:58) Использ... May 27 2011, 02:42  demiurg_spb ИМХО, OPC - стандарт для такого рода задач.
+ dll-... May 27 2011, 04:25 shreck Цитата(vvs157 @ May 27 2011, 03:34) Это о... May 27 2011, 01:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|