После загрузки сети первым вводился файл Decoder4To16_Training. mbl. Содержимое этого файла можно вывести из MemBrain в файл с расширением csv для дальнейшего просмотра на экране или для вывода на принтер. Номер выводимого из MemBrain файла нужно набрать клавишами Currently Edited (Training) Lesson. После этого активировать Raw CSV Files -> Export Current Lesson (Raw CSV…). В окне Export Lesson As (Raw CSV) … набрать имя создаваемого сsv файла и щёлкнуть по клавише «сохранить».

Необходимая для работы скрипта информация содержится в файлах:

Decoder4To16_Training. mbl

Decoder4To16_TrainResult. csv

Decoder4To16_Validate. mbl

Decoder4To16_ValidateResult. csv

Файлы с расширением mbl содержат двоичный код вводимых данных. Их ввод осуществляется через Lesson Editor:


Рис.11 Загрузка mbl-файла


Lesson Editor -> Lesson Files -> Load Current Lesson.

Скриптовый файл может не содержать пояснений – самое важное – это команды. Редкие пояснения даются в виде комментариев.

Для примера: скрипт таймера SecondsTimer.as

/* – — – — – — – — – — – — – — – — – — – — – — – — —

Этот пример демонстрирует, как функция сценария Now () может использоваться для поддержки произвольного числа таймеров с разрешением 1 с.

Чтобы использовать таймеры в вашем собственном скрипте, просто включите этот файл в ваш скрипт, используя директиву #include.

Затем создайте экземпляр класса «SecondsTimer’ для каждого необходимого вам таймера. Обратите внимание, что функции таймера содержат отладочный код, который печатает сообщения в окне трассировки MemBrain.

Вы можете удалить соответствующий код, если не хотите, чтобы какие-либо сообщения печатались функциями таймера.

– — – — – — – — – — – — – — – — – — – — – — – — – —

*/


/* Глобальная переменная для подсчета экземпляров класса. Используется только для генерации отладочных сообщений.

AngelScript пока не поддерживает статические члены класса. Вот почему это должна быть глобальная переменная.

*/

uint gSecondsTimerInstanceCount = 0;


class SecondsTimer

{

// Constructor without arguments

SecondsTimer ()

{

mId = gSecondsTimerInstanceCount++;

mReferenceTime = Now ();

}


// Constructor with initial elapse time [s] (начальное время истечения)

SecondsTimer (uint seconds)

{

mId = gSecondsTimerInstanceCount++;

// Получить текущее время, добавить прошедшие секунды и сохранить полученное время.

int now = Now ();


mReferenceTime = now + seconds;


// Только для целей отладки:

/*

string timeStr;

TimeToString (now, timeStr);

Trace (timeStr);

TimeToString (mReferenceTime, timeStr);

Trace (» Timer " + mId + " started. Will elapse at:" + timeStr + "\n»);

строка timeStr;

TimeToString (now (сейчас), timeStr);

Trace (Трассировка) (timeStr);

TimeToString (mReferenceTime, timeStr);

Trace («Таймер» + mId + «запущен. Пройдет по адресу (закончится):" + timeStr + "\ n»);

*/

}


~SecondsTimer ()

{

gSecondsTimerInstanceCount – ;

}


// Проверяем, истек ли таймер

bool IsElapsed ()

{

int now = Now ();

bool elapsed = now> = mReferenceTime;

return elapsed;

}


// Запускаем таймер по истечении заданного времени

void Start (uint seconds)

{

// Получить текущее время, добавить прошедшие секунды и сохранить полученное время.

int now = Now ();

mReferenceTime = now + seconds;

}


// Запускаем таймер для подсчета секунд

void Start ()

{

// Получить текущее время, установить время истечения на то же значение.

int now = Now ();

mReferenceTime = now;

}


// Return the elapsed seconds since the timer was started

int SecondsSinceStart ()

{

// Получить текущее время

return Now () – mReferenceTime;

}


// Контрольное время для этого таймера

int mReferenceTime;

// ID таймера для этого таймера (необходим только для отладочных сообщений)