IQ.Pilot Release Commit @ fddcfba
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
## Running IQ.Pilot
|
## Running IQ.Pilot
|
||||||
* A modern comma, or clone device to run this software (Comma 3, 3x, 4, Konik A1/M, Mr.One C3, C3 Lite)
|
* A modern comma, or clone device to run this software (Comma 3, 3x, 4, Konik A1/M, Mr.One C3, C3 Lite)
|
||||||
* One of [the supported cars](https://gitlvb.teallvbs.xyz/IQ.Lvbs/IQ.Pilot/src/branch/release/opendbc_repo/docs/CARS.md).
|
* One of [the supported cars](https://gitlvb.teallvbs.xyz/IQ.Lvbs/IQ.Pilot/src/branch/release/iqdbc_repo/docs/CARS.md).
|
||||||
* A [car harness](https://comma.ai/shop/products/car-harness) to connect to your car
|
* A [car harness](https://comma.ai/shop/products/car-harness) to connect to your car
|
||||||
#### Side Note: Volkswagen Group, and Tesla vehicles are currently the most compatible for use with IQ.Pilot, other manufacturers are supported at a minimum to the same level as stock openpilot, but are not a top priority while we are in beta.
|
#### Side Note: Volkswagen Group, and Tesla vehicles are currently the most compatible for use with IQ.Pilot, other manufacturers are supported at a minimum to the same level as stock openpilot, but are not a top priority while we are in beta.
|
||||||
## Installation
|
## Installation
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ Export('common')
|
|||||||
env_swaglog = env.Clone()
|
env_swaglog = env.Clone()
|
||||||
env_swaglog['CXXFLAGS'].append('-DSWAGLOG="\\"common/swaglog.h\\""')
|
env_swaglog['CXXFLAGS'].append('-DSWAGLOG="\\"common/swaglog.h\\""')
|
||||||
SConscript(['msgq_repo/SConscript'], exports={'env': env_swaglog})
|
SConscript(['msgq_repo/SConscript'], exports={'env': env_swaglog})
|
||||||
SConscript(['opendbc_repo/SConscript'], exports={'env': env_swaglog})
|
SConscript(['iqdbc_repo/SConscript'], exports={'env': env_swaglog})
|
||||||
|
|
||||||
SConscript(['cereal/SConscript'])
|
SConscript(['cereal/SConscript'])
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
../opendbc_repo/opendbc/car/car.capnp
|
../iqdbc_repo/iqdbc/car/car.capnp
|
||||||
@@ -319,7 +319,6 @@ struct IQOnroadEvent @0xf4621d3ee9233bc9 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct IQCarParams @0xd4189b5c8aca9f78 {
|
struct IQCarParams @0xd4189b5c8aca9f78 {
|
||||||
# Data fields first (packed into the struct data section), pointer field last.
|
|
||||||
# Ordinals are IQ-native; all consumers access by name. Live copies self-heal
|
# Ordinals are IQ-native; all consumers access by name. Live copies self-heal
|
||||||
# via CLEAR_ON_MANAGER_START on the "IQCarParams" param; the persistent cache
|
# via CLEAR_ON_MANAGER_START on the "IQCarParams" param; the persistent cache
|
||||||
# is versioned separately (see IQCarParamsPersistentV2).
|
# is versioned separately (see IQCarParamsPersistentV2).
|
||||||
@@ -329,6 +328,7 @@ struct IQCarParams @0xd4189b5c8aca9f78 {
|
|||||||
enableGasInterceptor @3 :Bool;
|
enableGasInterceptor @3 :Bool;
|
||||||
|
|
||||||
iqLateralNet @4 :LateralNet;
|
iqLateralNet @4 :LateralNet;
|
||||||
|
longitudinalStoppingSpeedOverride @5 :Float32; # m/s; zero keeps the upstream default
|
||||||
|
|
||||||
struct LateralNet {
|
struct LateralNet {
|
||||||
fuzzyFingerprint @0 :Bool;
|
fuzzyFingerprint @0 :Bool;
|
||||||
|
|||||||
@@ -103,14 +103,10 @@ Params::~Params() {
|
|||||||
assert(queue.empty());
|
assert(queue.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> Params::allKeys(ParamKeyFlag flag) const {
|
std::vector<std::string> Params::allKeys() const {
|
||||||
std::vector<std::string> ret;
|
std::vector<std::string> ret;
|
||||||
ret.reserve(keys.size());
|
for (auto &p : keys) {
|
||||||
for (const auto &[name, attrs] : keys) {
|
ret.push_back(p.first);
|
||||||
const bool matches = (flag == ALL) || ((attrs.flags & flag) != 0);
|
|
||||||
if (matches) {
|
|
||||||
ret.push_back(name);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ enum ParamKeyFlag {
|
|||||||
DONT_LOG = 0x20,
|
DONT_LOG = 0x20,
|
||||||
DEVELOPMENT_ONLY = 0x40,
|
DEVELOPMENT_ONLY = 0x40,
|
||||||
CLEAR_ON_IGNITION_ON = 0x80,
|
CLEAR_ON_IGNITION_ON = 0x80,
|
||||||
KONN3KT_BACKUP = 0x100,
|
|
||||||
ALL = 0xFFFFFFFF
|
ALL = 0xFFFFFFFF
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -46,7 +45,7 @@ public:
|
|||||||
Params(const Params&) = delete;
|
Params(const Params&) = delete;
|
||||||
Params& operator=(const Params&) = delete;
|
Params& operator=(const Params&) = delete;
|
||||||
|
|
||||||
std::vector<std::string> allKeys(ParamKeyFlag flag = ALL) const;
|
std::vector<std::string> allKeys() const;
|
||||||
bool checkKey(const std::string &key);
|
bool checkKey(const std::string &key);
|
||||||
ParamKeyFlag getKeyFlag(const std::string &key);
|
ParamKeyFlag getKeyFlag(const std::string &key);
|
||||||
ParamKeyType getKeyType(const std::string &key);
|
ParamKeyType getKeyType(const std::string &key);
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
||||||
{"AccessToken", {CLEAR_ON_MANAGER_START | DONT_LOG, STRING}},
|
{"AccessToken", {CLEAR_ON_MANAGER_START | DONT_LOG, STRING}},
|
||||||
{"AdbEnabled", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"AdbEnabled", {PERSISTENT, BOOL}},
|
||||||
{"AlwaysOnDM", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"AlwaysOnDM", {PERSISTENT, BOOL}},
|
||||||
{"ApiCache_Device", {PERSISTENT, STRING}},
|
{"ApiCache_Device", {PERSISTENT, STRING}},
|
||||||
{"ApiCache_FirehoseStats", {PERSISTENT, JSON}},
|
{"ApiCache_FirehoseStats", {PERSISTENT, JSON}},
|
||||||
{"AssistNowToken", {PERSISTENT, STRING}},
|
{"AssistNowToken", {PERSISTENT, STRING}},
|
||||||
@@ -31,20 +31,20 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
|||||||
{"CurrentBootlog", {PERSISTENT, STRING}},
|
{"CurrentBootlog", {PERSISTENT, STRING}},
|
||||||
{"CurrentRoute", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, STRING}},
|
{"CurrentRoute", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, STRING}},
|
||||||
{"DisableLogging", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
{"DisableLogging", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
||||||
{"DisablePowerDown", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"DisablePowerDown", {PERSISTENT, BOOL}},
|
||||||
{"DisableUpdates", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"DisableUpdates", {PERSISTENT, BOOL, "0"}},
|
||||||
{"UpdaterInstallMode", {PERSISTENT | KONN3KT_BACKUP, STRING, "download_and_install"}},
|
{"UpdaterInstallMode", {PERSISTENT, STRING, "download_and_install"}},
|
||||||
{"DisengageOnAccelerator", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"DisengageOnAccelerator", {PERSISTENT, BOOL, "0"}},
|
||||||
{"DongleId", {PERSISTENT, STRING}},
|
{"DongleId", {PERSISTENT, STRING}},
|
||||||
{"DoReboot", {CLEAR_ON_MANAGER_START, BOOL}},
|
{"DoReboot", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||||
{"DevicePowerState", {CLEAR_ON_MANAGER_START, STRING}},
|
{"DevicePowerState", {CLEAR_ON_MANAGER_START, STRING}},
|
||||||
{"DoShutdown", {CLEAR_ON_MANAGER_START, BOOL}},
|
{"DoShutdown", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||||
{"DoUninstall", {CLEAR_ON_MANAGER_START, BOOL}},
|
{"DoUninstall", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||||
{"DriverTooDistracted", {CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON, BOOL}},
|
{"DriverTooDistracted", {CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON, BOOL}},
|
||||||
{"AlphaLongitudinalEnabled", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"AlphaLongitudinalEnabled", {PERSISTENT, BOOL}},
|
||||||
{"ExperimentalMode", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"ExperimentalMode", {PERSISTENT, BOOL}},
|
||||||
{"ExperimentalModeConfirmed", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"ExperimentalModeConfirmed", {PERSISTENT, BOOL}},
|
||||||
{"FastSleep", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"FastSleep", {PERSISTENT, BOOL}},
|
||||||
{"FirmwareQueryDone", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
{"FirmwareQueryDone", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
||||||
{"ForcePowerDown", {PERSISTENT, BOOL}},
|
{"ForcePowerDown", {PERSISTENT, BOOL}},
|
||||||
{"GitAuthBlob", {PERSISTENT, BYTES}},
|
{"GitAuthBlob", {PERSISTENT, BYTES}},
|
||||||
@@ -52,21 +52,21 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
|||||||
{"GitCommit", {PERSISTENT, STRING}},
|
{"GitCommit", {PERSISTENT, STRING}},
|
||||||
{"GitCommitDate", {PERSISTENT, STRING}},
|
{"GitCommitDate", {PERSISTENT, STRING}},
|
||||||
{"GitDiff", {PERSISTENT, STRING}},
|
{"GitDiff", {PERSISTENT, STRING}},
|
||||||
{"GithubSshKeys", {PERSISTENT | KONN3KT_BACKUP, STRING}},
|
{"GithubSshKeys", {PERSISTENT, STRING}},
|
||||||
{"GithubUsername", {PERSISTENT | KONN3KT_BACKUP, STRING}},
|
{"GithubUsername", {PERSISTENT, STRING}},
|
||||||
{"GitRemote", {PERSISTENT, STRING}},
|
{"GitRemote", {PERSISTENT, STRING}},
|
||||||
{"GsmApn", {PERSISTENT | KONN3KT_BACKUP, STRING}},
|
{"GsmApn", {PERSISTENT, STRING}},
|
||||||
{"GsmMetered", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"GsmMetered", {PERSISTENT, BOOL, "1"}},
|
||||||
{"GsmRoaming", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"GsmRoaming", {PERSISTENT, BOOL}},
|
||||||
{"HardwareSerial", {PERSISTENT, STRING}},
|
{"HardwareSerial", {PERSISTENT, STRING}},
|
||||||
{"HasAcceptedTerms", {PERSISTENT, STRING, "0"}},
|
{"HasAcceptedTerms", {PERSISTENT, STRING, "0"}},
|
||||||
{"HephaestusdPid", {PERSISTENT, INT}},
|
{"HephaestusdPid", {PERSISTENT, INT}},
|
||||||
{"InstallDate", {PERSISTENT, TIME}},
|
{"InstallDate", {PERSISTENT, TIME}},
|
||||||
{"IsDriverViewEnabled", {CLEAR_ON_MANAGER_START, BOOL}},
|
{"IsDriverViewEnabled", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||||
{"IsEngaged", {PERSISTENT, BOOL}},
|
{"IsEngaged", {PERSISTENT, BOOL}},
|
||||||
{"IsLdwEnabled", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"IsLdwEnabled", {PERSISTENT, BOOL}},
|
||||||
{"IsLiveStreaming", {CLEAR_ON_MANAGER_START, BOOL}},
|
{"IsLiveStreaming", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||||
{"IsMetric", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"IsMetric", {PERSISTENT, BOOL}},
|
||||||
{"IsOffroad", {CLEAR_ON_MANAGER_START, BOOL}},
|
{"IsOffroad", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||||
{"IsOnroad", {PERSISTENT, BOOL}},
|
{"IsOnroad", {PERSISTENT, BOOL}},
|
||||||
{"IsRhdDetected", {PERSISTENT, BOOL}},
|
{"IsRhdDetected", {PERSISTENT, BOOL}},
|
||||||
@@ -77,7 +77,8 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
|||||||
{"JoystickAolRequest", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, STRING}},
|
{"JoystickAolRequest", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, STRING}},
|
||||||
{"Konn3ktSshKeys", {PERSISTENT, STRING}},
|
{"Konn3ktSshKeys", {PERSISTENT, STRING}},
|
||||||
{"Konn3ktBleTransportEnabled", {PERSISTENT, BOOL, "1"}},
|
{"Konn3ktBleTransportEnabled", {PERSISTENT, BOOL, "1"}},
|
||||||
{"LanguageSetting", {PERSISTENT | KONN3KT_BACKUP, STRING, "en"}},
|
{"Konn3ktLibdatachannelWebRTC", {PERSISTENT, BOOL, "0"}},
|
||||||
|
{"LanguageSetting", {PERSISTENT, STRING, "en"}},
|
||||||
{"LastAthenaPingTime", {CLEAR_ON_MANAGER_START, INT}},
|
{"LastAthenaPingTime", {CLEAR_ON_MANAGER_START, INT}},
|
||||||
{"LastGPSPosition", {PERSISTENT, STRING}},
|
{"LastGPSPosition", {PERSISTENT, STRING}},
|
||||||
{"LastManagerExitReason", {CLEAR_ON_MANAGER_START, STRING}},
|
{"LastManagerExitReason", {CLEAR_ON_MANAGER_START, STRING}},
|
||||||
@@ -88,7 +89,7 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
|||||||
{"LastUpdateRouteCount", {PERSISTENT, INT, "0"}},
|
{"LastUpdateRouteCount", {PERSISTENT, INT, "0"}},
|
||||||
{"LastUpdateTime", {PERSISTENT, TIME}},
|
{"LastUpdateTime", {PERSISTENT, TIME}},
|
||||||
{"LastUpdateUptimeOnroad", {PERSISTENT, FLOAT, "0.0"}},
|
{"LastUpdateUptimeOnroad", {PERSISTENT, FLOAT, "0.0"}},
|
||||||
{"LiveDelay", {PERSISTENT | KONN3KT_BACKUP, BYTES}},
|
{"LiveDelay", {PERSISTENT, BYTES}},
|
||||||
{"LiveParameters", {PERSISTENT, JSON}},
|
{"LiveParameters", {PERSISTENT, JSON}},
|
||||||
{"LiveParametersV2", {PERSISTENT, BYTES}},
|
{"LiveParametersV2", {PERSISTENT, BYTES}},
|
||||||
{"LivestreamEncoderBitrate", {CLEAR_ON_MANAGER_START | DONT_LOG, INT}},
|
{"LivestreamEncoderBitrate", {CLEAR_ON_MANAGER_START | DONT_LOG, INT}},
|
||||||
@@ -97,8 +98,8 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
|||||||
{"LocationFilterInitialState", {PERSISTENT, BYTES}},
|
{"LocationFilterInitialState", {PERSISTENT, BYTES}},
|
||||||
{"LateralManeuverMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
{"LateralManeuverMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
||||||
{"LongitudinalManeuverMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
{"LongitudinalManeuverMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
||||||
{"LongitudinalPersonality", {PERSISTENT | KONN3KT_BACKUP, INT, std::to_string(static_cast<int>(cereal::LongitudinalPersonality::STANDARD))}},
|
{"LongitudinalPersonality", {PERSISTENT, INT, std::to_string(static_cast<int>(cereal::LongitudinalPersonality::STANDARD))}},
|
||||||
{"NetworkMetered", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"NetworkMetered", {PERSISTENT, BOOL}},
|
||||||
{"ObdMultiplexingChanged", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
{"ObdMultiplexingChanged", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
||||||
{"ObdMultiplexingEnabled", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
{"ObdMultiplexingEnabled", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
||||||
{"Offroad_CarUnrecognized", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}},
|
{"Offroad_CarUnrecognized", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}},
|
||||||
@@ -114,26 +115,26 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
|||||||
{"Offroad_UnregisteredHardware", {CLEAR_ON_MANAGER_START, JSON}},
|
{"Offroad_UnregisteredHardware", {CLEAR_ON_MANAGER_START, JSON}},
|
||||||
{"Offroad_UpdateFailed", {CLEAR_ON_MANAGER_START, JSON}},
|
{"Offroad_UpdateFailed", {CLEAR_ON_MANAGER_START, JSON}},
|
||||||
{"OnroadCycleRequested", {CLEAR_ON_MANAGER_START, BOOL}},
|
{"OnroadCycleRequested", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||||
{"OpenpilotEnabledToggle", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"OpenpilotEnabledToggle", {PERSISTENT, BOOL, "1"}},
|
||||||
{"PandaHeartbeatLost", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
{"PandaHeartbeatLost", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
||||||
{"PandaSomResetTriggered", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
{"PandaSomResetTriggered", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
||||||
{"PandaSignatures", {CLEAR_ON_MANAGER_START, BYTES}},
|
{"PandaSignatures", {CLEAR_ON_MANAGER_START, BYTES}},
|
||||||
{"PrimeType", {PERSISTENT, INT}},
|
{"PrimeType", {PERSISTENT, INT}},
|
||||||
{"RecordAudio", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"RecordAudio", {PERSISTENT, BOOL}},
|
||||||
{"RecordAudioFeedback", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"RecordAudioFeedback", {PERSISTENT, BOOL, "0"}},
|
||||||
{"DashcamEnabled", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"DashcamEnabled", {PERSISTENT, BOOL, "1"}},
|
||||||
{"RecordFront", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"RecordFront", {PERSISTENT, BOOL}},
|
||||||
{"RecordFrontLock", {PERSISTENT, BOOL}}, // for the internal fleet
|
{"RecordFrontLock", {PERSISTENT, BOOL}}, // for the internal fleet
|
||||||
{"SecOCKey", {PERSISTENT | DONT_LOG | KONN3KT_BACKUP, STRING}},
|
{"SecOCKey", {PERSISTENT | DONT_LOG, STRING}},
|
||||||
{"ShowDebugInfo", {PERSISTENT, BOOL}},
|
{"ShowDebugInfo", {PERSISTENT, BOOL}},
|
||||||
{"RouteCount", {PERSISTENT, INT, "0"}},
|
{"RouteCount", {PERSISTENT, INT, "0"}},
|
||||||
{"SnoozeUpdate", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
{"SnoozeUpdate", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
||||||
{"SshEnabled", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"SshEnabled", {PERSISTENT, BOOL}},
|
||||||
{"TermsVersion", {PERSISTENT, STRING}},
|
{"TermsVersion", {PERSISTENT, STRING}},
|
||||||
{"TorqueBar", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"TorqueBar", {PERSISTENT, BOOL, "0"}},
|
||||||
{"TrainingVersion", {PERSISTENT, STRING}},
|
{"TrainingVersion", {PERSISTENT, STRING}},
|
||||||
{"UbloxAvailable", {PERSISTENT, BOOL}},
|
{"UbloxAvailable", {PERSISTENT, BOOL}},
|
||||||
{"UsbStorageEnabled", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"UsbStorageEnabled", {PERSISTENT, BOOL}},
|
||||||
{"UpdateAvailable", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
{"UpdateAvailable", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
||||||
{"UpdateFailedCount", {CLEAR_ON_MANAGER_START, INT}},
|
{"UpdateFailedCount", {CLEAR_ON_MANAGER_START, INT}},
|
||||||
{"UpdaterAvailableBranches", {PERSISTENT, STRING}},
|
{"UpdaterAvailableBranches", {PERSISTENT, STRING}},
|
||||||
@@ -151,132 +152,132 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
|||||||
|
|
||||||
// --- iqpilot params --- //
|
// --- iqpilot params --- //
|
||||||
{"ApiCache_DriveStats", {PERSISTENT, JSON}},
|
{"ApiCache_DriveStats", {PERSISTENT, JSON}},
|
||||||
{"AutoLaneChangeBsmDelay", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"AutoLaneChangeBsmDelay", {PERSISTENT, BOOL, "0"}},
|
||||||
{"AutoLaneChangeTimer", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"AutoLaneChangeTimer", {PERSISTENT, INT, "0"}},
|
||||||
{"NavExitLaneChange", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"NavExitLaneChange", {PERSISTENT, BOOL, "0"}},
|
||||||
{"IQBlinkerMinLateralSpeed", {PERSISTENT | KONN3KT_BACKUP, INT, "20"}}, // MPH or km/h
|
{"IQBlinkerMinLateralSpeed", {PERSISTENT, INT, "20"}}, // MPH or km/h
|
||||||
{"IQBlinkerPauseLateral", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"IQBlinkerPauseLateral", {PERSISTENT, INT, "0"}},
|
||||||
{"Brightness", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"Brightness", {PERSISTENT, INT, "0"}},
|
||||||
{"CarList", {PERSISTENT, JSON}},
|
{"CarList", {PERSISTENT, JSON}},
|
||||||
{"IQCarParams", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BYTES}},
|
{"IQCarParams", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BYTES}},
|
||||||
{"IQCarParamsCache", {CLEAR_ON_MANAGER_START, BYTES}},
|
{"IQCarParamsCache", {CLEAR_ON_MANAGER_START, BYTES}},
|
||||||
{"IQCarParamsPersistent", {PERSISTENT, BYTES}},
|
{"IQCarParamsPersistent", {PERSISTENT, BYTES}},
|
||||||
{"IQCarParamsPersistentV2", {PERSISTENT, BYTES}},
|
{"IQCarParamsPersistentV2", {PERSISTENT, BYTES}},
|
||||||
{"CarPlatformBundle", {PERSISTENT | KONN3KT_BACKUP, JSON}},
|
{"CarPlatformBundle", {PERSISTENT, JSON}},
|
||||||
{"ChevronInfo", {PERSISTENT | KONN3KT_BACKUP, INT, "4"}},
|
{"ChevronInfo", {PERSISTENT, INT, "4"}},
|
||||||
{"DeviceBootMode", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"DeviceBootMode", {PERSISTENT, INT, "0"}},
|
||||||
{"IQDevUIInfo", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"IQDevUIInfo", {PERSISTENT, INT, "0"}},
|
||||||
{"EnableEsimProvisioning", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"EnableEsimProvisioning", {PERSISTENT, BOOL, "1"}},
|
||||||
{"GreenLightAlert", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"GreenLightAlert", {PERSISTENT, BOOL, "0"}},
|
||||||
{"InteractivityTimeout", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"InteractivityTimeout", {PERSISTENT, INT, "0"}},
|
||||||
{"IsDevelopmentBranch", {CLEAR_ON_MANAGER_START, BOOL}},
|
{"IsDevelopmentBranch", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||||
{"IsReleaseIqBranch", {CLEAR_ON_MANAGER_START, BOOL}},
|
{"IsReleaseIqBranch", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||||
{"LastGPSPositionIQLoc", {PERSISTENT, STRING}},
|
{"LastGPSPositionIQLoc", {PERSISTENT, STRING}},
|
||||||
{"LeadDepartAlert", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"LeadDepartAlert", {PERSISTENT, BOOL, "0"}},
|
||||||
{"LongIncrementsEnabled", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"LongIncrementsEnabled", {PERSISTENT, BOOL, "0"}},
|
||||||
{"LongIncrementTapStep", {PERSISTENT | KONN3KT_BACKUP, INT, "1"}},
|
{"LongIncrementTapStep", {PERSISTENT, INT, "1"}},
|
||||||
{"LongIncrementHoldStep", {PERSISTENT | KONN3KT_BACKUP, INT, "5"}},
|
{"LongIncrementHoldStep", {PERSISTENT, INT, "5"}},
|
||||||
{"IQE2ESetSpeedMode", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"IQE2ESetSpeedMode", {PERSISTENT, INT, "0"}},
|
||||||
{"IQE2ESetSpeedUseCurrent", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"IQE2ESetSpeedUseCurrent", {PERSISTENT, BOOL, "0"}},
|
||||||
{"IQE2ESetSpeedMph", {PERSISTENT | KONN3KT_BACKUP, INT, "65"}},
|
{"IQE2ESetSpeedMph", {PERSISTENT, INT, "65"}},
|
||||||
{"MaxTimeOffroad", {PERSISTENT | KONN3KT_BACKUP, INT, "1800"}},
|
{"MaxTimeOffroad", {PERSISTENT, INT, "1800"}},
|
||||||
{"NightMode", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"NightMode", {PERSISTENT, BOOL, "0"}},
|
||||||
{"newLeadMpc", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"newLeadMpc", {PERSISTENT, BOOL, "1"}},
|
||||||
{"ModelRunnerTypeCache", {CLEAR_ON_ONROAD_TRANSITION, INT}},
|
{"ModelRunnerTypeCache", {CLEAR_ON_ONROAD_TRANSITION, INT}},
|
||||||
{"ForceOnroadUntil", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, INT, "0"}},
|
{"ForceOnroadUntil", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, INT, "0"}},
|
||||||
{"OffroadMode", {CLEAR_ON_MANAGER_START, BOOL}},
|
{"OffroadMode", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||||
{"Offroad_TiciSupport", {CLEAR_ON_MANAGER_START, JSON}},
|
{"Offroad_TiciSupport", {CLEAR_ON_MANAGER_START, JSON}},
|
||||||
{"OnroadScreenOffBrightness", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"OnroadScreenOffBrightness", {PERSISTENT, INT, "0"}},
|
||||||
{"OnroadScreenOffTimer", {PERSISTENT | KONN3KT_BACKUP, INT, "15"}},
|
{"OnroadScreenOffTimer", {PERSISTENT, INT, "15"}},
|
||||||
{"OnScreenNavigation", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"OnScreenNavigation", {PERSISTENT, BOOL, "0"}},
|
||||||
{"OnlineOSMaps", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"OnlineOSMaps", {PERSISTENT, BOOL, "1"}},
|
||||||
{"OfflineOSMaps", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"OfflineOSMaps", {PERSISTENT, BOOL, "0"}},
|
||||||
{"OSMapsStyleMode", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"OSMapsStyleMode", {PERSISTENT, INT, "0"}},
|
||||||
{"OSMapsHeadingUp", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"OSMapsHeadingUp", {PERSISTENT, BOOL, "1"}},
|
||||||
{"OfflineTilesBaseUrl", {PERSISTENT, STRING}},
|
{"OfflineTilesBaseUrl", {PERSISTENT, STRING}},
|
||||||
{"OnroadUploads", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"OnroadUploads", {PERSISTENT, BOOL, "1"}},
|
||||||
{"IQAlertSilence", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"IQAlertSilence", {PERSISTENT, BOOL, "0"}},
|
||||||
{"RainbowMode", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"RainbowMode", {PERSISTENT, BOOL, "0"}},
|
||||||
{"RocketFuel", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"RocketFuel", {PERSISTENT, BOOL, "0"}},
|
||||||
{"ShowTurnSignals", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"ShowTurnSignals", {PERSISTENT, BOOL, "0"}},
|
||||||
{"StandstillTimer", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"StandstillTimer", {PERSISTENT, BOOL, "0"}},
|
||||||
// AOL (Always On Lateral) params
|
// AOL (Always On Lateral) params
|
||||||
{"AolEnabled", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"AolEnabled", {PERSISTENT, BOOL, "1"}},
|
||||||
{"AolMainCruiseAllowed", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"AolMainCruiseAllowed", {PERSISTENT, BOOL, "1"}},
|
||||||
{"AolSteeringMode", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"AolSteeringMode", {PERSISTENT, INT, "0"}},
|
||||||
{"AolUnifiedEngagementMode", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"AolUnifiedEngagementMode", {PERSISTENT, BOOL, "1"}},
|
||||||
|
|
||||||
// Model Manager params
|
// Model Manager params
|
||||||
{"ModelManager_ActiveBundle", {PERSISTENT, JSON}},
|
{"ModelManager_ActiveBundle", {PERSISTENT, JSON}},
|
||||||
{"ModelManager_ClearCache", {CLEAR_ON_MANAGER_START, BOOL}},
|
{"ModelManager_ClearCache", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||||
{"ModelManager_DownloadIndex", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, INT, "-1"}},
|
{"ModelManager_DownloadIndex", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, INT, "-1"}},
|
||||||
{"ModelManager_Favs", {PERSISTENT | KONN3KT_BACKUP, STRING}},
|
{"ModelManager_Favs", {PERSISTENT, STRING}},
|
||||||
{"ModelManager_LastSyncTime", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, INT, "0"}},
|
{"ModelManager_LastSyncTime", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, INT, "0"}},
|
||||||
{"ModelManager_ModelsCache", {PERSISTENT | KONN3KT_BACKUP, JSON}},
|
{"ModelManager_ModelsCache", {PERSISTENT, JSON}},
|
||||||
|
|
||||||
// Neural Network Feed Forward
|
// Neural Network Feed Forward
|
||||||
{"NeuralNetworkFeedForward", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"NeuralNetworkFeedForward", {PERSISTENT, BOOL, "0"}},
|
||||||
|
|
||||||
// Backup Manager params
|
// Backup Manager params
|
||||||
{"BackupManager_CreateBackup", {PERSISTENT, BOOL}},
|
{"BackupManager_CreateBackup", {PERSISTENT, BOOL}},
|
||||||
{"BackupManager_RestoreVersion", {PERSISTENT, STRING}},
|
{"BackupManager_RestoreVersion", {PERSISTENT, STRING}},
|
||||||
|
|
||||||
// iqpilot car specific params
|
// iqpilot car specific params
|
||||||
{"HyundaiLongitudinalTuning", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"HyundaiLongitudinalTuning", {PERSISTENT, INT, "0"}},
|
||||||
{"SubaruStopAndGo", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"SubaruStopAndGo", {PERSISTENT, BOOL, "0"}},
|
||||||
{"SubaruStopAndGoManualParkingBrake", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"SubaruStopAndGoManualParkingBrake", {PERSISTENT, BOOL, "0"}},
|
||||||
{"TeslaCoopSteering", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"TeslaCoopSteering", {PERSISTENT, BOOL, "0"}},
|
||||||
{"ToyotaEnforceStockLongitudinal", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"ToyotaEnforceStockLongitudinal", {PERSISTENT, BOOL, "0"}},
|
||||||
{"VwPqEpsPatched", {PERSISTENT, BOOL}},
|
{"VwPqEpsPatched", {PERSISTENT, BOOL}},
|
||||||
{"ToyotaSnGHack", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"ToyotaSnGHack", {PERSISTENT, BOOL, "0"}},
|
||||||
{"pqhca5or7Toggle", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"pqhca5or7Toggle", {PERSISTENT, BOOL}},
|
||||||
{"iqMqbAccResume", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"iqMqbAccResume", {PERSISTENT, BOOL, "0"}},
|
||||||
{"iqMqbSteeringLockout", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"iqMqbSteeringLockout", {PERSISTENT, BOOL, "0"}},
|
||||||
{"AllowLateralWhenLongUnavailable", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"AllowLateralWhenLongUnavailable", {PERSISTENT, BOOL}},
|
||||||
|
|
||||||
{"IQDynamicMode", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"IQDynamicMode", {PERSISTENT, BOOL, "0"}},
|
||||||
{"IQDynamicBlendStockRadar", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"IQDynamicBlendStockRadar", {PERSISTENT, BOOL, "0"}},
|
||||||
{"IQDynamicConditionalCurves", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"IQDynamicConditionalCurves", {PERSISTENT, BOOL, "1"}},
|
||||||
{"IQDynamicConditionalSlowerLead", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"IQDynamicConditionalSlowerLead", {PERSISTENT, BOOL, "1"}},
|
||||||
{"IQDynamicConditionalStoppedLead", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"IQDynamicConditionalStoppedLead", {PERSISTENT, BOOL, "1"}},
|
||||||
{"IQDynamicConditionalModelStops", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"IQDynamicConditionalModelStops", {PERSISTENT, BOOL, "1"}},
|
||||||
{"IQDynamicConditionalSLCFallback", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"IQDynamicConditionalSLCFallback", {PERSISTENT, BOOL, "1"}},
|
||||||
{"IQDynamicConditionalSpeed", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "18.0"}},
|
{"IQDynamicConditionalSpeed", {PERSISTENT, FLOAT, "18.0"}},
|
||||||
{"IQDynamicConditionalLeadSpeed", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "24.0"}},
|
{"IQDynamicConditionalLeadSpeed", {PERSISTENT, FLOAT, "24.0"}},
|
||||||
{"IQDynamicModelStopTime", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "3.0"}},
|
{"IQDynamicModelStopTime", {PERSISTENT, FLOAT, "3.0"}},
|
||||||
{"IQDynamicMinimumForceStopLength", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "0.0"}},
|
{"IQDynamicMinimumForceStopLength", {PERSISTENT, FLOAT, "0.0"}},
|
||||||
{"IQForceStops", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"IQForceStops", {PERSISTENT, BOOL, "1"}},
|
||||||
{"IQCustomStopDistance", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}}, // meters, -2..2; negative = stop closer, positive = stop further back; independent of IQForceStops
|
{"IQCustomStopDistance", {PERSISTENT, INT, "0"}}, // meters, -2..2; negative = stop closer, positive = stop further back; independent of IQForceStops
|
||||||
{"BlindSpot", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"BlindSpot", {PERSISTENT, BOOL, "0"}},
|
||||||
{"IQExpandedStatus", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"IQExpandedStatus", {PERSISTENT, BOOL, "0"}},
|
||||||
{"HomePanelWidget", {PERSISTENT, STRING, "changelog"}},
|
{"HomePanelWidget", {PERSISTENT, STRING, "changelog"}},
|
||||||
|
|
||||||
// iqpilot model params
|
// iqpilot model params
|
||||||
{"CameraOffset", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "0.0"}},
|
{"CameraOffset", {PERSISTENT, FLOAT, "0.0"}},
|
||||||
{"LagdToggle", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"LagdToggle", {PERSISTENT, BOOL, "1"}},
|
||||||
{"LagdToggleDelay", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "0.2"}},
|
{"LagdToggleDelay", {PERSISTENT, FLOAT, "0.2"}},
|
||||||
{"LagdValueCache", {PERSISTENT, FLOAT, "0.2"}},
|
{"LagdValueCache", {PERSISTENT, FLOAT, "0.2"}},
|
||||||
{"LaneChangeBsd", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}}, // -1 ignore BSD, 0 default, 1 block lane change on BSD
|
{"LaneChangeBsd", {PERSISTENT, INT, "0"}}, // -1 ignore BSD, 0 default, 1 block lane change on BSD
|
||||||
{"LaneChangeContinuous", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}}, // 0 one-shot per blinker, 1 chain on held blinker (torque-gated)
|
{"LaneChangeContinuous", {PERSISTENT, BOOL, "0"}}, // 0 one-shot per blinker, 1 chain on held blinker (torque-gated)
|
||||||
{"LaneChangeDelay", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "0.0"}}, // tenths of a second; scaled by 0.1 in desire_helper
|
{"LaneChangeDelay", {PERSISTENT, FLOAT, "0.0"}}, // tenths of a second; scaled by 0.1 in desire_helper
|
||||||
{"LaneChangeNeedTorque", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}}, // <0 disable blinker LC, 0 default, >0 require torque
|
{"LaneChangeNeedTorque", {PERSISTENT, INT, "0"}}, // <0 disable blinker LC, 0 default, >0 require torque
|
||||||
{"IQLaneTurnDesire", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"IQLaneTurnDesire", {PERSISTENT, BOOL, "0"}},
|
||||||
{"IQLaneTurnValue", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "19.0"}},
|
{"IQLaneTurnValue", {PERSISTENT, FLOAT, "19.0"}},
|
||||||
{"PlanplusControl", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "1.0"}},
|
{"PlanplusControl", {PERSISTENT, FLOAT, "1.0"}},
|
||||||
{"LatSmoothSec", {PERSISTENT, INT, "13"}},
|
{"LatSmoothSec", {PERSISTENT, INT, "13"}},
|
||||||
{"ModelSmoothingEnabled", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"ModelSmoothingEnabled", {PERSISTENT, BOOL, "0"}},
|
||||||
{"ModelLatSmoothSec", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"ModelLatSmoothSec", {PERSISTENT, INT, "0"}},
|
||||||
|
|
||||||
// IQ.Pilot Parameters:
|
// IQ.Pilot Parameters:
|
||||||
{"ShowBSMIndicators", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"ShowBSMIndicators", {PERSISTENT, BOOL, "0"}},
|
||||||
{"ShowSteeringArc", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"ShowSteeringArc", {PERSISTENT, BOOL, "0"}},
|
||||||
{"ShowRoadName", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"ShowRoadName", {PERSISTENT, BOOL, "0"}},
|
||||||
{"ShowRealTimeAcceleration", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"ShowRealTimeAcceleration", {PERSISTENT, BOOL, "0"}},
|
||||||
{"ForceSmallUI", {PERSISTENT, BOOL, "0"}},
|
{"ForceSmallUI", {PERSISTENT, BOOL, "0"}},
|
||||||
{"DeveloperUI", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"DeveloperUI", {PERSISTENT, BOOL, "0"}},
|
||||||
{"OBrightness", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"OBrightness", {PERSISTENT, BOOL, "0"}},
|
||||||
{"OBrightnessManual", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"OBrightnessManual", {PERSISTENT, BOOL, "0"}},
|
||||||
{"OBrightnessDelay", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"OBrightnessDelay", {PERSISTENT, BOOL, "0"}},
|
||||||
{"MapAdvisorySpeedLimit", {CLEAR_ON_ONROAD_TRANSITION, FLOAT}},
|
{"MapAdvisorySpeedLimit", {CLEAR_ON_ONROAD_TRANSITION, FLOAT}},
|
||||||
{"MapdVersion", {PERSISTENT, STRING}},
|
{"MapdVersion", {PERSISTENT, STRING}},
|
||||||
{"MapdSettings", {PERSISTENT, JSON}}, // pfeiferj/mapd v2 persistent settings (read/written by the mapd binary)
|
{"MapdSettings", {PERSISTENT, JSON}}, // pfeiferj/mapd v2 persistent settings (read/written by the mapd binary)
|
||||||
@@ -290,10 +291,10 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
|||||||
{"AthenaNavigationRoute", {CLEAR_ON_MANAGER_START, JSON}},
|
{"AthenaNavigationRoute", {CLEAR_ON_MANAGER_START, JSON}},
|
||||||
{"NavigationActive", {CLEAR_ON_MANAGER_START, BOOL, "0"}},
|
{"NavigationActive", {CLEAR_ON_MANAGER_START, BOOL, "0"}},
|
||||||
{"NavigationDestination", {CLEAR_ON_MANAGER_START, JSON}},
|
{"NavigationDestination", {CLEAR_ON_MANAGER_START, JSON}},
|
||||||
{"NavigationEnabled", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"NavigationEnabled", {PERSISTENT, BOOL, "0"}},
|
||||||
{"NavigationDebugFlags", {PERSISTENT | KONN3KT_BACKUP, JSON}},
|
{"NavigationDebugFlags", {PERSISTENT, JSON}},
|
||||||
{"NavigationManeuvers", {CLEAR_ON_MANAGER_START, JSON}},
|
{"NavigationManeuvers", {CLEAR_ON_MANAGER_START, JSON}},
|
||||||
{"NavigationPreferences", {PERSISTENT | KONN3KT_BACKUP, JSON}},
|
{"NavigationPreferences", {PERSISTENT, JSON}},
|
||||||
{"NavigationRenderRoute", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}},
|
{"NavigationRenderRoute", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}},
|
||||||
{"NavigationRecalculateRoutes", {CLEAR_ON_MANAGER_START, BOOL, "0"}},
|
{"NavigationRecalculateRoutes", {CLEAR_ON_MANAGER_START, BOOL, "0"}},
|
||||||
{"NavigationRouteAlternatives", {CLEAR_ON_MANAGER_START, JSON}},
|
{"NavigationRouteAlternatives", {CLEAR_ON_MANAGER_START, JSON}},
|
||||||
@@ -311,37 +312,37 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
|||||||
{"OsmStateNames", {PERSISTENT, JSON}},
|
{"OsmStateNames", {PERSISTENT, JSON}},
|
||||||
{"OsmWayTest", {PERSISTENT, STRING}},
|
{"OsmWayTest", {PERSISTENT, STRING}},
|
||||||
{"RoadName", {CLEAR_ON_ONROAD_TRANSITION, STRING}},
|
{"RoadName", {CLEAR_ON_ONROAD_TRANSITION, STRING}},
|
||||||
{"RoadNameToggle", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"RoadNameToggle", {PERSISTENT, BOOL, "0"}},
|
||||||
{"IQSpeedAssistMode", {PERSISTENT | KONN3KT_BACKUP, INT, "1"}},
|
{"IQSpeedAssistMode", {PERSISTENT, INT, "1"}},
|
||||||
{"IQSpeedAssistOffsetType", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"IQSpeedAssistOffsetType", {PERSISTENT, INT, "0"}},
|
||||||
{"IQSpeedAssistPolicy", {PERSISTENT | KONN3KT_BACKUP, INT, "3"}},
|
{"IQSpeedAssistPolicy", {PERSISTENT, INT, "3"}},
|
||||||
{"IQSpeedAssistValueOffset", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"IQSpeedAssistValueOffset", {PERSISTENT, INT, "0"}},
|
||||||
{"SpeedLimitController", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"SpeedLimitController", {PERSISTENT, BOOL, "0"}},
|
||||||
{"ConstructionZoneAssist", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"ConstructionZoneAssist", {PERSISTENT, BOOL, "0"}},
|
||||||
{"VisionVehicleTracks", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"VisionVehicleTracks", {PERSISTENT, BOOL, "0"}},
|
||||||
{"AmbientTrackDots", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"AmbientTrackDots", {PERSISTENT, BOOL, "1"}},
|
||||||
{"ConstructionZoneSpeed", {PERSISTENT | KONN3KT_BACKUP, INT, "60"}},
|
{"ConstructionZoneSpeed", {PERSISTENT, INT, "60"}},
|
||||||
{"ShowSpeedLimits", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"ShowSpeedLimits", {PERSISTENT, BOOL, "0"}},
|
||||||
{"SLCPolicy", {PERSISTENT | KONN3KT_BACKUP, INT, "1"}},
|
{"SLCPolicy", {PERSISTENT, INT, "1"}},
|
||||||
{"SLCAutoConfirm", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"SLCAutoConfirm", {PERSISTENT, BOOL, "0"}},
|
||||||
{"SLCSetSpeedToLimit", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"SLCSetSpeedToLimit", {PERSISTENT, BOOL, "0"}},
|
||||||
{"speed_limit_offset1", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "0"}},
|
{"speed_limit_offset1", {PERSISTENT, FLOAT, "0"}},
|
||||||
{"speed_limit_offset2", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "0"}},
|
{"speed_limit_offset2", {PERSISTENT, FLOAT, "0"}},
|
||||||
{"speed_limit_offset3", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "0"}},
|
{"speed_limit_offset3", {PERSISTENT, FLOAT, "0"}},
|
||||||
{"speed_limit_offset4", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "0"}},
|
{"speed_limit_offset4", {PERSISTENT, FLOAT, "0"}},
|
||||||
{"speed_limit_offset5", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "0"}},
|
{"speed_limit_offset5", {PERSISTENT, FLOAT, "0"}},
|
||||||
{"speed_limit_offset6", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "0"}},
|
{"speed_limit_offset6", {PERSISTENT, FLOAT, "0"}},
|
||||||
{"speed_limit_offset7", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "0"}},
|
{"speed_limit_offset7", {PERSISTENT, FLOAT, "0"}},
|
||||||
{"SpeedLimitConfirmationHigher", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"SpeedLimitConfirmationHigher", {PERSISTENT, BOOL, "1"}},
|
||||||
{"SpeedLimitConfirmationLower", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"SpeedLimitConfirmationLower", {PERSISTENT, BOOL, "0"}},
|
||||||
{"MapSpeedLookaheadHigher", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "5.0"}},
|
{"MapSpeedLookaheadHigher", {PERSISTENT, FLOAT, "5.0"}},
|
||||||
{"MapSpeedLookaheadLower", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "5.0"}},
|
{"MapSpeedLookaheadLower", {PERSISTENT, FLOAT, "5.0"}},
|
||||||
{"SLCFallbackExperimentalMode", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"SLCFallbackExperimentalMode", {PERSISTENT, BOOL, "0"}},
|
||||||
{"SLCFallbackSetSpeed", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"SLCFallbackSetSpeed", {PERSISTENT, BOOL, "0"}},
|
||||||
{"SLCFallbackPreviousSpeedLimit", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"SLCFallbackPreviousSpeedLimit", {PERSISTENT, BOOL, "1"}},
|
||||||
{"SLCOverrideMethod", {PERSISTENT | KONN3KT_BACKUP, INT, "0"}},
|
{"SLCOverrideMethod", {PERSISTENT, INT, "0"}},
|
||||||
{"SLCOnlineFiller", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"SLCOnlineFiller", {PERSISTENT, BOOL, "0"}},
|
||||||
{"SLCDataCollection", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"SLCDataCollection", {PERSISTENT, BOOL, "0"}},
|
||||||
{"MapBoxRequests", {PERSISTENT, JSON}},
|
{"MapBoxRequests", {PERSISTENT, JSON}},
|
||||||
{"OverpassRequests", {PERSISTENT, JSON}},
|
{"OverpassRequests", {PERSISTENT, JSON}},
|
||||||
{"SpeedLimits", {PERSISTENT, JSON}},
|
{"SpeedLimits", {PERSISTENT, JSON}},
|
||||||
@@ -350,37 +351,37 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
|||||||
{"UpdateSpeedLimits", {CLEAR_ON_IGNITION_ON}},
|
{"UpdateSpeedLimits", {CLEAR_ON_IGNITION_ON}},
|
||||||
{"UpdateSpeedLimitsStatus", {CLEAR_ON_IGNITION_ON, STRING}},
|
{"UpdateSpeedLimitsStatus", {CLEAR_ON_IGNITION_ON, STRING}},
|
||||||
{"SLCMapboxSpeedLimit", {CLEAR_ON_ONROAD_TRANSITION, FLOAT, "0"}},
|
{"SLCMapboxSpeedLimit", {CLEAR_ON_ONROAD_TRANSITION, FLOAT, "0"}},
|
||||||
{"NavigateOnIQPilot", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"NavigateOnIQPilot", {PERSISTENT, BOOL, "1"}},
|
||||||
{"NavOnlineTargets", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"NavOnlineTargets", {PERSISTENT, BOOL, "1"}},
|
||||||
{"NavOfflineFallback", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"NavOfflineFallback", {PERSISTENT, BOOL, "1"}},
|
||||||
{"NavPreferOfflineSources", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"NavPreferOfflineSources", {PERSISTENT, BOOL, "0"}},
|
||||||
{"OfflineRoutingEnabled", {PERSISTENT | KONN3KT_BACKUP, BOOL, "1"}},
|
{"OfflineRoutingEnabled", {PERSISTENT, BOOL, "1"}},
|
||||||
{"OfflineRoutingOnly", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"OfflineRoutingOnly", {PERSISTENT, BOOL, "0"}},
|
||||||
{"OfflineRoutingHost", {PERSISTENT | KONN3KT_BACKUP, STRING, "http://127.0.0.1:8002"}},
|
{"OfflineRoutingHost", {PERSISTENT, STRING, "http://127.0.0.1:8002"}},
|
||||||
{"pqhca5or7Toggle", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"pqhca5or7Toggle", {PERSISTENT, BOOL}},
|
||||||
{"AllowLateralWhenLongUnavailable", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"AllowLateralWhenLongUnavailable", {PERSISTENT, BOOL}},
|
||||||
{"EnableCurvatureController", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"EnableCurvatureController", {PERSISTENT, BOOL, "0"}},
|
||||||
{"EnableSpeedLimitControl", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"EnableSpeedLimitControl", {PERSISTENT, BOOL, "0"}},
|
||||||
{"MapCurveSpeedController", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"MapCurveSpeedController", {PERSISTENT, BOOL, "0"}},
|
||||||
{"VisionCurveSpeedController", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"VisionCurveSpeedController", {PERSISTENT, BOOL, "0"}},
|
||||||
{"SpeedCameraAlerts", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"SpeedCameraAlerts", {PERSISTENT, BOOL, "0"}},
|
||||||
{"RedLightCameraAlerts", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"RedLightCameraAlerts", {PERSISTENT, BOOL, "0"}},
|
||||||
{"FlockCameraAlerts", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"FlockCameraAlerts", {PERSISTENT, BOOL, "0"}},
|
||||||
{"SpeedCameraSlowdown", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"SpeedCameraSlowdown", {PERSISTENT, BOOL, "0"}},
|
||||||
{"SpeedCameraSafetyFactor", {PERSISTENT | KONN3KT_BACKUP, FLOAT, "1.0"}},
|
{"SpeedCameraSafetyFactor", {PERSISTENT, FLOAT, "1.0"}},
|
||||||
{"NavCamerasData", {PERSISTENT, JSON}},
|
{"NavCamerasData", {PERSISTENT, JSON}},
|
||||||
{"EnableLongComfortMode", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"EnableLongComfortMode", {PERSISTENT, BOOL, "0"}},
|
||||||
{"EnableSpeedLimitPredicative", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"EnableSpeedLimitPredicative", {PERSISTENT, BOOL, "0"}},
|
||||||
{"EnableSLPredReactToSL", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"EnableSLPredReactToSL", {PERSISTENT, BOOL, "0"}},
|
||||||
{"EnableSLPredReactToCurves", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"EnableSLPredReactToCurves", {PERSISTENT, BOOL, "0"}},
|
||||||
{"ForceRHDForBSM", {PERSISTENT | KONN3KT_BACKUP, BOOL, "0"}},
|
{"ForceRHDForBSM", {PERSISTENT, BOOL, "0"}},
|
||||||
{"NavDestination", {PERSISTENT, STRING}},
|
{"NavDestination", {PERSISTENT, STRING}},
|
||||||
{"eBrakeActive", {CLEAR_ON_MANAGER_START | KONN3KT_BACKUP, BOOL, "0"}},
|
{"eBrakeActive", {CLEAR_ON_MANAGER_START, BOOL, "0"}},
|
||||||
{"Konn3ktAllowOffroadExternalCanTx", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"Konn3ktAllowOffroadExternalCanTx", {PERSISTENT, BOOL}},
|
||||||
{"MapboxToken", {PERSISTENT | KONN3KT_BACKUP, STRING}},
|
{"MapboxToken", {PERSISTENT, STRING}},
|
||||||
{"MapboxTokenQRCode", {PERSISTENT | KONN3KT_BACKUP, JSON}},
|
{"MapboxTokenQRCode", {PERSISTENT, JSON}},
|
||||||
{"TomTomToken", {PERSISTENT | KONN3KT_BACKUP, STRING}},
|
{"TomTomToken", {PERSISTENT, STRING}},
|
||||||
{"UIAccentColor", {PERSISTENT | KONN3KT_BACKUP, STRING, "#00FFF5"}},
|
{"UIAccentColor", {PERSISTENT, STRING, "#00FFF5"}},
|
||||||
{"AngleLateralControl", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"AngleLateralControl", {PERSISTENT, BOOL}},
|
||||||
{"ALCTorqueBlend", {PERSISTENT | KONN3KT_BACKUP, BOOL}},
|
{"ALCTorqueBlend", {PERSISTENT, BOOL}},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ cdef extern from "common/params.h":
|
|||||||
CLEAR_ON_OFFROAD_TRANSITION
|
CLEAR_ON_OFFROAD_TRANSITION
|
||||||
DEVELOPMENT_ONLY
|
DEVELOPMENT_ONLY
|
||||||
CLEAR_ON_IGNITION_ON
|
CLEAR_ON_IGNITION_ON
|
||||||
KONN3KT_BACKUP
|
|
||||||
ALL
|
ALL
|
||||||
|
|
||||||
cpdef enum ParamKeyType:
|
cpdef enum ParamKeyType:
|
||||||
@@ -44,7 +43,7 @@ cdef extern from "common/params.h":
|
|||||||
optional[string] getKeyDefaultValue(string) nogil
|
optional[string] getKeyDefaultValue(string) nogil
|
||||||
string getParamPath(string) nogil
|
string getParamPath(string) nogil
|
||||||
void clearAll(ParamKeyFlag)
|
void clearAll(ParamKeyFlag)
|
||||||
vector[string] allKeys(ParamKeyFlag)
|
vector[string] allKeys()
|
||||||
|
|
||||||
PYTHON_2_CPP = {
|
PYTHON_2_CPP = {
|
||||||
(str, STRING): lambda v: v,
|
(str, STRING): lambda v: v,
|
||||||
@@ -182,8 +181,8 @@ cdef class Params:
|
|||||||
def get_type(self, key):
|
def get_type(self, key):
|
||||||
return self.p.getKeyType(self.check_key(key))
|
return self.p.getKeyType(self.check_key(key))
|
||||||
|
|
||||||
def all_keys(self, flag=ParamKeyFlag.ALL):
|
def all_keys(self):
|
||||||
return self.p.allKeys(flag)
|
return self.p.allKeys()
|
||||||
|
|
||||||
def get_default_value(self, key):
|
def get_default_value(self, key):
|
||||||
cdef string k = self.check_key(key)
|
cdef string k = self.check_key(key)
|
||||||
|
|||||||
10
opendbc_repo/.gitignore → iqdbc_repo/.gitignore
vendored
10
opendbc_repo/.gitignore → iqdbc_repo/.gitignore
vendored
@@ -23,13 +23,13 @@ __pycache__/
|
|||||||
mull.yml
|
mull.yml
|
||||||
*.profraw
|
*.profraw
|
||||||
|
|
||||||
opendbc/can/build/
|
iqdbc/can/build/
|
||||||
opendbc/can/obj/
|
iqdbc/can/obj/
|
||||||
opendbc/dbc/*_generated.dbc
|
iqdbc/dbc/*_generated.dbc
|
||||||
|
|
||||||
cppcheck-addon-ctu-file-list
|
cppcheck-addon-ctu-file-list
|
||||||
opendbc/safety/tests/coverage-out
|
iqdbc/safety/tests/coverage-out
|
||||||
|
|
||||||
compile_commands.json
|
compile_commands.json
|
||||||
.mull/
|
.mull/
|
||||||
/opendbc/car/volkswagen/tests/test_mqb_iq_alc_state.py
|
/iqdbc/car/volkswagen/tests/test_mqb_iq_alc_state.py
|
||||||
3
iqdbc_repo/MANIFEST.in
Normal file
3
iqdbc_repo/MANIFEST.in
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
include iqdbc/car/car.capnp
|
||||||
|
include iqdbc/car/include/c++.capnp
|
||||||
|
recursive-include iqdbc/safety *.h
|
||||||
5
iqdbc_repo/SConscript
Normal file
5
iqdbc_repo/SConscript
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
SConscript(['iqdbc/dbc/SConscript'])
|
||||||
|
|
||||||
|
# test files
|
||||||
|
if GetOption('extras'):
|
||||||
|
SConscript('iqdbc/safety/tests/libsafety/SConscript')
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# pytest attempts to execute shell scripts while collecting
|
# pytest attempts to execute shell scripts while collecting
|
||||||
collect_ignore_glob = [
|
collect_ignore_glob = [
|
||||||
"opendbc/safety/tests/misra/*.sh",
|
"iqdbc/safety/tests/misra/*.sh",
|
||||||
"opendbc/safety/tests/misra/cppcheck/",
|
"iqdbc/safety/tests/misra/cppcheck/",
|
||||||
]
|
]
|
||||||
|
|
||||||
_ABSTRACT_BASES = frozenset(("CarSafetyTest", "AolSafetyTestBase", "SafetyTest", "SafetyTestBase"))
|
_ABSTRACT_BASES = frozenset(("CarSafetyTest", "AolSafetyTestBase", "SafetyTest", "SafetyTestBase"))
|
||||||
@@ -417,7 +417,7 @@
|
|||||||
|
|
||||||
# Types of Support
|
# Types of Support
|
||||||
|
|
||||||
**opendbc can support many more cars than it currently does.** There are a few reasons your car may not be supported.
|
**iqdbc can support many more cars than it currently does.** There are a few reasons your car may not be supported.
|
||||||
If your car doesn't fit into any of the incompatibility criteria here, then there's a good chance it can be supported!
|
If your car doesn't fit into any of the incompatibility criteria here, then there's a good chance it can be supported!
|
||||||
We're adding support for new cars all the time. **We don't have a roadmap for car support**, and in fact, most car
|
We're adding support for new cars all the time. **We don't have a roadmap for car support**, and in fact, most car
|
||||||
support comes from users like you!
|
support comes from users like you!
|
||||||
@@ -8,8 +8,8 @@ from inputs import get_gamepad
|
|||||||
|
|
||||||
from kbhit import KBHit
|
from kbhit import KBHit
|
||||||
|
|
||||||
from opendbc.car.structs import CarControl
|
from iqdbc.car.structs import CarControl
|
||||||
from opendbc.car.panda_runner import PandaRunner
|
from iqdbc.car.panda_runner import PandaRunner
|
||||||
|
|
||||||
|
|
||||||
class Keyboard:
|
class Keyboard:
|
||||||
@@ -2,5 +2,5 @@ import os
|
|||||||
|
|
||||||
DBC_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'dbc')
|
DBC_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'dbc')
|
||||||
|
|
||||||
# -I include path for e.g. "#include <opendbc/safety/safety.h>"
|
# -I include path for e.g. "#include <iqdbc/safety/safety.h>"
|
||||||
INCLUDE_PATH = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "../"))
|
INCLUDE_PATH = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "../"))
|
||||||
8
iqdbc_repo/iqdbc/can/__init__.py
Normal file
8
iqdbc_repo/iqdbc/can/__init__.py
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
from iqdbc.can.packer import CANPacker
|
||||||
|
from iqdbc.can.parser import CANParser, CANDefine
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
"CANDefine",
|
||||||
|
"CANParser",
|
||||||
|
"CANPacker",
|
||||||
|
]
|
||||||
@@ -4,19 +4,19 @@ from collections.abc import Callable
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from functools import cache
|
from functools import cache
|
||||||
|
|
||||||
from opendbc import DBC_PATH
|
from iqdbc import DBC_PATH
|
||||||
|
|
||||||
# TODO: these should just be passed in along with the DBC file
|
# TODO: these should just be passed in along with the DBC file
|
||||||
from opendbc.car.honda.hondacan import honda_checksum
|
from iqdbc.car.honda.hondacan import honda_checksum
|
||||||
from opendbc.car.toyota.toyotacan import toyota_checksum
|
from iqdbc.car.toyota.toyotacan import toyota_checksum
|
||||||
from opendbc.car.subaru.subarucan import subaru_checksum
|
from iqdbc.car.subaru.subarucan import subaru_checksum
|
||||||
from opendbc.car.chrysler.chryslercan import chrysler_checksum, fca_giorgio_checksum
|
from iqdbc.car.chrysler.chryslercan import chrysler_checksum, fca_giorgio_checksum
|
||||||
from opendbc.car.hyundai.hyundaicanfd import hkg_can_fd_checksum
|
from iqdbc.car.hyundai.hyundaicanfd import hkg_can_fd_checksum
|
||||||
from opendbc.car.volkswagen.mlbcan import volkswagen_mlb_checksum
|
from iqdbc.car.volkswagen.mlbcan import volkswagen_mlb_checksum
|
||||||
from opendbc.car.volkswagen.mqbcan import volkswagen_mqb_meb_checksum, volkswagen_mqb_meb_gen2_checksum, xor_checksum
|
from iqdbc.car.volkswagen.mqbcan import volkswagen_mqb_meb_checksum, volkswagen_mqb_meb_gen2_checksum, xor_checksum
|
||||||
from opendbc.car.tesla.teslacan import tesla_checksum
|
from iqdbc.car.tesla.teslacan import tesla_checksum
|
||||||
from opendbc.car.body.bodycan import body_checksum
|
from iqdbc.car.body.bodycan import body_checksum
|
||||||
from opendbc.car.psa.psacan import psa_checksum
|
from iqdbc.car.psa.psacan import psa_checksum
|
||||||
|
|
||||||
|
|
||||||
class SignalType:
|
class SignalType:
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import math
|
import math
|
||||||
|
|
||||||
from opendbc.car.carlog import carlog
|
from iqdbc.car.carlog import carlog
|
||||||
from opendbc.can.dbc import DBC, Signal, SignalType
|
from iqdbc.can.dbc import DBC, Signal, SignalType
|
||||||
|
|
||||||
|
|
||||||
class CANPacker:
|
class CANPacker:
|
||||||
@@ -3,8 +3,8 @@ import numbers
|
|||||||
from collections import defaultdict, deque
|
from collections import defaultdict, deque
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
|
|
||||||
from opendbc.car.carlog import carlog
|
from iqdbc.car.carlog import carlog
|
||||||
from opendbc.can.dbc import DBC, Signal
|
from iqdbc.can.dbc import DBC, Signal
|
||||||
|
|
||||||
|
|
||||||
MAX_BAD_COUNTER = 5
|
MAX_BAD_COUNTER = 5
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import glob
|
import glob
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from opendbc import DBC_PATH
|
from iqdbc import DBC_PATH
|
||||||
|
|
||||||
ALL_DBCS = [os.path.basename(dbc).split('.')[0] for dbc in
|
ALL_DBCS = [os.path.basename(dbc).split('.')[0] for dbc in
|
||||||
glob.glob(f"{DBC_PATH}/*.dbc")]
|
glob.glob(f"{DBC_PATH}/*.dbc")]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import time
|
import time
|
||||||
from opendbc.can import CANPacker, CANParser
|
from iqdbc.can import CANPacker, CANParser
|
||||||
|
|
||||||
|
|
||||||
def _benchmark(checks, n):
|
def _benchmark(checks, n):
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import copy
|
import copy
|
||||||
from opendbc.can import CANPacker, CANParser
|
from iqdbc.can import CANPacker, CANParser
|
||||||
|
|
||||||
|
|
||||||
class TestCanChecksums:
|
class TestCanChecksums:
|
||||||
@@ -7,7 +7,7 @@ class TestCanChecksums:
|
|||||||
def verify_checksum(self, subtests, dbc_file: str, msg_name: str, msg_addr: int, test_messages: list[bytes],
|
def verify_checksum(self, subtests, dbc_file: str, msg_name: str, msg_addr: int, test_messages: list[bytes],
|
||||||
checksum_field: str = 'CHECKSUM', counter_field = 'COUNTER'):
|
checksum_field: str = 'CHECKSUM', counter_field = 'COUNTER'):
|
||||||
"""
|
"""
|
||||||
Verify that opendbc calculates payload CRCs/checksums matching those received in known-good sample messages
|
Verify that iqdbc calculates payload CRCs/checksums matching those received in known-good sample messages
|
||||||
Depends on all non-zero bits in the sample message having a corresponding DBC signal, add UNKNOWN signals if needed
|
Depends on all non-zero bits in the sample message having a corresponding DBC signal, add UNKNOWN signals if needed
|
||||||
"""
|
"""
|
||||||
parser = CANParser(dbc_file, [(msg_name, 0)], 0)
|
parser = CANParser(dbc_file, [(msg_name, 0)], 0)
|
||||||
@@ -173,7 +173,7 @@ class TestCanChecksums:
|
|||||||
b'\xbd\xed\xbf\xff\xaa\x20\x20\x10',
|
b'\xbd\xed\xbf\xff\xaa\x20\x20\x10',
|
||||||
b'\x67\xee\xbf\xff\xaa\x20\x20\x10',
|
b'\x67\xee\xbf\xff\xaa\x20\x20\x10',
|
||||||
b'\x36\xef\xbf\xff\xaa\x20\x20\x10',
|
b'\x36\xef\xbf\xff\xaa\x20\x20\x10',
|
||||||
], counter_field="COUNTER_DISABLED") # see opendbc#1235
|
], counter_field="COUNTER_DISABLED") # see iqdbc#1235
|
||||||
|
|
||||||
def test_volkswagen_mqb_crc_esp_21(self, subtests):
|
def test_volkswagen_mqb_crc_esp_21(self, subtests):
|
||||||
self.verify_volkswagen_mqb_crc(subtests, "ESP_21", 0xFD, [
|
self.verify_volkswagen_mqb_crc(subtests, "ESP_21", 0xFD, [
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from opendbc.can import CANDefine, CANPacker, CANParser
|
from iqdbc.can import CANDefine, CANPacker, CANParser
|
||||||
from opendbc.can.tests import TEST_DBC
|
from iqdbc.can.tests import TEST_DBC
|
||||||
|
|
||||||
|
|
||||||
class TestCanParserPackerExceptions:
|
class TestCanParserPackerExceptions:
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
from opendbc.can import CANParser
|
from iqdbc.can import CANParser
|
||||||
from opendbc.can.tests import ALL_DBCS
|
from iqdbc.can.tests import ALL_DBCS
|
||||||
|
|
||||||
|
|
||||||
class TestDBCParser:
|
class TestDBCParser:
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
from opendbc.can import CANDefine
|
from iqdbc.can import CANDefine
|
||||||
from opendbc.can.tests import ALL_DBCS
|
from iqdbc.can.tests import ALL_DBCS
|
||||||
|
|
||||||
|
|
||||||
class TestCANDefine:
|
class TestCANDefine:
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
import pytest
|
import pytest
|
||||||
import random
|
import random
|
||||||
|
|
||||||
from opendbc.can import CANPacker, CANParser
|
from iqdbc.can import CANPacker, CANParser
|
||||||
from opendbc.can.tests import TEST_DBC
|
from iqdbc.can.tests import TEST_DBC
|
||||||
|
|
||||||
MAX_BAD_COUNTER = 5
|
MAX_BAD_COUNTER = 5
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
# Types of Support
|
# Types of Support
|
||||||
|
|
||||||
**opendbc can support many more cars than it currently does.** There are a few reasons your car may not be supported.
|
**iqdbc can support many more cars than it currently does.** There are a few reasons your car may not be supported.
|
||||||
If your car doesn't fit into any of the incompatibility criteria here, then there's a good chance it can be supported!
|
If your car doesn't fit into any of the incompatibility criteria here, then there's a good chance it can be supported!
|
||||||
We're adding support for new cars all the time. **We don't have a roadmap for car support**, and in fact, most car
|
We're adding support for new cars all the time. **We don't have a roadmap for car support**, and in fact, most car
|
||||||
support comes from users like you!
|
support comes from users like you!
|
||||||
@@ -54,9 +54,9 @@ Supported Models' section of each make [on our wiki](https://wiki.comma.ai/).
|
|||||||
|
|
||||||
Some notable works-in-progress:
|
Some notable works-in-progress:
|
||||||
* Honda
|
* Honda
|
||||||
* 2022-24 Acura RDX, commaai/opendbc#1967
|
* 2022-24 Acura RDX, commaai/iqdbc#1967
|
||||||
* Camera ACC stability improvements, commaai/opendbc#2192
|
* Camera ACC stability improvements, commaai/iqdbc#2192
|
||||||
* Alpha longitudinal stability improvements, commaai/opendbc#2347 and commaai/opendbc#2165
|
* Alpha longitudinal stability improvements, commaai/iqdbc#2347 and commaai/iqdbc#2165
|
||||||
|
|
||||||
## Incompatible
|
## Incompatible
|
||||||
|
|
||||||
@@ -4,9 +4,9 @@ from dataclasses import dataclass, field
|
|||||||
from enum import IntFlag, ReprEnum, StrEnum, EnumType, auto
|
from enum import IntFlag, ReprEnum, StrEnum, EnumType, auto
|
||||||
from dataclasses import replace
|
from dataclasses import replace
|
||||||
|
|
||||||
from opendbc.car import structs, uds
|
from iqdbc.car import structs, uds
|
||||||
from opendbc.car.can_definitions import CanData
|
from iqdbc.car.can_definitions import CanData
|
||||||
from opendbc.car.docs_definitions import CarDocs, ExtraCarDocs
|
from iqdbc.car.docs_definitions import CarDocs, ExtraCarDocs
|
||||||
|
|
||||||
DT_CTRL = 0.01 # car state and control loop timestep (s)
|
DT_CTRL = 0.01 # car state and control loop timestep (s)
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from opendbc.car.crc import CRC8BODY
|
from iqdbc.car.crc import CRC8BODY
|
||||||
|
|
||||||
|
|
||||||
def create_control(packer, torque_l, torque_r):
|
def create_control(packer, torque_l, torque_r):
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
from opendbc.can import CANPacker
|
from iqdbc.can import CANPacker
|
||||||
from opendbc.car import Bus, DT_CTRL
|
from iqdbc.car import Bus, DT_CTRL
|
||||||
from opendbc.car.common.pid import PIDController
|
from iqdbc.car.common.pid import PIDController
|
||||||
from opendbc.car.body import bodycan
|
from iqdbc.car.body import bodycan
|
||||||
from opendbc.car.body.values import SPEED_FROM_RPM
|
from iqdbc.car.body.values import SPEED_FROM_RPM
|
||||||
from opendbc.car.interfaces import CarControllerBase
|
from iqdbc.car.interfaces import CarControllerBase
|
||||||
|
|
||||||
MAX_TORQUE = 500
|
MAX_TORQUE = 500
|
||||||
MAX_TORQUE_RATE = 50
|
MAX_TORQUE_RATE = 50
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
from opendbc.can import CANParser
|
from iqdbc.can import CANParser
|
||||||
from opendbc.car import Bus, structs
|
from iqdbc.car import Bus, structs
|
||||||
from opendbc.car.interfaces import CarStateBase
|
from iqdbc.car.interfaces import CarStateBase
|
||||||
from opendbc.car.body.values import DBC
|
from iqdbc.car.body.values import DBC
|
||||||
|
|
||||||
|
|
||||||
class CarState(CarStateBase):
|
class CarState(CarStateBase):
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
""" AUTO-FORMATTED USING opendbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
|
""" AUTO-FORMATTED USING iqdbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
from opendbc.car.body.values import CAR
|
from iqdbc.car.body.values import CAR
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
|
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
import math
|
import math
|
||||||
from opendbc.car import get_safety_config, structs
|
from iqdbc.car import get_safety_config, structs
|
||||||
from opendbc.car.body.carcontroller import CarController
|
from iqdbc.car.body.carcontroller import CarController
|
||||||
from opendbc.car.body.carstate import CarState
|
from iqdbc.car.body.carstate import CarState
|
||||||
from opendbc.car.body.values import SPEED_FROM_RPM
|
from iqdbc.car.body.values import SPEED_FROM_RPM
|
||||||
from opendbc.car.interfaces import CarInterfaceBase
|
from iqdbc.car.interfaces import CarInterfaceBase
|
||||||
|
|
||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
from opendbc.car import Bus, CarSpecs, PlatformConfig, Platforms
|
from iqdbc.car import Bus, CarSpecs, PlatformConfig, Platforms
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
from opendbc.car.docs_definitions import CarDocs
|
from iqdbc.car.docs_definitions import CarDocs
|
||||||
from opendbc.car.fw_query_definitions import FwQueryConfig, Request, StdQueries
|
from iqdbc.car.fw_query_definitions import FwQueryConfig, Request, StdQueries
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
|
|
||||||
@@ -486,7 +486,7 @@ struct CarOutput {
|
|||||||
# ****** car param ******
|
# ****** car param ******
|
||||||
|
|
||||||
struct CarParams {
|
struct CarParams {
|
||||||
brand @0 :Text; # Designates which group a platform falls under. Each folder in opendbc/car is assigned one brand string
|
brand @0 :Text; # Designates which group a platform falls under. Each folder in iqdbc/car is assigned one brand string
|
||||||
carFingerprint @1 :Text;
|
carFingerprint @1 :Text;
|
||||||
fuzzyFingerprint @55 :Bool;
|
fuzzyFingerprint @55 :Bool;
|
||||||
|
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from opendbc.car import gen_empty_fingerprint
|
from iqdbc.car import gen_empty_fingerprint
|
||||||
from opendbc.car.can_definitions import CanRecvCallable, CanSendCallable
|
from iqdbc.car.can_definitions import CanRecvCallable, CanSendCallable
|
||||||
from opendbc.car.carlog import carlog
|
from iqdbc.car.carlog import carlog
|
||||||
from opendbc.car.structs import CarParams, CarParamsT
|
from iqdbc.car.structs import CarParams, CarParamsT
|
||||||
from opendbc.car.fingerprints import eliminate_incompatible_cars, all_legacy_fingerprint_cars
|
from iqdbc.car.fingerprints import eliminate_incompatible_cars, all_legacy_fingerprint_cars
|
||||||
from opendbc.car.fw_versions import ObdCallback, get_fw_versions_ordered, get_present_ecus, match_fw_to_car
|
from iqdbc.car.fw_versions import ObdCallback, get_fw_versions_ordered, get_present_ecus, match_fw_to_car
|
||||||
from opendbc.car.mock.values import CAR as MOCK
|
from iqdbc.car.mock.values import CAR as MOCK
|
||||||
from opendbc.car.values import BRANDS
|
from iqdbc.car.values import BRANDS
|
||||||
from opendbc.car.vin import get_vin, is_valid_vin, VIN_UNKNOWN
|
from iqdbc.car.vin import get_vin, is_valid_vin, VIN_UNKNOWN
|
||||||
|
|
||||||
from opendbc.iqpilot.car.interfaces import setup_interfaces as iqpilot_interfaces
|
from iqdbc.iqpilot.car.interfaces import setup_interfaces as iqpilot_interfaces
|
||||||
|
|
||||||
FRAME_FINGERPRINT = 100 # 1s
|
FRAME_FINGERPRINT = 100 # 1s
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ FRAME_FINGERPRINT = 100 # 1s
|
|||||||
def load_interfaces(brand_names):
|
def load_interfaces(brand_names):
|
||||||
ret = {}
|
ret = {}
|
||||||
for brand_name in brand_names:
|
for brand_name in brand_names:
|
||||||
path = f'opendbc.car.{brand_name}'
|
path = f'iqdbc.car.{brand_name}'
|
||||||
CarInterface = __import__(path + '.interface', fromlist=['CarInterface']).CarInterface
|
CarInterface = __import__(path + '.interface', fromlist=['CarInterface']).CarInterface
|
||||||
for model_name in brand_names[brand_name]:
|
for model_name in brand_names[brand_name]:
|
||||||
ret[model_name] = CarInterface
|
ret[model_name] = CarInterface
|
||||||
@@ -36,7 +36,7 @@ def _get_interface_names() -> dict[str, list[str]]:
|
|||||||
return brand_names
|
return brand_names
|
||||||
|
|
||||||
|
|
||||||
# imports from directory opendbc/car/<name>/
|
# imports from directory iqdbc/car/<name>/
|
||||||
interface_names = _get_interface_names()
|
interface_names = _get_interface_names()
|
||||||
interfaces = load_interfaces(interface_names)
|
interfaces = load_interfaces(interface_names)
|
||||||
|
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
from opendbc.can import CANPacker
|
from iqdbc.can import CANPacker
|
||||||
from opendbc.car import Bus, DT_CTRL
|
from iqdbc.car import Bus, DT_CTRL
|
||||||
from opendbc.car.lateral import apply_meas_steer_torque_limits
|
from iqdbc.car.lateral import apply_meas_steer_torque_limits
|
||||||
from opendbc.car.chrysler import chryslercan
|
from iqdbc.car.chrysler import chryslercan
|
||||||
from opendbc.car.chrysler.values import RAM_CARS, CarControllerParams, ChryslerFlags, RAM_DT
|
from iqdbc.car.chrysler.values import RAM_CARS, CarControllerParams, ChryslerFlags, RAM_DT
|
||||||
from opendbc.car.interfaces import CarControllerBase
|
from iqdbc.car.interfaces import CarControllerBase
|
||||||
|
|
||||||
from opendbc.iqpilot.car.chrysler.carcontroller_ext import CarControllerExt
|
from iqdbc.iqpilot.car.chrysler.carcontroller_ext import CarControllerExt
|
||||||
from opendbc.iqpilot.car.chrysler.aol import AolCarController
|
from iqdbc.iqpilot.car.chrysler.aol import AolCarController
|
||||||
from opendbc.iqpilot.car.chrysler.values_ext import ChryslerFlagsIQ
|
from iqdbc.iqpilot.car.chrysler.values_ext import ChryslerFlagsIQ
|
||||||
|
|
||||||
|
|
||||||
class CarController(CarControllerBase, AolCarController, CarControllerExt):
|
class CarController(CarControllerBase, AolCarController, CarControllerExt):
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
from opendbc.can import CANDefine, CANParser
|
from iqdbc.can import CANDefine, CANParser
|
||||||
from opendbc.car import Bus, create_button_events, structs
|
from iqdbc.car import Bus, create_button_events, structs
|
||||||
from opendbc.car.chrysler.values import DBC, STEER_THRESHOLD, RAM_CARS
|
from iqdbc.car.chrysler.values import DBC, STEER_THRESHOLD, RAM_CARS
|
||||||
from opendbc.car.common.conversions import Conversions as CV
|
from iqdbc.car.common.conversions import Conversions as CV
|
||||||
from opendbc.car.interfaces import CarStateBase
|
from iqdbc.car.interfaces import CarStateBase
|
||||||
|
|
||||||
from opendbc.iqpilot.car.chrysler.carstate_ext import CarStateExt
|
from iqdbc.iqpilot.car.chrysler.carstate_ext import CarStateExt
|
||||||
from opendbc.iqpilot.car.chrysler.aol import AolCarState
|
from iqdbc.iqpilot.car.chrysler.aol import AolCarState
|
||||||
|
|
||||||
ButtonType = structs.CarState.ButtonEvent.Type
|
ButtonType = structs.CarState.ButtonEvent.Type
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
from opendbc.car import structs
|
from iqdbc.car import structs
|
||||||
from opendbc.car.crc import CRC8J1850
|
from iqdbc.car.crc import CRC8J1850
|
||||||
from opendbc.car.chrysler.values import RAM_CARS
|
from iqdbc.car.chrysler.values import RAM_CARS
|
||||||
|
|
||||||
GearShifter = structs.CarState.GearShifter
|
GearShifter = structs.CarState.GearShifter
|
||||||
VisualAlert = structs.CarControl.HUDControl.VisualAlert
|
VisualAlert = structs.CarControl.HUDControl.VisualAlert
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
""" AUTO-FORMATTED USING opendbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
|
""" AUTO-FORMATTED USING iqdbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
from opendbc.car.chrysler.values import CAR
|
from iqdbc.car.chrysler.values import CAR
|
||||||
|
|
||||||
from opendbc.iqpilot.car.fingerprints_ext import merge_fw_versions
|
from iqdbc.iqpilot.car.fingerprints_ext import merge_fw_versions
|
||||||
from opendbc.iqpilot.car.chrysler.fingerprints_ext import FW_VERSIONS_EXT
|
from iqdbc.iqpilot.car.chrysler.fingerprints_ext import FW_VERSIONS_EXT
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
|
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
from opendbc.car import get_safety_config, structs
|
from iqdbc.car import get_safety_config, structs
|
||||||
from opendbc.car.chrysler.carcontroller import CarController
|
from iqdbc.car.chrysler.carcontroller import CarController
|
||||||
from opendbc.car.chrysler.carstate import CarState
|
from iqdbc.car.chrysler.carstate import CarState
|
||||||
from opendbc.car.chrysler.radar_interface import RadarInterface
|
from iqdbc.car.chrysler.radar_interface import RadarInterface
|
||||||
from opendbc.car.chrysler.values import CAR, RAM_HD, RAM_DT, RAM_CARS, ChryslerFlags, ChryslerSafetyFlags
|
from iqdbc.car.chrysler.values import CAR, RAM_HD, RAM_DT, RAM_CARS, ChryslerFlags, ChryslerSafetyFlags
|
||||||
from opendbc.car.interfaces import CarInterfaceBase
|
from iqdbc.car.interfaces import CarInterfaceBase
|
||||||
from opendbc.iqpilot.car.chrysler.values_ext import ChryslerFlagsIQ
|
from iqdbc.iqpilot.car.chrysler.values_ext import ChryslerFlagsIQ
|
||||||
|
|
||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
from opendbc.can import CANParser
|
from iqdbc.can import CANParser
|
||||||
from opendbc.car import Bus, structs
|
from iqdbc.car import Bus, structs
|
||||||
from opendbc.car.interfaces import RadarInterfaceBase
|
from iqdbc.car.interfaces import RadarInterfaceBase
|
||||||
from opendbc.car.chrysler.values import DBC
|
from iqdbc.car.chrysler.values import DBC
|
||||||
|
|
||||||
RADAR_MSGS_C = list(range(0x2c2, 0x2d4+2, 2)) # c_ messages 706,...,724
|
RADAR_MSGS_C = list(range(0x2c2, 0x2d4+2, 2)) # c_ messages 706,...,724
|
||||||
RADAR_MSGS_D = list(range(0x2a2, 0x2b4+2, 2)) # d_ messages
|
RADAR_MSGS_D = list(range(0x2a2, 0x2b4+2, 2)) # d_ messages
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
from enum import IntFlag
|
from enum import IntFlag
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
|
|
||||||
from opendbc.car import Bus, CarSpecs, DbcDict, PlatformConfig, Platforms, uds
|
from iqdbc.car import Bus, CarSpecs, DbcDict, PlatformConfig, Platforms, uds
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
from opendbc.car.docs_definitions import CarHarness, CarDocs, CarParts
|
from iqdbc.car.docs_definitions import CarHarness, CarDocs, CarParts
|
||||||
from opendbc.car.fw_query_definitions import FwQueryConfig, Request, p16
|
from iqdbc.car.fw_query_definitions import FwQueryConfig, Request, p16
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
|
|
||||||
@@ -2,9 +2,9 @@
|
|||||||
import jinja2
|
import jinja2
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from opendbc.car.common.basedir import BASEDIR
|
from iqdbc.car.common.basedir import BASEDIR
|
||||||
from opendbc.car.interfaces import get_interface_attr
|
from iqdbc.car.interfaces import get_interface_attr
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
|
|
||||||
@@ -17,11 +17,11 @@ FINGERPRINTS_PY_TEMPLATE = jinja2.Template("""
|
|||||||
{%- if FINGERPRINTS[brand] and brand != 'body' %}
|
{%- if FINGERPRINTS[brand] and brand != 'body' %}
|
||||||
# ruff: noqa: E501
|
# ruff: noqa: E501
|
||||||
{% endif %}
|
{% endif %}
|
||||||
\"\"\" AUTO-FORMATTED USING opendbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE.\"\"\"
|
\"\"\" AUTO-FORMATTED USING iqdbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE.\"\"\"
|
||||||
{% if FW_VERSIONS[brand] %}
|
{% if FW_VERSIONS[brand] %}
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
{% endif %}
|
{% endif %}
|
||||||
from opendbc.car.{{brand}}.values import CAR
|
from iqdbc.car.{{brand}}.values import CAR
|
||||||
{% if FW_VERSIONS[brand] %}
|
{% if FW_VERSIONS[brand] %}
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
from opendbc.car.carlog import carlog
|
from iqdbc.car.carlog import carlog
|
||||||
from opendbc.car.isotp_parallel_query import IsoTpParallelQuery
|
from iqdbc.car.isotp_parallel_query import IsoTpParallelQuery
|
||||||
|
|
||||||
EXT_DIAG_REQUEST = b'\x10\x03'
|
EXT_DIAG_REQUEST = b'\x10\x03'
|
||||||
EXT_DIAG_RESPONSE = b'\x50\x03'
|
EXT_DIAG_RESPONSE = b'\x50\x03'
|
||||||
@@ -9,15 +9,15 @@ from typing import get_args
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
from opendbc.car.common.basedir import BASEDIR
|
from iqdbc.car.common.basedir import BASEDIR
|
||||||
from opendbc.car import gen_empty_fingerprint
|
from iqdbc.car import gen_empty_fingerprint
|
||||||
from opendbc.car.structs import CarParams, IQCarParams
|
from iqdbc.car.structs import CarParams, IQCarParams
|
||||||
from opendbc.car.docs_definitions import BaseCarHarness, CarDocs, Device, ExtraCarDocs, Column, ExtraCarsColumn, CommonFootnote, PartType, SupportType
|
from iqdbc.car.docs_definitions import BaseCarHarness, CarDocs, Device, ExtraCarDocs, Column, ExtraCarsColumn, CommonFootnote, PartType, SupportType
|
||||||
from opendbc.car.car_helpers import interfaces
|
from iqdbc.car.car_helpers import interfaces
|
||||||
from opendbc.car.interfaces import get_interface_attr
|
from iqdbc.car.interfaces import get_interface_attr
|
||||||
from opendbc.car.values import Platform
|
from iqdbc.car.values import Platform
|
||||||
from opendbc.car.mock.values import CAR as MOCK
|
from iqdbc.car.mock.values import CAR as MOCK
|
||||||
from opendbc.car.extra_cars import CAR as EXTRA
|
from iqdbc.car.extra_cars import CAR as EXTRA
|
||||||
|
|
||||||
|
|
||||||
EXTRA_CARS_MD_OUT = os.path.join(BASEDIR, "../", "../", "docs", "CARS.md")
|
EXTRA_CARS_MD_OUT = os.path.join(BASEDIR, "../", "../", "docs", "CARS.md")
|
||||||
@@ -4,8 +4,8 @@ import copy
|
|||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
from opendbc.car.common.conversions import Conversions as CV
|
from iqdbc.car.common.conversions import Conversions as CV
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
|
|
||||||
GOOD_TORQUE_THRESHOLD = 1.0 # m/s^2
|
GOOD_TORQUE_THRESHOLD = 1.0 # m/s^2
|
||||||
MODEL_YEARS_RE = r"(?<= )((\d{4}-\d{2})|(\d{4}))(,|$)"
|
MODEL_YEARS_RE = r"(?<= )((\d{4}-\d{2})|(\d{4}))(,|$)"
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
from opendbc.car import make_tester_present_msg, uds
|
from iqdbc.car import make_tester_present_msg, uds
|
||||||
from opendbc.car.can_definitions import CanData, CanRecvCallable, CanSendCallable
|
from iqdbc.car.can_definitions import CanData, CanRecvCallable, CanSendCallable
|
||||||
from opendbc.car.carlog import carlog
|
from iqdbc.car.carlog import carlog
|
||||||
from opendbc.car.fw_query_definitions import EcuAddrBusType
|
from iqdbc.car.fw_query_definitions import EcuAddrBusType
|
||||||
|
|
||||||
|
|
||||||
def _is_tester_present_response(msg: CanData, subaddr: int | None = None) -> bool:
|
def _is_tester_present_response(msg: CanData, subaddr: int | None = None) -> bool:
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
|
||||||
from opendbc.car import structs, Platforms, ExtraPlatformConfig
|
from iqdbc.car import structs, Platforms, ExtraPlatformConfig
|
||||||
from opendbc.car.docs_definitions import ExtraCarDocs, SupportType
|
from iqdbc.car.docs_definitions import ExtraCarDocs, SupportType
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
from opendbc.car.interfaces import get_interface_attr
|
from iqdbc.car.interfaces import get_interface_attr
|
||||||
from opendbc.car.body.values import CAR as BODY
|
from iqdbc.car.body.values import CAR as BODY
|
||||||
from opendbc.car.chrysler.values import CAR as CHRYSLER
|
from iqdbc.car.chrysler.values import CAR as CHRYSLER
|
||||||
from opendbc.car.ford.values import CAR as FORD
|
from iqdbc.car.ford.values import CAR as FORD
|
||||||
from opendbc.car.gm.values import CAR as GM
|
from iqdbc.car.gm.values import CAR as GM
|
||||||
from opendbc.car.honda.values import CAR as HONDA
|
from iqdbc.car.honda.values import CAR as HONDA
|
||||||
from opendbc.car.hyundai.values import CAR as HYUNDAI
|
from iqdbc.car.hyundai.values import CAR as HYUNDAI
|
||||||
from opendbc.car.mazda.values import CAR as MAZDA
|
from iqdbc.car.mazda.values import CAR as MAZDA
|
||||||
from opendbc.car.mock.values import CAR as MOCK
|
from iqdbc.car.mock.values import CAR as MOCK
|
||||||
from opendbc.car.nissan.values import CAR as NISSAN
|
from iqdbc.car.nissan.values import CAR as NISSAN
|
||||||
from opendbc.car.subaru.values import CAR as SUBARU
|
from iqdbc.car.subaru.values import CAR as SUBARU
|
||||||
from opendbc.car.toyota.values import CAR as TOYOTA
|
from iqdbc.car.toyota.values import CAR as TOYOTA
|
||||||
from opendbc.car.volkswagen.values import CAR as VW
|
from iqdbc.car.volkswagen.values import CAR as VW
|
||||||
|
|
||||||
FW_VERSIONS = get_interface_attr('FW_VERSIONS', combine_brands=True, ignore_none=True)
|
FW_VERSIONS = get_interface_attr('FW_VERSIONS', combine_brands=True, ignore_none=True)
|
||||||
_FINGERPRINTS = get_interface_attr('FINGERPRINTS', combine_brands=True, ignore_none=True)
|
_FINGERPRINTS = get_interface_attr('FINGERPRINTS', combine_brands=True, ignore_none=True)
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
import math
|
import math
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from opendbc.can import CANPacker
|
from iqdbc.can import CANPacker
|
||||||
from opendbc.car import ACCELERATION_DUE_TO_GRAVITY, Bus, DT_CTRL, apply_hysteresis, structs
|
from iqdbc.car import ACCELERATION_DUE_TO_GRAVITY, Bus, DT_CTRL, apply_hysteresis, structs
|
||||||
from opendbc.car.lateral import ISO_LATERAL_ACCEL, apply_std_steer_angle_limits
|
from iqdbc.car.lateral import ISO_LATERAL_ACCEL, apply_std_steer_angle_limits
|
||||||
from opendbc.car.ford import fordcan
|
from iqdbc.car.ford import fordcan
|
||||||
from opendbc.car.ford.values import CarControllerParams, FordFlags, CAR
|
from iqdbc.car.ford.values import CarControllerParams, FordFlags, CAR
|
||||||
from opendbc.car.interfaces import CarControllerBase, V_CRUISE_MAX
|
from iqdbc.car.interfaces import CarControllerBase, V_CRUISE_MAX
|
||||||
|
|
||||||
LongCtrlState = structs.CarControl.Actuators.LongControlState
|
LongCtrlState = structs.CarControl.Actuators.LongControlState
|
||||||
VisualAlert = structs.CarControl.HUDControl.VisualAlert
|
VisualAlert = structs.CarControl.HUDControl.VisualAlert
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
from opendbc.can import CANDefine, CANParser
|
from iqdbc.can import CANDefine, CANParser
|
||||||
from opendbc.car import Bus, create_button_events, structs
|
from iqdbc.car import Bus, create_button_events, structs
|
||||||
from opendbc.car.common.conversions import Conversions as CV
|
from iqdbc.car.common.conversions import Conversions as CV
|
||||||
from opendbc.car.ford.fordcan import CanBus
|
from iqdbc.car.ford.fordcan import CanBus
|
||||||
from opendbc.car.ford.values import DBC, CarControllerParams, FordFlags
|
from iqdbc.car.ford.values import DBC, CarControllerParams, FordFlags
|
||||||
from opendbc.car.interfaces import CarStateBase
|
from iqdbc.car.interfaces import CarStateBase
|
||||||
|
|
||||||
from opendbc.iqpilot.car.ford.aol import AolCarState
|
from iqdbc.iqpilot.car.ford.aol import AolCarState
|
||||||
|
|
||||||
ButtonType = structs.CarState.ButtonEvent.Type
|
ButtonType = structs.CarState.ButtonEvent.Type
|
||||||
GearShifter = structs.CarState.GearShifter
|
GearShifter = structs.CarState.GearShifter
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
""" AUTO-FORMATTED USING opendbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
|
""" AUTO-FORMATTED USING iqdbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
from opendbc.car.ford.values import CAR
|
from iqdbc.car.ford.values import CAR
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from opendbc.car import CanBusBase, structs
|
from iqdbc.car import CanBusBase, structs
|
||||||
|
|
||||||
HUDControl = structs.CarControl.HUDControl
|
HUDControl = structs.CarControl.HUDControl
|
||||||
|
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from opendbc.car import Bus, get_safety_config, structs
|
from iqdbc.car import Bus, get_safety_config, structs
|
||||||
from opendbc.car.carlog import carlog
|
from iqdbc.car.carlog import carlog
|
||||||
from opendbc.car.common.conversions import Conversions as CV
|
from iqdbc.car.common.conversions import Conversions as CV
|
||||||
from opendbc.car.ford.carcontroller import CarController
|
from iqdbc.car.ford.carcontroller import CarController
|
||||||
from opendbc.car.ford.carstate import CarState
|
from iqdbc.car.ford.carstate import CarState
|
||||||
from opendbc.car.ford.fordcan import CanBus
|
from iqdbc.car.ford.fordcan import CanBus
|
||||||
from opendbc.car.ford.radar_interface import RadarInterface
|
from iqdbc.car.ford.radar_interface import RadarInterface
|
||||||
from opendbc.car.ford.values import CarControllerParams, DBC, Ecu, FordFlags, RADAR, FordSafetyFlags
|
from iqdbc.car.ford.values import CarControllerParams, DBC, Ecu, FordFlags, RADAR, FordSafetyFlags
|
||||||
from opendbc.car.interfaces import CarInterfaceBase
|
from iqdbc.car.interfaces import CarInterfaceBase
|
||||||
|
|
||||||
TransmissionType = structs.CarParams.TransmissionType
|
TransmissionType = structs.CarParams.TransmissionType
|
||||||
|
|
||||||
@@ -3,12 +3,12 @@ from typing import cast
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from math import cos, sin
|
from math import cos, sin
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from opendbc.can import CANParser
|
from iqdbc.can import CANParser
|
||||||
from opendbc.car import Bus, structs
|
from iqdbc.car import Bus, structs
|
||||||
from opendbc.car.common.conversions import Conversions as CV
|
from iqdbc.car.common.conversions import Conversions as CV
|
||||||
from opendbc.car.ford.fordcan import CanBus
|
from iqdbc.car.ford.fordcan import CanBus
|
||||||
from opendbc.car.ford.values import DBC, RADAR
|
from iqdbc.car.ford.values import DBC, RADAR
|
||||||
from opendbc.car.interfaces import RadarInterfaceBase
|
from iqdbc.car.interfaces import RadarInterfaceBase
|
||||||
|
|
||||||
DELPHI_ESR_RADAR_MSGS = list(range(0x500, 0x540))
|
DELPHI_ESR_RADAR_MSGS = list(range(0x500, 0x540))
|
||||||
|
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
from opendbc.car.ford.values import get_platform_codes
|
from iqdbc.car.ford.values import get_platform_codes
|
||||||
from opendbc.car.ford.fingerprints import FW_VERSIONS
|
from iqdbc.car.ford.fingerprints import FW_VERSIONS
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
|
|
||||||
@@ -4,10 +4,10 @@ from collections.abc import Iterable
|
|||||||
from hypothesis import settings, given, strategies as st
|
from hypothesis import settings, given, strategies as st
|
||||||
from parameterized import parameterized
|
from parameterized import parameterized
|
||||||
|
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
from opendbc.car.fw_versions import build_fw_dict
|
from iqdbc.car.fw_versions import build_fw_dict
|
||||||
from opendbc.car.ford.values import CAR, FW_QUERY_CONFIG, FW_PATTERN, get_platform_codes
|
from iqdbc.car.ford.values import CAR, FW_QUERY_CONFIG, FW_PATTERN, get_platform_codes
|
||||||
from opendbc.car.ford.fingerprints import FW_VERSIONS
|
from iqdbc.car.ford.fingerprints import FW_VERSIONS
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
|
|
||||||
@@ -3,11 +3,11 @@ import re
|
|||||||
from dataclasses import dataclass, field, replace
|
from dataclasses import dataclass, field, replace
|
||||||
from enum import Enum, IntFlag
|
from enum import Enum, IntFlag
|
||||||
|
|
||||||
from opendbc.car import Bus, CarSpecs, DbcDict, PlatformConfig, Platforms, uds
|
from iqdbc.car import Bus, CarSpecs, DbcDict, PlatformConfig, Platforms, uds
|
||||||
from opendbc.car.lateral import AngleSteeringLimits
|
from iqdbc.car.lateral import AngleSteeringLimits
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
from opendbc.car.docs_definitions import CarFootnote, CarHarness, CarDocs, CarParts, Column
|
from iqdbc.car.docs_definitions import CarFootnote, CarHarness, CarDocs, CarParts, Column
|
||||||
from opendbc.car.fw_query_definitions import FwQueryConfig, LiveFwVersions, OfflineFwVersions, Request, StdQueries, p16
|
from iqdbc.car.fw_query_definitions import FwQueryConfig, LiveFwVersions, OfflineFwVersions, Request, StdQueries, p16
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
|
|
||||||
@@ -3,8 +3,8 @@ from dataclasses import dataclass, field
|
|||||||
import struct
|
import struct
|
||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
|
|
||||||
from opendbc.car import uds
|
from iqdbc.car import uds
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
|
|
||||||
@@ -4,15 +4,15 @@ from typing import Protocol, TypeVar
|
|||||||
|
|
||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
|
|
||||||
from opendbc.car import uds
|
from iqdbc.car import uds
|
||||||
from opendbc.car.can_definitions import CanRecvCallable, CanSendCallable
|
from iqdbc.car.can_definitions import CanRecvCallable, CanSendCallable
|
||||||
from opendbc.car.carlog import carlog
|
from iqdbc.car.carlog import carlog
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
from opendbc.car.ecu_addrs import get_ecu_addrs
|
from iqdbc.car.ecu_addrs import get_ecu_addrs
|
||||||
from opendbc.car.fingerprints import FW_VERSIONS
|
from iqdbc.car.fingerprints import FW_VERSIONS
|
||||||
from opendbc.car.fw_query_definitions import ESSENTIAL_ECUS, AddrType, EcuAddrBusType, FwQueryConfig, LiveFwVersions, OfflineFwVersions
|
from iqdbc.car.fw_query_definitions import ESSENTIAL_ECUS, AddrType, EcuAddrBusType, FwQueryConfig, LiveFwVersions, OfflineFwVersions
|
||||||
from opendbc.car.interfaces import get_interface_attr
|
from iqdbc.car.interfaces import get_interface_attr
|
||||||
from opendbc.car.isotp_parallel_query import IsoTpParallelQuery
|
from iqdbc.car.isotp_parallel_query import IsoTpParallelQuery
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
FUZZY_EXCLUDE_ECUS = [Ecu.fwdCamera, Ecu.fwdRadar, Ecu.eps, Ecu.debug]
|
FUZZY_EXCLUDE_ECUS = [Ecu.fwdCamera, Ecu.fwdRadar, Ecu.eps, Ecu.debug]
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from opendbc.can import CANPacker
|
from iqdbc.can import CANPacker
|
||||||
from opendbc.car import Bus, DT_CTRL, structs
|
from iqdbc.car import Bus, DT_CTRL, structs
|
||||||
from opendbc.car.lateral import apply_driver_steer_torque_limits
|
from iqdbc.car.lateral import apply_driver_steer_torque_limits
|
||||||
from opendbc.car.gm import gmcan
|
from iqdbc.car.gm import gmcan
|
||||||
from opendbc.car.common.conversions import Conversions as CV
|
from iqdbc.car.common.conversions import Conversions as CV
|
||||||
from opendbc.car.gm.values import DBC, CanBus, CarControllerParams, CruiseButtons
|
from iqdbc.car.gm.values import DBC, CanBus, CarControllerParams, CruiseButtons
|
||||||
from opendbc.car.interfaces import CarControllerBase
|
from iqdbc.car.interfaces import CarControllerBase
|
||||||
|
|
||||||
VisualAlert = structs.CarControl.HUDControl.VisualAlert
|
VisualAlert = structs.CarControl.HUDControl.VisualAlert
|
||||||
NetworkLocation = structs.CarParams.NetworkLocation
|
NetworkLocation = structs.CarParams.NetworkLocation
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
import copy
|
import copy
|
||||||
from opendbc.can import CANDefine, CANParser
|
from iqdbc.can import CANDefine, CANParser
|
||||||
from opendbc.car import Bus, create_button_events, structs
|
from iqdbc.car import Bus, create_button_events, structs
|
||||||
from opendbc.car.common.conversions import Conversions as CV
|
from iqdbc.car.common.conversions import Conversions as CV
|
||||||
from opendbc.car.interfaces import CarStateBase
|
from iqdbc.car.interfaces import CarStateBase
|
||||||
from opendbc.car.gm.values import DBC, AccState, CruiseButtons, STEER_THRESHOLD, SDGM_CAR, ALT_ACCS
|
from iqdbc.car.gm.values import DBC, AccState, CruiseButtons, STEER_THRESHOLD, SDGM_CAR, ALT_ACCS
|
||||||
|
|
||||||
from opendbc.iqpilot.car.gm.carstate_ext import CarStateExt
|
from iqdbc.iqpilot.car.gm.carstate_ext import CarStateExt
|
||||||
from opendbc.iqpilot.car.gm.values_ext import GMFlagsIQ
|
from iqdbc.iqpilot.car.gm.values_ext import GMFlagsIQ
|
||||||
|
|
||||||
ButtonType = structs.CarState.ButtonEvent.Type
|
ButtonType = structs.CarState.ButtonEvent.Type
|
||||||
TransmissionType = structs.CarParams.TransmissionType
|
TransmissionType = structs.CarParams.TransmissionType
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
# ruff: noqa: E501
|
# ruff: noqa: E501
|
||||||
""" AUTO-FORMATTED USING opendbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
|
""" AUTO-FORMATTED USING iqdbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
|
||||||
from opendbc.car.gm.values import CAR
|
from iqdbc.car.gm.values import CAR
|
||||||
|
|
||||||
from opendbc.iqpilot.car.fingerprints_ext import merge_fingerprints
|
from iqdbc.iqpilot.car.fingerprints_ext import merge_fingerprints
|
||||||
from opendbc.iqpilot.car.gm.fingerprints_ext import FINGERPRINTS_EXT
|
from iqdbc.iqpilot.car.gm.fingerprints_ext import FINGERPRINTS_EXT
|
||||||
|
|
||||||
# Trailblazer also matches as a SILVERADO, TODO: split with fw versions
|
# Trailblazer also matches as a SILVERADO, TODO: split with fw versions
|
||||||
# FIXME: There are Equinox users with different message lengths, specifically 304 and 320
|
# FIXME: There are Equinox users with different message lengths, specifically 304 and 320
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
from opendbc.car.can_definitions import CanData
|
from iqdbc.car.can_definitions import CanData
|
||||||
from opendbc.car.gm.values import CAR
|
from iqdbc.car.gm.values import CAR
|
||||||
|
|
||||||
|
|
||||||
def create_buttons(packer, bus, idx, button):
|
def create_buttons(packer, bus, idx, button):
|
||||||
@@ -2,16 +2,16 @@
|
|||||||
from math import fabs, exp
|
from math import fabs, exp
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
from opendbc.car import get_safety_config, structs
|
from iqdbc.car import get_safety_config, structs
|
||||||
from opendbc.car.common.conversions import Conversions as CV
|
from iqdbc.car.common.conversions import Conversions as CV
|
||||||
from opendbc.car.gm.carcontroller import CarController
|
from iqdbc.car.gm.carcontroller import CarController
|
||||||
from opendbc.car.gm.carstate import CarState
|
from iqdbc.car.gm.carstate import CarState
|
||||||
from opendbc.car.gm.radar_interface import RadarInterface, RADAR_HEADER_MSG, CAMERA_DATA_HEADER_MSG
|
from iqdbc.car.gm.radar_interface import RadarInterface, RADAR_HEADER_MSG, CAMERA_DATA_HEADER_MSG
|
||||||
from opendbc.car.gm.values import CAR, CarControllerParams, EV_CAR, CAMERA_ACC_CAR, SDGM_CAR, ALT_ACCS, CanBus, GMSafetyFlags
|
from iqdbc.car.gm.values import CAR, CarControllerParams, EV_CAR, CAMERA_ACC_CAR, SDGM_CAR, ALT_ACCS, CanBus, GMSafetyFlags
|
||||||
from opendbc.car.interfaces import CarInterfaceBase, TorqueFromLateralAccelCallbackType, LateralAccelFromTorqueCallbackType
|
from iqdbc.car.interfaces import CarInterfaceBase, TorqueFromLateralAccelCallbackType, LateralAccelFromTorqueCallbackType
|
||||||
|
|
||||||
from opendbc.iqpilot.car.gm.interface_ext import CarInterfaceExt
|
from iqdbc.iqpilot.car.gm.interface_ext import CarInterfaceExt
|
||||||
from opendbc.iqpilot.car.gm.values_ext import GMFlagsIQ, GMSafetyFlagsIQ
|
from iqdbc.iqpilot.car.gm.values_ext import GMFlagsIQ, GMSafetyFlagsIQ
|
||||||
|
|
||||||
TransmissionType = structs.CarParams.TransmissionType
|
TransmissionType = structs.CarParams.TransmissionType
|
||||||
NetworkLocation = structs.CarParams.NetworkLocation
|
NetworkLocation = structs.CarParams.NetworkLocation
|
||||||
@@ -154,7 +154,7 @@ class CarInterface(CarInterfaceBase, CarInterfaceExt):
|
|||||||
|
|
||||||
# These cars have been put into dashcam only due to both a lack of users and test coverage.
|
# These cars have been put into dashcam only due to both a lack of users and test coverage.
|
||||||
# These cars likely still work fine. Once a user confirms each car works and a test route is
|
# These cars likely still work fine. Once a user confirms each car works and a test route is
|
||||||
# added to opendbc/car/tests/routes.py, we can remove it from this list.
|
# added to iqdbc/car/tests/routes.py, we can remove it from this list.
|
||||||
ret.dashcamOnly = candidate in {CAR.CADILLAC_ATS, CAR.HOLDEN_ASTRA, CAR.CHEVROLET_MALIBU, CAR.BUICK_REGAL} or \
|
ret.dashcamOnly = candidate in {CAR.CADILLAC_ATS, CAR.HOLDEN_ASTRA, CAR.CHEVROLET_MALIBU, CAR.BUICK_REGAL} or \
|
||||||
(ret.networkLocation == NetworkLocation.gateway and ret.radarUnavailable)
|
(ret.networkLocation == NetworkLocation.gateway and ret.radarUnavailable)
|
||||||
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import math
|
import math
|
||||||
from opendbc.can import CANParser
|
from iqdbc.can import CANParser
|
||||||
from opendbc.car import Bus, structs
|
from iqdbc.car import Bus, structs
|
||||||
from opendbc.car.common.conversions import Conversions as CV
|
from iqdbc.car.common.conversions import Conversions as CV
|
||||||
from opendbc.car.gm.values import DBC, CanBus
|
from iqdbc.car.gm.values import DBC, CanBus
|
||||||
from opendbc.car.interfaces import RadarInterfaceBase
|
from iqdbc.car.interfaces import RadarInterfaceBase
|
||||||
|
|
||||||
RADAR_HEADER_MSG = 1120 # F_LRR_Obj_Header
|
RADAR_HEADER_MSG = 1120 # F_LRR_Obj_Header
|
||||||
CAMERA_DATA_HEADER_MSG = 1056 # F_Vision_Obj_Header
|
CAMERA_DATA_HEADER_MSG = 1056 # F_Vision_Obj_Header
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
from parameterized import parameterized
|
from parameterized import parameterized
|
||||||
|
|
||||||
from opendbc.car.gm.fingerprints import FINGERPRINTS
|
from iqdbc.car.gm.fingerprints import FINGERPRINTS
|
||||||
from opendbc.car.gm.values import CAMERA_ACC_CAR, GM_RX_OFFSET
|
from iqdbc.car.gm.values import CAMERA_ACC_CAR, GM_RX_OFFSET
|
||||||
|
|
||||||
CAMERA_DIAGNOSTIC_ADDRESS = 0x24b
|
CAMERA_DIAGNOSTIC_ADDRESS = 0x24b
|
||||||
|
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from enum import Enum, IntFlag
|
from enum import Enum, IntFlag
|
||||||
|
|
||||||
from opendbc.car import Bus, PlatformConfig, DbcDict, Platforms, CarSpecs
|
from iqdbc.car import Bus, PlatformConfig, DbcDict, Platforms, CarSpecs
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
from opendbc.car.docs_definitions import CarDocs, CarFootnote, CarHarness, CarParts, Column, SupportType
|
from iqdbc.car.docs_definitions import CarDocs, CarFootnote, CarHarness, CarParts, Column, SupportType
|
||||||
from opendbc.car.fw_query_definitions import FwQueryConfig, Request, StdQueries
|
from iqdbc.car.fw_query_definitions import FwQueryConfig, Request, StdQueries
|
||||||
|
|
||||||
from opendbc.iqpilot.car.gm.values_ext import GMFlagsIQ
|
from iqdbc.iqpilot.car.gm.values_ext import GMFlagsIQ
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
|
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
import math
|
import math
|
||||||
|
|
||||||
from opendbc.can import CANPacker
|
from iqdbc.can import CANPacker
|
||||||
from opendbc.car import ACCELERATION_DUE_TO_GRAVITY, Bus, DT_CTRL, rate_limit, make_tester_present_msg, structs
|
from iqdbc.car import ACCELERATION_DUE_TO_GRAVITY, Bus, DT_CTRL, rate_limit, make_tester_present_msg, structs
|
||||||
from opendbc.car.honda import hondacan
|
from iqdbc.car.honda import hondacan
|
||||||
from opendbc.car.honda.values import CAR, CruiseButtons, HONDA_BOSCH, HONDA_BOSCH_CANFD, HONDA_BOSCH_RADARLESS, \
|
from iqdbc.car.honda.values import CAR, CruiseButtons, HONDA_BOSCH, HONDA_BOSCH_CANFD, HONDA_BOSCH_RADARLESS, \
|
||||||
HONDA_BOSCH_TJA_CONTROL, HONDA_NIDEC_ALT_PCM_ACCEL, CarControllerParams
|
HONDA_BOSCH_TJA_CONTROL, HONDA_NIDEC_ALT_PCM_ACCEL, CarControllerParams
|
||||||
from opendbc.car.interfaces import CarControllerBase
|
from iqdbc.car.interfaces import CarControllerBase
|
||||||
|
|
||||||
from opendbc.iqpilot.car.honda.aol import AolCarController
|
from iqdbc.iqpilot.car.honda.aol import AolCarController
|
||||||
from opendbc.iqpilot.car.honda.gas_interceptor import GasInterceptorCarController
|
from iqdbc.iqpilot.car.honda.gas_interceptor import GasInterceptorCarController
|
||||||
|
|
||||||
VisualAlert = structs.CarControl.HUDControl.VisualAlert
|
VisualAlert = structs.CarControl.HUDControl.VisualAlert
|
||||||
LongCtrlState = structs.CarControl.Actuators.LongControlState
|
LongCtrlState = structs.CarControl.Actuators.LongControlState
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
from opendbc.can import CANDefine, CANParser
|
from iqdbc.can import CANDefine, CANParser
|
||||||
from opendbc.car import Bus, create_button_events, structs, DT_CTRL
|
from iqdbc.car import Bus, create_button_events, structs, DT_CTRL
|
||||||
from opendbc.car.common.conversions import Conversions as CV
|
from iqdbc.car.common.conversions import Conversions as CV
|
||||||
from opendbc.car.honda.hondacan import CanBus
|
from iqdbc.car.honda.hondacan import CanBus
|
||||||
from opendbc.car.honda.values import CAR, DBC, STEER_THRESHOLD, HONDA_BOSCH, HONDA_BOSCH_ALT_RADAR, HONDA_BOSCH_CANFD, \
|
from iqdbc.car.honda.values import CAR, DBC, STEER_THRESHOLD, HONDA_BOSCH, HONDA_BOSCH_ALT_RADAR, HONDA_BOSCH_CANFD, \
|
||||||
HONDA_NIDEC_ALT_SCM_MESSAGES, HONDA_BOSCH_RADARLESS, HONDA_BOSCH_TJA_CONTROL, \
|
HONDA_NIDEC_ALT_SCM_MESSAGES, HONDA_BOSCH_RADARLESS, HONDA_BOSCH_TJA_CONTROL, \
|
||||||
HondaFlags, CruiseButtons, CruiseSettings, GearShifter, CarControllerParams
|
HondaFlags, CruiseButtons, CruiseSettings, GearShifter, CarControllerParams
|
||||||
from opendbc.car.interfaces import CarStateBase
|
from iqdbc.car.interfaces import CarStateBase
|
||||||
|
|
||||||
from opendbc.iqpilot.car.honda.carstate_ext import CarStateExt
|
from iqdbc.iqpilot.car.honda.carstate_ext import CarStateExt
|
||||||
|
|
||||||
TransmissionType = structs.CarParams.TransmissionType
|
TransmissionType = structs.CarParams.TransmissionType
|
||||||
ButtonType = structs.CarState.ButtonEvent.Type
|
ButtonType = structs.CarState.ButtonEvent.Type
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
""" AUTO-FORMATTED USING opendbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
|
""" AUTO-FORMATTED USING iqdbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
|
||||||
from opendbc.car.structs import CarParams
|
from iqdbc.car.structs import CarParams
|
||||||
from opendbc.car.honda.values import CAR
|
from iqdbc.car.honda.values import CAR
|
||||||
|
|
||||||
from opendbc.iqpilot.car.fingerprints_ext import merge_fw_versions
|
from iqdbc.iqpilot.car.fingerprints_ext import merge_fw_versions
|
||||||
from opendbc.iqpilot.car.honda.fingerprints_ext import FW_VERSIONS_EXT
|
from iqdbc.iqpilot.car.honda.fingerprints_ext import FW_VERSIONS_EXT
|
||||||
|
|
||||||
Ecu = CarParams.Ecu
|
Ecu = CarParams.Ecu
|
||||||
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
from opendbc.car import CanBusBase
|
from iqdbc.car import CanBusBase
|
||||||
from opendbc.car.common.conversions import Conversions as CV
|
from iqdbc.car.common.conversions import Conversions as CV
|
||||||
from opendbc.car.honda.values import (HondaFlags, HONDA_BOSCH, HONDA_BOSCH_ALT_RADAR, HONDA_BOSCH_RADARLESS,
|
from iqdbc.car.honda.values import (HondaFlags, HONDA_BOSCH, HONDA_BOSCH_ALT_RADAR, HONDA_BOSCH_RADARLESS,
|
||||||
HONDA_BOSCH_CANFD, CarControllerParams)
|
HONDA_BOSCH_CANFD, CarControllerParams)
|
||||||
from opendbc.iqpilot.car.honda.values_ext import HondaFlagsIQ
|
from iqdbc.iqpilot.car.honda.values_ext import HondaFlagsIQ
|
||||||
|
|
||||||
# CAN bus layout with relay
|
# CAN bus layout with relay
|
||||||
# 0 = ACC-CAN - radar side
|
# 0 = ACC-CAN - radar side
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from opendbc.car import get_safety_config, structs, uds
|
from iqdbc.car import get_safety_config, structs, uds
|
||||||
from opendbc.car.common.conversions import Conversions as CV
|
from iqdbc.car.common.conversions import Conversions as CV
|
||||||
from opendbc.car.disable_ecu import disable_ecu
|
from iqdbc.car.disable_ecu import disable_ecu
|
||||||
from opendbc.car.honda.hondacan import CanBus
|
from iqdbc.car.honda.hondacan import CanBus
|
||||||
from opendbc.car.honda.values import CarControllerParams, HondaFlags, CAR, HONDA_BOSCH, HONDA_BOSCH_CANFD, \
|
from iqdbc.car.honda.values import CarControllerParams, HondaFlags, CAR, HONDA_BOSCH, HONDA_BOSCH_CANFD, \
|
||||||
HONDA_NIDEC_ALT_SCM_MESSAGES, HONDA_BOSCH_RADARLESS, HondaSafetyFlags
|
HONDA_NIDEC_ALT_SCM_MESSAGES, HONDA_BOSCH_RADARLESS, HondaSafetyFlags
|
||||||
from opendbc.car.honda.carcontroller import CarController
|
from iqdbc.car.honda.carcontroller import CarController
|
||||||
from opendbc.car.honda.carstate import CarState
|
from iqdbc.car.honda.carstate import CarState
|
||||||
from opendbc.car.honda.radar_interface import RadarInterface
|
from iqdbc.car.honda.radar_interface import RadarInterface
|
||||||
from opendbc.car.interfaces import CarInterfaceBase
|
from iqdbc.car.interfaces import CarInterfaceBase
|
||||||
|
|
||||||
from opendbc.iqpilot.car.honda.values_ext import HondaFlagsIQ, HondaSafetyFlagsIQ
|
from iqdbc.iqpilot.car.honda.values_ext import HondaFlagsIQ, HondaSafetyFlagsIQ
|
||||||
|
|
||||||
TransmissionType = structs.CarParams.TransmissionType
|
TransmissionType = structs.CarParams.TransmissionType
|
||||||
|
|
||||||
@@ -215,7 +215,7 @@ class CarInterface(CarInterfaceBase):
|
|||||||
ret.lateralTuning.pid.kpBP, ret.lateralTuning.pid.kpV = [[0, 10], [0.05, 0.5]]
|
ret.lateralTuning.pid.kpBP, ret.lateralTuning.pid.kpV = [[0, 10], [0.05, 0.5]]
|
||||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kiV = [[0, 10], [0.0125, 0.125]]
|
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kiV = [[0, 10], [0.0125, 0.125]]
|
||||||
|
|
||||||
# TODO-IQ: remove when https://github.com/commaai/opendbc/pull/2687 is merged
|
# TODO-IQ: remove when https://github.com/commaai/iqdbc/pull/2687 is merged
|
||||||
elif candidate == CAR.HONDA_CLARITY:
|
elif candidate == CAR.HONDA_CLARITY:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user