Page 5 of 7

Re: Редактирование кривых УОЗ в реальном времени

Posted: Tue Jun 14, 2011 8:42 am
by STC
Таблицы можно как и раньше переключать на ходу. Единственная разница в том что раньше они напрямую брались из FLASH, а сейчас они в ОЗУ и при выборе нужной таблицы (и при запуске) загружаются либо из FLASH либо из EEPROM (если выбраны tuning_1 или tuning_2). Какая связь с ДПКВ не знаю, возможно есть баг в программе (может выходим за пределы массива и т.д.). Я еще раз все проверю после завершения работы на данной функцией.

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

Re: Редактирование кривых УОЗ в реальном времени

Posted: Sun Jun 26, 2011 5:36 pm
by STC
Почти закончил реализацию данной функции.
Таблицы уже считываются и отображаются. Осталось доделать редактирование и сохранение.

Re: Редактирование кривых УОЗ в реальном времени

Posted: Wed Jun 29, 2011 11:54 pm
by STC
Сделал редактирование кривых УОЗ в реальном времени (последние версии прошивки и менеджера из репозиториев уже позволяют это делать). Некоторое время еще уйдет на доводку и устранение мелких недоработок, но в целом данная функция готова. Сохранение еще не сделал.

Re: Редактирование кривых УОЗ в реальном времени

Posted: Sat Jul 02, 2011 1:37 pm
by Serj_K
STC
Возникла мысль по наглядности представления информации при редактировании таблиц в менеджере.
Если отображать графики так как сейчас (график УОЗ от оборотов + число расхода воздуха внизу), то теряется информация о положении текущей рабочей точки по оси давления (разрежения) воздуха. Рабочая точка может находится (по давлению) между двумя графиками УОЗ, а отображаться будет только один график УОЗ с дискретностью 1/16.
Предлагаю отображать таблицы при редактировании в виде сетки точек с координатными осями по оборотам и давлению, а УОЗ отображать в виде числа. Тогда можно будет подобрать режим двигателя так, чтобы рабочая точка максимально совпала с одной из точек в таблице. При этом будет максимально точное редактирование таблицы.
Жду окончательной версии прошивки с данной функцией для переноса в свой вариант.

Re: Редактирование кривых УОЗ в реальном времени

Posted: Tue Jul 05, 2011 9:23 am
by STC
Эту идею (или похожую) потом воплотим в жизнь (на это нужно много сил и времени). Сейчас я сделал именно так потому что так проще, но дальше можно провести ряд усовершенствований.
Ты можешь нарисовать что ты хочешь для наглядности?

Re: Редактирование кривых УОЗ в реальном времени

Posted: Tue Jul 05, 2011 11:34 am
by Serj_K
Намалевал картинку с тем, что имел в виду.
Здесь:
- чёрные горизонтальные линии с точками - кривые УОЗ для одного значения давления, "вид сверху".
- синяя линия - примерное изменение рабочей точки двигателя в приведенных координатах.
- зелёными кружками обведены точки таблицы, с которыми совпадает или почти совпадает рабочая точка двигателя. Здесь можно точно подстроить ОУЗ.
- красными кружками помечены рабочие точки двигателя, которые находятся "по давлению" между двумя кривыми. Здесь изменять УОЗ нельзя - не совпадает с точками таблицы, которые мы и изменяем.

Во время изменения кривых нужно подбтрать режим двигателя так, чтобы рабочая точка находилась как можно ближе к точке таблицы. И отображать на экране в таком виде. УОЗ в виде числа сбоку.

Re: Редактирование кривых УОЗ в реальном времени

Posted: Tue Jul 05, 2011 11:46 am
by STC
А значения в численном виде показывать только напротив тех точек, которые обведены кружками?
Не понимаю почему нельзя просто показывать на графике текущую используемую точку?

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

Re: Редактирование кривых УОЗ в реальном времени

Posted: Tue Jul 05, 2011 1:34 pm
by Serj_K
Значение текущего УОЗ просто отображается где-то рядом с графиком, может крупным шрифтом.
На графике отображается рабочая точка на выше приведенной сетке. По её положению на графике пользователь сам определяет - редактировать ближайшую точку таблицы или нет и какую именно.
Прямую (синюю) я нарисовал условно. Это траектория изменения положения рабочей точки двигателя. Она может быть и кривой, причём не линией, а полосой в зависимости от режима работы двигателя.
Пользователь устанавливает режим работы двигателя, подводя его рабочую точку к табличной и начинает её изменять. Потом переходит к следующей и т.д.
Статистику собирать наверное не нужно, просто на время процесса редактирования (до сохранения) изменённые точки закрасить в другой цвет, тогда пользователь будет видеть, какие точки он ещё не изменял.

Основная моя идея заключалась в изменении системы координат отображения таблицы - с "УОЗ от оборотов" на "давление от оборотов" для исключения редактирования, когда рабочая точка не находится возле точки таблицы. Так нагляднее и точнее.

Re: Редактирование кривых УОЗ в реальном времени

Posted: Thu Jul 07, 2011 10:20 am
by STC
Хорошо, теперь понял. Будем иметь ввиду. Нужно поискать библиотеку для рисования/редактирования 3D графиков с подходящей лицензией. Скорее всего прийдется рисовать самим.

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

Re: Редактирование кривых УОЗ в реальном времени

Posted: Thu Jul 07, 2011 12:59 pm
by Serj_K
Для отображения моего варианта графиков 3Д не нужно - он плоский. Кроме того, 3Д будет в принципе избыточным для редактирования таблиц.