Подход: основная программа+подпрограммы

Общие принципы, проектирование, модуляризация, темплейты и шаблоны
Ответить
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Подход: основная программа+подпрограммы

Сообщение Konstantin Sumenko »

Нужен совет. Я решил разделить программу на две части: "сервер"- подцепляет прибор, создает датчики, устанавливает свойства задания, обрабатывает полученные данные; "клиенты"- берут из разделяемой части памяти собранные данные и проводят дальнейшую обработку и визуализацию. Основная идея: из-за приличной сложности сервера и различных вариантов клиентов я хочу сделать клиенты как можно более независимыми от программы сервера (как можно меньше потоков синхронизации). Клиенты выглядят как вызываемые по ссылке VI, обработанные данные получают через Shared Variable. Остается грамотно обрабатывать события контролов вызванных VI. Наиболее правильный путь с использованием динамических событий (обработчик находится в сервере). По некоторым причинам он не совсем уместен в моем случае. Вопрос такой: как будет работать приложение в целом, если в каждом клиенте я расположу собственные event структуры (заведомо известно, что в различных клиентах нет общих событий) и воспользуюсь двумя потоками (один-события, другой-отрисовка). Итого: один сервер (3 потока, 1 event-структура), до четырех одновременно запущенных клиентов (в каждом: 2 потока, 1 event структура). Не нравятся мне 4 event-структуры...
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Подход: основная программа+подпрограммы.

Сообщение Eugen Graf »

А что плохого в использовании ивент структур? Чем именно тебе они не нравятся?
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Подход: основная программа+подпрограммы

Сообщение Konstantin Sumenko »

Они мне еще как нравятся :D
Только из-за них добавляется еще по одному потоку в каждый клиент (пусть они и не time critical, но все же).
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Подход: основная программа+подпрограммы

Сообщение Eugen Graf »

Ну и пускай себе добавлется ещё один поток. В этом ничего страшного нет.
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Подход: основная программа+подпрограммы

Сообщение mzu2006 »

Crowbar писал(а):Только из-за них добавляется еще по одному потоку в каждый клиент
В принципе "потока" в смысле объекта win32 thread (linux process) не добавляется. Так что я не стал бы ограничивать себя.
Ответить

Вернуться в «Модели программирования»