@sh.add_function(dsp, outputs=['hybrid_modes'])
def calculate_hybrid_modes(ems_data, on_engine, after_treatment_warm_up_phases):
"""
Calculate the hybrid mode status (0: EV, 1: Parallel, 2: Serial).
:param ems_data:
EMS decision data.
:type ems_data: dict
:param on_engine:
If the engine is on [-].
:type on_engine: numpy.array
:param after_treatment_warm_up_phases:
Phases when engine is affected by the after treatment warm up [-].
:type after_treatment_warm_up_phases: numpy.array
:return:
Hybrid mode status (0: EV, 1: Parallel, 2: Serial).
:rtype: numpy.array
"""
modes = ems_data['hybrid_modes'].ravel().copy()
modes[after_treatment_warm_up_phases] = 2
modes[~on_engine] = 0
return modes