diff --git a/RELEASES.md b/RELEASES.md index 8b70c863..d531fbc6 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,5 +1,6 @@ Version 0.9.6 (2024-02-27) ======================== +* 新手指南汉化完成 (2024-03-30) * 新增CSLC巡航辅助 (2024-03-26) * 修正行车速度显示 (2024-03-19) * 新增DA驾驶模型 (2024-03-18) diff --git a/common/params_pyx.so b/common/params_pyx.so index fcea0da2..ae1bc319 100755 Binary files a/common/params_pyx.so and b/common/params_pyx.so differ diff --git a/panda/board/safety/safety_gm.h b/panda/board/safety/safety_gm.h index 84c5893d..096f2f60 100644 --- a/panda/board/safety/safety_gm.h +++ b/panda/board/safety/safety_gm.h @@ -154,8 +154,14 @@ static void gm_rx_hook(const CANPacket_t *to_push) { } if ((addr == 0xC9) && ((gm_hw == GM_CAM) || (gm_hw == GM_SDGM))) { - acc_main_on = GET_BIT(to_push, 29U); - brake_pressed = GET_BIT(to_push, 40U); + // https://github.com/FrogAi/FrogPilot/pull/124 + // acc_main_on = GET_BIT(to_push, 29U); + // brake_pressed = GET_BIT(to_push, 40U); + brake_pressed = GET_BIT(to_push, 40U) != 0U; + } + + if (addr == 0xC9) { + acc_main_on = GET_BIT(to_push, 29U) != 0U; } if (addr == 0x1C4) { diff --git a/selfdrive/assets/training_chs/step0.png b/selfdrive/assets/training_chs/step0.png new file mode 100644 index 00000000..7a08da88 Binary files /dev/null and b/selfdrive/assets/training_chs/step0.png differ diff --git a/selfdrive/assets/training_chs/step1.png b/selfdrive/assets/training_chs/step1.png new file mode 100644 index 00000000..79e3a2f6 Binary files /dev/null and b/selfdrive/assets/training_chs/step1.png differ diff --git a/selfdrive/assets/training_chs/step10.png b/selfdrive/assets/training_chs/step10.png new file mode 100644 index 00000000..0ee4e5b5 Binary files /dev/null and b/selfdrive/assets/training_chs/step10.png differ diff --git a/selfdrive/assets/training_chs/step11.png b/selfdrive/assets/training_chs/step11.png new file mode 100644 index 00000000..6607d9ab Binary files /dev/null and b/selfdrive/assets/training_chs/step11.png differ diff --git a/selfdrive/assets/training_chs/step12.png b/selfdrive/assets/training_chs/step12.png new file mode 100644 index 00000000..9188258c Binary files /dev/null and b/selfdrive/assets/training_chs/step12.png differ diff --git a/selfdrive/assets/training_chs/step13.png b/selfdrive/assets/training_chs/step13.png new file mode 100644 index 00000000..705d9b42 Binary files /dev/null and b/selfdrive/assets/training_chs/step13.png differ diff --git a/selfdrive/assets/training_chs/step14.png b/selfdrive/assets/training_chs/step14.png new file mode 100644 index 00000000..a9f269b6 Binary files /dev/null and b/selfdrive/assets/training_chs/step14.png differ diff --git a/selfdrive/assets/training_chs/step15.png b/selfdrive/assets/training_chs/step15.png new file mode 100644 index 00000000..3a204f3f Binary files /dev/null and b/selfdrive/assets/training_chs/step15.png differ diff --git a/selfdrive/assets/training_chs/step16.png b/selfdrive/assets/training_chs/step16.png new file mode 100644 index 00000000..3a0c8c28 Binary files /dev/null and b/selfdrive/assets/training_chs/step16.png differ diff --git a/selfdrive/assets/training_chs/step17.png b/selfdrive/assets/training_chs/step17.png new file mode 100644 index 00000000..be35778a Binary files /dev/null and b/selfdrive/assets/training_chs/step17.png differ diff --git a/selfdrive/assets/training_chs/step18.png b/selfdrive/assets/training_chs/step18.png new file mode 100644 index 00000000..0c622208 Binary files /dev/null and b/selfdrive/assets/training_chs/step18.png differ diff --git a/selfdrive/assets/training_chs/step2.png b/selfdrive/assets/training_chs/step2.png new file mode 100644 index 00000000..2309cee8 Binary files /dev/null and b/selfdrive/assets/training_chs/step2.png differ diff --git a/selfdrive/assets/training_chs/step3.png b/selfdrive/assets/training_chs/step3.png new file mode 100644 index 00000000..110aaf6f Binary files /dev/null and b/selfdrive/assets/training_chs/step3.png differ diff --git a/selfdrive/assets/training_chs/step4.png b/selfdrive/assets/training_chs/step4.png new file mode 100644 index 00000000..b90e6b0c Binary files /dev/null and b/selfdrive/assets/training_chs/step4.png differ diff --git a/selfdrive/assets/training_chs/step5.png b/selfdrive/assets/training_chs/step5.png new file mode 100644 index 00000000..8493c2d8 Binary files /dev/null and b/selfdrive/assets/training_chs/step5.png differ diff --git a/selfdrive/assets/training_chs/step6.png b/selfdrive/assets/training_chs/step6.png new file mode 100644 index 00000000..083484ec Binary files /dev/null and b/selfdrive/assets/training_chs/step6.png differ diff --git a/selfdrive/assets/training_chs/step7.png b/selfdrive/assets/training_chs/step7.png new file mode 100644 index 00000000..718ca8ce Binary files /dev/null and b/selfdrive/assets/training_chs/step7.png differ diff --git a/selfdrive/assets/training_chs/step8.png b/selfdrive/assets/training_chs/step8.png new file mode 100644 index 00000000..77625a3e Binary files /dev/null and b/selfdrive/assets/training_chs/step8.png differ diff --git a/selfdrive/assets/training_chs/step9.png b/selfdrive/assets/training_chs/step9.png new file mode 100644 index 00000000..abd6c225 Binary files /dev/null and b/selfdrive/assets/training_chs/step9.png differ diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index 967a1b03..c5b3c96f 100644 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -544,7 +544,7 @@ class Controls: self.events.add(EventName.paramsdTemporaryError) # conservative HW alert. if the data or frequency are off, locationd will throw an error - if any((self.sm.frame - self.sm.recv_frame[s])*DT_CTRL > 10. for s in self.sensor_packets): + if any((self.sm.frame - self.sm.recv_frame[s])*DT_CTRL > 10. for s in self.sensor_packets) and self.random_events: self.events.add(EventName.sensorDataInvalid) if not REPLAY: @@ -580,7 +580,7 @@ class Controls: # TODO: fix simulator if not SIMULATION or REPLAY: # Not show in first 1 km to allow for driving out of garage. This event shows after 5 minutes - if not self.sm['liveLocationKalman'].gpsOK and self.sm['liveLocationKalman'].inputsOK and (self.distance_traveled > 1000): + if not self.sm['liveLocationKalman'].gpsOK and self.sm['liveLocationKalman'].inputsOK and (self.distance_traveled > 1000) and self.random_events: self.events.add(EventName.noGps) if self.sm['liveLocationKalman'].gpsOK: self.distance_traveled = 0 diff --git a/selfdrive/frogpilot/fleetmanager/helpers.py b/selfdrive/frogpilot/fleetmanager/helpers.py index 1f423025..17f20af9 100644 --- a/selfdrive/frogpilot/fleetmanager/helpers.py +++ b/selfdrive/frogpilot/fleetmanager/helpers.py @@ -469,7 +469,7 @@ def get_all_toggle_values(): "MinSteerSpeedStandard", "MinSteerSpeedEngage", "DashSpeedRatio1", "DashSpeedRatio2", "DashSpeedRatio3", "SetSpeedRatio1", "SetSpeedRatio2", "SetSpeedRatio3", "SpeedDecimal", "FrogPilotDrives", "FrogPilotKilometers", "FrogPilotMinutes", "CarMake", "CarModel", - "DriverPrivacyProtection", "CSLCEnabled", "CalibrationCircle", + "DriverPrivacyProtectionFake", "CSLCEnabled", "CalibrationCycles", ] toggle_values = {} diff --git a/selfdrive/locationd/calibrationd.py b/selfdrive/locationd/calibrationd.py index bfdb9f82..facfe8a4 100755 --- a/selfdrive/locationd/calibrationd.py +++ b/selfdrive/locationd/calibrationd.py @@ -65,7 +65,7 @@ class Calibrator: # Read saved calibration self.params = Params() - self.calibration_circle = max(1, self.params.get_int("CalibrationCircle")) + self.calibration_cycles = max(1, self.params.get_int("CalibrationCycles")) calibration_params = self.params.get("CalibrationParams") rpy_init = RPY_INIT wide_from_device_euler = WIDE_FROM_DEVICE_EULER_INIT @@ -145,7 +145,7 @@ class Calibrator: else: self.calib_spread = np.zeros(3) - if self.valid_blocks < (INPUTS_NEEDED * self.calibration_circle): + if self.valid_blocks < (INPUTS_NEEDED * self.calibration_cycles): if self.cal_status == log.LiveCalibrationData.Status.recalibrating: self.cal_status = log.LiveCalibrationData.Status.recalibrating else: @@ -193,7 +193,7 @@ class Calibrator: else: height_certain = True - certain_if_calib = (rpy_certain and height_certain) or (self.valid_blocks < (INPUTS_NEEDED * self.calibration_circle)) + certain_if_calib = (rpy_certain and height_certain) or (self.valid_blocks < (INPUTS_NEEDED * self.calibration_cycles)) if not (straight_and_fast and certain_if_calib): return None @@ -237,14 +237,14 @@ class Calibrator: liveCalibration = msg.liveCalibration liveCalibration.validBlocks = self.valid_blocks liveCalibration.calStatus = self.cal_status - liveCalibration.calPerc = min(100 * (self.valid_blocks * BLOCK_SIZE + self.idx) // (INPUTS_NEEDED * self.calibration_circle * BLOCK_SIZE), 100) + liveCalibration.calPerc = min(100 * (self.valid_blocks * BLOCK_SIZE + self.idx) // (INPUTS_NEEDED * self.calibration_cycles * BLOCK_SIZE), 100) liveCalibration.rpyCalib = smooth_rpy.tolist() liveCalibration.rpyCalibSpread = self.calib_spread.tolist() liveCalibration.wideFromDeviceEuler = self.wide_from_device_euler.tolist() liveCalibration.height = self.height.tolist() if self.not_car: - liveCalibration.validBlocks = INPUTS_NEEDED * self.calibration_circle + liveCalibration.validBlocks = INPUTS_NEEDED * self.calibration_cycles liveCalibration.calStatus = log.LiveCalibrationData.Status.calibrated liveCalibration.calPerc = 100. liveCalibration.rpyCalib = [0, 0, 0] diff --git a/selfdrive/manager/manager.py b/selfdrive/manager/manager.py index 05a3575c..31e205f5 100755 --- a/selfdrive/manager/manager.py +++ b/selfdrive/manager/manager.py @@ -138,10 +138,11 @@ def manager_init() -> None: ("DragonPilotTune", "0"), ("DriverCamera", "0"), ("DriverPrivacyProtection", "0"), + ("DriverPrivacyProtectionFake", "0"), ("DriveStats", "1"), ("DynamicPathWidth", "0"), ("EngageVolume", "100"), - ("EVTable", "1"), + ("EVTable", "0"), ("ExperimentalModeActivation", "1"), ("ExperimentalModeViaDistance", "0"), ("ExperimentalModeViaLKAS", "0"), @@ -149,7 +150,7 @@ def manager_init() -> None: ("Fahrenheit", "0"), ("FireTheBabysitter", "0"), ("ForceAutoTune", "0"), - ("ForceFingerprint", "0"), + ("ForceFingerprint", "1"), ("ForceMPHDashboard", "0"), ("FPSCounter", "0"), ("FrogPilotDrives", "0"), @@ -282,7 +283,8 @@ def manager_init() -> None: ("SetSpeedRatio2", "1.055"), ("SetSpeedRatio3", "1.045"), ("SpeedDecimal", "0"), - ("CalibrationCircle", "1"), + ("CalibrationCycles", "1"), + ("OnStarGPS", "0"), ] if not PC: default_params.append(("LastUpdateTime", datetime.datetime.utcnow().isoformat().encode('utf8'))) diff --git a/selfdrive/manager/process_config.py b/selfdrive/manager/process_config.py index 76049981..0d2dfdcf 100644 --- a/selfdrive/manager/process_config.py +++ b/selfdrive/manager/process_config.py @@ -11,7 +11,7 @@ def driverview(started: bool, params: Params, params_memory: Params, CP: car.Car return started or params.get_bool("IsDriverViewEnabled") def drivermonitor(started: bool, params: Params, params_memory: Params, CP: car.CarParams) -> bool: - return not params.get_bool("DriverPrivacyProtection") and (started or params.get_bool("IsDriverViewEnabled")) + return (not params.get_bool("DriverPrivacyProtection")) and (started or params.get_bool("IsDriverViewEnabled")) def notcar(started: bool, params: Params, params_memory: Params, CP: car.CarParams) -> bool: return started and CP.notCar diff --git a/selfdrive/thermald/thermald.py b/selfdrive/thermald/thermald.py index 1a5fd94f..2ca0deee 100755 --- a/selfdrive/thermald/thermald.py +++ b/selfdrive/thermald/thermald.py @@ -327,10 +327,9 @@ def thermald_thread(end_event, hw_queue) -> None: # TODO: this should move to TICI.initialize_hardware, but we currently can't import params there if TICI: if not os.path.isfile("/persist/comma/living-in-the-moment"): - # if not Path("/data/media").is_mount(): - # set_offroad_alert_if_changed("Offroad_StorageMissing", True) - # else: - if Path("/data/media").is_mount(): + if not Path("/data/media").is_mount() and params.get_bool("RandomEvents"): + set_offroad_alert_if_changed("Offroad_StorageMissing", True) + else: # check for bad NVMe try: with open("/sys/block/nvme0n1/device/model") as f: diff --git a/selfdrive/ui/translations/main_zh-CHS.qm b/selfdrive/ui/translations/main_zh-CHS.qm index 500eb8a7..9158a578 100644 Binary files a/selfdrive/ui/translations/main_zh-CHS.qm and b/selfdrive/ui/translations/main_zh-CHS.qm differ diff --git a/selfdrive/ui/ui b/selfdrive/ui/ui index 3e9af8f3..ec4478a7 100755 Binary files a/selfdrive/ui/ui and b/selfdrive/ui/ui differ