Вопросы о FLProg

238 views
Skip to first unread message

Юрий Мироненко

unread,
Jan 7, 2015, 4:29:18 AM1/7/15
to su...@googlegroups.com
Вопрос первый: а есть какая-нибудь возможность получить версию под Linux? У cincom была, насколько я помню, линуксовая VMка, так что это не должно быть слишком сложно.

Вопрос второй: FLProg на выходе генерирует каноничный C-код, или богомерзкие скетчи на этом их внутреннем ардуиновском недоСи?

Юрий Мироненко

unread,
Jan 7, 2015, 4:54:17 AM1/7/15
to su...@googlegroups.com
Попробовал запустить под wine'ом и нарисовать простейший триггерный делитель.

Рисовать схемы - можно. А "компилировать" - нельзя. Виснет. Я предполагаю, что это потому, что "компиляция" вызывает не только генерировалку кода, но и внешний компилятор этого кода непосредственно в прошивку, а вызывалка этого компилятора написана некорректно.

Есть ли возможность сгенерировать код без его дальнейшей компиляции?

В базовых блоках есть OR, AND, XOR, даже блок защиты от дребезга - но нету NOT. Я чего-то не понимаю?

7 января 2015 г., 12:29 пользователь Юрий Мироненко <assar...@gmail.com> написал:

Сергей Глушенко

unread,
Jan 7, 2015, 2:16:51 PM1/7/15
to su...@googlegroups.com
Программа генерит "богомерзкие скетчи"и открывает их в "богомерзком ArduinoIDE". Но пользователям нравится и на мое предложение избавится от "богомерзкого ArduinoIDE" попросили его оставить.
Ребята из технологического института в  Тиране провели исследование по работе программы под линуксом. посмотреть можно по ссылке: http://flprog.ru/FLProg/pid144781676/vpi19538946
В последней версии по их просьбе появилась возможность сохранять скетч на диск а не отправлять в "богомерзкую ArduinoIDE". Настраивается в свойствах программы.

Насчет NOT. Любой булеановский вход или выход любого блока можно инвертировать.

Ну и последенее . Я пока не готов работать под линуксой, хотя и запускал образ на виртуалке с линуксой с синкомовской линуксовой виртуальной машиной. Все заработало нормально, с единственной проблеммой. Упал когда попытался получить окружение пользователя. Ну  и наверное буду падать при попытке открыть приложение серез WinApi. Возможно при работе с компортом будут проблеммы. Често говоря сейчас нет ни времени ни желания с этим разбираться.


среда, 7 января 2015 г., 14:29:18 UTC+5 пользователь Assargadon написал:

Юрий Мироненко

unread,
Jan 10, 2015, 7:25:55 AM1/10/15
to su...@googlegroups.com
Не стоит относиться слишком серьёзно к эпитетам вроде "богомерзкий" в моём исполнении. Это я так, разряжаю обстановку.

Но скомпилировать в скетч под вайном у меня всё-таки не вышло. Опция действительно есть, активируется, после её активации кнопка компиляции открывает файловый диалог и просит указать файцл для скетча. Даже не виснет. Но и скетч по указанному пути не появляется.

К слову, опции программы при выходе не сохраняются. Перезапускаешь - и настройки по умолчанию. Точнее, я пробовал менять только одну настройку - ту самую, которая говорит просто сгенрировать скетч, а не открывать его в ArduinoIDE.

P.S. Я использую portable-версию FLProg.

7 января 2015 г., 22:16 пользователь Сергей Глушенко <sup...@flprog.ru> написал:

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес sugr+uns...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Юрий Мироненко

unread,
Jan 10, 2015, 7:35:24 AM1/10/15
to su...@googlegroups.com
Продолжая вопросы: у вас компилятор семантически отделён от редактора?

Насколько я могу судить по sixx-файлу, визуальная модель отделена от моделей блоков.

10 января 2015 г., 15:25 пользователь Юрий Мироненко <assar...@gmail.com> написал:

Юрий Мироненко

unread,
Jan 10, 2015, 7:42:50 AM1/10/15
to su...@googlegroups.com
О, а скетч всё-таки сгенерировался, только совсем не по тому пути, который я указывал...я исследую поподробнее :)

10 января 2015 г., 15:35 пользователь Юрий Мироненко <assar...@gmail.com> написал:

Сергей Глушенко

unread,
Jan 10, 2015, 7:43:50 AM1/10/15
to su...@googlegroups.com
Извините за резкость, но когда я Вам отвечал, так получилось что я уже вторые сутки был на работе. Слегка тупил)))). Насчет сохранения. Похоже под вайном программа вообще не сохраняет файлы. Почему то не отрабатываются функцииWin Api. Я не силен в Линуксе, могу посоветовать Вам статью на сайте:http://flprog.ru/FLProg/pid144781676/vpi19538946. Если будет желание, могу связать Вас с автором статьи. Мы с ним находимся в переписке. Автор перепадает в технологическом институте в Албании и они там серьёзно занимаются скрещиванием FLProg с линуксом.

суббота, 10 января 2015 г., 17:25:55 UTC+5 пользователь Assargadon написал:

Сергей Глушенко

unread,
Jan 10, 2015, 7:47:51 AM1/10/15
to su...@googlegroups.com
Да у меня проект и отображение его полностью разнесены. Компилятор так же представляет отдельную иерархию классов, которой отдается проект. Я специально так построил архитектуру с расчетом возможности подмены генератора для возможности программирования различных контроллеров

суббота, 10 января 2015 г., 17:35:24 UTC+5 пользователь Assargadon написал:

Сергей Глушенко

unread,
Jan 10, 2015, 8:01:09 AM1/10/15
to su...@googlegroups.com
А с файлом настроек - другой прикол. Похоже Вы нашли багу. Он вообще не сохраняется в текущей версии. Буду разбираться


суббота, 10 января 2015 г., 17:42:50 UTC+5 пользователь Assargadon написал:

Юрий Мироненко

unread,
Jan 12, 2015, 7:19:22 AM1/12/15
to su...@googlegroups.com
Ещё вопрос.

Мне почему-то казалось, что в FLProg был какой-то симулятор.
Который позволяет протестировать собранную логическую схему.

Это у меня глюки, или он там правда есть?


10 января 2015 г., 16:01 пользователь Сергей Глушенко <sup...@flprog.ru> написал:

Сергей Глушенко

unread,
Jan 12, 2015, 7:45:53 AM1/12/15
to su...@googlegroups.com
Нет симулятора пока нет. Но очень хочется. Есть в планах, ео как представлю объем работы, пока страшно браться. Хотя скорее всего когда начну, ничего страшного не окажется))))))
понедельник, 12 января 2015 г., 17:19:22 UTC+5 пользователь Assargadon написал:

Юрий Мироненко

unread,
Jan 12, 2015, 5:31:29 PM1/12/15
to su...@googlegroups.com
Регистрация на сайте, видимо, сломалась.
Пытаюсь зарегистрироваться, всё вроде ок, ввожу данные, мне отправляется активационное письмо, в нём активационная ссылка, а по ней - 
Учетная запись не найдена. Возможно, ссылка устарела.
Причём письмо пришло быстро, менее чем за минуту, я тут же кликнул....сессия не могла истечь.

12 января 2015 г., 15:45 пользователь Сергей Глушенко <sup...@flprog.ru> написал:

Сергей Глушенко

unread,
Jan 12, 2015, 5:37:06 PM1/12/15
to su...@googlegroups.com
Ну время от времени все таки сайт подглючивает. Я видел эту ошибку, просто не понял  что произошло. Никак не могу разобраться с базой. Glorp время от времени выдает странные ошибки причем безо всякой системы. Попробуйте еще раз зарегестрироваться. Думаю все пройдет нормально. Если не получится, я Вас вручную зарегестрирую.
вторник, 13 января 2015 г., 3:31:29 UTC+5 пользователь Assargadon написал:

Сергей Глушенко

unread,
Jan 12, 2015, 5:47:13 PM1/12/15
to su...@googlegroups.com
Большое спасибо за помощь проекту. Кстати как раз выпустил новую версию. Скорее всего следующая будет не скоро, 15-го уезжаю домой, а дома почти сразу с семьей едем в Питер. Так что продолжения придется немного подождать. Но я буду на связи, у меня телефон умный)))


среда, 7 января 2015 г., 14:29:18 UTC+5 пользователь Assargadon написал:
Вопрос первый: а есть какая-нибудь возможность получить версию под Linux? У cincom была, насколько я помню, линуксовая VMка, так что это не должно быть слишком сложно.

Юрий Мироненко

unread,
Jan 13, 2015, 3:56:01 PM1/13/15
to su...@googlegroups.com
Так, теперь более...глубинный вопрос.

Как организована работа с...эээ...фазой вычислений, что ли. Когда несколько виртуальных элементов стоят каскадом, то ведь всегда возникает вопрос синхронизации. Я довольно слабо представляю себе детали, но знаю, что такое явление есть.

Прокомментируете поподробнее?

13 января 2015 г., 1:47 пользователь Сергей Глушенко <sup...@flprog.ru> написал:
--

Сергей Глушенко

unread,
Jan 14, 2015, 12:03:56 AM1/14/15
to su...@googlegroups.com
Это и было самое сложное в разработке проекта. Как преобразовать графическое представление схемы в код для контроллера. Тут требуется немного предыстории.
Основная идея была создать аналог сред программирования для промышленных (безумно дорогих) контролеров на дешёвые ардуинки. За базу я взял программу TiaPortal от Siemens. У них такая идеология: Вся схема разбивается на отдельные Nenwork - и. В каждом нетворке возможна только одна логическая цепочка. То есть один конечный элемент. Это может быть реле, переменная или что то еще. В общем какой - то объект в который производится запись. И схема которая собирает значение для записи. При компиляции каждый нетворк представляет одну строку конечного кода. Такого алгоритма придерживаются и остальные производители. С него начинал и я. Следы этого остались в проекте, у меня название класса описывающего плату Network. НО. Я разрабатываю проект как среду для электриков, электронщиков, да и просто любителей. Концепция логических цепочек для них тяжела. Я сам прошол путь от простого электрика - до ведущего разработчика, так что могу представить себя в шкуре любого из них. Для них понятно название "плата". То есть какой -то законченный кусок схемы выполняющий определенные функции. А на плате может быть несколько релюшек, лампочек, да и в конце концов просто выходов для связи с другими платами. Еще одна засада. Для реализации какого то блока чаще всего недостаточно только описать строкой состояние его входа. Например для блока дисплея необходимо его задекларировать, инициализировать, подключить библиотеку, в нужный момент вывести требуемый текст, да еще и определить нет ли необходимости его очистить. Это разный код в разных частях скетча.  Так что существующий алгоритм не подходил. Я пости два месяца (точнее четыре с учетом что работаю над проектом я только на вахте) я придумывал новы, свой алгоритм. В принципе это и есть моё как говорится ноу - хау. Не хочу его полностью раскрывать, но коротко могу. Я разработал собственный алгоритм разбиения схемы на куски, и систему взаимодействия схемы и компилятора. Схема и блоки обладают определенным набором интерфейсов с которыми работает компилятор. Схема умеет себя отдавать компилятору в наиболее удобном для него виде (умная женщина, мне бы такую жену))) ).Так же блоки умеют правильно отвечать на вопросы компилятора. Реализация получилась удачной. Об этом свидетельствует то, что почти за год существования проекта мне ни разу не пришлось изменять ее. Интерфейс схемы я вообще не трогал ни разу. Иногда добавляется интерфейс блоков, когда компилятору требуется каки - е то дополнительные данные от них для реализации той или иной функции. Наверное об этом и все. Больше я об этом пока ничего не раскажу Вредный я)))))

среда, 14 января 2015 г., 1:56:01 UTC+5 пользователь Assargadon написал:

Юрий Мироненко

unread,
Jan 14, 2015, 2:02:31 AM1/14/15
to su...@googlegroups.com
Сергей, вот вы начали про то, что я спросил, а потом переключились на реализацию. Рассказ про реализацию довольно интересен и познавателен, но это немного не то, о чём я спрашивал.

Я хотел узнать не то, как вы реализовали, а что именно вы реализовали. Меня сейчас интересовала не императивная, а декларативная часть вашей работы.

======

Моя первая - и единственная - схема на релейной логике была сделана давным-давно, ещё в школе. Кажется, это был магнитный замок, и, кажется, для какого-то школьного конкурса.

И это была самая настоящая, физическая релейная логика, на самых настоящих реле. И она - зацикливалась.

Поскольку математику я знал куда лучше, чем электронику, я легко пришёл к тем самым "логическим цепочкам". И это помогло мне понять связь между императивной логикой и логикой булевой, а в будущем легко понять всякие там ДНФ и КНФ и даже конечные автоматы. В общем, опыт был полезный.

Так вот, вопрос: схемы, построенные в FLProg, могут зацикливаться?
Это не единственный вопрос, относящийся к фазам вычислений, но с него проще всего начать.

Могу я построить генератор типа "саморазмыкающееся реле"?
А если могу - с какой частотой он будет осциллировать?

======

P.S. Обращу, кстати, внимание: перескок с задачи на её реализацию - это такая достаточно показательная вещь. Для вас, видимо, "как сделать" и "что сделать" - очень близкие вещи, тогда как на самом деле это не совсем так. Но это тема для отдельного разговора. Хотя две ссылки я всё же приведу:

Википедия: Императивное программирование
Википедия: Декларативное программирование

14 января 2015 г., 8:03 пользователь Сергей Глушенко <sup...@flprog.ru> написал:

Сергей Глушенко

unread,
Jan 14, 2015, 2:37:06 AM1/14/15
to su...@googlegroups.com
Наверное все таки сказывается отсутствие у меня настоящего академического образования. У меня нет вышки, и как там в фильме говорится "Я консирваториев не заканчивал". Посмотрел статьи по вашим сылкам. Честно скажу - ни.... не понял.
Что я реализовал?..... Даже не знаю как ответить. Ну наверное в общих словах компиляцию схемы в скетчь. И все.
    Я действительно когда начинаю работать над новым функционалом не знаю что получится в конце. Первый шаг - реализовать эту функцию в ArduinoIDE что бы понять что это вообще возможно. После этого приступаю к реализации в коде привязываясь к существующей архитектуре. Я почти никогда не продумываю реализацию задачи заранее. Мой подход - "код покажет". Во время работы над проектом Cadel вместе с Vladimir Musulainen у нас проводился анализ задачи с разбиением на карточки,  продумыванием архитектуры и т.д. Но самое смешное что примерно в половине случаев конечная реализация сильно отличалась от задуманного. По разным причинам. Но там это было нужно для разбиения задач по участнигам группы, и расчета ориентировочного времени на реализацию. Поскольку я работаю один и учета времени от меня никто не требует в своей работе я исключил этот этап. Жалко тратить на него время.

 Могу я построить генератор типа "саморазмыкающееся реле"?
А если могу - с какой частотой он будет осциллировать?

Да можно. Частота генерации будет зависеть от тактовой частоты контроллеа и времени выполнения скана программы. Если есть интерес я могу рассказать о модели выполнения программы в микроконтроллере, и отличия ее от событийной модели в компьютере.

среда, 14 января 2015 г., 12:02:31 UTC+5 пользователь Assargadon написал:

Юрий Мироненко

unread,
Jan 14, 2015, 3:08:54 AM1/14/15
to su...@googlegroups.com
Ок. Зацикливаться может.

Тогда так...эх, жаль нет функции сохранения картинки схемы...нужно возиться со скриншотом и вырезать из него кусок...


Вот в такой схеме - может ли быть так, что на нижний вход второго XOR'а поступит не то значение, которое поступало на нижний вход первого XOR'а, потому что, за время пока вычислялся первый XOR, значение на ноге успело измениться?

14 января 2015 г., 10:37 пользователь Сергей Глушенко <sup...@flprog.ru> написал:

Сергей Глушенко

unread,
Jan 14, 2015, 3:17:36 AM1/14/15
to su...@googlegroups.com
Я для этих функций использую виндовые ножница. Безумно удобно. Но у Вас насколько я помно линукс. Печалька....
А теперь серьезно.


среда, 14 января 2015 г., 13:08:54 UTC+5 пользователь Assargadon написал:
Ок. Зацикливаться может.

Тогда так...эх, жаль нет функции сохранения картинки схемы...нужно возиться со скриншотом и вырезать из него кусок...
Код который получится в скетче (без учета синтсиса так для примера)

out = (pin2 XOR (pin1 XOR pin2));
так что все будет нормально

Юрий Мироненко

unread,
Jan 14, 2015, 3:34:15 AM1/14/15
to su...@googlegroups.com
так что все будет нормально

Сергей, так в этом же и вопрос.
Для вас "нормально" - это как именно? :)

Нормально - это когда на вход первого и второго XOR'а могут придти разные биты? Или когда они не могут оказаться разными?

14 января 2015 г., 11:17 пользователь Сергей Глушенко <sup...@flprog.ru> написал:

Сергей Глушенко

unread,
Jan 14, 2015, 4:36:21 AM1/14/15
to su...@googlegroups.com
Нормально - это конечно когда разные сигналы придти не могут. В Вашем примере это в принципе возможно. Хоть и расчет XOR занимает наносекунды в принципе есть вероятность того что за это время состояние входа изменится. Я об этой возможности рассказывал в первых видеоуроках. Так же давал решение для тех коому этот вопрос важен. Достаточно в любом месте программы счтать значение железного входа в переменную, и использовать эти переменные в программе. Тогда в течении скана программы значение этих переменных не изменится. Вообще все эти вопросы решает подход с использованием принципа образа процесса. То есть в начале скана все входа контроллера считываются в переменные, в процессе скана работа ведется только с ними. результаты работы заносятся в переменные. В конце скана полученные результаты записываются в железные выхода. Но такой подход требует выделения дополнительной памяти под образ процесса. А у ардуино ее и так немного. Поэтому я отказался от такого подхода.

среда, 14 января 2015 г., 13:34:15 UTC+5 пользователь Assargadon написал:

Юрий Мироненко

unread,
Jan 14, 2015, 5:45:46 AM1/14/15
to su...@googlegroups.com
хоть и расчет XOR занимает наносекунды

Это как раз неважно. Там же может и не XOR стоять. Там может стоять цепочка в 100500 логических элементов, или ещё что-нибудь посложнее.


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

Простите, но я запутался. Я вижу тут противоречие :)
Вы говорите, что проблема решена, что вы решили её использованием таблицы состояния, но отказались от её использования ради экономии. В итоге я не понимаю, что же вы ответили на самом деле.

Поэтому я сгенерировал скетч, и вижу там
digitalWrite(2,  ( ( (digitalRead (1))) ^ ( (digitalRead (4))) ) ^ ( (digitalRead (4))) );
Я так понимаю, digitalRead - это чтение бита из порта, а не из буфера. То есть, как я понимаю, на вход второго XOR'а может попасть не тот бит, который попал на первый XOR. Поправьте, если я ошибся.


14 января 2015 г., 12:36 пользователь Сергей Глушенко <sup...@flprog.ru> написал:

Сергей Глушенко

unread,
Jan 14, 2015, 5:56:03 AM1/14/15
to su...@googlegroups.com

Ключевая фраза

Достаточно в любом месте программы счтать значение железного входа в переменную...
..
 Я как раз сказал что в вашем случае вероятность того что на вход первого придет не то же значение что и второго в принципе возможна.
digitalRead (1)   это чтение состояние ноги контроллера. И да если в течении выполнения первого XORнапряжение на ноге изменится то при следующем чтении значение будет другим. Поэтому я и рекомендовал в случае критичности такой ситуации прочитать значение входа в переменную и использовать ее.
 У меня что то плохо получается вставлять картинки сюда, она вставилась в самый верх сообщения. Попробуйте собрать такую схему и посмотрите что получится в результате. Вот там точно значения не изменятся.







среда, 14 января 2015 г., 15:45:46 UTC+5 пользователь Assargadon написал:

Юрий Мироненко

unread,
Jan 14, 2015, 6:04:59 AM1/14/15
to su...@googlegroups.com
Сергей, я прекрасно понял эту часть ваших слов, хотя за картинку спасибо. Мне просто как раз было интересно, для "управления фазой" вы использовали таблицу состояний, функциональные извращения или просто забили. Просто в начале вы сказали, что 

Код который получится в скетче (без учета синтсиса так для примера)
out = (pin2 XOR (pin1 XOR pin2)); 
так что все будет нормально

и это меня сбило, поскольку противоречило последующим словам. И я не был уверен, какой же из двух озвученных вами вариантов имеет место на самом деле :) Ну, теперь знаю. Спасибо.



14 января 2015 г., 13:56 пользователь Сергей Глушенко <sup...@flprog.ru> написал:

Сергей Глушенко

unread,
Jan 14, 2015, 6:11:00 AM1/14/15
to su...@googlegroups.com
Да в первом ответе я немного ошибся. Не сообразил что Вы использовали входа а не переменные. После Вашего комментария я понял ошибку, и постарался объяснить ситуацию. К сожалению из меня объясняльщик не очень, но я над собой работаю)))). Правда теперь я немного не понял. Что Вы имеете в виду под "Управлением фазой". Вроде слово фаза я нигде не использовал.

среда, 14 января 2015 г., 16:04:59 UTC+5 пользователь Assargadon написал:

Юрий Мироненко

unread,
Jan 14, 2015, 8:58:16 AM1/14/15
to su...@googlegroups.com
Вроде слово фаза я нигде не использовал.

Да, его использовал я. Не знаю, как в точности это называется.

Смысл явления в том, что на срабатывание каждого элемента необходимо определенное время. Соответственно, изменения состояния "распространяются" от входов своеобразной "волной", и эта "волна" достигает разных элементов в разное время. Именно благодаря этому системы из реле могут зацикливаться и работать как генераторы. Вот это я и называю "фазой".

Смысл выделения отдельных цепочек в логических контроллерах как раз ровно в этом - борьба с биениями выходов, исключение циклов.

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

14 января 2015 г., 14:11 пользователь Сергей Глушенко <sup...@flprog.ru> написал:

Сергей Глушенко

unread,
Jan 14, 2015, 9:11:38 AM1/14/15
to su...@googlegroups.com
Падения происходят из за компилятора. При поиске предыдущего блока при создании цепочки если есть прямая связь без переменной  между выходом одного блока со входом другого в пределах той же цепочки, компилятор зацикливается и программа зависает. Я сейчас ищу способ запретить создание таких связей с минимальным торможением при отрисовке. Пока не нашёл, хотя подвижка уже есть. Но такое может возникнуть и при одной цепочке и при образе процесса. У сименса такие фокусы с прямым соеденением то же программно запрещенны. ТОлько через переменную


среда, 14 января 2015 г., 18:58:16 UTC+5 пользователь Assargadon написал:

Юрий Мироненко

unread,
Jan 14, 2015, 9:23:04 AM1/14/15
to su...@googlegroups.com
Ну да. Обработка циклов - это один из элементов управления фазой.
Увы, я очень мало про это знаю - знаю, что такое есть, знаю, что от этого бывают проблемы - но ни терминологии, ни что придумали в качестве решений - нету. Я потому и задавал вопрос вам - надеялся узнать :)



Я сейчас ищу способ запретить создание таких связей с минимальным торможением при отрисовке.

В начале рисования просто составляете список всех точек, куда можно присоединить выход и просто не присоединяете его туда, куда нельзя. Всё равно вы это делаете в рудиментарном виде - ведь завести выход на собственный вход нельзя. Если не делать этот обсчёт при каждом mouse move, а только вначале - тормозить не будет.

Но для начала вы бы добавили этот запрет в проверку проекта. Если есть цикл - проект некорректен.

14 января 2015 г., 17:11 пользователь Сергей Глушенко <sup...@flprog.ru> написал:

Сергей Глушенко

unread,
Jan 14, 2015, 10:47:06 AM1/14/15
to su...@googlegroups.com
Список точек наверное будет не правильно. Его же придется составлять отдельно для каждого выхода. Ну и наверное тогда не список точек а список входов к  которым нельзя прицепиться. Хотя стоит подумать над таким кэшем. и список можно составлять не для всех входов а только для не подключенных.  к подключенным входам нельзя подключить другой выход. Спасибо за идею

среда, 14 января 2015 г., 19:23:04 UTC+5 пользователь Assargadon написал:

Юрий Мироненко

unread,
Jan 14, 2015, 2:52:10 PM1/14/15
to su...@googlegroups.com
Список точек наверное будет не правильно.
 
Когда я говорил о "точках", я имел в виду не "пиксели изображения", а как раз "точки подключения". Выходы для входов и входы для выходов.

Хотя стоит подумать над таким кэшем. Спасибо за идею

Пожалуйста. Обращайтесь.

P.S. Но, конечно, хотя мне льстит ваша благодарность, должен сказать, что это не вполне корректно назвать "идеей". Это стандартный общеизвестный приём. Никто ведь не назовёт забивание в стенку гвоздя "идеей по размещению пальто" :)

14 января 2015 г., 18:47 пользователь Сергей Глушенко <sup...@flprog.ru> написал:

Сергей Глушенко

unread,
Jan 14, 2015, 9:58:45 PM1/14/15
to su...@googlegroups.com
Может и стандартный прием, но я обычно хранил кэш в самих инстансах, и мне как то не приходила в голову идея внешнего кэша.

четверг, 15 января 2015 г., 0:52:10 UTC+5 пользователь Assargadon написал:
Reply all
Reply to author
Forward
0 new messages