from openpilot . system . ui . lib . application import Widget
from openpilot . system . ui . lib . list_view import ListView , toggle_item
from openpilot . common . params import Params
# Description constants
DESCRIPTIONS = {
" OpenpilotEnabledToggle " : (
" Use the openpilot system for adaptive cruise control and lane keep driver assistance. " +
" Your attention is required at all times to use this feature. "
) ,
" DisengageOnAccelerator " : " When enabled, pressing the accelerator pedal will disengage openpilot. " ,
" IsLdwEnabled " : (
" Receive alerts to steer back into the lane when your vehicle drifts over a detected lane line " +
" without a turn signal activated while driving over 31 mph (50 km/h). "
) ,
" AlwaysOnDM " : " Enable driver monitoring even when openpilot is not engaged. " ,
' RecordFront ' : " Upload data from the driver facing camera and help improve the driver monitoring algorithm. " ,
" IsMetric " : " Display speed in km/h instead of mph. " ,
}
class TogglesLayout ( Widget ) :
def __init__ ( self ) :
self . _params = Params ( )
items = [
toggle_item (
" Enable openpilot " ,
DESCRIPTIONS [ " OpenpilotEnabledToggle " ] ,
self . _params . get_bool ( " OpenpilotEnabledToggle " ) ,
icon = " chffr_wheel.png " ,
) ,
toggle_item (
" Experimental Mode " ,
initial_state = self . _params . get_bool ( " ExperimentalMode " ) ,
icon = " experimental_white.png " ,
) ,
toggle_item (
" Disengage on Accelerator Pedal " ,
DESCRIPTIONS [ " DisengageOnAccelerator " ] ,
self . _params . get_bool ( " DisengageOnAccelerator " ) ,
icon = " disengage_on_accelerator.png " ,
) ,
toggle_item (
" Enable Lane Departure Warnings " ,
DESCRIPTIONS [ " IsLdwEnabled " ] ,
self . _params . get_bool ( " IsLdwEnabled " ) ,
icon = " warning.png " ,
) ,
toggle_item (
" Always-On Driver Monitoring " ,
DESCRIPTIONS [ " AlwaysOnDM " ] ,
self . _params . get_bool ( " AlwaysOnDM " ) ,
icon = " monitoring.png " ,
) ,
toggle_item (
" Record and Upload Driver Camera " ,
DESCRIPTIONS [ " RecordFront " ] ,
self . _params . get_bool ( " RecordFront " ) ,
icon = " monitoring.png " ,
) ,
toggle_item (
" Use Metric System " , DESCRIPTIONS [ " IsMetric " ] , self . _params . get_bool ( " IsMetric " ) , icon = " monitoring.png "
) ,
]
self . _list_widget = ListView ( items )
def render ( self , rect ) :
self . _list_widget . render ( rect )