Заборы, коровники, clojure, DSP
May. 20th, 2012 03:18 amПытался лечь спать, но два часа во сне решал проблему соединения блоков обработки сигналов. Пришлось встать и доделать. Под катом тестовое издевательство над DSL.
( Read more... )
Соединения можно еще упростить, если автоматически для каждого блока создать цепи с именами "блок-выход", а для входов ссылаться на них.
Каждый блок представляет собой объект (вернее, мап) с полями, где лежат функции типа "создать внешние ресурсы", "грохнуть внешние ресурсы", "начальное состояние", "рассчитать новое состояние и выходы, исходя из значений текущего состояния и входов" "закончились ли данные".
Пока из блоков сделаны только "чтение файла" "запись файла" "генератор синусоид" "блок с математической функцией внутри". Надо еще блок типа "фильтр" прикрутить, с коэффицентами прямой и рекурсивной части в качестве параметров.
Самая мякотка это функция combine-blocks - она разбирает переданные ей блоки на составные части и делает из них один большой блок, соединяя входы и выходы с помощью connections.
Еще я собираюсь во все атомарные блоки прикрутить функцию типа "сгенерировать уютную сишечьку для каждой составной части", а в combine-blocks сунуть объединение этих частей.
( Read more... )
Соединения можно еще упростить, если автоматически для каждого блока создать цепи с именами "блок-выход", а для входов ссылаться на них.
Каждый блок представляет собой объект (вернее, мап) с полями, где лежат функции типа "создать внешние ресурсы", "грохнуть внешние ресурсы", "начальное состояние", "рассчитать новое состояние и выходы, исходя из значений текущего состояния и входов" "закончились ли данные".
Пока из блоков сделаны только "чтение файла" "запись файла" "генератор синусоид" "блок с математической функцией внутри". Надо еще блок типа "фильтр" прикрутить, с коэффицентами прямой и рекурсивной части в качестве параметров.
Самая мякотка это функция combine-blocks - она разбирает переданные ей блоки на составные части и делает из них один большой блок, соединяя входы и выходы с помощью connections.
Еще я собираюсь во все атомарные блоки прикрутить функцию типа "сгенерировать уютную сишечьку для каждой составной части", а в combine-blocks сунуть объединение этих частей.