OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 11 Ноябрь, 2019 22:22

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 85 ]  На страницу Пред.  1, 2, 3, 4, 5
Автор Сообщение
 Заголовок сообщения: Re: День Оберона 2018
СообщениеДобавлено: Суббота, 23 Февраль, 2019 20:40 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9154
Откуда: Россия, Орёл
Смотрите, здесь они синглтоны по той причине, что они вообще в такой же роли, как и объекты "метаинформации времени компиляции", условно говоря.
В том же статусе, как бы!
Только порождаются не компилятором, а динамически один раз при загрузке модуля.

Вот пример маленькой онтологии токенов для состояния двухпозиционного объекта в АСУТП (задвижки/клапана).
У каждого токена есть и TYPE, и VAR. Переменная-синглтон позволяет программно с ним работать как "с сущностью первого порядка" (в КП ведь типы не являются таковыми), а сам тип позволяет удобно статически указывать, что от чего расширено - и проверять по IS, ну и т.п.

В BEGIN модуля просто указывается KrlTokens.InitTokens(projId) - где projId - 32 бит, хэш от имени проекта (полный id токена порождается добавлением ещё 32 бит - хэша от имени переменной токена).
И все токены модуля создаются. У каждого токена можно узнать, кто он, метаинформацию о нём и т.п. Список его расширений в том числе. Или у токена, соответствующего SQL-таблице, можно узнать список токенов-полей.

Ещё на скрине видно "_0" у имени. Это чтобы указать значение по умолчанию для свойств данного типа TwinPosT.


Вложения:
Снимок экрана от 2019-02-23 20-35-52.png
Снимок экрана от 2019-02-23 20-35-52.png [ 21.56 КБ | Просмотров: 373 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2018
СообщениеДобавлено: Суббота, 23 Февраль, 2019 20:48 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9154
Откуда: Россия, Орёл
Для онтологий токенов поддерживается не только древовидное наследование, но и грани (facets) (типа как mixins).

Пример токенов для тегов АСУТП. Тип токенов для булевых тегов, дальше определяется булев тег с фиксацией времени изменения, булев тег с семантикой команды (нисходящий поток информации в АСУТП) и булев тег с семантикой сигнала (восходящий поток информации в АСУТП).

Вложение:
Снимок экрана от 2019-02-23 20-42-57.png
Снимок экрана от 2019-02-23 20-42-57.png [ 25.13 КБ | Просмотров: 373 ]


А вот уже в библиотеке более конкретной расширением от типов тегов определены токены для разных сигналов ввода-вывода (контакторы, автоматы, разные режимы коммутации оборудования).

Вложение:
Снимок экрана от 2019-02-23 20-46-38.png
Снимок экрана от 2019-02-23 20-46-38.png [ 70.38 КБ | Просмотров: 373 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2018
СообщениеДобавлено: Суббота, 23 Февраль, 2019 20:53 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9154
Откуда: Россия, Орёл
В принципе, сейчас мы определяем токены прямо в коде, в виде, известном компилятору.

Ничто не мешает определять их каким-то другим образом (в базе конфигураций, например). И либо генерить модуль по такой базе автоматом, либо научить компилятор с ней взаимодействовать, как с внешней таблицей символов..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2018
СообщениеДобавлено: Воскресенье, 24 Февраль, 2019 00:39 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4335
Откуда: Россия, Орёл
Илья Евгеньевич, напишите уже полноценную статью про токены на сайт. Сколько можно по разным темам рассовывать пояснения?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона 2018
СообщениеДобавлено: Воскресенье, 24 Февраль, 2019 10:08 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 388
Откуда: Москва
Борис Рюмшин писал(а):
Илья Евгеньевич, напишите уже полноценную статью про токены на сайт. Сколько можно по разным темам рассовывать пояснения?

Присоединяюсь, если решили излагать, то излагайте сначала, а то непонятно, где задвижка и почему токен.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 85 ]  На страницу Пред.  1, 2, 3, 4, 5

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB