ся системні ресурси. Але такі заходи виправдані, оскільки віконні (адаптовані) компоненти здатні приймати фокус введення і можуть служити контейнерами, тобто бути батьками інших елементів управління. А це необхідно для взаємодії з користувачем.
Компонент TExperimentManager виконує функції блоку управління експериментом, а також интерфейсного блоку, що взаємодіє з користувачем. Такий компонент може бути на формі тільки в єдиному екземплярі. Цей елемент виконує наступні функції:
читання файлу сценарію за допомогою взаємодії з об'єктом класу TTestFile (малюнок 1.2);
генерація комбінацій збоїв і відмов в залежності від налаштувань, отриманих з файлу сценарію;
введення несправностей в елементи схеми;
підрахунок тестового часу;
запуск в роботу по черзі всіх елементів схеми в кожному циклі роботи;
протоколювання результатів роботи моделі схеми за допомогою взаємодії з об'єктом допоміжного класу TLogFile (малюнок 1.2).
Блок управління експериментом містить такі компоненти управління, як TEditBox, TLabel і TButton (малюнок 1.1). Ці компоненти управління дозволяють змінювати інтервал дискретизації за часом, а також кількість циклів тестування.
Малюнок 1.1 - Інтерфейс компонента «Блок управління експериментом»
Тривалість такту задається в тисячних частках наносекунди. Такий запас дозволить при необхідності варіювати точність вимірювань в широких межах.
Прирощення внутрішнього часу під час тестування буде проводитися на величину інтервалу дискретизації. Таким чином, модель повторить роботу реального пристрою за час:
(1.1)
де N - число тактів;
t дискрет.- Тривалість такту (величина інтервалу дискретизації).
Якщо здійснюється автоматична генерація вхідних комбінацій і комбінацій несправностей, то число таких повторів може змінюватися.
Також не є спадкоємцем основного базового класу ієрархії елементів компонент TConnection. Цей елемент моделює роботу провідника, соединителя в електричній схемі. Він не повинен мати властивості мікроелектронного елемента. Робота компонента полягає в миттєвої передачі значення напруги, що надійшов на його вхід. Розглянемо опис такого компонента:
Допоміжні сервісні класи (малюнок 1.2) служать для взаємодії ПЗ з файлової системою (компоненти TLogFile і TSection), синтаксичного розбору файлів конфігурації (компонент TatfParser), а також для спрощення роботи зі складними структурами часу (TTestTimer). Ці класи не входять в загальну ієрархію елементів і не мають батьків.
Для роботи зі структурами тестового часу служить клас TTestTimer. Необхідність у написанні такого класу визначається тим, що структура часу достатньо складна і операції над такими структурами виробляти вкрай незручно.
Клас управління роботою програмного лічильника часу з моменту початку тестування TTestTimer дозволяє виробляти зі структурами часу наступні операції:
підсумовування двох змінних типу TTestTimer або TTestTimer і long;
віднімання двох змінних типу TTestTimer або TTestTimer і long;
збільшення часу на 1 пікосекунду;
зменшення часу на 1 пікосекунду;
порівняння моментів часу;
підсумовування з цілим числом, яке являє собою час в пікосекунди.
Перераховані операц...