• Значение аргумента ErrorNumber при вызове, следующем непосредственно за вызовом с нулевым номером ошибки, должно интерпретироваться как адрес старой процедуры обработки ошибок.
Ниже приведено описание запросов, связанных с обработкой ошибок и исполняемых макрокомпонентом нейрокомпьютер.
Описание запроса:
Pascal:
Function OnError(NewError: ErrorFunc): Logic;
C:
Logic OnError(ErrorFunc NewError)
Описание аргументов:
NewError — адрес новой процедуры обработки ошибок.
Назначение — устанавливает новый обработчик ошибок.
Описание исполнения.
1. Если Error <> 0, то выполнение запроса прекращается.
2. Вызов NewError с аргументом 0 — настройка на установку цепочки обработки ошибок.
3. Вызов NewError с аргументом ErrorManager (вместо длинного целого передается адрес старой процедуры обработки ошибок).
4. ErrorManager:= NewError
Описание запроса:
Pascal:
Function GetError: Integer;
C:
Integer GetError
Назначение — возвращает номер последней необработанной ошибки и сбрасывает ее.
Описание исполнения.
1. GetError:= Error
2. Error:= 0
Списки ошибок, возникающих в различных компонентах, даны в разделах «Ошибки компоненты …», в соответствующих разделах. Все номера ошибок каждого компонента являются трехзначными числами и начинаются с номера компонента, указанного в колонке «Ошибка» табл. 16.
Таблица 16. Префиксы компонентов
Префикс | Компонент | |
---|---|---|
Запроса | Ошибки | |
ex | 0 | Исполнитель |
tb | 1 | Задачник |
pr | 2 | Предобработчик |
nn | 3 | Сеть |
es | 4 | Оценка |
ai | 5 | Интерпретатор ответа |
in | 6 | Учитель |
cn | 7 | Контрастер |
Ряд запросов обрабатывается всеми компонентами, кроме компонента исполнитель, носящего вспомогательный характер. Один из таких запросов — FreeMemory — был описан в разделе «Управление памятью», а два запроса, связанных с обработкой ошибок — в разделе «Обработка ошибок». В данном разделе приводятся описания остальных запросов, имеющих одинаковый смысл для всех компонентов. В отличие от ранее описанных запросов эти запросы опираются на структуру исполняющего компонента, поэтому к имени запроса добавляется префикс, задающий компонента. Список префиксов приведен в табл. 16. Единственным исключением из числа компонентов, исполняющих перечисленные в данном разделе запросы, является компонент исполнитель.
Все описываемые в данном разделе запросы можно разбить на четыре группы:
1. Установление текущего компонента.
2. Запросы работы со структурой компонента.
3. Запросы на получение или изменение параметров структурной единицы.
4. Запуск редактора компонента.
Все имена запросов начинаются с символов «xx», которые необходимо заменить на префикс из табл. 16 чтобы получить имя запроса для соответствующего компонента. При указании ошибок используется символ «n», который нужно заменить на соответствующий префикс ошибки из табл. 16.
Далее данном разделе компонентом также называются экземпляры компонента, а не только часть программы. Например, одна из загруженных нейронных сетей, а не только программный компонент сеть.
К этой группе запросов относится один запрос — xxSetCurrent — не исполняемый компонентом задачник.
Сделать текущей (xxSetCurrent)
Описание запроса:
Pascal:
Function xxSetCurrent(CompName: PString): Logic;
C:
Logic xxSetCurrent(PString CompName)
Описание аргумента:
CompName — указатель на строку символов, содержащую имя компонента, которого надо сделать текущим.
Назначение — ставит указанного в параметре CompName компонента из списка загруженных компонентов на первое место в списке.
Описание исполнения.
1. Если список компонентов пуст или имя компонента, переданное в аргументе CompName, в этом списке не найдено, то возникает ошибка n01 — неверное имя компонента, управление передается обработчику ошибок, а обработка запроса прекращается.
2. Указанный в аргументе CompName компонент переносится в начало списка.
К этой группе относятся запросы, позволяющие выяснить структуру компонента, прочитать ее или сохранить на диске.
Добавление нового экземпляра (xxAdd)
Описание запроса:
Pascal:
Function xxAdd(CompName: PString): Logic;
C:
Logic xxAdd(PString CompName)
Описание аргумента:
CompName — указатель на строку символов, содержащую имя файла компонента или адрес описания компонента.
Назначение — добавляет новый экземпляр компонента в список компонентов.
Описание исполнения.