Hosted by uCoz

ПО для контрактной работы:

Test measurements on different materials for neutron target.

(Contract: BINP - LNL 2002)

Разработчик: Токарев Олег Юрьевич (otokarev@ngs.ru)

Постановка задачи

Было необходимо за короткий промежуток времени (1 - 1,5 месяца) создать законченный программный продукт (далее Приложение), позволяющий пользователю с наибольшими для него удобствами управлять процессом сбора, обработки и сохранения данных (см. далее Пожелания заказчика (задача)), учитывая при этом возможности аппаратуры (см. далее Используемое оборудование).

[Top]

Пожелания заказчика (задача).

  1. Приложение посредством записи определенного значения в выходной регистр АЦП управляет запуском устройства заменяющего светофильтры.
  2. Путем постоянного мониторинга состояния входного регистра АЦП Приложение узнает о завершении/продолжении процесса замены фильтра. Так же, из входного регистра, Приложение узнает о текущем номере фильтра, для идентификации данных при их обработке.
  3. В момент, когда смена фильтра завершена, Приложение проводит чтение значений каналов АЦП соответствующих сигналам на матрице фотодиодов.
  4. Приложение повторяет предыдущие шаги для каждого из семи фильтров.
  5. После сбора данных со всех фильтров, данные математически обрабатываются (элементарные арифметические действия, линейная интерполяция по таблице соответствия).
  6. Приложение записывает данные в удобной для пользователя форме в файл (в файле указываются: время эксперимента, текущие параметры эксперимента, измерения для каждого фильтра).
  7. Приложение позволяет отображать полученные и обработанные данные.
  8. Приложение позволяет работать в двух режимах: линейка фотодиодов или двумерная матрица фотодиодов.

[Top]

Используемое оборудование.

  • PC: Cyrix 6x86MX, тактовая частота: 166 МГц;
  • Интерфейсная плата CAN-bus-PCI с Linux-драйвером (производство: фирма "Марафон");
  • Физическая среда передачи данных: кабель КММ-2 0.35мм;
  • сорокаканальный АЦП CANADC40M с входным и выходным регистрами (производство: ИЯФ СОРАН, разработчик: Козак В.Р.);
[Top]

Реализация Приложения

Приложение управления экспериментом под единым графическим интерфейсом (см. Рис 1) строго разбито на три логические части:

  • Подсистема сбора данных обеспечивает сбор данных и сигнализацию о ходе этого процесса. Процесс контролируется нажатием одной кнопки "Старт/Стоп". Состояние процесса контролируется отображением в окне Приложения символического имени текущего состояния;
  • Подсистема управления данными обеспечивает сохранение данных эксперимента в файловой системе, предоставляет пользователю удобный интерфейс, где можно оперировать понятиями эксперимент/измерение.
  • Подсистема обработки и отображения данных обеспечивает отображение данных в определенном "измерении" в удобной для пользователя виде. Возможны два режима отображения: измеренные значения, обработанные значения.

Подсистема сбора данных выполняется в виде отдельной нити исполнения; все остальные подсистемы выполняются в основной нити. Выделение первой подсистемы в отдельную нить обусловлено необходимостью создать "незамерзающий" во время сбора данных графический интерфейс.

[Top]

Подсистема сбора данных.

Подсистема сбора данных состоит из следующих логических уровней:

  1. Уровень устройства обеспечивает работу с драйвером устройства CAN-bus-PCI и интерфейс в понятиях номера канала и идентификатора АЦП (протокол работы CANADC40M).
  2. Уровень профилей поверх уровня устройств обеспечивает реализацию функции инициализации устройства (АЦП), функции смены фильтра, функции сбора данных с определенным профилем. Профиль определяется глобальной переменной и описывает каким образом значения с определенных каналов ЦАП будут мапироваться в структуры данных эксперимента. На данный момент Приложение может работать с двумя профилями: для линейки (16 фотодиодов в ряд), для матрицы (двумерная матрица фотодиодов 5х5).
  3. Уровень сигнализации в отличие от предыдущих уровней реализован в основной нити Приложения. Призван отображать текущее состояние процесса сбора данных (см. Рис 2).

[Top]

Подсистема управления данными.

Данная подсистема выполняет две основные функции:

  1. обеспечивает взаимодействие всего Приложения с файловой системой, реализуя функции записи полученных измерений на диск и чтения измерений сохраненных ранее с диска;
  2. обеспечивает графический интерфейс между пользователем и файловой системой (см. Рис 3 и Рис 4). Реальное строение файловой системы для пользователя скрывается под двухуровневой абстракцией "эксперимент"-"измерение". Т.е., "измерения" (объекты получаемые в ходе однократного сбора данных со всех фильтров), по желанию пользователя, могут группироваться в определенные "эксперименты". Графическая оболочка позволяет пользователю с помощью двух кликов мыши выбрать нужное "измерение" в нужном "эксперименте" для дальнейшей его обработки, отображения или уничтожения.

[Top]

Подсистема обработки и отображения данных.

Позволяет пользователю графически отобразить в окне Приложения выбранное при помощи предыдущей подсистемы измерение. Отображение возможно в двух режимах:

  1. амплитуда сигнала без фильтра (см. Рис 5);
  2. измеренное значение температуры (вычисляется по сигналам от нескольких фильтров) (см. Рис 6);

Различные режимы отображения реализованы в виде отдельных профилей - структур данных содержащих в себе указатели на методы и данные. Структура профиля содержит в себе (в том числе):

  • указатель на конструктор - функцию отвечающую за мапирование и обновление виджетов при смене режима;
  • указатель на деструктор - функцию отвечающую за действия обратные действию конструктора;
  • указатель на функцию обновления - функцию отвечающую за перерисовку отображающего окна при смене выбранного "измерения".
[Top]

Основные характеристики Приложения

Надежность работы

О надежности работы говорит тот факт, что в течение месяца, сколько работали клиенты, о каких-либо неудобствах заявлено не было.

[Top]

Дружественный пользователю интерфейс

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

[Top]

Приложения (дизайн графической оболочки)

Общий вид

Карта элементов управления приложением:


Рис.1 Элементы управления Приложением
Окно контроля: 1 - Секция контроля процесса сбора данных; 2 - поля для ввода условий текущего измерения; 3 - кнопка "Старт/Стоп"; 4 - кнопка смены режима матрица/линейка фотодиодов; 5 - сигнализация процесса сбора информации; 6 - Секция навигации по данным; 7 - управление "экспериментами" (создать новый/уничтожить); 8 - меню выбора "эксперимента"; 9 - список выбора "измерений"; 10 - управление "измерениями" (создать новый/уничтожить);
Окно отображения: 10 - заголовок окна, содержит в себе: дату проведения "измерения", его имя и имя "эксперимента"; 12 - переключатель режимов отображения (интенсивность сигнала/температура); 13 - окно графического отображения "измерений"; 14 - условия, которые задавались в полях ввода условий при проведении данного "измерения"(см. выше элемент 2); 15 - запись отображаемого "измерения" на диск в специальном виде.

[Top]

Сигнализация процесса сбора информации

Рис. 2 Сигнализация процесса сбора информации. Текущий этап помечается мерцанием надписи названия этапа (жирный белый /жирный черный). Пройденные этапы отмечаются нормальным черным фонтом.


[Top]

Навигация по "измерениям"

Рис. 3 Меню выбора текущего "эксперимента" - группы, объединенных по единому признаку, "измерений".


Рис. 4 Меню выбора "измерения"


[Top]

Режимы отображения

Рис. 5 Режим отображения амплитуды сигнала


Рис. 6 Режим отображения температуры. Разными цветами помечены графики расчитанные по различным наборам фильтров.


[Top]


Разработчик: Токарев Олег Юрьевич (otokarev@ngs.ru)