OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 13:07

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 98 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 11:16 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
stern писал(а):
Удивительно, насколько многим людям приходится делать системы сбора данных (ССД), в том или ином виде.
Да, это мы проходили...
stern писал(а):
И все решают по-разному, но все решения объединяет одно: пишется долго и муторно, часто - неудачно.
Не знаю, мои все работают : )
stern писал(а):
Мне кажется, что можно сделать практически законченную систему, оставив на совести пользователя реализацию лишь предметной логики.
Предметная логика - это что? То, что делать потом со всеми этими собранными данными? Если так, то во-первых, почему пользователь вообще что-то должен реализовывать? Если "пользователь" - это на самом деле не пользователь, а программист, использующий данный пакет ССД, то у него в любом случае будут большие трудности, см. ниже.
stern писал(а):
Думается, что под эту задачу ББ заточен исключительно хорошо.
Под ССД? Пожалуй, соглашусь, если добавить, что ССД должна быть расчитана в основном на автономную (не интерактивную) работу.
stern писал(а):
Работает Диспетчер так: считав список имен модулей в соотв. документе, Диспетчер загружает эти модули, добавляет соотв. пункты (если для этого модуля оно требуется) в системное меню, добавляет кнопки (по необходимости) на тулбар.
С этим уже придётся колдовать: прямой поддержки динамических меню и тулбаров нет. Будете рыться в HostMenus. Это к вопросу об интерактивной работе и приспособленности Блэкбокса. Штатное решение: открыть окошко поверх прочих с нужными кнопками/коммандерами при запуске среды и оставить меню для других целей.
stern писал(а):
От Ядра пришло сообщение со значениями параметров a, b. Диспетчер, в соотв. с определенным ранее порядком, сообщает значения a, b модулю А и вызывает его команду на рассчет.
А если от параметра а приходят значения, а от b уже час нет ответа? Будет ли Диспетчер вызывать пересчёт или воздержится? Если будет пересчитывать, то будет ли использовать последнее известное значение b или какое-то экстраполированное из прежнего поведения датчика? Какой бы вы ответ ни дали, могут быть задачи, где необходим противоположный ответ или смешанная логика. Вопрос: эту логику вы будете встраивать в базовую ССД и вываливать тонну настроек, или же доработка ССД опять-таки ложится на "пользователя-программиста"?
stern писал(а):
Диспетчер расположил их в таком порядке: С, Д.
А почему не по алфавиту: Д, С? ; )
stern писал(а):
В принципе, такой каскад можно организовать для неограниченного числа модулей с пользовательской логикой.
Как система будет реагировать на попытку внесения цикла в данный каскад, например, когда модуль Б выдаёт параметр а или его скорректированное значение?
stern писал(а):
2. Для каждого типа датчика следует предусмотреть свой загружаемый динамически модуль.
Не вижу, почему именно "следует". Можно сделать - да, но обязательно ли и какие последуют преимущества? Дополнительные проверки интерфейса при динамической загрузке займут не одну страницу кода, в отличие от автоматической загрузки, где всё это уже реализовано.
stern писал(а):
Конечно, это лишь очень грубая прикидка. И в ходе более детальной проработки будут изменения. Но, все-таки, мне кажется, что таким путем можно здорово облегчить жизнь разработчикам. Ведь им, по сути, остается лишь реализация предметной логики и модулей под разные типы датчиков.
А кто будет реализовывать протокол обмена? Пусть есть COM-порт, но это ещё не протокол. Приходящие данные надо по определённому алгоритму декодировать, сверить контрольные суммы, обработать ошибки. Что делать в случае сбойного пакета? Послать некий повторный запрос данных? Проигнорировать сбойный и дождаться следующего пакета?

Сдаётся мне, что вы обрисовали некую архитектуру, общее устройство программы, которое в принципе может быть применимо для нескольких (похожих или не очень) ССД. Это тянет на публикацию статьи или разработку SDK для клиентов вашего предприятия, но получится ли из этого действительно ССД общего назначения, которую можно использовать в смысле программного кода, а не общего подхода, - не знаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 11:51 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Александр Ильин писал(а):
... прямой поддержки динамических меню ... нет.

А почему нельзя модифицировать документ меню (что легко) и выполнить Update -- или тут про другое?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 19:08 

Зарегистрирован: Вторник, 17 Июнь, 2008 12:13
Сообщения: 28
Уважаемый Александр Ильин!
Я снова удивлен. При всем уважении, не ожидал от Вас такой отповеди. Ни в коем случае не претендую на должность программного архитектора, ибо ни квалификация, ни жизненные обстоятельства не позволяют мне даже мечтать об этом. То, что я изложил в своем посте, следует понимать так: "по-моему, ССД нужна людям разных специальностей, убеждений и сфер деятельности. В ББ, как мне кажется, можно сделать хороший каркас, получится и красиво, и поучительно. Самый примитивный вариант - для затравки - видится мне так... Некоторые детали возможной реализации, которые я изложил - лишь для иллюстрации того, что многого можно достичь очень простыми средствами." Все. Ключевой фразой того поста следует считать: "...я не программер...". Тем не менее, отвечу на Ваши комментарии.
1. Под "предметной логикой" я имел в виду алгоритмы обработки данных, собранных с датчиков. Например, это бывает нужно в производстве, когда на разном оборудовании висит много разнотипных датчиков, и в реал-тайме (до 1 сек.) идет анализ состояния оборудования, оперативный анализ технологического процесса операторами, выдача по результатам анализов рекомендаций и заключений. Как ни странно, до сих пор в некоторых сферах деятельности это делают операторы. По разным причинам, в том числе и по причине сложности формализации предметной области.
2. Что касается добавления пунктов в меню, то что может быть проще? Все делается именно так, как написал info21. В документе Menus в моей директории/Rsrc добавляются/убираются соотв. строки и все. А для тулбара есть компонента Toolbar. Но, подчеркну еще раз, эти "тонкости" реализации - лишь для иллюстрации того, что задача на самом деле - не архисложная. Тем более, что реализовать удобный доступ к настроечным окнам подключаемых модулей можно различными способами, в том числе и при помощи создания гиперссылок. Это не принципиально.
3. Если не приходят какие-то значения с датчиков, то это значит только, что неисправно "железо". Для этого бывает оператор. Видя, что нет сигнала (либо некорректен), оператор хватает ноги в руки и вперед, искать неисправности. А программа пишет то, что приходит. Либо некорректное значение, либо еще что-то. Потом это все ручками исправляется, если есть возможность... В чем проблема? Не понял. Кстати, один из этих самых подключаемых модулей может анализировать значения параметров, и при возникновении подозрительной ситуации - сигнализировать об этом.
4. По поводу динамической загрузки модулей для датчиков разных типов. На практике выглядит так. Привезли новый датчик, к нему длл-ку. Нужно подключить новый датчик взамен крякнувшего старого, работу останавливать надолго нельзя. Что делаем? Кидаем длл-ку в директорию, цепляем датчик кабелем к ЦАП-АЦП. Цепляем в программе датчик. Калибруем датчик. Получаем с него данные.
5. И по поводу протокола обмена с неким портом. А как обычно делается? Так и сделать. На подключаемое железо всегда есть спецификация, что и как приходит с него, это сообщает производитель железа. Опять не понял проблемы. Интерфейс общения с портом может быть вполне универсальным, а тонкости реализации работы для каждого типа порта - это тонкости реализации.
Сам тружусь оператором, приходилось работать на различных ССД. К сожалению, в моей отрасли денег на такой системе, даже самой распрекрасной не сделать: "рынок" распилен и поделен очень убедительно. Лично мне даже премии какой-никакой за все время моей "сподвижнической" деятельности не кинули. И спасибо до сих пор ниразу не сказали. И не скажут. И не надо. Просто профессиональный зуд что-ли...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 19:56 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
stern писал(а):
по-моему, ССД нужна

Поддержу. Сбор данных -- вещь. Только не понимаю проблемы. Нужно поконкретнее.

Кстати, Wojtek Skulski -- экспериментатор сначала из ЦЕРНа, теперь из лазерной лабы в Рочестере, где самый мощный лазер в мире -- давно что-то сделал на эту тему. Демки были хорошие. У него там фирмушка окучивает заказы этой лабы -- платы с софтом. Что-то в таком духе.

http://www.zinnamturm.eu/downloadsDH.htm#Gr

Gr
By Wojtek Skulskii

Data Acquisition and Monitoring Toolbox.
BlackBox/Gr (Gr in short) is a toolbox of histogramming and graphical modules to support developing interactive data acquisition (DAQ) and monitoring programs. Such programs can be used to collect and display data from laboratory equipment (e.g., voltmeters), the DAQ modules (e.g., CAMAC modules), and various sensors and probes (e.g., temperature probes, Hall effect probes, etc.). You find slides and further information at http://www.pas.rochester.edu/~skulski/.

Gr doesn't use any other CPC services.

StdCoded File <=> PacCoded File (764 / 351 kByte - Release 15-Feb-2005)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 22:26 

Зарегистрирован: Вторник, 17 Июнь, 2008 12:13
Сообщения: 28
Info21 писал(а):
stern писал(а):
по-моему, ССД нужна

Поддержу. Сбор данных -- вещь. Только не понимаю проблемы. Нужно поконкретнее.

Проблемы нет, есть предложение: сделать хороший фреймвок для ССД. :-) Сам я не сделаю по колоссальному числу причин, начиная от образа жизни и заканчивая невысокой квалификацией. Но если идея не актульна, то я не настаиваю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 22:28 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
stern писал(а):
Проблемы нет, есть предложение: сделать хороший фреймвок для ССД. :-)

Нужно оттолкнуться от Gr -- посмотреть, что там есть, чего не хватает и т.п.
В принципе, основа там должна быть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 08 Октябрь, 2008 09:55 

Зарегистрирован: Вторник, 13 Март, 2007 06:15
Сообщения: 93
Цитата:
Визуальные окна можно упаковать в exe-файл, создав виртуальную файловую систему. Но вот лично я пришёл к тому, чтобы все ресурсы хранить снаружи. Так обновлять легче!

А можно ли кинуть какой-нибудь примерчик, Пусть даже на уровне Hello World, но со всеми командами сборки. Когда я пытаюсь собрать приложение, в StdLog вываливается огромный список зависимостей. Пытался всё это хозяйство вписать в команду, но в результате вываливается список ещё больших размеров. Знаю, что надо соблюдать последовательность при указании модулей, но не могу допереть, как. Info->Create Tool пока тоже не помогает. Надо ведь знать, что именно править руками. :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 08 Октябрь, 2008 11:05 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
rv82 писал(а):
... А можно ли кинуть какой-нибудь примерчик, Пусть даже на уровне Hello World, но со всеми командами сборки. ...

Да на фиг Вам это надо?
Переименуйте blackbox.exe в rv82.exe, и конец этому делу.
Подумаешь, пара сотен вспомогательных файлов. Как у всех :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 08 Октябрь, 2008 13:38 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Info21 писал(а):
Переименуйте blackbox.exe в rv82.exe, и конец этому делу.
:lol: И то правда. Меню можно перенастроить, ненужные подсистемы удалить.

Необходимость делать exe файл возникает, если Вы практические не пользуетесь каркасом, например, требуется сделать консольное приложение.

rv82 писал(а):
Когда я пытаюсь собрать приложение, в StdLog вываливается огромный список зависимостей.
StdLog выводит в текст (TextModels.Model), который и тянет за собой почти весь каркас.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 08 Октябрь, 2008 17:06 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
Вот прислали примерчик, правда не BlackBox, а BlueBottle (кто там говорил о не возможности применения?)
что бы "поигратся" самим, качнуть проект можно от сель http://www.ocp.inf.ethz.ch/forum/index.php/topic,177.msg733.html#msg733

PS: Теперь я знаю, зачем существует Youtube. Видео удалил


Последний раз редактировалось bohdant Среда, 08 Октябрь, 2008 19:44, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 08 Октябрь, 2008 17:29 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
bohdant писал(а):

- не, ну хоть бы признались... :mrgreen: надо ссылку поставить, как минимум! :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 08 Октябрь, 2008 17:30 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
так там еще не на что ссылку ставить, еще ничего нет :oops:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 08 Октябрь, 2008 17:34 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1488
Откуда: Украина, Киев
bohdant писал(а):
так там еще не на что ссылку ставить, еще ничего нет :oops:
Ну как-же нет? Мы там уже втроём более-менее активно в обсуждениях учавствуем :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 08 Октябрь, 2008 17:35 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
Ярослав Романченко писал(а):
bohdant писал(а):
так там еще не на что ссылку ставить, еще ничего нет :oops:
Ну как-же нет? Мы там уже втроём более-менее активно в обсуждениях учавствуем :D

На троих сообразили, короче... :mrgreen:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 08 Октябрь, 2008 19:59 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
А видео где? Куды смотреть, господа? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 08 Октябрь, 2008 20:19 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1488
Откуда: Украина, Киев
Иван Кузьмицкий писал(а):
А видео где? Куды смотреть, господа? :)
Сейчас куда-нить закинем :)


Последний раз редактировалось Ярослав Романченко Среда, 08 Октябрь, 2008 20:20, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 08 Октябрь, 2008 20:20 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
Иван Кузьмицкий писал(а):
А видео где? Куды смотреть, господа? :)

Сорри, сайт упал...

Видео перезалил, http://www.tab.net.ua/sites/files/site_name.bogdan/id.75330/

Но гораздо интереснее загрузить сам проект.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Вторник, 11 Ноябрь, 2008 11:17 

Зарегистрирован: Вторник, 13 Март, 2007 06:15
Сообщения: 93
Иван Кузьмицкий писал(а):
Аналог таймера в ББ делается с помощью модуля Services.

Создаёте свой тип-наследник от Services.Action и реализуете его метод Do. Экземпляр типа регистрируете через Services.DoLater, с указанием отсроченного момента запуска. Когда наступит указанный момент, среда один раз выполнит ваш метод Do.

А если надо выполнять метод Do периодически, то внутри метода ставите повторную регистрацию этого же экземпляра.

Не мог бы кто-нибудь объяснить, что за числовой параметр указывается в DoLater? Это значение в миллисекундах, или нет? Какое бы значение я не пихал, всё равно интервал времени визуально однаков (сейчас примера под рукой нет. Если понадобится, позже приложу).

Ещё вопрос: можно ли Services.Action использовать, если нужно реализовать опрос контроллера (точнее, COM-порта, к которому он подключен) 50 раз в секунду (короче, с частотой 50 Гц)? Если нельзя, есть ли какой-нибудь другой способ реализовать это?

И ещё, сколько стоит лицензия на коммерческое использование BB? Как цена такой лицензии соотностися с ценой Delphi. И можно ли у нас в России её [лицензию на ББ] купить (странный вопрос :) )?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Вторник, 11 Ноябрь, 2008 11:45 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Попробуйте так:

Services.DoLater(action, Services.Ticks() + 5000);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Вторник, 11 Ноябрь, 2008 14:23 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Сергей Губанов писал(а):
Попробуйте так:
Services.DoLater(action, Services.Ticks() + 5000);
А я бы сделал так:
Services.DoLater(action, Services.Ticks() + 5 * Services.resolution);


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 98 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB