LINUX.ORG.RU

анализ работы системы сбора данных

 , ,


0

1

Как правило системы сбора данных в экспериментах физики высоких энергий изделие штучное, по немалой степени разрабатываемое под каждый эксперимент заново (естественно проверенные переиспользуемые компоненты тоже есть ;) ). Нередко электроника системы сбора не проходит тщательную отладку, эксплуатируется в нестандартных условиях, что приводит к необходимости непрерывного контроля работы электроники.

На скриншоте показано приложение для on/off-line анализа работы системы сбора данных. Отображаются (слева направо, сверху вниз): окно таблиц с суммой ошибок по последнему рану и сбросу ускорителя, окно со списком ошибок в узлах, отсортированный по количеству ошибок, окно с таблицей усреднённой длины данных по каждой корзине электроники ранжированных по месту в каждом событии, окно со всеми ошибками в конкретных узлах, конфигурационное окно с длиной данных и количеству ошибок по каждому узлу.

Длина данных указана в 4-байтных словах. Таблицы генерятся в виде HTML, отображаются с помощью QWebViewer и сбрасываются в файлы, для удалённого просмотра из web-browsers через web-server. Приложение написано на python с использованием PyQt, декодинг и накопление статистики производятся в библиотеках написанных на C, что позволяет «молотить» данные со скоростью C, а отображать с удобством python.

>>> Просмотр (1920x1200, 456 Kb)

★★

Проверено: Shaman007 ()

Почему-то меня визжать заставляют скриншоты рабочих мест с куском работы. Хотя ничего больше по скриншоту сказать не могу.

winlook38 ★★
()
Ответ на: комментарий от winlook38

Почему-то меня визжать заставляют скриншоты рабочих мест с куском работы.

да не вопрос, у меня на стенке висит плакатик с мишенью и надписью

«плакат для зняття стресу. бити головою тут. рекомендовано асоцiацiэю психiатрiв украини»

главное чтобы рядом никого не было ;)

filin ★★
() автор топика
Ответ на: комментарий от winlook38

Почему-то меня визжать заставляют скриншоты рабочих мест с куском работы.

Это, случаем, не ты свиню касперского озвучивал?

Siado ★★★★★
()
Ответ на: комментарий от Siado

свиню касперского

Никакого уважения к человеку, который делает такую сложную и нужную работу для людей.

winlook38 ★★
()
Ответ на: комментарий от winlook38

Тред анонимных извращенцев.

5.2

лор не кабинет психиатра, стресс нужно снимать не дожидаясь разрушительных последствий для психики

по существу что есть? если нет, не засоряйте тред

filin ★★
() автор топика

Кажется, вам не хватает программы по анализу результатов анализа системы сбора данных.

stormy
()
Ответ на: комментарий от firsttimeuser

боже мой, а где там обоина то?)))

bhfq ★★★★★
()
Ответ на: комментарий от stormy

не хватает программы по анализу результатов анализа

критическое мышление формализовывать пока не научились, тут компьютеры бессильны ;)

я сейчас переделываю самую большую таблицу, она мало информативна. Во время сеанса смене видны только два окна — обзорное и отсортированный список, чтобы начинать бегать по стенкам, когда всё покраснело, остальное нужно только экспертам при разборе полётов

filin ★★
() автор топика

HTML таблицы отображены только в двух окнах — обзорном и ранжированных корзин, отсортированный список пока реализован через QTableWidget. Все окна и органы управления — views+controllers к одному model (MVC design pattern), являющемуся интерфейсом к Сишному коду для декодирования и накопления статистики. Применение QWebViewer вызвано желанием попробовать совместить код для интерактивного приложения и web-интерфейса, чтобы не разрабатывать последний отдельно, в пределе реализовав весь интерфейс через QWebViewer. Для обратной связи из веб-браузера можно встроить в приложение примитивный веб-сервер.

По уму стоило бы сделать прямую рисовалку виджетов с выводом не в графическую подсистему, а в html, чтобы не заморачиваться с QWebViewer. Совмещение видео- и web-интерфейсов сделало бы ненужным разработку web-интерфейса с нуля и позволило бы автоматом генерить web-интерфейс к уже существующим GUI-приложениям. О да, праведный гнев ставших ненужными веб-разработчиков выкинутых на улицу будет страшен. ;)

filin ★★
() автор топика
Ответ на: комментарий от Nxx

почему виджеты очень на винду похожие?

потому что по дефолту тема в Qt такая, меня интересует в первую очередь функциональность и юзабилити, а тема в последнюю

filin ★★
() автор топика
Ответ на: комментарий от filin

Я думал, «windows» выглядит по-другому.

Nxx ★★★★★
()

а чем вызвано использование Питона, если основой отображения является билиотека Qt (и её дёргание через PyQt).

ЗЫ. я предпологаю, что у вас уже не этап быстрого прототипирования, и не использование питона в качестве скриптового яыка к жвижку на Qt/C++
.

azazello ★★★★
()
Ответ на: комментарий от ZuBB

После таких скриншотов понимаешь, почему русские физики такие суровые

если у вас нет проблем, значит вы не работаете :)

filin ★★
() автор топика
Ответ на: комментарий от azazello

переделка/расширение кода на питоне происходит намного быстрее, чем на компилируемых языках. Специфика разработки такова, что во время сеанса задача, сделанная не вовремя, считается не сделанной вообще. Сделать всё заранее невозможно, часто требования появляются по ходу сеанса. Ключевой момент: важно не приложение само по себе, а то, что оно позволило сделать во время сеанса и только это. На этот счёт есть расхожая шутка у физиков: существуют object-oriented языки, например С++, а есть result-oriented, например Fortran ;)

Для справки: время SPS по словам одного вик-координатора одного эксперимента в ЦЕРНе стоит 5000 свис франков в час (франк около $). На одном совещании, где я присутствовал, людям, по вине которых эксперимент стоял несколько часов, долг в деньгах был быстро подсчитан и предъявлен. Время LHC ещё дороже поскольку SPS это «разгонная ступень» в ракете под названием LHC. В Протвино на У-70 час пучкового времени стоит поменьше, но сравним.

filin ★★
() автор топика
Ответ на: комментарий от filin

спасибо за разъяснения:) т.е. у вас ближе к быстрому прототипированию задачи получаются :)
я лет 10 назад помогал работать с ЦЕРНовскими данными - но там был съём их был отдельно, пересылка RAW даты, и обработка степенно на софте/кластере, написанном на фортране/С - похоже и у вас(физиков) что-то за это время изменилось :)

меня чего Питон+C++/Qt смутил - на худщий поиск бага (null на 0, если не ошибаюсь, заменили) было потрачено порядка 6 человеко-недель(и 4 недели в линию) - из-за невероятной сложности поиска ошибок на стыке менеджеров памяти этих систем.
ЗЫ: шутка насчёт OO и RO понравилась :)))

azazello ★★★★
()
Ответ на: комментарий от azazello

был съём их был отдельно, пересылка RAW даты, и обработка степенно на софте/кластере, написанном на фортране/С - похоже и у вас(физиков) что-то за это время изменилось :)

физанализ данных таким же и остался, хотя онлайн реконструкция событий у нас тоже есть, но только в качестве оценки данных, софтверный триггер пока не сделан (с полноценной реконструкцией онлайн и фильтрацией нужных событий). А вот мониторинг работы установки есть на всех зрелых установках и всегда онлайн, иначе можно такое написать, что никакая больница не примет. Мне приходится превращать банальный мониторинг в среду анализа не от хорошей жизни, без убедительных «доказательств вины» проблемы не устраняются.

меня чего Питон+C++/Qt смутил - на худщий поиск бага (null на 0, если не ошибаюсь, заменили) было потрачено порядка 6 человеко-недель

может быть None а не null? В С/C++ null определяют через 0:

#if defined(__cplusplus)
#define NULL 0
#else
#define NULL ((void *)0)
#endif

а вот None штука непростая:

Note that the PyTypeObject for None is not directly exposed in the Python/C API. Since None is a singleton, testing for object identity (using == in C) is sufficient. There is no PyNone_Check() function for the same reason.

Python/C API Reference Manual(http://www.python.org/doc//current/c-api/none.html)

из-за невероятной сложности поиска ошибок на стыке менеджеров памяти этих систем.

1. я тестирую код после каждого изменения,
2. в тяжёлом случае тестирую код в варианте без GUI, на чистом С, такое случается из-за багов в С, PyQt меня пока не подводила (были прецеденты из-за моего непонимания)
3. есть возможность отлаживать питон в gdb http://wiki.python.org/moin/DebuggingWithGdb
4. если я не уверен в работе «менеджеров памяти этих систем», я устраиваю спец тесты и намеренно провоцирую конфликтные ситуации, чтобы понять, как их обходить, поскольку исчерпывающего описания по этой теме нет
5. проблемы возникают при смешении указателей с целочисленными типами на 64 битах, некоторые API кастрируют указатели до 32 бит, недавно напоролся на это в JavaScript интерпретаторе в QWebViewer при вызове питоновского колбека из JavaScript

filin ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.