diff --git a/selfdrive/car/car_helpers.py b/selfdrive/car/car_helpers.py index f2e1b37e38..4b6e8c828e 100644 --- a/selfdrive/car/car_helpers.py +++ b/selfdrive/car/car_helpers.py @@ -180,6 +180,11 @@ def get_car(logcan, sendcan): cloudlog.warning("car doesn't match any fingerprints: %r", fingerprints) candidate = "mock" + if Params().get("CarModel", encoding="utf8") is not None: + car_name = Params().get("CarModel", encoding="utf8") + car_name = car_name.rstrip('\n') + candidate = car_name + CarInterface, CarController, CarState = interfaces[candidate] car_params = CarInterface.get_params(candidate, fingerprints, car_fw) car_params.carVin = vin @@ -187,4 +192,4 @@ def get_car(logcan, sendcan): car_params.fingerprintSource = source car_params.fuzzyFingerprint = not exact_match - return CarInterface(car_params, CarController, CarState), car_params + return CarInterface(car_params, CarController, CarState), car_params, candidate diff --git a/selfdrive/common/params.cc b/selfdrive/common/params.cc index 99b0299b62..82f01d94d0 100644 --- a/selfdrive/common/params.cc +++ b/selfdrive/common/params.cc @@ -208,6 +208,7 @@ std::unordered_map keys = { {"Offroad_TemperatureTooHigh", CLEAR_ON_MANAGER_START}, {"Offroad_UnofficialHardware", CLEAR_ON_MANAGER_START}, {"Offroad_UpdateFailed", CLEAR_ON_MANAGER_START}, + {"CarModel", PERSISTENT}, }; } // namespace diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index 099ffea7c0..c2651127cf 100755 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -89,7 +89,7 @@ class Controls: print("Waiting for CAN messages...") get_one_can(self.can_sock) - self.CI, self.CP = get_car(self.can_sock, self.pm.sock['sendcan']) + self.CI, self.CP, candidate = get_car(self.can_sock, self.pm.sock['sendcan']) # read params self.is_metric = params.get_bool("IsMetric") diff --git a/selfdrive/manager/manager.py b/selfdrive/manager/manager.py index 49c223a9e6..5422a4bd88 100755 --- a/selfdrive/manager/manager.py +++ b/selfdrive/manager/manager.py @@ -36,6 +36,7 @@ def manager_init(): ("CompletedTrainingVersion", "0"), ("HasAcceptedTerms", "0"), ("OpenpilotEnabledToggle", "1"), + ("CarModel", "HYUNDAI IONIQ PHEV 2020"), ] if not PC: default_params.append(("LastUpdateTime", datetime.datetime.utcnow().isoformat().encode('utf8')))