Тема: Расчёт топлива по CAN-шине
Добрый день, коллеги.
Возник вопрос следующего характера.
Как известно, при подключении к CAN-шине ТС не видна верхняя граница бака, как на легковых ТС, так и на грузовых. На грузовых это более заметно - чем больше объём бака, тем больший объём топлива не видно, например при заправке до полного бака. Возникла идея считать этот "невидимый" объём с помощью расхода топлива, т.к. расход в любом случае по CAN-шине идёт отдельным параметром, даже когда датчик не видит объём топлива вверху бака. Идея заключается в следующем - построить логическую цепочку - если объём топлива меняется - считать по параметру объёма, если объём топлива не меняется, то считать по расходу топлива, как разницу между конечным и начальным показанием расхода (он идёт всегда нарастающим итогом).
Например, в 900-литровом баке было 400л, залито 500л (до полного), CAN увидел только 450л и следовательно максимальный объём он видит 850л. Далее, пока ТС не потратит эти 50л, уровень топлива падать не будет.
Т.е. если пробег идёт, а уровень топлива падает (как раз эта "невидимая" зона, отмечено красным) - то брать в основу данные с параметра расхода, если уровень топлива меняется - то данные с параметра уровня. Т.е. из нашего примера объём заправки он должен считать так:
450л (с уровня) + 50л. (с расхода) = как раз те самые 500л.
Возникла проблема, как настроить это в виалоне, подозреваю что через валидатор.