-----

- screen off on lkas
- speed limit change chirp on cruise

-----

- fix manager / error recording / restart service on fail
- fix gps tracking 
- dashcam
- better turning logic
- new settings UI
- experimental mode

------------


- revert a bunch of debugging in canfd

- configure it so i can toggle experimental via lkas
- if experimental enabled, then transmit experimental speed settings
  - but only if no lead car or not decelerating.  got to think of a condition
    where we reengage if the lead is going too slow and we need to let stock long decel
- implement speed limit controller as a simple Warning
- implement a simple resume from standstill hack

- flesh all this out and prepare for trip.  we will make auto match speed a future problem.
- continue on other projects and bench this one.


- this whole thing kind of sucks if i cant transmit buttons.  keep trying.
  - maybe curise_button and not cruise_button_alt will work?

-----
Latest:
- fix hiding path if disabled
- fix suspend on override behavior - override doesnt happen on always on lateral.  need alternative check.
- fix & test lane line narrow on lane change view
- the acc cancel does nothing.
- must simulate actual button presses.
- add radar dist, model dist, radar speed, model speed to debug hud
- add wheel touched, wheel override to hud

- fix always on lateral saying its on when actually fully engaged

Notes on speed limit override:
- we need to capture the original speed and feed it to vtsc and model whule we
  are under speed adjustment

------
- fix lane lines
- fix always on lateral detection
- position override under 25 mph suspends assist

- output the three speeds

- test - if engaged, adjust the speed twoards experimental one unit every second

- disable onroad on parked, not car off

- test that lkas button crashes controlsd, it should
- test that lkas button creates an alert, it should

- hyundai clsc https://github.com/garrettpall/openpilot/commit/5528198aa73d3d017d16ec4ca38306b11e5da0a8

- get ui to work on its own using no video feed, custom ui state inputs
  - dress up ui

- add debug elements to ui with a boolean at top of onroad.cc to enable/disable:
  - curviture
  - current speed limit
  - current cruise speed
  - current experimental mode speed
  - current distance to lead based on radar
  - current distance to lead based on model draw distance
  - current speed of lead

- when changing lanes and lateral disabled, draw a narrow single 'line' down center
- of computed path, and don't show side lane boundaries

- make side lanes 10% wider and the disengage mode 10% brighter
- make 25% of side lanes 50% darker than base

- hello world alert triggered by lkas btn
- hello world bootstrap dashboard

- button stuff:
- read paddle left (for full nudgeless lane change + blinker, reset to drive)
- read paddle right ("")
- read current drive mode, reset paddle mode to drive
- write pause, res, accel, mode, drive

wishlist: read / write info switcher, hvac, windows
wishlist: allow lane assist (not lane keep) on disengage

test:
- disable all canbus
- set speed limit during stock long

OP -> Oscar
- oscar - global clearpilot state var
- oscar.cs - clearpilot car state  (populated by op variables for cp.planner)
- oscar.ce - clearpilot car event queue (array that can be pushed to from car)
- oscar.ceh - event queue history (for debug)
- oscar.clog - error and console.log style one off messages to transmit to logs or watching consoles
Oscar -> OP
- oscar.ps - clearpilot planner state (data from cp)
- oscar.pe - clearpilot planner event (one time events from planner to be processed by openpilot)
- oscar.peh - planner event history (for debug)
- oscar.plog - retransmits clog as well as additional data for UI based log consoles

- oscar - clearpilot's planner - nodejs process that synchronizes state between all processes and makes decisions

- settings menu
- - branch selector - release, stage, dev.  Stage is my personal release branch.  Should always be able to easilly switch to stage while im in a development state.

- unfuck the directory structure.  new structure:
-

-------

- make functions
--- get_curvature
--- get_wheel_angle
--- get_distance_to_left_lane
--- get_distance_to_right_lane
--- are hands on wheel
--- distance traveled for lane change
--- distance to lead
- put these on a debug.

- Design alternate settings webview
- get speed limit display working
- get calculated experimental speed display working
- get button press emulation working
- get experimental mode working
- get speed limit set working
- dev enable lateral on blinker but no wheel pressure or no wheel presence
- bluetooth dummy device

- Test if activation fix works for op long, submit to frog maintain
- (test) disable all turn signal output commands - they are causing issues
- test "create_acc_cancel" on canfd on cc engaged on boot
- Create clearpilot process.  manages behaviors.
- experiment with reduced jerk values
- test toggle stop all canbus output
- check if acc_cancel events are being made on idle in stock long, if so, its a bug.

- Warn if significantly slower traffic

behaviors:

- getting head mode - turn off babysitter with an alert on the screen that it is off, suspend for 10 minutes
  - in this mode it should be extra grouchy if a curve is detected, slowdown is detected, or lane lines are weak

- lane change wrong way reenable lateral
- blinker signal wheel angle minor enable lateral
- wheel angle sharp only engage lateral if over lane edge unless hands not on wheel
- no lateral on turn signal - only enforce if model curvature > 10 degrees, hands on wheel, or wheel override (maybe curve not necessary?)


- basic lane keep - nudge wheel slightly if over line and still going straight and hands on wheel

- debug mode activated bu lkas

- See where disk free is going with NCDU and add smarter log rotation
  - Maybe this has logs where it could show what happened to frogpilot process?
- Test supress cruise icon on long paused
- increase center lane brightness 50% and make it blueish
- make drive mode color much brighter and 30% more white
- maintain lateral on icon on stop on dash
- prevent engagement if disengaged and brakes are applied, just enable lateral
- edit manager to log all stderr output
- find a way to disable all logging unless debug mode enabled (screen setting)
- set up dash cam recordings
- disable dash cam and record in real logger mode if debug mode is entered

- Integrate here maps api for traffic data
  - maybe even speed limit data? and location data?

- write a debug function for python that cats data to a screen terminal and optionally a log file
- if cruise already engaged when boot, just enable lateral
- reengage lateral if changing lanes and changing the wrong way
- speed limit display / over speed display / trigger set
- hack the buttons so we can press them
- auto set speed limit
- conditional experimenal mode
- ui conditional experimental mode, orange lines, show large font of desired speed in lower left
- hold down button to turn off screen, remember setting
- bluetooth dummy device
- dash cam
- change disk used on sidebar to disk free / percent used
-
- warn if lead is going more than 30 under my speed or 20 if auto mode is off

- mark os version different than release, forcing a os reinstall
- no prompt on os reinstall


Test features wizard:
- read paddles
- read speed
- adjust speed
- cancel / resume
- reset drive mode
- read radar distance
- activate blinkers


- disable changing lanes notices (tiny indicator is fine)

- speed limit display / over speed display
- hack the buttons so we can press them
- auto set speed limit
- conditional experimenal mode
- auto set hvac
- fix gps data
- disable cc on start if already enabled 
- chirp on stoplight
- resume when lead moving away
- hold down button to turn off screen, remember setting

- package up lateral pause lane change feature for merge into frogpilot

- bluetooth dummy device
- dash cam

- put dev logo in repo
- better detection of if logo is installed even without it generated (md5 in persistant dirs?)

- define forced settings
- define default settings
- update dash symbols logic

- fix webview
- write hello world new settings menu

- new settings for turn assist - no turn assist, or disable lateral when turn started
- new setting for always on lateral - reduced torque when cruise off and hands on wheel
- show wheel icon on display when hands on wheel
- event log - things like 'engaged op', 'lane change', etc. 
 - these events get fed to clearpilot event automator (state machine) 
 - record timestamp