После загрузки сети первым вводился файл 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 таймера для этого таймера (необходим только для отладочных сообщений)