Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

Batu
2023-09-21 18:54:45

Новая версия здесь https://www.youtube.com/channel/UCmYLzFS7e1K9rl50IBIaTkQ
Там же примеры и  всякие подробности
P.S. Формализация машины.
Машина Кузьмина представляет собой перечислимое множество ячеек (концептов) и перечислимое множество управляющих устройств (можно считать их головками, кому это удобно) назначение которых – адресация (активация) концептов. Номер концепта будем называть адресом.

Ячейка (а не головка как у МТ) имеет множество состояний S (возможно бесконечное). Пока событием будем называть состояние концепта. Это не противоречит интуитивному представлению о событии как о процессе изменения состояния потому что факт изменения состояния определяется анализом на принадлежность новому состоянию (истинность события), и зачастую событие имеет имя этого нового состояния.

Каждое событие может иметь конечное множество подписок. Подписка — номер концепта к которому осуществляется переход управляющего устройства и при условии истинности события, которому принадлежит подписка.

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

cg_shura
2022-11-07 22:16:35

Вот тут ничего не понятно. Можно разбор, что значит каждый оператор?

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)

}
Batu
2022-08-16 18:52:11
Honey пише:

Я правильно понимаю, Вы хотите сделать контроллер умного дома под управлением своей виртуальной машины, дать пользователю возможность заливать туда байткод, скомпилированный на десктопе, и такое готовое устройство продавать?

Не только. Это только часть возможностей.  Но, как начальная бизнес модель да. Продавать устройства. И сопровождение с обновлениями, лицензиями и т.д.. Перспектив для развития очень много. От полного пересмотра интернета, браузеров и производства новой архитектуры процессоров... Сори.. но тут очень много .. Нет приложений, нет расширений файлов, распределенные серверы, распределённое управление.. И это все проработано и есть что показать.. (если не пропало) сори.. Но я временно перемещенный и с собой забрал только системник. Наработок то за 25 лет. дохрена.. Я работал сам себе.. Нигде не печатался и нигде не заявлялся.. Были деньги и планы.. Я работал.. Сейчас ни дома, ни здоровья, ни планов. Потому сори за интернет. С мобилки по модему..

Honey
2022-08-16 18:27:01

Я правильно понимаю, Вы хотите сделать контроллер умного дома под управлением своей виртуальной машины, дать пользователю возможность заливать туда байткод, скомпилированный на десктопе, и такое готовое устройство продавать?

Batu
2022-08-16 17:31:43
Honey пише:

Уже есть реализация виртуальной машины, которая может работать на atmega328 ?
Можете транслировать текст из поста #11 в байткод, залить виртуальную машину и байткод на атмегу и убедиться, что все работает?

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

Batu
2022-08-16 17:01:13
Honey пише:

Уже есть реализация виртуальной машины, которая может работать на atmega328 ?
Можете транслировать текст из поста #11 в байткод, залить виртуальную машину и байткод на атмегу и убедиться, что все работает?

Пока работает только в десктопе.. За универсальность в большей части отвечает система. Именно она определят типы, структуру команд.. и особенности контроллера.. А именно вектора прерывания, служебные ячейки и значения битов.. Виртуальную машину, есть надежды сделать таки универсальную. Но я не уверен. Я ж говорю что нужен электронщик знакомый с несколькими архитектурами.. Я предусмотрел инструменты, но ни на одном контроллере пока ничего не реализовано в полном объеме. Частично работает на STM32 и демонстрационка.. Кстати, железо можно сделать не на ардуино, а просто на плате с одним контроллером с обвеской.. Разъемы уже самим сделать..
P.S. А в чем убедиться?  Если на пин подашь ноль. то он там и будет.. Математика в порядке. Выражения раскладываются в команды. (стековые) и выполняются. Есть идеи для адресации.. Ну, так это обсуждается..Для обсуждения много тем.. Те же кодировки.  Это уже рабочие моменты. Повторюсь. Я математик.. И за программирование контролеров не берусь.. Как и за электронные дела..

Honey
2022-08-16 16:35:48

Уже есть реализация виртуальной машины, которая может работать на atmega328 ?
Можете транслировать текст из поста #11 в байткод, залить виртуальную машину и байткод на атмегу и убедиться, что все работает?

Batu
2022-08-16 16:01:42
Honey пише:

Т.е. Вы хотите найти инвестора, который согласится разработать и производить процессоры, которые смогут непосредственно выполнять Ваш байт-код? Никто на это не пойдет. Напишите лучше компилятор в существующие архитектуры процессоров и для начала докажите, что Ваш язык программирования в чем-то лучше других. Описание языка, который Вы придумали, - это какраз и есть самое главное. Какие не были бы красивые программы на нем, без описания языка их никто не понимает.

Ну, я и не предлагаю делать процессор. На тех же ардуинках можно вполне достойные вещи делать. Вот это уже будет круто. Только виртуальная машина по любому. Обычный код не будет работать так как я хочу.. У меня адресация "умная". И еще есть моменты технологичные. Что добавлять устройства без связывания.. Что б добавил, и организовал подписку и должно работать. Обычный код надо через трансляцию все пропускать что б адреса связать.. А это минус для возможностей..

Honey
2022-08-16 15:47:23

Т.е. Вы хотите найти инвестора, который согласится разработать и производить процессоры, которые смогут непосредственно выполнять Ваш байт-код? Никто на это не пойдет. Напишите лучше компилятор в существующие архитектуры процессоров и для начала докажите, что Ваш язык программирования в чем-то лучше других. Описание языка, который Вы придумали, - это какраз и есть самое главное. Какие не были бы красивые программы на нем, без описания языка их никто не понимает.

Batu
2022-08-16 14:25:07
Honey пише:

Я пытаюсь понять в чем суть Вашего "открытия". Пока вижу язык для событийно-ориентированного программирования.

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

Honey пише:

Кстати, Вам бы не мешало сопровождать примеры ссылками на описание самого языка.

Та много всего надо было бы.. Я стараюсь самое главное выделить. Кто б читал мой опус на 300 страницах .

Honey пише:

И лучше избавьтесь в синтаксисе от не-ASCII символов.

Обсуждаемая тема.  Ранняя версия такая и была. Но, есть аргументы и за.

Honey пише:

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

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

Honey пише:

Что Вы имели в виду под созданием нового железа для Вашей машины?

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

Honey
2022-08-16 12:07:22

Я пытаюсь понять в чем суть Вашего "открытия". Пока вижу язык для событийно-ориентированного программирования. Кстати, Вам бы не мешало сопровождать примеры ссылками на описание самого языка. И лучше избавьтесь в синтаксисе от не-ASCII символов. Во что компилируется данная "программа", байткод или под какую-то архитектуру (зяавляли, что может работать на ардуине) ? Что Вы имели в виду под созданием нового железа для Вашей машины?

Batu
2022-08-16 11:38:51
Honey пише:

Соседняя тема на этом форуме:
Форум » Проекты » Ищу разработчика для написания скетча за вознаграждение

Просил решение. Так я прислал. По моему красивое.. Хоть бы критикнул и то понятней было зачем интересовался.

Batu
2022-08-16 11:36:21

Странно. Просил показать решение и пропал. По моему гораздо красивее чем обычное программирование. Зачем просил?

Batu
2022-08-15 10:34:36

По моему так изящней. Но, мне не нравится.. С правильным форматированием в приатаченом файле 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 где происходит проверка на указанные диапазоны. При нарушении диапазона контроля запускаем соответствующие насосы, с контролем по таймеру для их выключения.

Batu
2022-08-14 19:36:42
Honey пише:

Соседняя тема на этом форуме:
Форум » Проекты » Ищу разработчика для написания скетча за вознаграждение

  Можно сказать идеальная задача для моей системы. У меня есть вопросы по электронике. Я даташит не искал для датчика. Как он подключается?  Через какой интерфейс. Мне не нравится подход с опросом по таймеру. Тупо получается. Можно ли настроить прерывания и задать уровни значений верхней и нижней границ в этом датчике? И по  подключению насосов.. У меня ж почти ассемблер.. Какой конкретно пин дергать по включению-выключению. И опять же.. Я понимаю что есть опыт работы что насосы включаются по времени.. Правильнее бы взять управление в свои руки и анализировать по результату работы.. Т.е. по показанию датчиков.. А если совсем по грамотному, то организовать ПИД регулятор.. Сегодня уже поздно. Я завтра напишу так же с названиями методов..Но, люблю все делать правильно.. А не абы как лишь бы работало))

Підвал форуму