|
|
@ -178,15 +178,7 @@ static void update_state(UIState *s) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (sm.updated("wideRoadCameraState")) { |
|
|
|
if (sm.updated("wideRoadCameraState")) { |
|
|
|
auto camera_state = sm["wideRoadCameraState"].getWideRoadCameraState(); |
|
|
|
scene.light_sensor = 100.0f - sm["wideRoadCameraState"].getWideRoadCameraState().getExposureValPercent(); |
|
|
|
|
|
|
|
|
|
|
|
float max_lines = 1618; |
|
|
|
|
|
|
|
float max_gain = 10.0; |
|
|
|
|
|
|
|
float max_ev = max_lines * max_gain / 6; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float ev = camera_state.getGain() * float(camera_state.getIntegLines()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
scene.light_sensor = std::clamp<float>(1.0 - (ev / max_ev), 0.0, 1.0); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
scene.started = sm["deviceState"].getDeviceState().getStarted() && scene.ignition; |
|
|
|
scene.started = sm["deviceState"].getDeviceState().getStarted() && scene.ignition; |
|
|
|
} |
|
|
|
} |
|
|
@ -286,8 +278,7 @@ void Device::resetInteractiveTimout() { |
|
|
|
void Device::updateBrightness(const UIState &s) { |
|
|
|
void Device::updateBrightness(const UIState &s) { |
|
|
|
float clipped_brightness = BACKLIGHT_OFFROAD; |
|
|
|
float clipped_brightness = BACKLIGHT_OFFROAD; |
|
|
|
if (s.scene.started) { |
|
|
|
if (s.scene.started) { |
|
|
|
// Scale to 0% to 100%
|
|
|
|
clipped_brightness = s.scene.light_sensor; |
|
|
|
clipped_brightness = 100.0 * s.scene.light_sensor; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// CIE 1931 - https://www.photonstophotos.net/GeneralTopics/Exposure/Psychometric_Lightness_and_Gamma.htm
|
|
|
|
// CIE 1931 - https://www.photonstophotos.net/GeneralTopics/Exposure/Psychometric_Lightness_and_Gamma.htm
|
|
|
|
if (clipped_brightness <= 8) { |
|
|
|
if (clipped_brightness <= 8) { |
|
|
|