Ви не увійшли.
Новая версия здесь https://www.youtube.com/channel/UCmYLzFS7e1K9rl50IBIaTkQ
Там же примеры и всякие подробности
P.S. Формализация машины.
Машина Кузьмина представляет собой перечислимое множество ячеек (концептов) и перечислимое множество управляющих устройств (можно считать их головками, кому это удобно) назначение которых – адресация (активация) концептов. Номер концепта будем называть адресом.
Ячейка (а не головка как у МТ) имеет множество состояний S (возможно бесконечное). Пока событием будем называть состояние концепта. Это не противоречит интуитивному представлению о событии как о процессе изменения состояния потому что факт изменения состояния определяется анализом на принадлежность новому состоянию (истинность события), и зачастую событие имеет имя этого нового состояния.
Каждое событие может иметь конечное множество подписок. Подписка — номер концепта к которому осуществляется переход управляющего устройства и при условии истинности события, которому принадлежит подписка.
Работа машина заключается в адресации (активации) концепта. При активации концепта, запускается анализ на истинность всех событий концепта (анализ не изменяет состояние концепта и потому может выполняться одновременно для всех событий) имеющих подписки, и при истинности этих событий машина активирует концепты с номерами, указанными в подписках (одновременно, если истинных событий с подписками больше одного). При отсутствии подписок адресация выполняет предназначенную функцию в зависимости от вида адресации (чтение-запись-выполнение-инициализация). На чем работа и заканчивается.
Вот тут ничего не понятно. Можно разбор, что значит каждый оператор?
Class Device
‘ Статические данные
{“.” UInt16 { Min 300 Max 320}}
‘Конструктор
|| | Timer (180000,Value) #При запуске устанавливаем таймер и подписку на метод»
|| : ‘Инициализация
‘Атрибуты Value – значение датчика и два счетчика таймера.
{ UInt16 Value #Значение датчика с подписками на выполнение и изменение значения .»
|| | = “I” #Адресация для выполнения. Присваиваем значение с интерфейса датчика.»
:: ~ (EMin, Emax) #По событию изменение значения проверяем на условия.»
UInt32 TimerD 180000 #Счетчик таймера датчика и начальное значение. 3 минуты.»
UInt32 TimerP 4000 #Счетчик таймера насоса и начальное значение»
:: #Подписка на срабатывание таймера. Значение 0»
{ “PA04”=0 “PA05”=0} #Выключение обоих насосов по истечению цикла.»
‘События EMin и EMax с подписками для включения соответствующих насосов
‘ с запуском таймера
~ EMin Value, Min < { “Pa04” = 1 Timer.Start(4000, TimerP)
~ EMax Value, Max > { “Pa05” = 1 Timer.Start(4000,TimerP)
}
Я правильно понимаю, Вы хотите сделать контроллер умного дома под управлением своей виртуальной машины, дать пользователю возможность заливать туда байткод, скомпилированный на десктопе, и такое готовое устройство продавать?
Не только. Это только часть возможностей. Но, как начальная бизнес модель да. Продавать устройства. И сопровождение с обновлениями, лицензиями и т.д.. Перспектив для развития очень много. От полного пересмотра интернета, браузеров и производства новой архитектуры процессоров... Сори.. но тут очень много .. Нет приложений, нет расширений файлов, распределенные серверы, распределённое управление.. И это все проработано и есть что показать.. (если не пропало) сори.. Но я временно перемещенный и с собой забрал только системник. Наработок то за 25 лет. дохрена.. Я работал сам себе.. Нигде не печатался и нигде не заявлялся.. Были деньги и планы.. Я работал.. Сейчас ни дома, ни здоровья, ни планов. Потому сори за интернет. С мобилки по модему..
Я правильно понимаю, Вы хотите сделать контроллер умного дома под управлением своей виртуальной машины, дать пользователю возможность заливать туда байткод, скомпилированный на десктопе, и такое готовое устройство продавать?
Уже есть реализация виртуальной машины, которая может работать на atmega328 ?
Можете транслировать текст из поста #11 в байткод, залить виртуальную машину и байткод на атмегу и убедиться, что все работает?
Собственно, я здесь именно потому что ищу такого специалиста или инвестора, или компаньена что б сделать это бизнесом.
Уже есть реализация виртуальной машины, которая может работать на atmega328 ?
Можете транслировать текст из поста #11 в байткод, залить виртуальную машину и байткод на атмегу и убедиться, что все работает?
Пока работает только в десктопе.. За универсальность в большей части отвечает система. Именно она определят типы, структуру команд.. и особенности контроллера.. А именно вектора прерывания, служебные ячейки и значения битов.. Виртуальную машину, есть надежды сделать таки универсальную. Но я не уверен. Я ж говорю что нужен электронщик знакомый с несколькими архитектурами.. Я предусмотрел инструменты, но ни на одном контроллере пока ничего не реализовано в полном объеме. Частично работает на STM32 и демонстрационка.. Кстати, железо можно сделать не на ардуино, а просто на плате с одним контроллером с обвеской.. Разъемы уже самим сделать..
P.S. А в чем убедиться? Если на пин подашь ноль. то он там и будет.. Математика в порядке. Выражения раскладываются в команды. (стековые) и выполняются. Есть идеи для адресации.. Ну, так это обсуждается..Для обсуждения много тем.. Те же кодировки. Это уже рабочие моменты. Повторюсь. Я математик.. И за программирование контролеров не берусь.. Как и за электронные дела..
Уже есть реализация виртуальной машины, которая может работать на atmega328 ?
Можете транслировать текст из поста #11 в байткод, залить виртуальную машину и байткод на атмегу и убедиться, что все работает?
Т.е. Вы хотите найти инвестора, который согласится разработать и производить процессоры, которые смогут непосредственно выполнять Ваш байт-код? Никто на это не пойдет. Напишите лучше компилятор в существующие архитектуры процессоров и для начала докажите, что Ваш язык программирования в чем-то лучше других. Описание языка, который Вы придумали, - это какраз и есть самое главное. Какие не были бы красивые программы на нем, без описания языка их никто не понимает.
Ну, я и не предлагаю делать процессор. На тех же ардуинках можно вполне достойные вещи делать. Вот это уже будет круто. Только виртуальная машина по любому. Обычный код не будет работать так как я хочу.. У меня адресация "умная". И еще есть моменты технологичные. Что добавлять устройства без связывания.. Что б добавил, и организовал подписку и должно работать. Обычный код надо через трансляцию все пропускать что б адреса связать.. А это минус для возможностей..
Т.е. Вы хотите найти инвестора, который согласится разработать и производить процессоры, которые смогут непосредственно выполнять Ваш байт-код? Никто на это не пойдет. Напишите лучше компилятор в существующие архитектуры процессоров и для начала докажите, что Ваш язык программирования в чем-то лучше других. Описание языка, который Вы придумали, - это какраз и есть самое главное. Какие не были бы красивые программы на нем, без описания языка их никто не понимает.
Я пытаюсь понять в чем суть Вашего "открытия". Пока вижу язык для событийно-ориентированного программирования.
Я не буду спорить. Дьявол в деталях, а сейчас не время за подробности.
Кстати, Вам бы не мешало сопровождать примеры ссылками на описание самого языка.
Та много всего надо было бы.. Я стараюсь самое главное выделить. Кто б читал мой опус на 300 страницах .
И лучше избавьтесь в синтаксисе от не-ASCII символов.
Обсуждаемая тема. Ранняя версия такая и была. Но, есть аргументы и за.
Во что компилируется данная "программа", байткод или под какую-то архитектуру (зяавляли, что может работать на ардуине) ?
В свой двоичный код, на котором работает виртуальная машина. Потому будет работать там где установлена виртуальная машина.. Она же может быть реализована в реальный процессор.
Что Вы имели в виду под созданием нового железа для Вашей машины?
У ардуино другая идеология. Потому желательно собственную линейку сделать. Ну, если созреет коммерческий смысл. Собственно много вопросов есть для обсуждения. Для того и вынес в свет что б обсуждать. Ну, и в поисках интересантов.
Я пытаюсь понять в чем суть Вашего "открытия". Пока вижу язык для событийно-ориентированного программирования. Кстати, Вам бы не мешало сопровождать примеры ссылками на описание самого языка. И лучше избавьтесь в синтаксисе от не-ASCII символов. Во что компилируется данная "программа", байткод или под какую-то архитектуру (зяавляли, что может работать на ардуине) ? Что Вы имели в виду под созданием нового железа для Вашей машины?
Соседняя тема на этом форуме:
Форум » Проекты » Ищу разработчика для написания скетча за вознаграждение
Просил решение. Так я прислал. По моему красивое.. Хоть бы критикнул и то понятней было зачем интересовался.
Странно. Просил показать решение и пропал. По моему гораздо красивее чем обычное программирование. Зачем просил?
По моему так изящней. Но, мне не нравится.. С правильным форматированием в приатаченом файле Akvarium.zip
Class Device
‘ Статические данные
{“.” UInt16 { Min 300 Max 320}}
‘Конструктор
|| | Timer (180000,Value) #При запуске устанавливаем таймер и подписку на метод»
|| : ‘Инициализация
‘Атрибуты Value – значение датчика и два счетчика таймера.
{ UInt16 Value #Значение датчика с подписками на выполнение и изменение значения .»
|| | = “I” #Адресация для выполнения. Присваиваем значение с интерфейса датчика.»
:: ~ (EMin, Emax) #По событию изменение значения проверяем на условия.»
UInt32 TimerD 180000 #Счетчик таймера датчика и начальное значение. 3 минуты.»
UInt32 TimerP 4000 #Счетчик таймера насоса и начальное значение»
:: #Подписка на срабатывание таймера. Значение 0»
{ “PA04”=0 “PA05”=0} #Выключение обоих насосов по истечению цикла.»
‘События EMin и EMax с подписками для включения соответствующих насосов
‘ с запуском таймера
~ EMin Value, Min < { “Pa04” = 1 Timer.Start(4000, TimerP)
~ EMax Value, Max > { “Pa05” = 1 Timer.Start(4000,TimerP)
}
Статические данные просто продемонстрировал.
Дальше идет конструктор. Т.е. метод запускаемый при создании объекта. (Событие «выполнение» В конструкторе создаем и запускаем таймер для чтения каждые 3 минуты. Второй параметр-адрес, к которому адресуется таймер по завершению счета. Т.е. каждые три минуты происходит адресация к атрибуту Value в котором подписки да два события «Выполнение» и изменение значения. По событию выполнению (т.е. по таймеры читаем новое значение с интерфейса (тут надо уточнить), а по изменению значения адресуемся к двум событиям EMin и EMax где происходит проверка на указанные диапазоны. При нарушении диапазона контроля запускаем соответствующие насосы, с контролем по таймеру для их выключения.
Соседняя тема на этом форуме:
Форум » Проекты » Ищу разработчика для написания скетча за вознаграждение
Можно сказать идеальная задача для моей системы. У меня есть вопросы по электронике. Я даташит не искал для датчика. Как он подключается? Через какой интерфейс. Мне не нравится подход с опросом по таймеру. Тупо получается. Можно ли настроить прерывания и задать уровни значений верхней и нижней границ в этом датчике? И по подключению насосов.. У меня ж почти ассемблер.. Какой конкретно пин дергать по включению-выключению. И опять же.. Я понимаю что есть опыт работы что насосы включаются по времени.. Правильнее бы взять управление в свои руки и анализировать по результату работы.. Т.е. по показанию датчиков.. А если совсем по грамотному, то организовать ПИД регулятор.. Сегодня уже поздно. Я завтра напишу так же с названиями методов..Но, люблю все делать правильно.. А не абы как лишь бы работало))