Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 4293

Тема: Фичи и баги OWEN Logic

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    неа, не работает.
    -1 вместо 0,1 не пишет, но сам макрос делает какую-то ерунду. (вчера он открывался-закрывался по несколько раз, сегодня открывается на 1 секунду раз в 3 минуты вместо того, чтобы за 3 подхода спозиционировать в заданное положение). Заходишь в сам макрос, выставляешь на входы те-же параметры - работает как положено.
    Так что это вероятно более глобальный баг, чем ошибка подачи выхода на вход.
    Принятие решения по поводу "прозрачности" макросов было крайней ошибкой. После более глубокого изучения этого вопроса прозрачность будет убрана. Для анализатора схемы никакой прозрачности быть не может. Тогда Ваша схема работает исправно. Постараюсь в ближайшее время выложить.
    программер

  2. #2
    Пользователь Аватар для anthrwpos
    Регистрация
    13.02.2017
    Адрес
    Ленобл
    Сообщений
    188

    По умолчанию

    Цитата Сообщение от wal79 Посмотреть сообщение
    Принятие решения по поводу "прозрачности" макросов было крайней ошибкой.
    А что такое эта самая прозрачность макроса?
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

  3. #3

    По умолчанию

    Цитата Сообщение от wal79 Посмотреть сообщение
    Принятие решения по поводу "прозрачности" макросов было крайней ошибкой. После более глубокого изучения этого вопроса прозрачность будет убрана. Для анализатора схемы никакой прозрачности быть не может. Тогда Ваша схема работает исправно. Постараюсь в ближайшее время выложить.
    Угу.
    Я Вас сразу предупреждал.
    Тупиковый путь.
    Либо при анализе неявно "разворачивать" макрос, и анализировать схему с "подставленными" макросами, т.е. без макросов как таковых, либо никакой "прозрачности".
    Вот бы ещё как-то победить необходимость переподставлять макрос в схему после редактирования макроса...

  4. #4

    По умолчанию

    Цитата Сообщение от pop70 Посмотреть сообщение
    Угу.
    Я Вас сразу предупреждал.
    Тупиковый путь.
    Либо при анализе неявно "разворачивать" макрос, и анализировать схему с "подставленными" макросами, т.е. без макросов как таковых, либо никакой "прозрачности".
    Вот бы ещё как-то победить необходимость переподставлять макрос в схему после редактирования макроса...
    Ну тут можно долго разглагольствовать о том кто о чем говорил и предупреждал. Владимиром тогда было высказано как замечание, я глубоко тогда не копнул. Я рассматриваю любое ваше пожелание или замечание. Либо соглашаюсь с ним либо отвергаю. Тогда мне показалось заманчивой затеей, хотя повторюсь что никогда не говорил что макрос абсолютно прозрачен. Видимо меня не так поняли. Анализатор (транслятор) конечно же должен учитывать макрос . Макрос для него как inline функция. И представленное Владимиром предложение о "прозрачности" макроса в итоге концептуально неверно. Сейчас, посовещавшись со специалистами в предметной области, я удостоверился что мои сомнения оправданы. Схемы в том варианте и должны работать по разному.
    программер

  5. #5

    По умолчанию

    Цитата Сообщение от wal79 Посмотреть сообщение
    Ну тут можно долго разглагольствовать о том кто о чем говорил и предупреждал.
    Да не. Я ж не в укор.
    Меня как раз по тому предложению и напрягло то, что макрос в общем случае НЕ ФУНКЦИЯ, а, как минимум, ПРОЦЕДУРА (а ещё точнее - объект, имеющий "собственное состояние"). А анализ схемы ведётся как для функции. Поэтому устранить неоднозначность поведения с обратными связями "вокруг макроса", пытаясь учитывать обратные связи внутри него ("прозрачность" без развёртывания), как минимум, очень сложно, как максимум невозможно.

    Ну да ладно....
    А вот можно ли как-то проработать вопрос с тем, чтобы редактирование макроса не требовало его перевставки в основную схему?
    Просто, решение с перевставкой противоречит принципу структурированности программ.
    Ну, т.е., если есть программа, использующая компоненты, то редактирование компонента не должно требовать его переопределения в программе.
    Иначе получается ерунда.
    Пишешь программу, используя десяток экземпляров одного компонента, и при небольшом изменении самого компонента - заново перерисовывать всю программу?
    Не логично и не удобно. Даже если количество входов/выходов изменится - это не повод для требования перевставки.

  6. #6

    По умолчанию

    Цитата Сообщение от pop70 Посмотреть сообщение
    Да не. Я ж не в укор.
    Меня как раз по тому предложению и напрягло то, что макрос в общем случае НЕ ФУНКЦИЯ, а, как минимум, ПРОЦЕДУРА (а ещё точнее - объект, имеющий "собственное состояние"). А анализ схемы ведётся как для функции. Поэтому устранить неоднозначность поведения с обратными связями "вокруг макроса", пытаясь учитывать обратные связи внутри него ("прозрачность" без развёртывания), как минимум, очень сложно, как максимум невозможно.

    Ну да ладно....
    А вот можно ли как-то проработать вопрос с тем, чтобы редактирование макроса не требовало его перевставки в основную схему?
    Просто, решение с перевставкой противоречит принципу структурированности программ.
    Ну, т.е., если есть программа, использующая компоненты, то редактирование компонента не должно требовать его переопределения в программе.
    Иначе получается ерунда.
    Пишешь программу, используя десяток экземпляров одного компонента, и при небольшом изменении самого компонента - заново перерисовывать всю программу?
    Не логично и не удобно. Даже если количество входов/выходов изменится - это не повод для требования перевставки.
    Вы не правы. Изменив количество входов Вы меняете сигнатуру функции. Здесь должны быть вмешательство со стороны пользователя. А если Вы меняете только тело функции, то переустановка макроса на схеме и не требуется. Единственно, есть баг, к сожалению существующий уже на протяжении не одного релиза, если редактируете макрос со вложенностью более 1, то в том макросе, где используется редактирующийся макрос обновление сразу не наступит. Нужно будет заново переоткрыть макрос. Об этом я знаю, и надеюсь будет время в ближайшие сроки исправить.

    Конечно, можно сделать то, что Вы хотите, но это уже будет в качестве дополнительного функционала.
    Последний раз редактировалось wal79; 28.08.2017 в 09:31.
    программер

  7. #7

    По умолчанию

    Цитата Сообщение от wal79 Посмотреть сообщение
    Вы не правы. Изменив количество входов Вы меняете сигнатуру функции. Здесь должны быть вмешательство со стороны пользователя.
    Не обязательно. В ОЛ неиспользуемые входы инициализируются 0. Ошибки не будет, если новый вход будет никуда не подключен.
    Если входов уменьшится, то просто связь к удалённому входу "повиснет в воздухе". Т.е., просто удалится.
    Т.е., на языке .net все макросы имеют на входах значения "по умолчанию". Добавляется входная переменная, инициализированная по умолчанию 0 - и никаких ошибок, и от пользователя ничего не требуется.
    Перерисовать в схему новый фб вместо старого - тоже никаких проблем быть не должно.
    Ну так мне кажется. Хотя, Вам "изнутри" виднее, конечно.

  8. #8

    По умолчанию

    Цитата Сообщение от pop70 Посмотреть сообщение
    Не обязательно. В ОЛ неиспользуемые входы инициализируются 0. Ошибки не будет, если новый вход будет никуда не подключен.
    Если входов уменьшится, то просто связь к удалённому входу "повиснет в воздухе". Т.е., просто удалится.
    Т.е., на языке .net все макросы имеют на входах значения "по умолчанию". Добавляется входная переменная, инициализированная по умолчанию 0 - и никаких ошибок, и от пользователя ничего не требуется.
    Перерисовать в схему новый фб вместо старого - тоже никаких проблем быть не должно.
    Ну так мне кажется. Хотя, Вам "изнутри" виднее, конечно.
    С выделенным не соглашусь. Я вмешаюсь в программу пользователя, причем он может и не помнить что там была связь и откуда и куда она шла. В данном сценарии я должен подсветить макрос как невалидный. И все это, это и есть то что я назвал дополнительным инструментарием.
    программер

  9. #9
    Пользователь Аватар для anthrwpos
    Регистрация
    13.02.2017
    Адрес
    Ленобл
    Сообщений
    188

    По умолчанию

    Цитата Сообщение от wal79 Посмотреть сообщение
    Вы не правы. Изменив количество входов Вы меняете сигнатуру функции.
    Вообще по общепринятой терминологии, макрос - это идентификатор, который транслируется в некий неизменный участок кода.
    Сколько раз его транслятор встретит - столько раз вместо него вставит этот участок.
    Функция - это идентификатор, который компилируется в адрес вызова, по которому начинается сама функция.

    У нас в ОЛ таки макросы или функции?=)

    upd: Ура, сами макросы работают адекватно. Но появился новый бажок - не отслеживается состояние флоат переменных.bug.PNG
    Проект тот-же, на картинке внутренности макроса VLV
    Последний раз редактировалось anthrwpos; 28.08.2017 в 13:14.
    - ά ν θ ρ ω π ο ς -
    Мои универсальные макросы https://github.com/anthrwpos1/macros

  10. #10

    По умолчанию

    Цитата Сообщение от anthrwpos Посмотреть сообщение
    Вообще по общепринятой терминологии, макрос - это идентификатор, который транслируется в некий неизменный участок кода.
    Сколько раз его транслятор встретит - столько раз вместо него вставит этот участок.
    Функция - это идентификатор, который компилируется в адрес вызова, по которому начинается сама функция.

    У нас в ОЛ таки макросы или функции?=)
    Если внимательно прочитаете, то я сказал inline функция. Компилятор встречая ее каждый раз встраивает тело функции в код.
    программер

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Среда программирования OWEN Logic
    Ответов: 404
    Последнее сообщение: 25.08.2020, 15:17
  2. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Программируемые реле
    Ответов: 401
    Последнее сообщение: 28.07.2016, 19:46
  3. OWEN Logic 1.2.0.14b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 40
    Последнее сообщение: 21.02.2011, 14:16
  4. OWEN Logic 1.1.0.11b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 58
    Последнее сообщение: 12.10.2010, 20:55

Ваши права

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