Page 1 of 1

FSIO: Программируемые выводы

Posted: Wed Jul 09, 2014 11:14 am
by AndreyB
На английском форуме озвучили гениальное мне кажется предложение - гибко настраиваемые выводы. См. http://rusefi.com/forum/viewtopic.php?f=5&t=612

Re: Программируемые выводы

Posted: Wed Jul 09, 2014 4:09 pm
by AndreyB
Для начала я хочу на этот подход перевести реле бензонасоса и вентилятор, потом еще явно уже нужно управление генератором.

Самая простая логика будет работать как несколько логических И: (#1) sensor1 > value1 AND sensor2 < value2, параметризацию таких условий можно настраивать через TunerStudio в стиле
Image

Открытый вопрос - как сделать в интерфейсе TunerStudio настройку более сложны выражений, например (#2) (sensor1 < value2 and sensor2 > value2) OR (s3 > v3 AND s4 < v4 OR s5 < s5).

В самом крутом варианте можно вообще вводить строки с вырежениями, вот только Tuner Studio кажется строки не поддерживает. Или поддерживает?

Re: Программируемые выводы

Posted: Thu Jul 10, 2014 1:37 pm
by acab
Друзья, давайте забьём на ТюнерСтудию и сделаем rusEFIСтудию

Re: Программируемые выводы

Posted: Thu Jul 10, 2014 1:42 pm
by AndreyB
acab wrote:Друзья, давайте забьём на ТюнерСтудию и сделаем rusEFIСтудию
Как ты можешь помочь исполнению этой прекрасной идеи? Хочешь ли ты сделать https://sourceforge.net/p/rusefi/tickets/60/ - это про зум и передвижене влево-вправо в консоли?

Re: Программируемые выводы

Posted: Fri Jul 11, 2014 6:35 pm
by acab
russian wrote: Как ты можешь помочь исполнению этой прекрасной идеи? Хочешь ли ты сделать https://sourceforge.net/p/rusefi/tickets/60/ - это про зум и передвижене влево-вправо в консоли?
С этим сложнее. Всё что было у меня желание и умение - это написать прогу для управления на C# в ВизуалСтудии. Благо там не особо трудно и долго...

Кстати, самый крутой вариант, интерпретатор простенький сделать, чтобы простым понятным кодом можно было делать.
Вот как это сделано в одной приблуде:

Image

Re: Программируемые выводы

Posted: Thu Aug 28, 2014 8:02 pm
by stealth
Было бы здорово встроить Lua для подобных задач, простенький, легенький, очень гибко собирается и легко встраивается. Очень любят его для описания ИИ в игрушках юзать.

Пример как встроить http://csl.name/lua/

Отличный пример использования Lua для конфигурации приложения http://wiki.nginx.org/HttpLuaModule

Re: Программируемые выводы

Posted: Thu Aug 28, 2014 9:27 pm
by AndreyB
stealth wrote:Было бы здорово встроить Lua
во-первых, принимаю патчи.
во-вторых, технический вопрос - не захочет ли эта штука heap, malloc/free и так далее? потому что у нас по этому поводу ой.

Re: Программируемые выводы

Posted: Fri Aug 29, 2014 7:47 am
by stealth
russian wrote: во-вторых, технический вопрос - не захочет ли эта штука heap, malloc/free и так далее? потому что у нас по этому поводу ой.
Это хороший вопрос, требующий отдельного изучения. В менеджере памяти оно есть, но вот для каких компонентов используется хз, может как-то и без него обойтись можно.

Re: Программируемые выводы

Posted: Fri Oct 03, 2014 3:31 pm
by AndreyB
Начал это дело программировать - подробности в https://sourceforge.net/p/rusefi/tickets/102/

Re: Программируемые выводы

Posted: Wed Nov 19, 2014 2:11 am
by AndreyB
Бензонасос кстати уже какое-то время работает по формуле "time_since_boot 4 < rpm 0 > OR"

А теперь в прошивке можно сказать

eval "2 3 +"
или
eval "200 rpm <"

http://rusefi.com/wiki/index.php?title=Manual:Flexible_Logic

Re: FSIO: Программируемые выводы

Posted: Fri Dec 05, 2014 2:14 am
by AndreyB
Готово - можно управлять скважностью ШИМа заданными выражениями. В моём понимании, на этой основе можно сделать VVT и всё такое, подробнее на вики - http://rusefi.com/wiki/index.php?title=Manual:Flexible_Logic

Re: FSIO: Программируемые выводы

Posted: Fri Dec 05, 2014 5:31 pm
by AndreyB
буду рад tunerstudio патчу:

Сейчас уже есть gpioPin0-3, нужно добавить оставшиеся 12 каналов и нужно добавить 16 полей для частоты ШИМ - fsioFrequency - они кстати 16ти битные, я тут чутка начал память экономить.

Re: FSIO: Программируемые выводы

Posted: Wed Dec 10, 2014 1:01 pm
by AndreyB
Новая фича этого дела: пользовательские настройки, доступные из FSIO

В конфигурации у нас хранятся 16 чисел, которые мы можем настраивать через TS или нашу консоль - и обращаться к ним в FSIO выражениях:
FSIO:
0 fsio_setting
console command:
set_fsio_setting INDEX VAlUE
Please note that these indexes are starting with zero

Re: FSIO: Программируемые выводы

Posted: Wed Dec 10, 2014 1:22 pm
by puff
вот бы еще в консоли во вкладке LE controls (это ведь про это дело, да? что значит LE?) - списочек этот опубликовать. а то плохо понятно, что это за числа… или это просто массив из 16 чисел?
во всей этой логике нам доступно только rpm? или еще какие-то параметры?

Re: FSIO: Программируемые выводы

Posted: Wed Dec 10, 2014 1:37 pm
by AndreyB
puff wrote:вот бы еще в консоли во вкладке LE controls - списочек этот опубликовать. а то плохо понятно, что это за числа… или это просто массив из 16 чисел?
fsioinfo команда печатает этот массив. доступно мало, но чуть больше чем просто rpm - по ссылке есть ссылка на доступное

Re: FSIO: Программируемые выводы

Posted: Wed Dec 10, 2014 1:55 pm
by puff
все запутаннее становится)
Снимок экрана 2014-12-10 в 16.50.30.png
Снимок экрана 2014-12-10 в 16.50.30.png (138.75 KiB) Viewed 14890 times
rpm не увидел. поменять значение в массиве получилось. как обращатся в FSIO выражениях - хз (у меня получилось исключение в девконсоли). чую, придётся потом целый учебник писать по использованию русефи :-)

Re: FSIO: Программируемые выводы

Posted: Wed Dec 10, 2014 1:59 pm
by AndreyB
Учебник по этому вопросу - это http://rusefi.com/wiki/index.php?title=Manual:Flexible_Logic

Re: FSIO: Программируемые выводы

Posted: Wed Jan 14, 2015 7:12 am
by maddmr
А можно к этой ерунде прикрутить карту, хотя бы 8х8, что бы их можно было использовать в этих выражениях?
При этом каждая карта выглядит как функция от двух переменных: map1(var1,var2), map2(var3,var4)... При этом входные переменные, они же оси карты, не привязаны к конкретным параметрам и могут быть любые. Что бы можно было делать карты в любых осях. Хотя, если это сложно, то можно и привязать.
Тогда использование такой карты выглядит например так:

Code: Select all

set_fsio 1 "map1(rpm, load) > 0.5"

Re: FSIO: Программируемые выводы

Posted: Wed Jan 14, 2015 12:04 pm
by AndreyB
maddmr wrote:А можно к этой ерунде прикрутить карту, хотя бы 8х8, что бы их можно было использовать в этих выражениях?
Да, логиченое пожелание - https://sourceforge.net/p/rusefi/tickets/127/