commit
610a6cfe04
91 changed files with 7928 additions and 8430 deletions
@ -0,0 +1,34 @@ |
||||
name: "PR review" |
||||
on: |
||||
pull_request_target: |
||||
|
||||
jobs: |
||||
labeler: |
||||
name: apply labels |
||||
permissions: |
||||
contents: read |
||||
pull-requests: write |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- uses: actions/checkout@v4 |
||||
with: |
||||
submodules: false |
||||
- uses: actions/labeler@v5.0.0-alpha.1 |
||||
with: |
||||
dot: true |
||||
configuration-path: .github/labeler.yaml |
||||
|
||||
pr_branch_check: |
||||
name: check branch |
||||
runs-on: ubuntu-latest |
||||
if: github.repository == 'commaai/openpilot' |
||||
steps: |
||||
- uses: Vankka/pr-target-branch-action@69ab6dd5c221de3548b3b6c4d102c1f4913d3baa |
||||
env: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
with: |
||||
target: /^(?!master$).*/ |
||||
exclude: /commaai:.*/ |
||||
change-to: ${{ github.base_ref }} |
||||
already-exists-action: close_this |
||||
already-exists-comment: "Your PR should be made against the `master` branch" |
@ -1,18 +0,0 @@ |
||||
name: "Pull Request Labeler" |
||||
on: |
||||
pull_request_target: |
||||
|
||||
jobs: |
||||
labeler: |
||||
permissions: |
||||
contents: read |
||||
pull-requests: write |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- uses: actions/checkout@v4 |
||||
with: |
||||
submodules: false |
||||
- uses: actions/labeler@v5.0.0-alpha.1 |
||||
with: |
||||
dot: true |
||||
configuration-path: .github/labeler.yaml |
@ -1 +0,0 @@ |
||||
simple_kalman_impl.c |
@ -1,5 +0,0 @@ |
||||
Import('envCython') |
||||
|
||||
simple_kalman_python = envCython.Program('simple_kalman_impl.so', 'simple_kalman_impl.pyx') |
||||
|
||||
Export('simple_kalman_python') |
@ -1,12 +0,0 @@ |
||||
from openpilot.common.kalman.simple_kalman_impl import KF1D as KF1D |
||||
assert KF1D |
||||
import numpy as np |
||||
|
||||
def get_kalman_gain(dt, A, C, Q, R, iterations=100): |
||||
P = np.zeros_like(Q) |
||||
for _ in range(iterations): |
||||
P = A.dot(P).dot(A.T) + dt * Q |
||||
S = C.dot(P).dot(C.T) + R |
||||
K = P.dot(C.T).dot(np.linalg.inv(S)) |
||||
P = (np.eye(len(P)) - K.dot(C)).dot(P) |
||||
return K |
@ -1,18 +0,0 @@ |
||||
# cython: language_level = 3 |
||||
|
||||
cdef class KF1D: |
||||
cdef public: |
||||
double x0_0 |
||||
double x1_0 |
||||
double K0_0 |
||||
double K1_0 |
||||
double A0_0 |
||||
double A0_1 |
||||
double A1_0 |
||||
double A1_1 |
||||
double C0_0 |
||||
double C0_1 |
||||
double A_K_0 |
||||
double A_K_1 |
||||
double A_K_2 |
||||
double A_K_3 |
@ -1,37 +0,0 @@ |
||||
# distutils: language = c++ |
||||
# cython: language_level=3 |
||||
|
||||
cdef class KF1D: |
||||
def __init__(self, x0, A, C, K): |
||||
self.x0_0 = x0[0][0] |
||||
self.x1_0 = x0[1][0] |
||||
self.A0_0 = A[0][0] |
||||
self.A0_1 = A[0][1] |
||||
self.A1_0 = A[1][0] |
||||
self.A1_1 = A[1][1] |
||||
self.C0_0 = C[0] |
||||
self.C0_1 = C[1] |
||||
self.K0_0 = K[0][0] |
||||
self.K1_0 = K[1][0] |
||||
|
||||
self.A_K_0 = self.A0_0 - self.K0_0 * self.C0_0 |
||||
self.A_K_1 = self.A0_1 - self.K0_0 * self.C0_1 |
||||
self.A_K_2 = self.A1_0 - self.K1_0 * self.C0_0 |
||||
self.A_K_3 = self.A1_1 - self.K1_0 * self.C0_1 |
||||
|
||||
def update(self, meas): |
||||
cdef double x0_0 = self.A_K_0 * self.x0_0 + self.A_K_1 * self.x1_0 + self.K0_0 * meas |
||||
cdef double x1_0 = self.A_K_2 * self.x0_0 + self.A_K_3 * self.x1_0 + self.K1_0 * meas |
||||
self.x0_0 = x0_0 |
||||
self.x1_0 = x1_0 |
||||
|
||||
return [self.x0_0, self.x1_0] |
||||
|
||||
@property |
||||
def x(self): |
||||
return [[self.x0_0], [self.x1_0]] |
||||
|
||||
@x.setter |
||||
def x(self, x): |
||||
self.x0_0 = x[0][0] |
||||
self.x1_0 = x[1][0] |
@ -1,23 +0,0 @@ |
||||
import numpy as np |
||||
|
||||
|
||||
class KF1D: |
||||
# this EKF assumes constant covariance matrix, so calculations are much simpler |
||||
# the Kalman gain also needs to be precomputed using the control module |
||||
|
||||
def __init__(self, x0, A, C, K): |
||||
self.x = x0 |
||||
self.A = A |
||||
self.C = np.atleast_2d(C) |
||||
self.K = K |
||||
|
||||
self.A_K = self.A - np.dot(self.K, self.C) |
||||
|
||||
# K matrix needs to be pre-computed as follow: |
||||
# import control |
||||
# (x, l, K) = control.dare(np.transpose(self.A), np.transpose(self.C), Q, R) |
||||
# self.K = np.transpose(K) |
||||
|
||||
def update(self, meas): |
||||
self.x = np.dot(self.A_K, self.x) + np.dot(self.K, meas) |
||||
return self.x |
@ -1,87 +0,0 @@ |
||||
import unittest |
||||
import random |
||||
import timeit |
||||
import numpy as np |
||||
|
||||
from openpilot.common.kalman.simple_kalman import KF1D |
||||
from openpilot.common.kalman.simple_kalman_old import KF1D as KF1D_old |
||||
|
||||
|
||||
class TestSimpleKalman(unittest.TestCase): |
||||
def setUp(self): |
||||
dt = 0.01 |
||||
x0_0 = 0.0 |
||||
x1_0 = 0.0 |
||||
A0_0 = 1.0 |
||||
A0_1 = dt |
||||
A1_0 = 0.0 |
||||
A1_1 = 1.0 |
||||
C0_0 = 1.0 |
||||
C0_1 = 0.0 |
||||
K0_0 = 0.12287673 |
||||
K1_0 = 0.29666309 |
||||
|
||||
self.kf_old = KF1D_old(x0=np.array([[x0_0], [x1_0]]), |
||||
A=np.array([[A0_0, A0_1], [A1_0, A1_1]]), |
||||
C=np.array([C0_0, C0_1]), |
||||
K=np.array([[K0_0], [K1_0]])) |
||||
|
||||
self.kf = KF1D(x0=[[x0_0], [x1_0]], |
||||
A=[[A0_0, A0_1], [A1_0, A1_1]], |
||||
C=[C0_0, C0_1], |
||||
K=[[K0_0], [K1_0]]) |
||||
|
||||
def test_getter_setter(self): |
||||
self.kf.x = [[1.0], [1.0]] |
||||
self.assertEqual(self.kf.x, [[1.0], [1.0]]) |
||||
|
||||
def update_returns_state(self): |
||||
x = self.kf.update(100) |
||||
self.assertEqual(x, self.kf.x) |
||||
|
||||
def test_old_equal_new(self): |
||||
for _ in range(1000): |
||||
v_wheel = random.uniform(0, 200) |
||||
|
||||
x_old = self.kf_old.update(v_wheel) |
||||
x = self.kf.update(v_wheel) |
||||
|
||||
# Compare the output x, verify that the error is less than 1e-4 |
||||
np.testing.assert_almost_equal(x_old[0], x[0]) |
||||
np.testing.assert_almost_equal(x_old[1], x[1]) |
||||
|
||||
def test_new_is_faster(self): |
||||
setup = """ |
||||
import numpy as np |
||||
|
||||
from openpilot.common.kalman.simple_kalman import KF1D |
||||
from openpilot.common.kalman.simple_kalman_old import KF1D as KF1D_old |
||||
|
||||
dt = 0.01 |
||||
x0_0 = 0.0 |
||||
x1_0 = 0.0 |
||||
A0_0 = 1.0 |
||||
A0_1 = dt |
||||
A1_0 = 0.0 |
||||
A1_1 = 1.0 |
||||
C0_0 = 1.0 |
||||
C0_1 = 0.0 |
||||
K0_0 = 0.12287673 |
||||
K1_0 = 0.29666309 |
||||
|
||||
kf_old = KF1D_old(x0=np.array([[x0_0], [x1_0]]), |
||||
A=np.array([[A0_0, A0_1], [A1_0, A1_1]]), |
||||
C=np.array([C0_0, C0_1]), |
||||
K=np.array([[K0_0], [K1_0]])) |
||||
|
||||
kf = KF1D(x0=[[x0_0], [x1_0]], |
||||
A=[[A0_0, A0_1], [A1_0, A1_1]], |
||||
C=[C0_0, C0_1], |
||||
K=[[K0_0], [K1_0]]) |
||||
""" |
||||
kf_speed = timeit.timeit("kf.update(1234)", setup=setup, number=10000) |
||||
kf_old_speed = timeit.timeit("kf_old.update(1234)", setup=setup, number=10000) |
||||
self.assertTrue(kf_speed < kf_old_speed / 4) |
||||
|
||||
if __name__ == "__main__": |
||||
unittest.main() |
@ -1,12 +0,0 @@ |
||||
class lazy_property(): |
||||
"""Defines a property whose value will be computed only once and as needed. |
||||
|
||||
This can only be used on instance methods. |
||||
""" |
||||
def __init__(self, func): |
||||
self._func = func |
||||
|
||||
def __get__(self, obj_self, cls): |
||||
value = self._func(obj_self) |
||||
setattr(obj_self, self._func.__name__, value) |
||||
return value |
@ -1,22 +0,0 @@ |
||||
import numpy as np |
||||
|
||||
|
||||
def deep_interp_np(x, xp, fp, axis=None): |
||||
if axis is not None: |
||||
fp = fp.swapaxes(0,axis) |
||||
x = np.atleast_1d(x) |
||||
xp = np.array(xp) |
||||
if len(xp) < 2: |
||||
return np.repeat(fp, len(x), axis=0) |
||||
if min(np.diff(xp)) < 0: |
||||
raise RuntimeError('Bad x array for interpolation') |
||||
j = np.searchsorted(xp, x) - 1 |
||||
j = np.clip(j, 0, len(xp)-2) |
||||
d = np.divide(x - xp[j], xp[j + 1] - xp[j], out=np.ones_like(x, dtype=np.float64), where=xp[j + 1] - xp[j] != 0) |
||||
vals_interp = (fp[j].T*(1 - d)).T + (fp[j + 1].T*d).T |
||||
if axis is not None: |
||||
vals_interp = vals_interp.swapaxes(0,axis) |
||||
if len(vals_interp) == 1: |
||||
return vals_interp[0] |
||||
else: |
||||
return vals_interp |
@ -0,0 +1,54 @@ |
||||
import numpy as np |
||||
|
||||
|
||||
def get_kalman_gain(dt, A, C, Q, R, iterations=100): |
||||
P = np.zeros_like(Q) |
||||
for _ in range(iterations): |
||||
P = A.dot(P).dot(A.T) + dt * Q |
||||
S = C.dot(P).dot(C.T) + R |
||||
K = P.dot(C.T).dot(np.linalg.inv(S)) |
||||
P = (np.eye(len(P)) - K.dot(C)).dot(P) |
||||
return K |
||||
|
||||
|
||||
class KF1D: |
||||
# this EKF assumes constant covariance matrix, so calculations are much simpler |
||||
# the Kalman gain also needs to be precomputed using the control module |
||||
|
||||
def __init__(self, x0, A, C, K): |
||||
self.x0_0 = x0[0][0] |
||||
self.x1_0 = x0[1][0] |
||||
self.A0_0 = A[0][0] |
||||
self.A0_1 = A[0][1] |
||||
self.A1_0 = A[1][0] |
||||
self.A1_1 = A[1][1] |
||||
self.C0_0 = C[0] |
||||
self.C0_1 = C[1] |
||||
self.K0_0 = K[0][0] |
||||
self.K1_0 = K[1][0] |
||||
|
||||
self.A_K_0 = self.A0_0 - self.K0_0 * self.C0_0 |
||||
self.A_K_1 = self.A0_1 - self.K0_0 * self.C0_1 |
||||
self.A_K_2 = self.A1_0 - self.K1_0 * self.C0_0 |
||||
self.A_K_3 = self.A1_1 - self.K1_0 * self.C0_1 |
||||
|
||||
# K matrix needs to be pre-computed as follow: |
||||
# import control |
||||
# (x, l, K) = control.dare(np.transpose(self.A), np.transpose(self.C), Q, R) |
||||
# self.K = np.transpose(K) |
||||
|
||||
def update(self, meas): |
||||
#self.x = np.dot(self.A_K, self.x) + np.dot(self.K, meas) |
||||
x0_0 = self.A_K_0 * self.x0_0 + self.A_K_1 * self.x1_0 + self.K0_0 * meas |
||||
x1_0 = self.A_K_2 * self.x0_0 + self.A_K_3 * self.x1_0 + self.K1_0 * meas |
||||
self.x0_0 = x0_0 |
||||
self.x1_0 = x1_0 |
||||
return [self.x0_0, self.x1_0] |
||||
|
||||
@property |
||||
def x(self): |
||||
return [[self.x0_0], [self.x1_0]] |
||||
|
||||
def set_x(self, x): |
||||
self.x0_0 = x[0][0] |
||||
self.x1_0 = x[1][0] |
@ -1,47 +0,0 @@ |
||||
#ifndef _GNU_SOURCE |
||||
#define _GNU_SOURCE |
||||
#endif |
||||
|
||||
#include "common/statlog.h" |
||||
#include "common/util.h" |
||||
|
||||
#include <cstdarg> |
||||
#include <stdio.h> |
||||
#include <mutex> |
||||
#include <zmq.h> |
||||
|
||||
class StatlogState : public LogState { |
||||
public: |
||||
StatlogState() : LogState("ipc:///tmp/stats") {} |
||||
}; |
||||
|
||||
static StatlogState s = {}; |
||||
|
||||
static void log(const char* metric_type, const char* metric, const char* fmt, ...) { |
||||
std::lock_guard lk(s.lock); |
||||
if (!s.initialized) s.initialize(); |
||||
|
||||
char* value_buf = nullptr; |
||||
va_list args; |
||||
va_start(args, fmt); |
||||
int ret = vasprintf(&value_buf, fmt, args); |
||||
va_end(args); |
||||
|
||||
if (ret > 0 && value_buf) { |
||||
char* line_buf = nullptr; |
||||
ret = asprintf(&line_buf, "%s:%s|%s", metric, value_buf, metric_type); |
||||
if (ret > 0 && line_buf) { |
||||
zmq_send(s.sock, line_buf, ret, ZMQ_NOBLOCK); |
||||
free(line_buf); |
||||
} |
||||
free(value_buf); |
||||
} |
||||
} |
||||
|
||||
void statlog_log(const char* metric_type, const char* metric, int value) { |
||||
log(metric_type, metric, "%d", value); |
||||
} |
||||
|
||||
void statlog_log(const char* metric_type, const char* metric, float value) { |
||||
log(metric_type, metric, "%f", value); |
||||
} |
@ -1,10 +0,0 @@ |
||||
#pragma once |
||||
|
||||
#define STATLOG_GAUGE "g" |
||||
#define STATLOG_SAMPLE "sa" |
||||
|
||||
void statlog_log(const char* metric_type, const char* metric, int value); |
||||
void statlog_log(const char* metric_type, const char* metric, float value); |
||||
|
||||
#define statlog_gauge(metric, value) statlog_log(STATLOG_GAUGE, metric, value) |
||||
#define statlog_sample(metric, value) statlog_log(STATLOG_SAMPLE, metric, value) |
@ -0,0 +1,35 @@ |
||||
import unittest |
||||
|
||||
from openpilot.common.simple_kalman import KF1D |
||||
|
||||
|
||||
class TestSimpleKalman(unittest.TestCase): |
||||
def setUp(self): |
||||
dt = 0.01 |
||||
x0_0 = 0.0 |
||||
x1_0 = 0.0 |
||||
A0_0 = 1.0 |
||||
A0_1 = dt |
||||
A1_0 = 0.0 |
||||
A1_1 = 1.0 |
||||
C0_0 = 1.0 |
||||
C0_1 = 0.0 |
||||
K0_0 = 0.12287673 |
||||
K1_0 = 0.29666309 |
||||
|
||||
self.kf = KF1D(x0=[[x0_0], [x1_0]], |
||||
A=[[A0_0, A0_1], [A1_0, A1_1]], |
||||
C=[C0_0, C0_1], |
||||
K=[[K0_0], [K1_0]]) |
||||
|
||||
def test_getter_setter(self): |
||||
self.kf.set_x([[1.0], [1.0]]) |
||||
self.assertEqual(self.kf.x, [[1.0], [1.0]]) |
||||
|
||||
def update_returns_state(self): |
||||
x = self.kf.update(100) |
||||
self.assertEqual(x, self.kf.x) |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
unittest.main() |
@ -1,61 +0,0 @@ |
||||
import sys |
||||
import pygame |
||||
import cv2 |
||||
|
||||
class Window: |
||||
def __init__(self, w, h, caption="window", double=False, halve=False): |
||||
self.w = w |
||||
self.h = h |
||||
pygame.display.init() |
||||
pygame.display.set_caption(caption) |
||||
self.double = double |
||||
self.halve = halve |
||||
if self.double: |
||||
self.rw, self.rh = w*2, h*2 |
||||
elif self.halve: |
||||
self.rw, self.rh = w//2, h//2 |
||||
else: |
||||
self.rw, self.rh = w, h |
||||
self.screen = pygame.display.set_mode((self.rw, self.rh)) |
||||
pygame.display.flip() |
||||
|
||||
# hack for xmonad, it shrinks the window by 6 pixels after the display.flip |
||||
if self.screen.get_width() != self.rw: |
||||
self.screen = pygame.display.set_mode((self.rw+(self.rw-self.screen.get_width()), self.rh+(self.rh-self.screen.get_height()))) |
||||
pygame.display.flip() |
||||
|
||||
def draw(self, out): |
||||
pygame.event.pump() |
||||
if self.double: |
||||
out2 = cv2.resize(out, (self.w*2, self.h*2)) |
||||
pygame.surfarray.blit_array(self.screen, out2.swapaxes(0, 1)) |
||||
elif self.halve: |
||||
out2 = cv2.resize(out, (self.w//2, self.h//2)) |
||||
pygame.surfarray.blit_array(self.screen, out2.swapaxes(0, 1)) |
||||
else: |
||||
pygame.surfarray.blit_array(self.screen, out.swapaxes(0, 1)) |
||||
pygame.display.flip() |
||||
|
||||
def getkey(self): |
||||
while 1: |
||||
event = pygame.event.wait() |
||||
if event.type == pygame.QUIT: |
||||
pygame.quit() |
||||
sys.exit() |
||||
if event.type == pygame.KEYDOWN: |
||||
return event.key |
||||
|
||||
def getclick(self): |
||||
for event in pygame.event.get(): |
||||
if event.type == pygame.MOUSEBUTTONDOWN: |
||||
mx, my = pygame.mouse.get_pos() |
||||
return mx, my |
||||
|
||||
if __name__ == "__main__": |
||||
import numpy as np |
||||
win = Window(200, 200, double=True) |
||||
img: np.ndarray = np.zeros((200, 200, 3), np.uint8) |
||||
while 1: |
||||
print("draw") |
||||
img += 1 |
||||
win.draw(img) |
@ -0,0 +1,25 @@ |
||||
from cereal import car |
||||
from openpilot.selfdrive.car.body.values import CAR |
||||
|
||||
Ecu = car.CarParams.Ecu |
||||
|
||||
FINGERPRINTS = { |
||||
CAR.BODY: [{ |
||||
513: 8, 516: 8, 514: 3, 515: 4, |
||||
}], |
||||
} |
||||
|
||||
FW_VERSIONS = { |
||||
CAR.BODY: { |
||||
(Ecu.engine, 0x720, None): [ |
||||
b'0.0.01', |
||||
b'02/27/2022', |
||||
b'0.3.00a', |
||||
], |
||||
# git hash of the firmware used |
||||
(Ecu.debug, 0x721, None): [ |
||||
b'166bd860', |
||||
b'dc780f85', |
||||
], |
||||
}, |
||||
} |
@ -0,0 +1,266 @@ |
||||
# ruff: noqa: E501 |
||||
from cereal import car |
||||
from openpilot.selfdrive.car.chrysler.values import CAR |
||||
|
||||
Ecu = car.CarParams.Ecu |
||||
|
||||
# Unique CAN messages: |
||||
# Only the hybrids have 270: 8 |
||||
# Only the gas have 55: 8, 416: 7 |
||||
# For 564, All 2017 have length 4, whereas 2018-19 have length 8. |
||||
# For 924, Pacifica 2017 has length 3, whereas all 2018-19 have length 8. |
||||
# For 560, All 2019 have length 8, whereas all 2017-18 have length 4. |
||||
|
||||
# Jeep Grand Cherokee unique messages: |
||||
# 2017 Trailhawk: 618: 8 |
||||
# For 924, Trailhawk 2017 has length 3, whereas 2018 V6 has length 8. |
||||
|
||||
|
||||
FINGERPRINTS = { |
||||
CAR.PACIFICA_2017_HYBRID: [{ |
||||
168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 515: 7, 516: 7, 517: 7, 518: 7, 520: 8, 528: 8, 532: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 4, 571: 3, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 701: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 746: 5, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 788: 3, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 840: 8, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 908: 8, 924: 3, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 956: 8, 958: 8, 959: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1216: 8, 1218: 8, 1220: 8, 1225: 8, 1235: 8, 1242: 8, 1246: 8, 1250: 8, 1284: 8, 1537: 8, 1538: 8, 1562: 8, 1568: 8, 1856: 8, 1858: 8, 1860: 8, 1865: 8, 1875: 8, 1882: 8, 1886: 8, 1890: 8, 1892: 8, 2016: 8, 2024: 8 |
||||
}], |
||||
CAR.PACIFICA_2018: [{ |
||||
55: 8, 257: 5, 258: 8, 264: 8, 268: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 516: 7, 517: 7, 520: 8, 524: 8, 526: 6, 528: 8, 532: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 656: 4, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 746: 5, 752: 2, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 882: 8, 897: 8, 924: 8, 926: 3, 937: 8, 947: 8, 948: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1098: 8, 1100: 8, 1537: 8, 1538: 8, 1562: 8 |
||||
}, |
||||
{ |
||||
55: 8, 58: 6, 257: 5, 258: 8, 264: 8, 268: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 516: 7, 517: 7, 520: 8, 524: 8, 526: 6, 528: 8, 532: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 4, 571: 3, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 656: 4, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 746: 5, 752: 2, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 882: 8, 897: 8, 924: 3, 926: 3, 937: 8, 947: 8, 948: 8, 956: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1098: 8, 1100: 8, 1537: 8, 1538: 8, 1562: 8 |
||||
}], |
||||
CAR.PACIFICA_2020: [{ |
||||
55: 8, 179: 8, 181: 8, 257: 5, 258: 8, 264: 8, 268: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 352: 8, 362: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 516: 7, 517: 7, 520: 8, 524: 8, 526: 6, 528: 8, 532: 8, 536: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 650: 8, 656: 4, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 676: 8, 678: 8, 680: 8, 683: 8, 703: 8, 705: 8, 706: 8, 709: 8, 710: 8, 711: 8, 719: 8, 720: 6, 729: 5, 736: 8, 746: 5, 752: 2, 754: 8, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 776: 8, 779: 8, 782: 8, 784: 8, 792: 8, 793: 8, 794: 8, 795: 8, 799: 8, 800: 8, 801: 8, 802: 8, 803: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 847: 1, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 882: 8, 886: 8, 897: 8, 906: 8, 924: 8, 926: 3, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 962: 8, 969: 4, 973: 8, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1098: 8, 1100: 8, 1216: 8, 1218: 8, 1220: 8, 1223: 7, 1225: 8, 1227: 8, 1235: 8, 1242: 8, 1246: 8, 1250: 8, 1251: 8, 1252: 8, 1284: 8, 1543: 8, 1568: 8, 1570: 8, 1856: 8, 1858: 8, 1860: 8, 1863: 8, 1865: 8, 1867: 8, 1875: 8, 1882: 8, 1886: 8, 1890: 8, 1891: 8, 1892: 8, 1898: 8, 2015: 8, 2016: 8, 2017:8, 2024: 8, 2025: 8 |
||||
}], |
||||
CAR.PACIFICA_2018_HYBRID: [{ |
||||
68: 8, 168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 528: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 680: 8, 701: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 736: 8, 737: 8, 746: 5, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8 |
||||
}, |
||||
# based on 9ae7821dc4e92455|2019-07-01--16-42-55 |
||||
{ |
||||
168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 515: 7, 516: 7, 517: 7, 518: 7, 520: 8, 528: 8, 532: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 701: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 746: 5, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1216: 8, 1218: 8, 1220: 8, 1225: 8, 1235: 8, 1242: 8, 1246: 8, 1250: 8, 1251: 8, 1252: 8, 1258: 8, 1259: 8, 1260: 8, 1262: 8, 1284: 8, 1537: 8, 1538: 8, 1562: 8, 1568: 8, 1856: 8, 1858: 8, 1860: 8, 1865: 8, 1875: 8, 1882: 8, 1886: 8, 1890: 8, 1891: 8, 1892: 8, 1898: 8, 1899: 8, 1900: 8, 1902: 8, 2016: 8, 2018: 8, 2019: 8, 2020: 8, 2023: 8, 2024: 8, 2026: 8, 2027: 8, 2028: 8, 2031: 8 |
||||
}], |
||||
CAR.PACIFICA_2019_HYBRID: [{ |
||||
168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 515: 7, 516: 7, 517: 7, 518: 7, 520: 8, 528: 8, 532: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 680: 8, 701: 8, 703: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 736: 8, 737: 8, 746: 5, 752: 2, 754: 8, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 906: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 962: 8, 969: 4, 973: 8, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1538: 8 |
||||
}, |
||||
# Based on 0607d2516fc2148f|2019-02-13--23-03-16 |
||||
{ |
||||
168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 528: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 701: 8, 703: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 746: 5, 752: 2, 754: 8, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 906: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 962: 8, 969: 4, 973: 8, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1537: 8 |
||||
}, |
||||
# Based on 3c7ce223e3571b54|2019-05-11--20-16-14 |
||||
{ |
||||
168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 528: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 701: 8, 703: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 746: 5, 752: 2, 754: 8, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 906: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 962: 8, 969: 4, 973: 8, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1562: 8, 1570: 8 |
||||
}, |
||||
# Based on "8190c7275a24557b|2020-02-24--09-57-23" |
||||
{ |
||||
168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 515: 7, 516: 7, 517: 7, 518: 7, 520: 8, 524: 8, 526: 6, 528: 8, 532: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 640: 1, 650: 8, 653: 8, 654: 8, 655: 8, 656: 4, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 683: 8, 701: 8, 703: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 711: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 738: 8, 746: 5, 752: 2, 754: 8, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, 793: 8, 794: 8, 795: 8, 796: 8, 797: 8, 798: 8, 799: 8, 800: 8, 801: 8, 802: 8, 803: 8, 804: 8, 805: 8, 807: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 847: 1, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 886: 8, 897: 8, 906: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 962: 8, 969: 4, 973: 8, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1216: 8, 1218: 8, 1220: 8, 1225: 8, 1235: 8, 1242: 8, 1246: 8, 1250: 8, 1251: 8, 1252: 8, 1258: 8, 1259: 8, 1260: 8, 1262: 8, 1284: 8, 1536: 8, 1568: 8, 1570: 8, 1856: 8, 1858: 8, 1860: 8, 1863: 8, 1865: 8, 1875: 8, 1882: 8, 1886: 8, 1890: 8, 1891: 8, 1892: 8, 1898: 8, 1899: 8, 1900: 8, 1902: 8, 2015: 8, 2016: 8, 2017: 8, 2018: 8, 2019: 8, 2020: 8, 2023: 8, 2024: 8, 2026: 8, 2027: 8, 2028: 8, 2031: 8 |
||||
}, |
||||
{ |
||||
168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 450: 8, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 515: 7, 516: 7, 517: 7, 518: 7, 520: 8, 524: 8, 526: 6, 528: 8, 532: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 650: 8, 653: 8, 654: 8, 655: 8, 656: 4, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 683: 8, 701: 8, 703: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 711: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 738: 8, 746: 5, 752: 2, 754: 8, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, 793: 8, 794: 8, 795: 8, 796: 8, 797: 8, 798: 8, 799: 8, 800: 8, 801: 8, 802: 8, 803: 8, 804: 8, 805: 8, 807: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 886: 8, 897: 8, 906: 8, 908: 8, 924: 8, 926: 3, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 962: 8, 969: 4, 973: 8, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1216: 8, 1218: 8, 1220: 8, 1225: 8, 1235: 8, 1242: 8, 1246: 8, 1250: 8, 1251: 8, 1252: 8, 1284: 8, 1568: 8, 1856: 8, 1858: 8, 1860: 8, 1863: 8, 1865: 8, 1875: 8, 1882: 8, 1886: 8, 1890: 8, 1891: 8, 1892: 8, 2018: 8, 2020: 8, 2026: 8, 2028: 8 |
||||
}], |
||||
CAR.JEEP_GRAND_CHEROKEE: [{ |
||||
55: 8, 168: 8, 181: 8, 256: 4, 257: 5, 258: 8, 264: 8, 268: 8, 272: 6, 273: 6, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 352: 8, 362: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 4, 571: 3, 579: 8, 584: 8, 608: 8, 618: 8, 624: 8, 625: 8, 632: 8, 639: 8, 656: 4, 658: 6, 660: 8, 671: 8, 672: 8, 676: 8, 678: 8, 680: 8, 683: 8, 684: 8, 703: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 738: 8, 746: 5, 752: 2, 754: 8, 760: 8, 761: 8, 764: 8, 766: 8, 773: 8, 776: 8, 779: 8, 782: 8, 783: 8, 784: 8, 785: 8, 788: 3, 792: 8, 799: 8, 800: 8, 804: 8, 806: 2, 808: 8, 810: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 831: 6, 832: 8, 838: 2, 840: 8, 844: 5, 847: 1, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 874: 2, 882: 8, 897: 8, 906: 8, 924: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 956: 8, 968: 8, 969: 4, 970: 8, 973: 8, 974: 5, 975: 8, 976: 8, 977: 4, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1062: 8, 1098: 8, 1100: 8, 1543: 8, 1562: 8, 1576: 8, 2015: 8, 2016: 8, 2017: 8, 2024: 8, 2025: 8 |
||||
}, |
||||
# Based on c88f65eeaee4003a|2022-08-04--15-37-16 |
||||
{ |
||||
257: 5, 258: 8, 264: 8, 268: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 352: 8, 362: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 4, 571: 3, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 658: 6, 660: 8, 671: 8, 672: 8, 678: 8, 680: 8, 684: 8, 703: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 746: 5, 752: 2, 760: 8, 761: 8, 764: 8, 766: 8, 773: 8, 776: 8, 779: 8, 783: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 806: 2, 810: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 831: 6, 832: 8, 838: 2, 844: 5, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 882: 8, 897: 8, 924: 3, 937: 8, 947: 8, 948: 8, 969: 4, 974: 5, 977: 4, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1062: 8, 1098: 8, 1100: 8, 1216: 8, 1218: 8, 1220: 8, 1223: 8, 1235: 8, 1242: 8, 1252: 8, 1792: 8, 1798: 8, 1799: 8, 1810: 8, 1813: 8, 1824: 8, 1825: 8, 1840: 8, 1856: 8, 1858: 8, 1859: 8, 1860: 8, 1862: 8, 1863: 8, 1872: 8, 1875: 8, 1879: 8, 1882: 8, 1888: 8, 1892: 8, 1927: 8, 1937: 8, 1953: 8, 1968: 8, 1988: 8, 2000: 8, 2001: 8, 2004: 8, 2015: 8, 2016: 8, 2017: 8, 2024: 8, 2025: 8 |
||||
}], |
||||
CAR.JEEP_GRAND_CHEROKEE_2019: [{ |
||||
# Jeep Grand Cherokee 2019, including most 2020 models |
||||
55: 8, 168: 8, 179: 8, 181: 8, 256: 4, 257: 5, 258: 8, 264: 8, 268: 8, 272: 6, 273: 6, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 341: 8, 344: 8, 352: 8, 362: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 530: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 618: 8, 624: 8, 625: 8, 632: 8, 639: 8, 640: 1, 656: 4, 658: 6, 660: 8, 671: 8, 672: 8, 676: 8, 678: 8, 680: 8, 683: 8, 684: 8, 703: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 738: 8, 746: 5, 752: 2, 754: 8, 760: 8, 761: 8, 764: 8, 766: 8, 773: 8, 776: 8, 779: 8, 782: 8, 783: 8, 784: 8, 785: 8, 792: 8, 799: 8, 800: 8, 804: 8, 806: 2, 808: 8, 810: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 831: 6, 832: 8, 838: 2, 840: 8, 844: 5, 847: 1, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 874: 2, 882: 8, 897: 8, 906: 8, 924: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 960: 4, 968: 8, 969: 4, 970: 8, 973: 8, 974: 5, 976: 8, 977: 4, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1062: 8, 1098: 8, 1100: 8, 1216: 8, 1218: 8, 1220: 8, 1223: 8, 1225: 8, 1227: 8, 1235: 8, 1242: 8, 1250: 8, 1251: 8, 1252: 8, 1254: 8, 1264: 8, 1284: 8, 1536: 8, 1537: 8, 1538: 8, 1543: 8, 1545: 8, 1562: 8, 1568: 8, 1570: 8, 1572: 8, 1593: 8, 1856: 8, 1858: 8, 1860: 8, 1863: 8, 1865: 8, 1867: 8, 1875: 8, 1882: 8, 1890: 8, 1891: 8, 1892: 8, 1894: 8, 1896: 8, 1904: 8, 2015: 8, 2016: 8, 2017: 8, 2024: 8, 2025: 8 |
||||
}], |
||||
} |
||||
|
||||
|
||||
FW_VERSIONS = { |
||||
CAR.JEEP_GRAND_CHEROKEE_2019: { |
||||
(Ecu.combinationMeter, 0x742, None): [ |
||||
b'68402971AD', |
||||
], |
||||
(Ecu.srs, 0x744, None): [ |
||||
b'68355363AB', |
||||
], |
||||
(Ecu.abs, 0x747, None): [ |
||||
b'68408639AD', |
||||
], |
||||
(Ecu.fwdRadar, 0x753, None): [ |
||||
b'68456722AC', |
||||
], |
||||
(Ecu.eps, 0x75A, None): [ |
||||
b'68453431AA', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'05035674AB ', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'05035707AA', |
||||
], |
||||
}, |
||||
|
||||
CAR.RAM_1500: { |
||||
(Ecu.combinationMeter, 0x742, None): [ |
||||
b'68294051AG', |
||||
b'68294051AI', |
||||
b'68294052AG', |
||||
b'68294063AG', |
||||
b'68294063AH', |
||||
b'68294063AI', |
||||
b'68434846AC', |
||||
b'68434858AC', |
||||
b'68434860AC', |
||||
b'68453503AC', |
||||
b'68453505AC', |
||||
b'68453511AC', |
||||
b'68453513AD', |
||||
b'68453514AD', |
||||
b'68510280AG', |
||||
b'68510283AG', |
||||
b'68527346AE', |
||||
b'68527375AD', |
||||
b'68527382AE', |
||||
], |
||||
(Ecu.srs, 0x744, None): [ |
||||
b'68428609AB', |
||||
b'68441329AB', |
||||
b'68473844AB', |
||||
b'68490898AA', |
||||
b'68500728AA', |
||||
b'68615033AA', |
||||
b'68615034AA', |
||||
], |
||||
(Ecu.abs, 0x747, None): [ |
||||
b'68292406AH', |
||||
b'68432418AB', |
||||
b'68432418AD', |
||||
b'68436004AD', |
||||
b'68436004AE', |
||||
b'68438454AC', |
||||
b'68438454AD', |
||||
b'68438456AE', |
||||
b'68438456AF', |
||||
b'68535469AB', |
||||
b'68535470AC', |
||||
b'68548900AB', |
||||
b'68586307AB', |
||||
], |
||||
(Ecu.fwdRadar, 0x753, None): [ |
||||
b'04672892AB', |
||||
b'04672932AB', |
||||
b'04672932AC', |
||||
b'22DTRHD_AA', |
||||
b'68320950AH', |
||||
b'68320950AI', |
||||
b'68320950AJ', |
||||
b'68320950AL', |
||||
b'68320950AM', |
||||
b'68454268AB', |
||||
b'68475160AE', |
||||
b'68475160AF', |
||||
b'68475160AG', |
||||
], |
||||
(Ecu.eps, 0x75A, None): [ |
||||
b'21590101AA', |
||||
b'21590101AB', |
||||
b'68273275AF', |
||||
b'68273275AG', |
||||
b'68273275AH', |
||||
b'68312176AE', |
||||
b'68312176AG', |
||||
b'68440789AC', |
||||
b'68466110AB', |
||||
b'68469901AA', |
||||
b'68522583AB', |
||||
b'68522585AB', |
||||
b'68552788AA', |
||||
b'68552789AA', |
||||
b'68552790AA', |
||||
b'68585106AB', |
||||
b'68585109AB', |
||||
b'68585112AB', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'05036065AE ', |
||||
b'05036066AE ', |
||||
b'05149592AE ', |
||||
b'05149591AD ', |
||||
b'05149846AA ', |
||||
b'05149848AA ', |
||||
b'68378701AI ', |
||||
b'68378748AL ', |
||||
b'68378758AM ', |
||||
b'68448163AJ', |
||||
b'68448165AK', |
||||
b'68500630AD', |
||||
b'68500630AE', |
||||
b'68539650AD', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'05149536AC', |
||||
b'68360078AL', |
||||
b'68360080AM', |
||||
b'68360081AM', |
||||
b'68360085AL', |
||||
b'68384328AD', |
||||
b'68384332AD', |
||||
b'68445533AB', |
||||
b'68484467AC', |
||||
b'68502994AD', |
||||
b'68520867AE', |
||||
b'68540431AB', |
||||
], |
||||
}, |
||||
|
||||
CAR.RAM_HD: { |
||||
(Ecu.combinationMeter, 0x742, None): [ |
||||
b'68361606AH', |
||||
b'68437735AC', |
||||
b'68492693AD', |
||||
b'68525485AB', |
||||
b'68525487AB', |
||||
b'68525498AB', |
||||
b'68528791AF', |
||||
b'68628474AB', |
||||
], |
||||
(Ecu.srs, 0x744, None): [ |
||||
b'68399794AC', |
||||
b'68428503AA', |
||||
b'68428505AA', |
||||
b'68428507AA', |
||||
], |
||||
(Ecu.abs, 0x747, None): [ |
||||
b'68334977AH', |
||||
b'68455481AC', |
||||
b'68504022AA', |
||||
b'68504022AB', |
||||
b'68504022AC', |
||||
b'68530686AB', |
||||
b'68530686AC', |
||||
b'68544596AC', |
||||
b'68641704AA', |
||||
], |
||||
(Ecu.fwdRadar, 0x753, None): [ |
||||
b'04672895AB', |
||||
b'04672934AB', |
||||
b'56029827AG', |
||||
b'56029827AH', |
||||
b'68462657AE', |
||||
b'68484694AD', |
||||
b'68484694AE', |
||||
b'68615489AB', |
||||
], |
||||
(Ecu.eps, 0x761, None): [ |
||||
b'68421036AC', |
||||
b'68507906AB', |
||||
b'68534023AC', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'52370131AF', |
||||
b'52370231AF', |
||||
b'52370231AG', |
||||
b'52370491AA', |
||||
b'52370931CT', |
||||
b'52401032AE', |
||||
b'52421132AF', |
||||
b'52421332AF', |
||||
b'68527616AD ', |
||||
b'M2370131MB', |
||||
b'M2421132MB', |
||||
], |
||||
}, |
||||
} |
@ -0,0 +1,194 @@ |
||||
from cereal import car |
||||
from openpilot.selfdrive.car.ford.values import CAR |
||||
|
||||
Ecu = car.CarParams.Ecu |
||||
|
||||
FW_VERSIONS = { |
||||
CAR.BRONCO_SPORT_MK1: { |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'LX6C-14D003-AH\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LX6C-14D003-AK\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'LX6C-2D053-RD\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LX6C-2D053-RE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'LB5T-14D049-AB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'M1PT-14F397-AC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7E0, None): [ |
||||
b'M1PA-14C204-GF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'N1PA-14C204-AC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'N1PA-14C204-AD\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'M1PA-14C204-RE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
}, |
||||
CAR.ESCAPE_MK4: { |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'LX6C-14D003-AF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LX6C-14D003-AH\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LX6C-14D003-AL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'LX6C-2D053-NS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LX6C-2D053-NT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LX6C-2D053-NY\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LX6C-2D053-SA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LX6C-2D053-SD\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'LB5T-14D049-AB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'LJ6T-14F397-AD\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LJ6T-14F397-AE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LV4T-14F397-GG\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7E0, None): [ |
||||
b'LX6A-14C204-BJV\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LX6A-14C204-BJX\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LX6A-14C204-CNG\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LX6A-14C204-DPK\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LX6A-14C204-ESG\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'MX6A-14C204-BEF\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'MX6A-14C204-BEJ\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'MX6A-14C204-CAB\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'NX6A-14C204-BLE\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
}, |
||||
CAR.EXPLORER_MK6: { |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'L1MC-14D003-AJ\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'L1MC-14D003-AK\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'L1MC-14D003-AL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'M1MC-14D003-AB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'M1MC-14D003-AC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'P1MC-14D003-AA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'L1MC-2D053-AJ\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'L1MC-2D053-BA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'L1MC-2D053-BB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'L1MC-2D053-BF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'L1MC-2D053-KB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'L1MC-2D053-BD\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'LB5T-14D049-AB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'LB5T-14F397-AD\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LB5T-14F397-AE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LB5T-14F397-AF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LC5T-14F397-AH\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7E0, None): [ |
||||
b'LB5A-14C204-ATJ\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LB5A-14C204-AUJ\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LB5A-14C204-AZL\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LB5A-14C204-BUJ\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LB5A-14C204-EAC\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'MB5A-14C204-MD\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'MB5A-14C204-RC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'NB5A-14C204-AZD\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'NB5A-14C204-HB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PB5A-14C204-DA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LB5A-14C204-ATS\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
}, |
||||
CAR.F_150_MK14: { |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'ML3V-14D003-BC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'PL34-2D053-CA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'ML3T-14D049-AL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'PJ6T-14H102-ABJ\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7E0, None): [ |
||||
b'PL3A-14C204-BRB\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
}, |
||||
CAR.F_150_LIGHTNING_MK1: { |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'PL38-2D053-AA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'ML3T-14H102-ABT\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'ML3T-14D049-AL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7E0, None): [ |
||||
b'NL3A-14C204-BAR\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
}, |
||||
CAR.MUSTANG_MACH_E_MK1: { |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'LJ9C-14D003-AM\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'LJ9C-14D003-CC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'LK9C-2D053-CK\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'ML3T-14D049-AL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'ML3T-14H102-ABS\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7E0, None): [ |
||||
b'NJ98-14C204-VH\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'MJ98-14C204-BBS\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
}, |
||||
CAR.FOCUS_MK4: { |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'JX6C-14D003-AH\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'JX61-2D053-CJ\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'JX7T-14D049-AC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'JX7T-14F397-AH\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7E0, None): [ |
||||
b'JX6A-14C204-BPL\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
}, |
||||
CAR.MAVERICK_MK1: { |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'NZ6C-14D003-AL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'NZ6C-2D053-AG\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PZ6C-2D053-ED\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PZ6C-2D053-EE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'NZ6T-14D049-AA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'NZ6T-14F397-AC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7E0, None): [ |
||||
b'NZ6A-14C204-AAA\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'NZ6A-14C204-PA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'NZ6A-14C204-ZA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'NZ6A-14C204-ZC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PZ6A-14C204-BE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PZ6A-14C204-JC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PZ6A-14C204-JE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
}, |
||||
} |
@ -0,0 +1,83 @@ |
||||
# ruff: noqa: E501 |
||||
from openpilot.selfdrive.car.gm.values import CAR |
||||
|
||||
|
||||
FINGERPRINTS = { |
||||
CAR.HOLDEN_ASTRA: [ |
||||
# Astra BK MY17, ASCM unplugged |
||||
{ |
||||
190: 8, 193: 8, 197: 8, 199: 4, 201: 8, 209: 7, 211: 8, 241: 6, 249: 8, 288: 5, 298: 8, 304: 1, 309: 8, 311: 8, 313: 8, 320: 3, 328: 1, 352: 5, 381: 6, 384: 4, 386: 8, 388: 8, 393: 8, 398: 8, 401: 8, 413: 8, 417: 8, 419: 8, 422: 1, 426: 7, 431: 8, 442: 8, 451: 8, 452: 8, 453: 8, 455: 7, 456: 8, 458: 5, 479: 8, 481: 7, 485: 8, 489: 8, 497: 8, 499: 3, 500: 8, 501: 8, 508: 8, 528: 5, 532: 6, 554: 3, 560: 8, 562: 8, 563: 5, 564: 5, 565: 5, 567: 5, 647: 5, 707: 8, 715: 8, 723: 8, 753: 5, 761: 7, 806: 1, 810: 8, 840: 5, 842: 5, 844: 8, 866: 4, 961: 8, 969: 8, 977: 8, 979: 8, 985: 5, 1001: 8, 1009: 8, 1011: 6, 1017: 8, 1019: 3, 1020: 8, 1105: 6, 1217: 8, 1221: 5, 1225: 8, 1233: 8, 1249: 8, 1257: 6, 1259: 8, 1261: 7, 1263: 4, 1265: 8, 1267: 8, 1280: 4, 1300: 8, 1328: 4, 1417: 8, 1906: 7, 1907: 7, 1908: 7, 1912: 7, 1919: 7, |
||||
}], |
||||
CAR.VOLT: [ |
||||
# Volt Premier w/ ACC 2017 |
||||
{ |
||||
170: 8, 171: 8, 189: 7, 190: 6, 193: 8, 197: 8, 199: 4, 201: 8, 209: 7, 211: 2, 241: 6, 288: 5, 289: 8, 298: 8, 304: 1, 308: 4, 309: 8, 311: 8, 313: 8, 320: 3, 328: 1, 352: 5, 381: 6, 384: 4, 386: 8, 388: 8, 389: 2, 390: 7, 417: 7, 419: 1, 426: 7, 451: 8, 452: 8, 453: 6, 454: 8, 456: 8, 479: 3, 481: 7, 485: 8, 489: 8, 493: 8, 495: 4, 497: 8, 499: 3, 500: 6, 501: 8, 508: 8, 528: 4, 532: 6, 546: 7, 550: 8, 554: 3, 558: 8, 560: 8, 562: 8, 563: 5, 564: 5, 565: 5, 566: 5, 567: 3, 568: 1, 573: 1, 577: 8, 647: 3, 707: 8, 711: 6, 715: 8, 761: 7, 810: 8, 840: 5, 842: 5, 844: 8, 866: 4, 961: 8, 969: 8, 977: 8, 979: 7, 988: 6, 989: 8, 995: 7, 1001: 8, 1005: 6, 1009: 8, 1017: 8, 1019: 2, 1020: 8, 1105: 6, 1187: 4, 1217: 8, 1221: 5, 1223: 3, 1225: 7, 1227: 4, 1233: 8, 1249: 8, 1257: 6, 1265: 8, 1267: 1, 1273: 3, 1275: 3, 1280: 4, 1300: 8, 1322: 6, 1323: 4, 1328: 4, 1417: 8, 1601: 8, 1905: 7, 1906: 7, 1907: 7, 1910: 7, 1912: 7, 1922: 7, 1927: 7, 1928: 7, 2016: 8, 2020: 8, 2024: 8, 2028: 8 |
||||
}, |
||||
# Volt Premier w/ ACC 2018 |
||||
{ |
||||
170: 8, 171: 8, 189: 7, 190: 6, 193: 8, 197: 8, 199: 4, 201: 8, 209: 7, 211: 2, 241: 6, 288: 5, 298: 8, 304: 1, 308: 4, 309: 8, 311: 8, 313: 8, 320: 3, 328: 1, 352: 5, 381: 6, 384: 4, 386: 8, 388: 8, 389: 2, 390: 7, 417: 7, 419: 1, 426: 7, 451: 8, 452: 8, 453: 6, 454: 8, 456: 8, 479: 3, 481: 7, 485: 8, 489: 8, 493: 8, 495: 4, 497: 8, 499: 3, 500: 6, 501: 8, 508: 8, 528: 4, 532: 6, 546: 7, 550: 8, 554: 3, 558: 8, 560: 8, 562: 8, 563: 5, 564: 5, 565: 5, 566: 5, 567: 3, 568: 1, 573: 1, 577: 8, 578: 8, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 647: 3, 707: 8, 711: 6, 715: 8, 717: 5, 761: 7, 810: 8, 840: 5, 842: 5, 844: 8, 866: 4, 869: 4, 880: 6, 961: 8, 967: 4, 969: 8, 977: 8, 979: 7, 988: 6, 989: 8, 995: 7, 1001: 8, 1005: 6, 1009: 8, 1017: 8, 1019: 2, 1020: 8, 1033: 7, 1034: 7, 1105: 6, 1187: 4, 1217: 8, 1221: 5, 1223: 3, 1225: 7, 1227: 4, 1233: 8, 1249: 8, 1257: 6, 1265: 8, 1267: 1, 1273: 3, 1275: 3, 1280: 4, 1296: 4, 1300: 8, 1322: 6, 1323: 4, 1328: 4, 1417: 8, 1516: 8, 1601: 8, 1618: 8, 1905: 7, 1906: 7, 1907: 7, 1910: 7, 1912: 7, 1922: 7, 1927: 7, 1930: 7, 2016: 8, 2018: 8, 2020: 8, 2024: 8, 2028: 8 |
||||
}, |
||||
# Volt Premier 2018 w/ flashed firmware, no radar |
||||
{ |
||||
170: 8, 171: 8, 189: 7, 190: 6, 192: 5, 193: 8, 197: 8, 199: 4, 201: 6, 209: 7, 211: 2, 241: 6, 288: 5, 289: 1, 290: 1, 298: 2, 304: 1, 308: 4, 309: 8, 311: 8, 313: 8, 320: 3, 328: 1, 352: 5, 368: 8, 381: 2, 384: 8, 386: 5, 388: 8, 389: 2, 390: 7, 417: 7, 419: 1, 426: 7, 451: 8, 452: 8, 453: 6, 454: 8, 456: 8, 458: 8, 479: 3, 481: 7, 485: 8, 489: 5, 493: 8, 495: 4, 497: 8, 499: 3, 500: 6, 501: 3, 508: 8, 512: 3, 528: 4, 530: 8, 532: 6, 537: 5, 539: 8, 542: 7, 546: 7, 550: 8, 554: 3, 558: 8, 560: 6, 562: 4, 563: 5, 564: 5, 565: 5, 566: 5, 567: 3, 568: 1, 573: 1, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 647: 3, 707: 8, 711: 6, 761: 7, 810: 8, 821: 4, 823: 7, 832: 8, 840: 5, 842: 5, 844: 8, 853: 8, 866: 4, 961: 8, 967: 4, 969: 8, 977: 8, 979: 7, 988: 6, 989: 8, 995: 7, 1001: 5, 1003: 5, 1005: 6, 1009: 8, 1017: 8, 1019: 2, 1020: 8, 1033: 7, 1034: 7, 1105: 6, 1187: 4, 1217: 8, 1221: 5, 1223: 3, 1225: 7, 1227: 4, 1233: 8, 1249: 8, 1257: 6, 1265: 8, 1267: 1, 1273: 3, 1275: 3, 1280: 4, 1300: 8, 1322: 6, 1323: 4, 1328: 4, 1417: 8, 1905: 7, 1906: 7, 1907: 7, 1910: 7, 1912: 7, 1922: 7, 1927: 7 |
||||
}], |
||||
CAR.BUICK_LACROSSE: [ |
||||
# LaCrosse Premium AWD 2017 |
||||
{ |
||||
190: 6, 193: 8, 197: 8, 199: 4, 201: 8, 209: 7, 211: 2, 241: 6, 249: 8, 288: 5, 298: 8, 304: 1, 309: 8, 311: 8, 313: 8, 320: 3, 322: 7, 328: 1, 352: 5, 353: 3, 381: 6, 386: 8, 388: 8, 393: 7, 398: 8, 407: 7, 413: 8, 417: 7, 419: 1, 422: 4, 426: 7, 431: 8, 442: 8, 451: 8, 452: 8, 453: 6, 455: 7, 456: 8, 463: 3, 479: 3, 481: 7, 485: 8, 487: 8, 489: 8, 495: 4, 497: 8, 499: 3, 500: 6, 501: 8, 503: 1, 508: 8, 510: 8, 528: 5, 532: 6, 534: 2, 554: 3, 560: 8, 562: 8, 563: 5, 564: 5, 565: 5, 567: 5, 573: 1, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 647: 5, 707: 8, 753: 5, 761: 7, 801: 8, 804: 3, 810: 8, 840: 5, 842: 5, 844: 8, 866: 4, 872: 1, 882: 8, 890: 1, 892: 2, 893: 1, 894: 1, 961: 8, 967: 4, 969: 8, 977: 8, 979: 8, 985: 5, 1001: 8, 1005: 6, 1009: 8, 1011: 6, 1013: 3, 1017: 8, 1019: 2, 1020: 8, 1022: 1, 1105: 6, 1217: 8, 1221: 5, 1223: 2, 1225: 7, 1233: 8, 1243: 3, 1249: 8, 1257: 6, 1259: 8, 1261: 7, 1263: 4, 1265: 8, 1267: 1, 1280: 4, 1300: 8, 1322: 6, 1328: 4, 1417: 8, 1609: 8, 1613: 8, 1649: 8, 1792: 8, 1798: 8, 1824: 8, 1825: 8, 1840: 8, 1842: 8, 1858: 8, 1860: 8, 1863: 8, 1872: 8, 1875: 8, 1882: 8, 1888: 8, 1889: 8, 1892: 8, 1904: 7, 1906: 7, 1907: 7, 1912: 7, 1913: 7, 1914: 7, 1916: 7, 1918: 7, 1919: 7, 1937: 8, 1953: 8, 1968: 8, 2001: 8, 2017: 8, 2018: 8, 2020: 8, 2026: 8 |
||||
}], |
||||
CAR.BUICK_REGAL : [ |
||||
# Regal TourX Essence w/ ACC 2018 |
||||
{ |
||||
190: 8, 193: 8, 197: 8, 199: 4, 201: 8, 209: 7, 211: 8, 241: 6, 249: 8, 288: 5, 298: 8, 304: 1, 309: 8, 311: 8, 313: 8, 320: 3, 322: 7, 328: 1, 352: 5, 381: 6, 384: 4, 386: 8, 388: 8, 393: 7, 398: 8, 407: 7, 413: 8, 417: 8, 419: 8, 422: 4, 426: 8, 431: 8, 442: 8, 451: 8, 452: 8, 453: 8, 455: 7, 456: 8, 463: 3, 479: 8, 481: 7, 485: 8, 487: 8, 489: 8, 495: 8, 497: 8, 499: 3, 500: 8, 501: 8, 508: 8, 528: 5, 532: 6, 554: 3, 560: 8, 562: 8, 563: 5, 564: 5, 565: 5, 567: 5, 569: 3, 573: 1, 577: 8, 578: 8, 579: 8, 587: 8, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 647: 3, 707: 8, 715: 8, 717: 5, 753: 5, 761: 7, 810: 8, 840: 5, 842: 5, 844: 8, 866: 4, 869: 4, 880: 6, 882: 8, 884: 8, 890: 1, 892: 2, 893: 2, 894: 1, 961: 8, 967: 8, 969: 8, 977: 8, 979: 8, 985: 8, 1001: 8, 1005: 6, 1009: 8, 1011: 8, 1013: 3, 1017: 8, 1020: 8, 1024: 8, 1025: 8, 1026: 8, 1027: 8, 1028: 8, 1029: 8, 1030: 8, 1031: 8, 1032: 2, 1033: 7, 1034: 7, 1105: 6, 1217: 8, 1221: 5, 1223: 8, 1225: 7, 1233: 8, 1249: 8, 1257: 6, 1259: 8, 1261: 8, 1263: 8, 1265: 8, 1267: 8, 1271: 8, 1280: 4, 1296: 4, 1300: 8, 1322: 6, 1328: 4, 1417: 8, 1601: 8, 1602: 8, 1603: 7, 1611: 8, 1618: 8, 1906: 8, 1907: 7, 1912: 7, 1914: 7, 1916: 7, 1919: 7, 1930: 7, 2016: 8, 2018: 8, 2019: 8, 2024: 8, 2026: 8 |
||||
}], |
||||
CAR.CADILLAC_ATS: [ |
||||
# Cadillac ATS Coupe Premium Performance 3.6L RWD w/ ACC 2018 |
||||
{ |
||||
190: 6, 193: 8, 197: 8, 199: 4, 201: 8, 209: 7, 211: 2, 241: 6, 249: 8, 288: 5, 298: 8, 304: 1, 309: 8, 311: 8, 313: 8, 320: 3, 322: 7, 328: 1, 352: 5, 368: 3, 381: 6, 384: 4, 386: 8, 388: 8, 393: 7, 398: 8, 401: 8, 407: 7, 413: 8, 417: 7, 419: 1, 422: 4, 426: 7, 431: 8, 442: 8, 451: 8, 452: 8, 453: 6, 455: 7, 456: 8, 462: 4, 479: 3, 481: 7, 485: 8, 487: 8, 489: 8, 491: 2, 493: 8, 497: 8, 499: 3, 500: 6, 501: 8, 508: 8, 510: 8, 528: 5, 532: 6, 534: 2, 554: 3, 560: 8, 562: 8, 563: 5, 564: 5, 565: 5, 567: 5, 573: 1, 577: 8, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 647: 6, 707: 8, 715: 8, 717: 5, 719: 5, 723: 2, 753: 5, 761: 7, 801: 8, 804: 3, 810: 8, 840: 5, 842: 5, 844: 8, 866: 4, 869: 4, 880: 6, 882: 8, 890: 1, 892: 2, 893: 2, 894: 1, 961: 8, 967: 4, 969: 8, 977: 8, 979: 8, 985: 5, 1001: 8, 1005: 6, 1009: 8, 1011: 6, 1013: 3, 1017: 8, 1019: 2, 1020: 8, 1033: 7, 1034: 7, 1105: 6, 1217: 8, 1221: 5, 1223: 3, 1225: 7, 1233: 8, 1241: 3, 1249: 8, 1257: 6, 1259: 8, 1261: 7, 1263: 4, 1265: 8, 1267: 1, 1271: 8, 1280: 4, 1296: 4, 1300: 8, 1322: 6, 1323: 4, 1328: 4, 1417: 8, 1601: 8, 1904: 7, 1906: 7, 1907: 7, 1912: 7, 1916: 7, 1917: 7, 1918: 7, 1919: 7, 1920: 7, 1930: 7, 2016: 8, 2024: 8 |
||||
}], |
||||
CAR.MALIBU: [ |
||||
# Malibu Premier w/ ACC 2017 |
||||
{ |
||||
190: 6, 193: 8, 197: 8, 199: 4, 201: 8, 209: 7, 211: 2, 241: 6, 249: 8, 288: 5, 298: 8, 304: 1, 309: 8, 311: 8, 313: 8, 320: 3, 328: 1, 352: 5, 381: 6, 384: 4, 386: 8, 388: 8, 393: 7, 398: 8, 407: 7, 413: 8, 417: 7, 419: 1, 422: 4, 426: 7, 431: 8, 442: 8, 451: 8, 452: 8, 453: 6, 455: 7, 456: 8, 479: 3, 481: 7, 485: 8, 487: 8, 489: 8, 495: 4, 497: 8, 499: 3, 500: 6, 501: 8, 508: 8, 510: 8, 528: 5, 532: 6, 554: 3, 560: 8, 562: 8, 563: 5, 564: 5, 565: 5, 567: 5, 573: 1, 577: 8, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 647: 6, 707: 8, 715: 8, 717: 5, 753: 5, 761: 7, 810: 8, 840: 5, 842: 5, 844: 8, 866: 4, 869: 4, 880: 6, 961: 8, 969: 8, 977: 8, 979: 8, 985: 5, 1001: 8, 1005: 6, 1009: 8, 1013: 3, 1017: 8, 1019: 2, 1020: 8, 1033: 7, 1034: 7, 1105: 6, 1217: 8, 1221: 5, 1223: 2, 1225: 7, 1233: 8, 1249: 8, 1257: 6, 1265: 8, 1267: 1, 1280: 4, 1296: 4, 1300: 8, 1322: 6, 1323: 4, 1328: 4, 1417: 8, 1601: 8, 1906: 7, 1907: 7, 1912: 7, 1919: 7, 1930: 7, 2016: 8, 2024: 8, |
||||
}], |
||||
CAR.ACADIA: [ |
||||
# Acadia Denali w/ACC 2018 |
||||
{ |
||||
190: 6, 192: 5, 193: 8, 197: 8, 199: 4, 201: 6, 208: 8, 209: 7, 211: 2, 241: 6, 249: 8, 288: 5, 289: 1, 290: 1, 298: 8, 304: 8, 309: 8, 313: 8, 320: 8, 322: 7, 328: 1, 352: 7, 368: 8, 381: 8, 384: 8, 386: 8, 388: 8, 393: 8, 398: 8, 413: 8, 417: 7, 419: 1, 422: 4, 426: 7, 431: 8, 442: 8, 451: 8, 452: 8, 453: 6, 454: 8, 455: 7, 458: 8, 460: 4, 462: 4, 463: 3, 479: 3, 481: 7, 485: 8, 489: 5, 497: 8, 499: 3, 500: 6, 501: 8, 508: 8, 510: 8, 512: 3, 530: 8, 532: 6, 534: 2, 554: 3, 560: 8, 562: 8, 563: 5, 564: 5, 567: 5, 568: 2, 573: 1, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 647: 6, 707: 8, 715: 8, 717: 5, 753: 5, 761: 7, 789: 5, 800: 6, 801: 8, 803: 8, 804: 3, 805: 8, 832: 8, 840: 5, 842: 5, 844: 8, 866: 4, 869: 4, 880: 6, 961: 8, 969: 8, 977: 8, 979: 8, 985: 5, 1001: 8, 1003: 5, 1005: 6, 1009: 8, 1017: 8, 1020: 8, 1033: 7, 1034: 7, 1105: 6, 1217: 8, 1221: 5, 1225: 8, 1233: 8, 1249: 8, 1257: 6, 1265: 8, 1267: 1, 1280: 4, 1296: 4, 1300: 8, 1322: 6, 1328: 4, 1417: 8, 1906: 7, 1907: 7, 1912: 7, 1914: 7, 1918: 7, 1919: 7, 1920: 7, 1930: 7 |
||||
}, |
||||
# Acadia Denali w/ /ACC 2018 |
||||
{ |
||||
190: 6, 193: 8, 197: 8, 199: 4, 201: 8, 208: 8, 209: 7, 211: 2, 241: 6, 249: 8, 288: 5, 289: 8, 298: 8, 304: 1, 309: 8, 313: 8, 320: 3, 322: 7, 328: 1, 338: 6, 340: 6, 352: 5, 381: 8, 384: 4, 386: 8, 388: 8, 393: 8, 398: 8, 413: 8, 417: 7, 419: 1, 422: 4, 426: 7, 431: 8, 442: 8, 451: 8, 452: 8, 453: 6, 454: 8, 455: 7, 462: 4, 463: 3, 479: 3, 481: 7, 485: 8, 489: 8, 497: 8, 499: 3, 500: 6, 501: 8, 508: 8, 510: 8, 532: 6, 554: 3, 560: 8, 562: 8, 563: 5, 564: 5, 567: 5, 573: 1, 577: 8, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 647: 6, 707: 8, 715: 8, 717: 5, 753: 5, 761: 7, 840: 5, 842: 5, 844: 8, 866: 4, 869: 4, 880: 6, 961: 8, 969: 8, 977: 8, 979: 8, 985: 5, 1001: 8, 1005: 6, 1009: 8, 1017: 8, 1020: 8, 1033: 7, 1034: 7, 1105: 6, 1217: 8, 1221: 5, 1225: 8, 1233: 8, 1249: 8, 1257: 6, 1265: 8, 1267: 1, 1280: 4, 1296: 4, 1300: 8, 1322: 6, 1328: 4, 1417: 8, 1601: 8, 1906: 7, 1907: 7, 1912: 7, 1914: 7, 1919: 7, 1920: 7, 1930: 7, 2016: 8, 2024: 8 |
||||
}], |
||||
CAR.ESCALADE: [ |
||||
{ |
||||
170: 8, 190: 6, 193: 8, 197: 8, 199: 4, 201: 8, 208: 8, 209: 7, 211: 2, 241: 6, 249: 8, 288: 5, 298: 8, 304: 1, 309: 8, 311: 8, 313: 8, 320: 3, 322: 7, 328: 1, 352: 5, 381: 6, 384: 4, 386: 8, 388: 8, 393: 7, 398: 8, 407: 4, 413: 8, 417: 7, 419: 1, 422: 4, 426: 7, 431: 8, 442: 8, 451: 8, 452: 8, 453: 6, 454: 8, 455: 7, 460: 5, 462: 4, 463: 3, 479: 3, 481: 7, 485: 8, 487: 8, 489: 8, 497: 8, 499: 3, 500: 6, 501: 8, 508: 8, 510: 8, 532: 6, 534: 2, 554: 3, 560: 8, 562: 8, 563: 5, 564: 5, 573: 1, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 647: 6, 707: 8, 715: 8, 717: 5, 719: 5, 761: 7, 801: 8, 804: 3, 810: 8, 840: 5, 842: 5, 844: 8, 866: 4, 869: 4, 880: 6, 961: 8, 967: 4, 969: 8, 977: 8, 979: 8, 985: 5, 1001: 8, 1005: 6, 1009: 8, 1017: 8, 1019: 2, 1020: 8, 1033: 7, 1034: 7, 1105: 6, 1217: 8, 1221: 5, 1223: 2, 1225: 7, 1233: 8, 1249: 8, 1257: 6, 1265: 8, 1267: 1, 1280: 4, 1296: 4, 1300: 8, 1322: 6, 1323: 4, 1328: 4, 1417: 8, 1609: 8, 1613: 8, 1649: 8, 1792: 8, 1798: 8, 1824: 8, 1825: 8, 1840: 8, 1842: 8, 1858: 8, 1860: 8, 1863: 8, 1872: 8, 1875: 8, 1882: 8, 1888: 8, 1889: 8, 1892: 8, 1906: 7, 1907: 7, 1912: 7, 1914: 7, 1917: 7, 1918: 7, 1919: 7, 1920: 7, 1930: 7, 1937: 8, 1953: 8, 1968: 8, 2001: 8, 2017: 8, 2018: 8, 2020: 8, 2026: 8 |
||||
}], |
||||
CAR.ESCALADE_ESV: [ |
||||
{ |
||||
309: 1, 848: 8, 849: 8, 850: 8, 851: 8, 852: 8, 853: 8, 854: 3, 1056: 6, 1057: 8, 1058: 8, 1059: 8, 1060: 8, 1061: 8, 1062: 8, 1063: 8, 1064: 8, 1065: 8, 1066: 8, 1067: 8, 1068: 8, 1120: 8, 1121: 8, 1122: 8, 1123: 8, 1124: 8, 1125: 8, 1126: 8, 1127: 8, 1128: 8, 1129: 8, 1130: 8, 1131: 8, 1132: 8, 1133: 8, 1134: 8, 1135: 8, 1136: 8, 1137: 8, 1138: 8, 1139: 8, 1140: 8, 1141: 8, 1142: 8, 1143: 8, 1146: 8, 1147: 8, 1148: 8, 1149: 8, 1150: 8, 1151: 8, 1216: 8, 1217: 8, 1218: 8, 1219: 8, 1220: 8, 1221: 8, 1222: 8, 1223: 8, 1224: 8, 1225: 8, 1226: 8, 1232: 8, 1233: 8, 1234: 8, 1235: 8, 1236: 8, 1237: 8, 1238: 8, 1239: 8, 1240: 8, 1241: 8, 1242: 8, 1787: 8, 1788: 8 |
||||
}], |
||||
CAR.ESCALADE_ESV_2019: [ |
||||
{ |
||||
715: 8, 840: 5, 717: 5, 869: 4, 880: 6, 289: 8, 454: 8, 842: 5, 460: 5, 463: 3, 801: 8, 170: 8, 190: 6, 241: 6, 201: 8, 417: 7, 211: 2, 419: 1, 398: 8, 426: 7, 487: 8, 442: 8, 451: 8, 452: 8, 453: 6, 479: 3, 311: 8, 500: 6, 647: 6, 193: 8, 707: 8, 197: 8, 209: 7, 199: 4, 455: 7, 313: 8, 481: 7, 485: 8, 489: 8, 249: 8, 393: 7, 407: 7, 413: 8, 422: 4, 431: 8, 501: 8, 499: 3, 810: 8, 508: 8, 381: 8, 462: 4, 532: 6, 562: 8, 386: 8, 761: 7, 573: 1, 554: 3, 719: 5, 560: 8, 1279: 4, 388: 8, 288: 5, 1005: 6, 497: 8, 844: 8, 961: 8, 967: 4, 977: 8, 979: 8, 985: 5, 1001: 8, 1017: 8, 1019: 2, 1020: 8, 1217: 8, 510: 8, 866: 4, 304: 1, 969: 8, 384: 4, 1033: 7, 1009: 8, 1034: 7, 1296: 4, 1930: 7, 1105: 5, 1013: 5, 1225: 7, 1919: 7, 320: 3, 534: 2, 352: 5, 298: 8, 1223: 2, 1233: 8, 608: 8, 1265: 8, 609: 6, 1267: 1, 1417: 8, 610: 6, 1906: 7, 611: 6, 612: 8, 613: 8, 208: 8, 564: 5, 309: 8, 1221: 5, 1280: 4, 1249: 8, 1907: 7, 1257: 6, 1300: 8, 1920: 7, 563: 5, 1322: 6, 1323: 4, 1328: 4, 1917: 7, 328: 1, 1912: 7, 1914: 7, 804: 3, 1918: 7 |
||||
}], |
||||
CAR.BOLT_EUV: [ |
||||
{ |
||||
189: 7, 190: 7, 193: 8, 197: 8, 201: 8, 209: 7, 211: 3, 241: 6, 257: 8, 288: 5, 289: 8, 298: 8, 304: 3, 309: 8, 311: 8, 313: 8, 320: 4, 322: 7, 328: 1, 352: 5, 381: 8, 384: 4, 386: 8, 388: 8, 451: 8, 452: 8, 453: 6, 458: 5, 463: 3, 479: 3, 481: 7, 485: 8, 489: 8, 497: 8, 500: 6, 501: 8, 528: 5, 532: 6, 560: 8, 562: 8, 563: 5, 565: 5, 566: 8, 587: 8, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 707: 8, 715: 8, 717: 5, 753: 5, 761: 7, 789: 5, 800: 6, 810: 8, 840: 5, 842: 5, 844: 8, 848: 4, 869: 4, 880: 6, 977: 8, 1001: 8, 1017: 8, 1020: 8, 1217: 8, 1221: 5, 1233: 8, 1249: 8, 1265: 8, 1280: 4, 1296: 4, 1300: 8, 1611: 8, 1930: 7 |
||||
}], |
||||
CAR.SILVERADO: [ |
||||
{ |
||||
190: 6, 193: 8, 197: 8, 201: 8, 208: 8, 209: 7, 211: 2, 241: 6, 249: 8, 257: 8, 288: 5, 289: 8, 298: 8, 304: 3, 309: 8, 311: 8, 313: 8, 320: 4, 322: 7, 328: 1, 352: 5, 381: 8, 384: 4, 386: 8, 388: 8, 413: 8, 451: 8, 452: 8, 453: 6, 455: 7, 460: 5, 463: 3, 479: 3, 481: 7, 485: 8, 489: 8, 497: 8, 500: 6, 501: 8, 528: 5, 532: 6, 534: 2, 560: 8, 562: 8, 563: 5, 565: 5, 587: 8, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 707: 8, 715: 8, 717: 5, 761: 7, 789: 5, 800: 6, 801: 8, 810: 8, 840: 5, 842: 5, 844: 8, 848: 4, 869: 4, 880: 6, 977: 8, 1001: 8, 1011: 6, 1017: 8, 1020: 8, 1033: 7, 1034: 7, 1217: 8, 1221: 5, 1233: 8, 1249: 8, 1259: 8, 1261: 7, 1263: 4, 1265: 8, 1267: 1, 1271: 8, 1280: 4, 1296: 4, 1300: 8, 1611: 8, 1930: 7 |
||||
}], |
||||
CAR.EQUINOX: [ |
||||
{ |
||||
190: 6, 193: 8, 197: 8, 201: 8, 209: 7, 211: 2, 241: 6, 249: 8, 257: 8, 288: 5, 289: 8, 298: 8, 304: 1, 309: 8, 311: 8, 313: 8, 320: 3, 328: 1, 352: 5, 381: 8, 384: 4, 386: 8, 388: 8, 413: 8, 451: 8, 452: 8, 453: 6, 455: 7, 463: 3, 479: 3, 481: 7, 485: 8, 489: 8, 497: 8, 500: 6, 501: 8, 510: 8, 528: 5, 532: 6, 560: 8, 562: 8, 563: 5, 565: 5, 587: 8, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 707: 8, 715: 8, 717: 5, 753: 5, 761: 7, 789: 5, 800: 6, 810: 8, 840: 5, 842: 5, 844: 8, 869: 4, 880: 6, 977: 8, 1001: 8, 1011: 6, 1017: 8, 1020: 8, 1033: 7, 1034: 7, 1217: 8, 1221: 5, 1233: 8, 1249: 8, 1259: 8, 1261: 7, 1263: 4, 1265: 8, 1267: 1, 1271: 8, 1280: 4, 1296: 4, 1300: 8, 1611: 8, 1930: 7 |
||||
}], |
||||
# Trailblazer also matches as a Silverado, so comment out to avoid conflicts. |
||||
# TODO: split with FW versions |
||||
# CAR.TRAILBLAZER: [ |
||||
# { |
||||
# 190: 6, 193: 8, 197: 8, 201: 8, 209: 7, 211: 2, 241: 6, 249: 8, 288: 5, 289: 8, 298: 8, 304: 3, 309: 8, 311: 8, 313: 8, 320: 4, 328: 1, 352: 5, 381: 8, 384: 4, 386: 8, 388: 8, 413: 8, 451: 8, 452: 8, 453: 6, 455: 7, 479: 3, 481: 7, 485: 8, 489: 8, 497: 8, 500: 6, 501: 8, 532: 6, 560: 8, 562: 8, 563: 5, 565: 5, 587: 8, 707: 8, 715: 8, 717: 5, 761: 7, 789: 5, 800: 6, 810: 8, 840: 5, 842: 5, 844: 8, 869: 4, 880: 6, 977: 8, 1001: 8, 1011: 6, 1017: 8, 1020: 8, 1217: 8, 1221: 5, 1233: 8, 1249: 8, 1259: 8, 1261: 7, 1263: 4, 1265: 8, 1267: 1, 1271: 8, 1280: 4, 1296: 4, 1300: 8, 1609: 8, 1611: 8, 1613: 8, 1649: 8, 1792: 8, 1798: 8, 1824: 8, 1825: 8, 1840: 8, 1842: 8, 1858: 8, 1860: 8, 1863: 8, 1872: 8, 1875: 8, 1882: 8, 1888: 8, 1889: 8, 1892: 8, 1930: 7, 1937: 8, 1953: 8, 1968: 8, 2001: 8, 2017: 8, 2018: 8, 2020: 8 |
||||
# }], |
||||
} |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,263 @@ |
||||
from cereal import car |
||||
from openpilot.selfdrive.car.mazda.values import CAR |
||||
|
||||
Ecu = car.CarParams.Ecu |
||||
|
||||
FW_VERSIONS = { |
||||
CAR.CX5_2022: { |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'KSD5-3210X-C-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'PX2G-188K2-H\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX2H-188K2-H\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX2H-188K2-J\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX85-188K2-E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'SH54-188K2-D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXFG-188K2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PEW5-188K2-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'K131-67XK2-F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'KGWD-437K2-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'KSD5-437K2-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'GSH7-67XK2-S\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GSH7-67XK2-T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GSH7-67XK2-U\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'PYB2-21PS1-H\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYB2-21PS1-J\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'SH51-21PS1-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXDL-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXFG-21PS1-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXFG-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PG69-21PS1-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
}, |
||||
CAR.CX5: { |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'K319-3210X-A-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'KCB8-3210X-B-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'KJ01-3210X-G-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'KJ01-3210X-J-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'KJ01-3210X-M-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'PA53-188K2-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PAR4-188K2-E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYFA-188K2-J\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYFC-188K2-J\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYFD-188K2-J\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYNF-188K2-F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX2E-188K2-F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX2F-188K2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX2G-188K2-D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX2H-188K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX2H-188K2-D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX2H-188K2-G\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX2K-188K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX38-188K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX42-188K2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX68-188K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'SHKT-188K2-D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'K123-67XK2-F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'K131-67XK2-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'K131-67XK2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'K131-67XK2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'K131-67XK2-E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'K131-67XK2-F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'K123-437K2-E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'KBJ5-437K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'KL2K-437K2-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'KN0W-437K2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'B61L-67XK2-R\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'B61L-67XK2-S\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'B61L-67XK2-T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'B61L-67XK2-V\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GSH7-67XK2-J\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GSH7-67XK2-M\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GSH7-67XK2-N\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GSH7-67XK2-R\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'PA66-21PS1-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PA66-21PS1-D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX39-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX39-21PS1-D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX68-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYB1-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYB1-21PS1-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYB1-21PS1-G\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYB2-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYB2-21PS1-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYB2-21PS1-D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYB2-21PS1-G\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYB2-21PS1-H\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYNC-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'SH9T-21PS1-D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
}, |
||||
|
||||
CAR.CX9 : { |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'K070-3210X-C-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'KJ01-3210X-G-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'KJ01-3210X-L-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'PX23-188K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX24-188K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXM4-188K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXN8-188K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXN8-188K2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYD7-188K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYD8-188K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYFM-188K2-F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYFM-188K2-H\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'K123-67XK2-F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'K131-67XK2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'K131-67XK2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'TK80-67XK2-E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'TK80-67XK2-F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'TA0B-437K2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'TK79-437K2-E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'TK79-437K2-F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'TM53-437K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'TN40-437K2-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'B61L-67XK2-P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'B61L-67XK2-V\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GSH7-67XK2-J\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GSH7-67XK2-K\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'TK80-67XK2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'PXM4-21PS1-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXM7-21PS1-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXM7-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYFM-21PS1-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYFM-21PS1-D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYD5-21PS1-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYD5-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYD6-21PS1-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYD6-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
}, |
||||
|
||||
CAR.MAZDA3: { |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'BHN1-3210X-J-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'K070-3210X-C-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'KR11-3210X-K-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
|
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'P5JD-188K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PY2P-188K2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYJW-188K2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYKC-188K2-D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYKE-188K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'B63C-67XK2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GHP9-67Y10---41\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'K131-67XK2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'B45A-437AS-0-08\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'B61L-67XK2-D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'B61L-67XK2-P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'B61L-67XK2-Q\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'B61L-67XK2-T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'PY2S-21PS1-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'P52G-21PS1-F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYKA-21PS1-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYKE-21PS1-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYKE-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
}, |
||||
|
||||
CAR.MAZDA6: { |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'GBEF-3210X-B-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GBEF-3210X-C-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GFBC-3210X-A-00\000\000\000\000\000\000\000\000\000', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'PA34-188K2-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PX4F-188K2-D\000\000\000\000\000\000\000\000\000\000\000\000', |
||||
b'PYH7-188K2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYH7-188K2-E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'K131-67XK2-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'K131-67XK2-E\000\000\000\000\000\000\000\000\000\000\000\000', |
||||
], |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'GBVH-437K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GBVH-437K2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GDDM-437K2-A\000\000\000\000\000\000\000\000\000\000\000\000', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'B61L-67XK2-S\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'B61L-67XK2-T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GSH7-67XK2-P\000\000\000\000\000\000\000\000\000\000\000\000', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'PA28-21PS1-A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PYH3-21PS1-D\000\000\000\000\000\000\000\000\000\000\000\000', |
||||
b'PYH7-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
}, |
||||
|
||||
CAR.CX9_2021 : { |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'TC3M-3210X-A-00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'PXGW-188K2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXM4-188K2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXM4-188K2-D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXM6-188K2-E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXGW-188K2-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdRadar, 0x764, None): [ |
||||
b'K131-67XK2-E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'K131-67XK2-F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.abs, 0x760, None): [ |
||||
b'TA0B-437K2-C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x706, None): [ |
||||
b'GSH7-67XK2-M\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GSH7-67XK2-N\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GSH7-67XK2-P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GSH7-67XK2-S\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'GSH7-67XK2-T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'PXM4-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
b'PXM6-21PS1-B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
} |
||||
} |
@ -0,0 +1,116 @@ |
||||
# ruff: noqa: E501 |
||||
from cereal import car |
||||
from openpilot.selfdrive.car.nissan.values import CAR |
||||
|
||||
Ecu = car.CarParams.Ecu |
||||
|
||||
FINGERPRINTS = { |
||||
CAR.XTRAIL: [ |
||||
{ |
||||
2: 5, 42: 6, 346: 6, 347: 5, 348: 8, 349: 7, 361: 8, 386: 8, 389: 8, 397: 8, 398: 8, 403: 8, 520: 2, 523: 6, 548: 8, 645: 8, 658: 8, 665: 8, 666: 8, 674: 2, 682: 8, 683: 8, 689: 8, 723: 8, 758: 3, 768: 2, 783: 3, 851: 8, 855: 8, 1041: 8, 1055: 2, 1104: 4, 1105: 6, 1107: 4, 1108: 8, 1111: 4, 1227: 8, 1228: 8, 1247: 4, 1266: 8, 1273: 7, 1342: 1, 1376: 6, 1401: 8, 1474: 2, 1497: 3, 1821: 8, 1823: 8, 1837: 8, 2015: 8, 2016: 8, 2024: 8 |
||||
}, |
||||
{ |
||||
2: 5, 42: 6, 346: 6, 347: 5, 348: 8, 349: 7, 361: 8, 386: 8, 389: 8, 397: 8, 398: 8, 403: 8, 520: 2, 523: 6, 527: 1, 548: 8, 637: 4, 645: 8, 658: 8, 665: 8, 666: 8, 674: 2, 682: 8, 683: 8, 689: 8, 723: 8, 758: 3, 768: 6, 783: 3, 851: 8, 855: 8, 1041: 8, 1055: 2, 1104: 4, 1105: 6, 1107: 4, 1108: 8, 1111: 4, 1227: 8, 1228: 8, 1247: 4, 1266: 8, 1273: 7, 1342: 1, 1376: 6, 1401: 8, 1474: 8, 1497: 3, 1534: 6, 1792: 8, 1821: 8, 1823: 8, 1837: 8, 1872: 8, 1937: 8, 1953: 8, 1968: 8, 2015: 8, 2016: 8, 2024: 8 |
||||
}, |
||||
], |
||||
CAR.LEAF: [ |
||||
{ |
||||
2: 5, 42: 6, 264: 3, 361: 8, 372: 8, 384: 8, 389: 8, 403: 8, 459: 7, 460: 4, 470: 8, 520: 1, 569: 8, 581: 8, 634: 7, 640: 8, 644: 8, 645: 8, 646: 5, 658: 8, 682: 8, 683: 8, 689: 8, 724: 6, 758: 3, 761: 2, 783: 3, 852: 8, 853: 8, 856: 8, 861: 8, 944: 1, 976: 6, 1008: 7, 1011: 7, 1057: 3, 1227: 8, 1228: 8, 1261: 5, 1342: 1, 1354: 8, 1361: 8, 1459: 8, 1477: 8, 1497: 3, 1549: 8, 1573: 6, 1821: 8, 1837: 8, 1856: 8, 1859: 8, 1861: 8, 1864: 8, 1874: 8, 1888: 8, 1891: 8, 1893: 8, 1906: 8, 1947: 8, 1949: 8, 1979: 8, 1981: 8, 2016: 8, 2017: 8, 2021: 8, 643: 5, 1792: 8, 1872: 8, 1937: 8, 1953: 8, 1968: 8, 1988: 8, 2000: 8, 2001: 8, 2004: 8, 2005: 8, 2015: 8 |
||||
}, |
||||
# 2020 Leaf SV Plus |
||||
{ |
||||
2: 5, 42: 8, 264: 3, 361: 8, 372: 8, 384: 8, 389: 8, 403: 8, 459: 7, 460: 4, 470: 8, 520: 1, 569: 8, 581: 8, 634: 7, 640: 8, 643: 5, 644: 8, 645: 8, 646: 5, 658: 8, 682: 8, 683: 8, 689: 8, 724: 6, 758: 3, 761: 2, 772: 8, 773: 6, 774: 7, 775: 8, 776: 6, 777: 7, 778: 6, 783: 3, 852: 8, 853: 8, 856: 8, 861: 8, 943: 8, 944: 1, 976: 6, 1008: 7, 1009: 8, 1010: 8, 1011: 7, 1012: 8, 1013: 8, 1019: 8, 1020: 8, 1021: 8, 1022: 8, 1057: 3, 1227: 8, 1228: 8, 1261: 5, 1342: 1, 1354: 8, 1361: 8, 1402: 8, 1459: 8, 1477: 8, 1497: 3, 1549: 8, 1573: 6, 1821: 8, 1837: 8 |
||||
}, |
||||
], |
||||
CAR.LEAF_IC: [ |
||||
{ |
||||
2: 5, 42: 6, 264: 3, 282: 8, 361: 8, 372: 8, 384: 8, 389: 8, 403: 8, 459: 7, 460: 4, 470: 8, 520: 1, 569: 8, 581: 8, 634: 7, 640: 8, 643: 5, 644: 8, 645: 8, 646: 5, 658: 8, 682: 8, 683: 8, 689: 8, 756: 5, 758: 3, 761: 2, 783: 3, 830: 2, 852: 8, 853: 8, 856: 8, 861: 8, 943: 8, 944: 1, 1001: 6, 1057: 3, 1227: 8, 1228: 8, 1229: 8, 1342: 1, 1354: 8, 1361: 8, 1459: 8, 1477: 8, 1497: 3, 1514: 6, 1549: 8, 1573: 6, 1792: 8, 1821: 8, 1822: 8, 1837: 8, 1838: 8, 1872: 8, 1937: 8, 1953: 8, 1968: 8, 1988: 8, 2000: 8, 2001: 8, 2004: 8, 2005: 8, 2015: 8, 2016: 8, 2017: 8 |
||||
}, |
||||
], |
||||
CAR.ROGUE: [ |
||||
{ |
||||
2: 5, 42: 6, 346: 6, 347: 5, 348: 8, 349: 7, 361: 8, 386: 8, 389: 8, 397: 8, 398: 8, 403: 8, 520: 2, 523: 6, 548: 8, 634: 7, 643: 5, 645: 8, 658: 8, 665: 8, 666: 8, 674: 2, 682: 8, 683: 8, 689: 8, 723: 8, 758: 3, 772: 8, 773: 6, 774: 7, 775: 8, 776: 6, 777: 7, 778: 6, 783: 3, 851: 8, 855: 8, 1041: 8, 1042: 8, 1055: 2, 1104: 4, 1105: 6, 1107: 4, 1108: 8, 1110: 7, 1111: 7, 1227: 8, 1228: 8, 1247: 4, 1266: 8, 1273: 7, 1342: 1, 1376: 6, 1401: 8, 1474: 2, 1497: 3, 1534: 7, 1792: 8, 1821: 8, 1823: 8, 1837: 8, 1839: 8, 1872: 8, 1937: 8, 1953: 8, 1968: 8, 1988: 8, 2000: 8, 2001: 8, 2004: 8, 2005: 8, 2015: 8, 2016: 8, 2017: 8, 2024: 8, 2025: 8 |
||||
}, |
||||
], |
||||
CAR.ALTIMA: [ |
||||
{ |
||||
2: 5, 42: 6, 346: 6, 347: 5, 348: 8, 349: 7, 361: 8, 386: 8, 389: 8, 397: 8, 398: 8, 403: 8, 438: 8, 451: 8, 517: 8, 520: 2, 522: 8, 523: 6, 539: 8, 541: 7, 542: 8, 543: 8, 544: 8, 545: 8, 546: 8, 547: 8, 548: 8, 570: 8, 576: 8, 577: 8, 582: 8, 583: 8, 584: 8, 586: 8, 587: 8, 588: 8, 589: 8, 590: 8, 591: 8, 592: 8, 600: 8, 601: 8, 610: 8, 611: 8, 612: 8, 614: 8, 615: 8, 616: 8, 617: 8, 622: 8, 623: 8, 634: 7, 638: 8, 645: 8, 648: 5, 654: 6, 658: 8, 659: 8, 660: 8, 661: 8, 665: 8, 666: 8, 674: 2, 675: 8, 676: 8, 682: 8, 683: 8, 684: 8, 685: 8, 686: 8, 687: 8, 689: 8, 690: 8, 703: 8, 708: 7, 709: 7, 711: 7, 712: 7, 713: 7, 714: 8, 715: 8, 716: 8, 717: 7, 718: 7, 719: 7, 720: 7, 723: 8, 726: 7, 727: 7, 728: 7, 735: 8, 746: 8, 748: 6, 749: 6, 750: 8, 758: 3, 772: 8, 773: 6, 774: 7, 775: 8, 776: 6, 777: 7, 778: 6, 779: 7, 781: 7, 782: 7, 783: 3, 851: 8, 855: 5, 1001: 6, 1041: 8, 1042: 8, 1055: 3, 1100: 7, 1104: 4, 1105: 6, 1107: 4, 1108: 8, 1110: 7, 1111: 7, 1144: 7, 1145: 7, 1227: 8, 1228: 8, 1229: 8, 1232: 8, 1247: 4, 1258: 8, 1259: 8, 1266: 8, 1273: 7, 1306: 1, 1314: 8, 1323: 8, 1324: 8, 1342: 1, 1376: 8, 1401: 8, 1454: 8, 1497: 3, 1514: 6, 1526: 8, 1527: 5, 1792: 8, 1821: 8, 1823: 8, 1837: 8, 1872: 8, 1937: 8, 1953: 8, 1968: 8, 1988: 8, 2000: 8, 2001: 8, 2004: 8, 2005: 8, 2015: 8, 2016: 8, 2017: 8, 2024: 8, 2025: 8 |
||||
}, |
||||
] |
||||
} |
||||
|
||||
|
||||
FW_VERSIONS = { |
||||
CAR.ALTIMA: { |
||||
(Ecu.fwdCamera, 0x707, None): [ |
||||
b'284N86CA1D', |
||||
], |
||||
(Ecu.eps, 0x742, None): [ |
||||
b'6CA2B\xa9A\x02\x02G8A89P90D6A\x00\x00\x01\x80', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'237109HE2B', |
||||
], |
||||
(Ecu.gateway, 0x18dad0f1, None): [ |
||||
b'284U29HE0A', |
||||
], |
||||
}, |
||||
CAR.LEAF: { |
||||
(Ecu.abs, 0x740, None): [ |
||||
b'476606WK9B', |
||||
], |
||||
(Ecu.eps, 0x742, None): [ |
||||
b'5SN2A\xb7A\x05\x02N126F\x15\xb2\x00\x00\x00\x00\x00\x00\x00\x80', |
||||
], |
||||
(Ecu.fwdCamera, 0x707, None): [ |
||||
b'6WK2CDB\x04\x18\x00\x00\x00\x00\x00R=1\x18\x99\x10\x00\x00\x00\x80', |
||||
], |
||||
(Ecu.gateway, 0x18dad0f1, None): [ |
||||
b'284U26WK0C', |
||||
], |
||||
}, |
||||
CAR.LEAF_IC: { |
||||
(Ecu.fwdCamera, 0x707, None): [ |
||||
b'5SH1BDB\x04\x18\x00\x00\x00\x00\x00_-?\x04\x91\xf2\x00\x00\x00\x80', |
||||
b'5SK0ADB\x04\x18\x00\x00\x00\x00\x00_(5\x07\x9aQ\x00\x00\x00\x80', |
||||
b'5SH4BDB\x04\x18\x00\x00\x00\x00\x00_-?\x04\x91\xf2\x00\x00\x00\x80', |
||||
], |
||||
(Ecu.abs, 0x740, None): [ |
||||
b'476605SH1D', |
||||
b'476605SK2A', |
||||
b'476605SD2E', |
||||
], |
||||
(Ecu.eps, 0x742, None): [ |
||||
b'5SH2A\x99A\x05\x02N123F\x15\x81\x00\x00\x00\x00\x00\x00\x00\x80', |
||||
b'5SK3A\x99A\x05\x02N123F\x15u\x00\x00\x00\x00\x00\x00\x00\x80', |
||||
b'5SH2C\xb7A\x05\x02N123F\x15\xa3\x00\x00\x00\x00\x00\x00\x00\x80', |
||||
], |
||||
(Ecu.gateway, 0x18dad0f1, None): [ |
||||
b'284U25SH3A', |
||||
b'284U25SK2D', |
||||
b'284U25SF0C', |
||||
], |
||||
}, |
||||
CAR.XTRAIL: { |
||||
(Ecu.fwdCamera, 0x707, None): [ |
||||
b'284N86FR2A', |
||||
], |
||||
(Ecu.abs, 0x740, None): [ |
||||
b'6FU1BD\x11\x02\x00\x02e\x95e\x80iX#\x01\x00\x00\x00\x00\x00\x80', |
||||
b'6FU0AD\x11\x02\x00\x02e\x95e\x80iQ#\x01\x00\x00\x00\x00\x00\x80', |
||||
], |
||||
(Ecu.eps, 0x742, None): [ |
||||
b'6FP2A\x99A\x05\x02N123F\x18\x02\x00\x00\x00\x00\x00\x00\x00\x80', |
||||
], |
||||
(Ecu.combinationMeter, 0x743, None): [ |
||||
b'6FR2A\x18B\x05\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'6FU9B\xa0A\x06\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80', |
||||
b'6FR9A\xa0A\x06\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80', |
||||
], |
||||
(Ecu.gateway, 0x18dad0f1, None): [ |
||||
b'284U26FR0E', |
||||
], |
||||
}, |
||||
} |
@ -0,0 +1,563 @@ |
||||
from cereal import car |
||||
from openpilot.selfdrive.car.subaru.values import CAR |
||||
|
||||
Ecu = car.CarParams.Ecu |
||||
|
||||
FW_VERSIONS = { |
||||
CAR.ASCENT: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'\xa5 \x19\x02\x00', |
||||
b'\xa5 !\002\000', |
||||
b'\xf1\x82\xa5 \x19\x02\x00', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'\x85\xc0\xd0\x00', |
||||
b'\005\xc0\xd0\000', |
||||
b'\x95\xc0\xd0\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\x00\x00d\xb9\x1f@ \x10', |
||||
b'\000\000e~\037@ \'', |
||||
b'\x00\x00e@\x1f@ $', |
||||
b'\x00\x00d\xb9\x00\x00\x00\x00', |
||||
b'\x00\x00e@\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'\xbb,\xa0t\a', |
||||
b'\xf1\x82\xbb,\xa0t\x87', |
||||
b'\xf1\x82\xbb,\xa0t\a', |
||||
b'\xf1\x82\xd9,\xa0@\a', |
||||
b'\xf1\x82\xd1,\xa0q\x07', |
||||
b'\xd1,\xa0q\x07', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'\x00\xfe\xf7\x00\x00', |
||||
b'\001\xfe\xf9\000\000', |
||||
b'\x01\xfe\xf7\x00\x00', |
||||
b'\x01\xfe\xfa\x00\x00', |
||||
], |
||||
}, |
||||
CAR.ASCENT_2023: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'\xa5 #\x03\x00', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'%\xc0\xd0\x11', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\x05!\x08\x1dK\x05!\x08\x01/', |
||||
], |
||||
(Ecu.engine, 0x7a2, None): [ |
||||
b'\xe5,\xa0P\x07', |
||||
], |
||||
(Ecu.transmission, 0x7a3, None): [ |
||||
b'\x04\xfe\xf3\x00\x00', |
||||
], |
||||
}, |
||||
CAR.LEGACY: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'\xa1\\ x04\x01', |
||||
b'\xa1 \x03\x03', |
||||
b'\xa1 \x02\x01', |
||||
b'\xa1 \x02\x02', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'\x9b\xc0\x11\x00', |
||||
b'\x9b\xc0\x11\x02', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\x00\x00e\x80\x00\x1f@ \x19\x00', |
||||
b'\x00\x00e\x9a\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'\xde\"a0\x07', |
||||
b'\xe2"aq\x07', |
||||
b'\xde,\xa0@\x07', |
||||
b'\xe2,\xa0@\x07', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'\xa5\xf6\x05@\x00', |
||||
b'\xa7\xf6\x04@\x00', |
||||
b'\xa5\xfe\xc7@\x00', |
||||
b'\xa7\xfe\xc4@\x00', |
||||
], |
||||
}, |
||||
CAR.IMPREZA: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'\x7a\x94\x3f\x90\x00', |
||||
b'\xa2 \x185\x00', |
||||
b'\xa2 \x193\x00', |
||||
b'\xa2 \x194\x00', |
||||
b'z\x94.\x90\x00', |
||||
b'z\x94\b\x90\x01', |
||||
b'\xa2 \x19`\x00', |
||||
b'z\x94\f\x90\001', |
||||
b'z\x9c\x19\x80\x01', |
||||
b'z\x94\x08\x90\x00', |
||||
b'z\x84\x19\x90\x00', |
||||
b'\xf1\x00\xb2\x06\x04', |
||||
b'z\x94\x0c\x90\x00', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'\x7a\xc0\x0c\x00', |
||||
b'z\xc0\x08\x00', |
||||
b'\x8a\xc0\x00\x00', |
||||
b'z\xc0\x04\x00', |
||||
b'z\xc0\x00\x00', |
||||
b'\x8a\xc0\x10\x00', |
||||
b'z\xc0\n\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\x00\x00\x64\xb5\x1f\x40\x20\x0e', |
||||
b'\x00\x00d\xdc\x1f@ \x0e', |
||||
b'\x00\x00e\x1c\x1f@ \x14', |
||||
b'\x00\x00d)\x1f@ \a', |
||||
b'\x00\x00e+\x1f@ \x14', |
||||
b'\000\000e+\000\000\000\000', |
||||
b'\000\000dd\037@ \016', |
||||
b'\000\000e\002\037@ \024', |
||||
b'\x00\x00d)\x00\x00\x00\x00', |
||||
b'\x00\x00c\xf4\x00\x00\x00\x00', |
||||
b'\x00\x00d\xdc\x00\x00\x00\x00', |
||||
b'\x00\x00dd\x00\x00\x00\x00', |
||||
b'\x00\x00c\xf4\x1f@ \x07', |
||||
b'\x00\x00e\x1c\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'\xaa\x61\x66\x73\x07', |
||||
b'\xbeacr\a', |
||||
b'\xc5!`r\a', |
||||
b'\xaa!ds\a', |
||||
b'\xaa!`u\a', |
||||
b'\xaa!dq\a', |
||||
b'\xaa!dt\a', |
||||
b'\xc5!ar\a', |
||||
b'\xbe!as\a', |
||||
b'\xc5!as\x07', |
||||
b'\xc5!ds\a', |
||||
b'\xc5!`s\a', |
||||
b'\xaa!au\a', |
||||
b'\xbe!at\a', |
||||
b'\xaa\x00Bu\x07', |
||||
b'\xc5!dr\x07', |
||||
b'\xaa!aw\x07', |
||||
b'\xaa!av\x07', |
||||
b'\xaa\x01bt\x07', |
||||
b'\xc5!ap\x07', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'\xe3\xe5\x46\x31\x00', |
||||
b'\xe4\xe5\x061\x00', |
||||
b'\xe5\xf5\x04\x00\x00', |
||||
b'\xe3\xf5G\x00\x00', |
||||
b'\xe3\xf5\a\x00\x00', |
||||
b'\xe3\xf5C\x00\x00', |
||||
b'\xe5\xf5B\x00\x00', |
||||
b'\xe5\xf5$\000\000', |
||||
b'\xe4\xf5\a\000\000', |
||||
b'\xe3\xf5F\000\000', |
||||
b'\xe4\xf5\002\000\000', |
||||
b'\xe3\xd0\x081\x00', |
||||
b'\xe3\xf5\x06\x00\x00', |
||||
b'\xe3\xd5\x161\x00', |
||||
], |
||||
}, |
||||
CAR.IMPREZA_2020: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'\xa2 \0314\000', |
||||
b'\xa2 \0313\000', |
||||
b'\xa2 !i\000', |
||||
b'\xa2 !`\000', |
||||
b'\xf1\x00\xb2\x06\x04', |
||||
b'\xa2 `\x00', |
||||
b'\xa2 !3\x00', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'\x9a\xc0\000\000', |
||||
b'\n\xc0\004\000', |
||||
b'\x9a\xc0\x04\x00', |
||||
b'\n\xc0\x04\x01', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\000\000eb\037@ \"', |
||||
b'\x00\x00e\x8f\x1f@ )', |
||||
b'\x00\x00eq\x1f@ "', |
||||
b'\x00\x00eq\x00\x00\x00\x00', |
||||
b'\x00\x00e\x8f\x00\x00\x00\x00', |
||||
b'\x00\x00e\x92\x00\x00\x00\x00', |
||||
b'\x00\x00e\xa4\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'\xca!ap\a', |
||||
b'\xca!`p\a', |
||||
b'\xca!`0\a', |
||||
b'\xcc\"f0\a', |
||||
b'\xcc!fp\a', |
||||
b'\xcc!`p\x07', |
||||
b'\xca!f@\x07', |
||||
b'\xca!fp\x07', |
||||
b'\xf3"f@\x07', |
||||
b'\xe6!fp\x07', |
||||
b'\xf3"fp\x07', |
||||
b'\xe6"f0\x07', |
||||
b'\xe6"fp\x07', |
||||
b'\xe6!`@\x07', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'\xe6\xf5\004\000\000', |
||||
b'\xe6\xf5$\000\000', |
||||
b'\xe7\xf5\x04\x00\x00', |
||||
b'\xe7\xf6B0\000', |
||||
b'\xe7\xf5D0\000', |
||||
b'\xf1\x00\xd7\x10@', |
||||
b'\xe6\xf5D0\x00', |
||||
b'\xe9\xf6F0\x00', |
||||
b'\xe9\xf5B0\x00', |
||||
b'\xe9\xf6B0\x00', |
||||
b'\xe9\xf5"\x00\x00', |
||||
], |
||||
}, |
||||
CAR.CROSSTREK_HYBRID: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'\xa2 \x19e\x01', |
||||
b'\xa2 !e\x01', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'\x9a\xc2\x01\x00', |
||||
b'\n\xc2\x01\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\x00\x00el\x1f@ #', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'\xd7!`@\x07', |
||||
b'\xd7!`p\a', |
||||
b'\xf4!`0\x07', |
||||
], |
||||
}, |
||||
CAR.FORESTER: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'\xa3 \x18\x14\x00', |
||||
b'\xa3 \024\000', |
||||
b'\xa3 \031\024\000', |
||||
b'\xa3 \x14\x01', |
||||
b'\xf1\x00\xbb\r\x05', |
||||
b'\xa3 \x18&\x00', |
||||
b'\xa3 \x19&\x00', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'\x8d\xc0\x04\x00', |
||||
b'\x8d\xc0\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\x00\x00e!\x1f@ \x11', |
||||
b'\x00\x00e\x97\x1f@ 0', |
||||
b'\000\000e`\037@ ', |
||||
b'\xf1\x00\xac\x02\x00', |
||||
b'\x00\x00e!\x00\x00\x00\x00', |
||||
b'\x00\x00e\x97\x00\x00\x00\x00', |
||||
b'\x00\x00e^\x1f@ !', |
||||
b'\x00\x00e^\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'\xb6"`A\x07', |
||||
b'\xcf"`0\x07', |
||||
b'\xcb\"`@\a', |
||||
b'\xcb\"`p\a', |
||||
b'\xf1\x00\xa2\x10\n', |
||||
b'\xcf"`p\x07', |
||||
b'\xb6\xa2`A\x07', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'\032\xf6B0\000', |
||||
b'\x1a\xf6F`\x00', |
||||
b'\032\xf6b`\000', |
||||
b'\x1a\xf6B`\x00', |
||||
b'\x1a\xf6b0\x00', |
||||
b'\x1a\xe6B1\x00', |
||||
b'\x1a\xe6F1\x00', |
||||
], |
||||
}, |
||||
CAR.FORESTER_HYBRID: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'\xa3 \x19T\x00', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'\x8d\xc2\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\x00\x00eY\x1f@ !', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'\xd2\xa1`r\x07', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'\x1b\xa7@a\x00', |
||||
], |
||||
}, |
||||
CAR.FORESTER_PREGLOBAL: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'\x7d\x97\x14\x40', |
||||
b'\xf1\x00\xbb\x0c\x04', |
||||
b'm\x97\x14@', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'}\xc0\x10\x00', |
||||
b'm\xc0\x10\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\x00\x00\x64\x35\x1f\x40\x20\x09', |
||||
b'\x00\x00c\xe9\x1f@ \x03', |
||||
b'\x00\x00d\xd3\x1f@ \t', |
||||
b'\x00\x00c\xe9\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'\xba"@p\a', |
||||
b'\xa7)\xa0q\a', |
||||
b'\xf1\x82\xa7)\xa0q\a', |
||||
b'\xba"@@\a', |
||||
b'\xa7"@p\x07', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'\xdc\xf2\x60\x60\x00', |
||||
b'\xdc\xf2@`\x00', |
||||
b'\xda\xfd\xe0\x80\x00', |
||||
b'\xdc\xf2`\x81\000', |
||||
b'\xdc\xf2`\x80\x00', |
||||
b'\x1a\xf6F`\x00', |
||||
b'\xda\xf2`\x80\x00', |
||||
], |
||||
}, |
||||
CAR.LEGACY_PREGLOBAL: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'k\x97D\x00', |
||||
b'[\xba\xc4\x03', |
||||
b'{\x97D\x00', |
||||
b'[\x97D\000', |
||||
b'k\x9aD\x00', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'[\xb0\x00\x01', |
||||
b'K\xb0\x00\x01', |
||||
b'k\xb0\x00\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\x00\x00c\xb7\x1f@\x10\x16', |
||||
b'\x00\x00c\x94\x1f@\x10\x08', |
||||
b'\x00\x00c\xec\x1f@ \x04', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'\xab*@r\a', |
||||
b'\xa0+@p\x07', |
||||
b'\xb4"@0\x07', |
||||
b'\xa0"@q\a', |
||||
b'\xab+@p\x07', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'\xbe\xf2\x00p\x00', |
||||
b'\xbf\xfb\xc0\x80\x00', |
||||
b'\xbd\xf2\x00`\x00', |
||||
b'\xbf\xf2\000\x80\000', |
||||
b'\xbe\xfb\xc0p\x00', |
||||
], |
||||
}, |
||||
CAR.OUTBACK_PREGLOBAL: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'{\x9a\xac\x00', |
||||
b'k\x97\xac\x00', |
||||
b'\x5b\xf7\xbc\x03', |
||||
b'[\xf7\xac\x03', |
||||
b'{\x97\xac\x00', |
||||
b'k\x9a\xac\000', |
||||
b'[\xba\xac\x03', |
||||
b'[\xf7\xac\000', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'k\xb0\x00\x00', |
||||
b'[\xb0\x00\x00', |
||||
b'\x4b\xb0\x00\x02', |
||||
b'K\xb0\x00\x00', |
||||
b'{\xb0\x00\x01', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\x00\x00c\xec\x1f@ \x04', |
||||
b'\x00\x00c\xd1\x1f@\x10\x17', |
||||
b'\xf1\x00\xf0\xe0\x0e', |
||||
b'\x00\x00c\x94\x00\x00\x00\x00', |
||||
b'\x00\x00c\x94\x1f@\x10\b', |
||||
b'\x00\x00c\xb7\x1f@\x10\x16', |
||||
b'\000\000c\x90\037@\020\016', |
||||
b'\x00\x00c\xec\x37@\x04', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'\xb4+@p\a', |
||||
b'\xab\"@@\a', |
||||
b'\xa0\x62\x41\x71\x07', |
||||
b'\xa0*@q\a', |
||||
b'\xab*@@\a', |
||||
b'\xb4"@0\a', |
||||
b'\xb4"@p\a', |
||||
b'\xab"@s\a', |
||||
b'\xab+@@\a', |
||||
b'\xb4"@r\a', |
||||
b'\xa0+@@\x07', |
||||
b'\xa0\"@\x80\a', |
||||
b'\xa0*@u\x07', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'\xbd\xfb\xe0\x80\x00', |
||||
b'\xbe\xf2@\x80\x00', |
||||
b'\xbf\xe2\x40\x80\x00', |
||||
b'\xbf\xf2@\x80\x00', |
||||
b'\xbe\xf2@p\x00', |
||||
b'\xbd\xf2@`\x00', |
||||
b'\xbd\xf2@\x81\000', |
||||
b'\xbe\xfb\xe0p\000', |
||||
b'\xbf\xfb\xe0b\x00', |
||||
], |
||||
}, |
||||
CAR.OUTBACK_PREGLOBAL_2018: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'\x8b\x97\xac\x00', |
||||
b'\x8b\x9a\xac\x00', |
||||
b'\x9b\x97\xac\x00', |
||||
b'\x8b\x97\xbc\x00', |
||||
b'\x8b\x99\xac\x00', |
||||
b'\x9b\x9a\xac\000', |
||||
b'\x9b\x97\xbe\x10', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'{\xb0\x00\x00', |
||||
b'{\xb0\x00\x01', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\x00\x00df\x1f@ \n', |
||||
b'\x00\x00d\xfe\x1f@ \x15', |
||||
b'\x00\x00d\x95\x00\x00\x00\x00', |
||||
b'\x00\x00d\x95\x1f@ \x0f', |
||||
b'\x00\x00d\xfe\x00\x00\x00\x00', |
||||
b'\x00\x00e\x19\x1f@ \x15', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'\xb5"@p\a', |
||||
b'\xb5+@@\a', |
||||
b'\xb5"@P\a', |
||||
b'\xc4"@0\a', |
||||
b'\xb5b@1\x07', |
||||
b'\xb5q\xe0@\a', |
||||
b'\xc4+@0\a', |
||||
b'\xc4b@p\a', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'\xbc\xf2@\x81\x00', |
||||
b'\xbc\xfb\xe0\x80\x00', |
||||
b'\xbc\xf2@\x80\x00', |
||||
b'\xbb\xf2@`\x00', |
||||
b'\xbc\xe2@\x80\x00', |
||||
b'\xbc\xfb\xe0`\x00', |
||||
b'\xbc\xaf\xe0`\x00', |
||||
b'\xbb\xfb\xe0`\000', |
||||
], |
||||
}, |
||||
CAR.OUTBACK: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'\xa1 \x06\x01', |
||||
b'\xa1 \a\x00', |
||||
b'\xa1 \b\001', |
||||
b'\xa1 \x06\x00', |
||||
b'\xa1 "\t\x01', |
||||
b'\xa1 \x08\x02', |
||||
b'\xa1 \x06\x02', |
||||
b'\xa1 \x07\x02', |
||||
b'\xa1 \x08\x00', |
||||
b'\xa1 "\t\x00', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'\x9b\xc0\x10\x00', |
||||
b'\x9b\xc0\x20\x00', |
||||
b'\x1b\xc0\x10\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\x00\x00eJ\x00\x1f@ \x19\x00', |
||||
b'\000\000e\x80\000\037@ \031\000', |
||||
b'\x00\x00e\x9a\x00\x00\x00\x00\x00\x00', |
||||
b'\x00\x00e\x9a\x00\x1f@ 1\x00', |
||||
b'\x00\x00eJ\x00\x00\x00\x00\x00\x00', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'\xbc,\xa0q\x07', |
||||
b'\xbc\"`@\a', |
||||
b'\xde"`0\a', |
||||
b'\xf1\x82\xbc,\xa0q\a', |
||||
b'\xf1\x82\xe3,\xa0@\x07', |
||||
b'\xe2"`0\x07', |
||||
b'\xe2"`p\x07', |
||||
b'\xf1\x82\xe2,\xa0@\x07', |
||||
b'\xbc"`q\x07', |
||||
b'\xe3,\xa0@\x07', |
||||
b'\xbc,\xa0u\x07', |
||||
b'\xde,\xa0@\x07', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'\xa5\xfe\xf7@\x00', |
||||
b'\xa5\xf6D@\x00', |
||||
b'\xa5\xfe\xf6@\x00', |
||||
b'\xa7\x8e\xf40\x00', |
||||
b'\xf1\x82\xa7\xf6D@\x00', |
||||
b'\xa7\xf6D@\x00', |
||||
b'\xa7\xfe\xf4@\x00', |
||||
b'\xa5\xfe\xf8@\x00', |
||||
], |
||||
}, |
||||
CAR.FORESTER_2022: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'\xa3 !x\x00', |
||||
b'\xa3 !v\x00', |
||||
b'\xa3 "v\x00', |
||||
b'\xa3 "x\x00', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'-\xc0%0', |
||||
b'-\xc0\x040', |
||||
b'=\xc0%\x02', |
||||
b'=\xc04\x02', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\x04!\x01\x1eD\x07!\x00\x04,', |
||||
b'\x04!\x08\x01.\x07!\x08\x022', |
||||
], |
||||
(Ecu.engine, 0x7e0, None): [ |
||||
b'\xd5"a0\x07', |
||||
b'\xd5"`0\x07', |
||||
b'\xf1"aq\x07', |
||||
b'\xf1"`q\x07', |
||||
], |
||||
(Ecu.transmission, 0x7e1, None): [ |
||||
b'\x1d\x86B0\x00', |
||||
b'\x1d\xf6B0\x00', |
||||
b'\x1e\x86B0\x00', |
||||
b'\x1e\xf6D0\x00', |
||||
], |
||||
}, |
||||
CAR.OUTBACK_2023: { |
||||
(Ecu.abs, 0x7b0, None): [ |
||||
b'\xa1 #\x14\x00', |
||||
b'\xa1 #\x17\x00', |
||||
], |
||||
(Ecu.eps, 0x746, None): [ |
||||
b'+\xc0\x10\x11\x00', |
||||
b'+\xc0\x12\x11\x00', |
||||
], |
||||
(Ecu.fwdCamera, 0x787, None): [ |
||||
b'\t!\x08\x046\x05!\x08\x01/', |
||||
], |
||||
(Ecu.engine, 0x7a2, None): [ |
||||
b'\xed,\xa0q\x07', |
||||
b'\xed,\xa2q\x07', |
||||
], |
||||
(Ecu.transmission, 0x7a3, None): [ |
||||
b'\xa8\x8e\xf41\x00', |
||||
b'\xa8\xfe\xf41\x00', |
||||
] |
||||
} |
||||
} |
@ -0,0 +1,30 @@ |
||||
# ruff: noqa: E501 |
||||
from cereal import car |
||||
from openpilot.selfdrive.car.tesla.values import CAR |
||||
|
||||
Ecu = car.CarParams.Ecu |
||||
|
||||
FINGERPRINTS = { |
||||
CAR.AP1_MODELS: [ |
||||
{ |
||||
1: 8, 3: 8, 14: 8, 21: 4, 69: 8, 109: 4, 257: 3, 264: 8, 267: 5, 277: 6, 280: 6, 283: 5, 293: 4, 296: 4, 309: 5, 325: 8, 328: 5, 336: 8, 341: 8, 360: 7, 373: 8, 389: 8, 415: 8, 513: 5, 516: 8, 520: 4, 522: 8, 524: 8, 526: 8, 532: 3, 536: 8, 537: 3, 542: 8, 551: 5, 552: 2, 556: 8, 558: 8, 568: 8, 569: 8, 574: 8, 577: 8, 582: 5, 584: 4, 585: 8, 590: 8, 606: 8, 622: 8, 627: 6, 638: 8, 641: 8, 643: 8, 660: 5, 693: 8, 696: 8, 697: 8, 712: 8, 728: 8, 744: 8, 760: 8, 772: 8, 775: 8, 776: 8, 777: 8, 778: 8, 782: 8, 788: 8, 791: 8, 792: 8, 796: 2, 797: 8, 798: 6, 799: 8, 804: 8, 805: 8, 807: 8, 808: 1, 809: 8, 812: 8, 813: 8, 814: 5, 815: 8, 820: 8, 823: 8, 824: 8, 829: 8, 830: 5, 836: 8, 840: 8, 841: 8, 845: 8, 846: 5, 852: 8, 856: 4, 857: 6, 861: 8, 862: 5, 872: 8, 873: 8, 877: 8, 878: 8, 879: 8, 880: 8, 884: 8, 888: 8, 889: 8, 893: 8, 896: 8, 901: 6, 904: 3, 905: 8, 908: 2, 909: 8, 920: 8, 921: 8, 925: 4, 936: 8, 937: 8, 941: 8, 949: 8, 952: 8, 953: 6, 957: 8, 968: 8, 973: 8, 984: 8, 987: 8, 989: 8, 990: 8, 1000: 8, 1001: 8, 1006: 8, 1016: 8, 1026: 8, 1028: 8, 1029: 8, 1030: 8, 1032: 1, 1033: 1, 1034: 8, 1048: 1, 1064: 8, 1070: 8, 1080: 8, 1160: 4, 1281: 8, 1329: 8, 1332: 8, 1335: 8, 1337: 8, 1368: 8, 1412: 8, 1436: 8, 1465: 8, 1476: 8, 1497: 8, 1524: 8, 1527: 8, 1601: 8, 1605: 8, 1611: 8, 1614: 8, 1617: 8, 1621: 8, 1627: 8, 1630: 8, 1800: 4, 1804: 8, 1812: 8, 1815: 8, 1816: 8, 1828: 8, 1831: 8, 1832: 8, 1840: 8, 1848: 8, 1864: 8, 1880: 8, 1892: 8, 1896: 8, 1912: 8, 1960: 8, 1992: 8, 2008: 3, 2043: 5, 2045: 4 |
||||
}, |
||||
], |
||||
} |
||||
|
||||
FW_VERSIONS = { |
||||
CAR.AP2_MODELS: { |
||||
(Ecu.adas, 0x649, None): [ |
||||
b'\x01\x00\x8b\x07\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11', |
||||
], |
||||
(Ecu.electricBrakeBooster, 0x64d, None): [ |
||||
b'1037123-00-A', |
||||
], |
||||
(Ecu.fwdRadar, 0x671, None): [ |
||||
b'\x01\x00W\x00\x00\x00\x07\x00\x00\x00\x00\x08\x01\x00\x00\x00\x07\xff\xfe', |
||||
], |
||||
(Ecu.eps, 0x730, None): [ |
||||
b'\x10#\x01', |
||||
], |
||||
}, |
||||
} |
@ -0,0 +1,76 @@ |
||||
legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"] |
||||
### angle control |
||||
# Nissan appears to have torque |
||||
"NISSAN X-TRAIL 2017" = [nan, 1.5, nan] |
||||
"NISSAN ALTIMA 2020" = [nan, 1.5, nan] |
||||
"NISSAN LEAF 2018 Instrument Cluster" = [nan, 1.5, nan] |
||||
"NISSAN LEAF 2018" = [nan, 1.5, nan] |
||||
"NISSAN ROGUE 2019" = [nan, 1.5, nan] |
||||
|
||||
# New subarus angle based controllers |
||||
"SUBARU FORESTER 2022" = [nan, 3.0, nan] |
||||
"SUBARU OUTBACK 7TH GEN" = [nan, 3.0, nan] |
||||
"SUBARU ASCENT 2023" = [nan, 3.0, nan] |
||||
|
||||
# Toyota LTA also has torque |
||||
"TOYOTA RAV4 2023" = [nan, 3.0, nan] |
||||
|
||||
# Tesla has high torque |
||||
"TESLA AP1 MODEL S" = [nan, 2.5, nan] |
||||
"TESLA AP2 MODEL S" = [nan, 2.5, nan] |
||||
|
||||
# Guess |
||||
"FORD BRONCO SPORT 1ST GEN" = [nan, 1.5, nan] |
||||
"FORD ESCAPE 4TH GEN" = [nan, 1.5, nan] |
||||
"FORD EXPLORER 6TH GEN" = [nan, 1.5, nan] |
||||
"FORD F-150 14TH GEN" = [nan, 1.5, nan] |
||||
"FORD FOCUS 4TH GEN" = [nan, 1.5, nan] |
||||
"FORD MAVERICK 1ST GEN" = [nan, 1.5, nan] |
||||
"FORD F-150 LIGHTNING 1ST GEN" = [nan, 1.5, nan] |
||||
"FORD MUSTANG MACH-E 1ST GEN" = [nan, 1.5, nan] |
||||
### |
||||
|
||||
# No steering wheel |
||||
"COMMA BODY" = [nan, 1000, nan] |
||||
|
||||
# Totally new cars |
||||
"RAM 1500 5TH GEN" = [2.0, 2.0, 0.05] |
||||
"RAM HD 5TH GEN" = [1.4, 1.4, 0.05] |
||||
"SUBARU OUTBACK 6TH GEN" = [2.0, 2.0, 0.2] |
||||
"CADILLAC ESCALADE 2017" = [1.899999976158142, 1.842270016670227, 0.1120000034570694] |
||||
"CADILLAC ESCALADE ESV 2019" = [1.15, 1.3, 0.2] |
||||
"CHEVROLET BOLT EUV 2022" = [2.0, 2.0, 0.05] |
||||
"CHEVROLET SILVERADO 1500 2020" = [1.9, 1.9, 0.112] |
||||
"CHEVROLET TRAILBLAZER 2021" = [1.33, 1.9, 0.16] |
||||
"CHEVROLET EQUINOX 2019" = [2.0, 2.0, 0.05] |
||||
"VOLKSWAGEN PASSAT NMS" = [2.5, 2.5, 0.1] |
||||
"VOLKSWAGEN SHARAN 2ND GEN" = [2.5, 2.5, 0.1] |
||||
"HYUNDAI SANTA CRUZ 1ST GEN" = [2.7, 2.7, 0.1] |
||||
"KIA SPORTAGE 5TH GEN" = [2.7, 2.7, 0.1] |
||||
"KIA SPORTAGE HYBRID 5TH GEN" = [2.5, 2.5, 0.1] |
||||
"GENESIS GV70 1ST GEN" = [2.42, 2.42, 0.1] |
||||
"KIA SORENTO PLUG-IN HYBRID 4TH GEN" = [2.5, 2.5, 0.1] |
||||
"GENESIS GV60 ELECTRIC 1ST GEN" = [2.5, 2.5, 0.1] |
||||
"KIA SORENTO 4TH GEN" = [2.5, 2.5, 0.1] |
||||
"KIA NIRO HYBRID 2ND GEN" = [2.42, 2.5, 0.12] |
||||
"KIA NIRO EV 2ND GEN" = [2.05, 2.5, 0.14] |
||||
"GENESIS GV80 2023" = [2.5, 2.5, 0.1] |
||||
"KIA CARNIVAL 4TH GEN" = [1.75, 1.75, 0.15] |
||||
"GMC ACADIA DENALI 2018" = [1.6, 1.6, 0.2] |
||||
"LEXUS IS 2023" = [2.0, 2.0, 0.1] |
||||
"KIA SORENTO HYBRID 4TH GEN" = [2.5, 2.5, 0.1] |
||||
"HYUNDAI KONA ELECTRIC 2ND GEN" = [2.5, 2.5, 0.1] |
||||
"HYUNDAI IONIQ 6 2023" = [2.5, 2.5, 0.1] |
||||
"HYUNDAI AZERA 6TH GEN" = [1.8, 1.8, 0.1] |
||||
"HYUNDAI AZERA HYBRID 6TH GEN" = [1.8, 1.8, 0.1] |
||||
"KIA K8 HYBRID 1ST GEN" = [2.5, 2.5, 0.1] |
||||
"HYUNDAI CUSTIN 1ST GEN" = [2.5, 2.5, 0.1] |
||||
"LEXUS GS F 2016" = [2.5, 2.5, 0.08] |
||||
"HYUNDAI STARIA 4TH GEN" = [1.8, 2.0, 0.15] |
||||
|
||||
# Dashcam or fallback configured as ideal car |
||||
"mock" = [10.0, 10, 0.0] |
||||
|
||||
# Manually checked |
||||
"HONDA CIVIC 2022" = [2.5, 1.2, 0.15] |
||||
"HONDA HR-V 2023" = [2.5, 1.2, 0.2] |
@ -1,76 +0,0 @@ |
||||
legend: [LAT_ACCEL_FACTOR, MAX_LAT_ACCEL_MEASURED, FRICTION] |
||||
### angle control |
||||
# Nissan appears to have torque |
||||
NISSAN X-TRAIL 2017: [.nan, 1.5, .nan] |
||||
NISSAN ALTIMA 2020: [.nan, 1.5, .nan] |
||||
NISSAN LEAF 2018 Instrument Cluster: [.nan, 1.5, .nan] |
||||
NISSAN LEAF 2018: [.nan, 1.5, .nan] |
||||
NISSAN ROGUE 2019: [.nan, 1.5, .nan] |
||||
|
||||
# New subarus angle based controllers |
||||
SUBARU FORESTER 2022: [.nan, 3.0, .nan] |
||||
SUBARU OUTBACK 7TH GEN: [.nan, 3.0, .nan] |
||||
SUBARU ASCENT 2023: [.nan, 3.0, .nan] |
||||
|
||||
# Toyota LTA also has torque |
||||
TOYOTA RAV4 2023: [.nan, 3.0, .nan] |
||||
|
||||
# Tesla has high torque |
||||
TESLA AP1 MODEL S: [.nan, 2.5, .nan] |
||||
TESLA AP2 MODEL S: [.nan, 2.5, .nan] |
||||
|
||||
# Guess |
||||
FORD BRONCO SPORT 1ST GEN: [.nan, 1.5, .nan] |
||||
FORD ESCAPE 4TH GEN: [.nan, 1.5, .nan] |
||||
FORD EXPLORER 6TH GEN: [.nan, 1.5, .nan] |
||||
FORD F-150 14TH GEN: [.nan, 1.5, .nan] |
||||
FORD FOCUS 4TH GEN: [.nan, 1.5, .nan] |
||||
FORD MAVERICK 1ST GEN: [.nan, 1.5, .nan] |
||||
FORD F-150 LIGHTNING 1ST GEN: [.nan, 1.5, .nan] |
||||
FORD MUSTANG MACH-E 1ST GEN: [.nan, 1.5, .nan] |
||||
### |
||||
|
||||
# No steering wheel |
||||
COMMA BODY: [.nan, 1000, .nan] |
||||
|
||||
# Totally new cars |
||||
RAM 1500 5TH GEN: [2.0, 2.0, 0.05] |
||||
RAM HD 5TH GEN: [1.4, 1.4, 0.05] |
||||
SUBARU OUTBACK 6TH GEN: [2.0, 2.0, 0.2] |
||||
CADILLAC ESCALADE 2017: [1.899999976158142, 1.842270016670227, 0.1120000034570694] |
||||
CADILLAC ESCALADE ESV 2019: [1.15, 1.3, 0.2] |
||||
CHEVROLET BOLT EUV 2022: [2.0, 2.0, 0.05] |
||||
CHEVROLET SILVERADO 1500 2020: [1.9, 1.9, 0.112] |
||||
CHEVROLET TRAILBLAZER 2021: [1.33, 1.9, 0.16] |
||||
CHEVROLET EQUINOX 2019: [2.0, 2.0, 0.05] |
||||
VOLKSWAGEN PASSAT NMS: [2.5, 2.5, 0.1] |
||||
VOLKSWAGEN SHARAN 2ND GEN: [2.5, 2.5, 0.1] |
||||
HYUNDAI SANTA CRUZ 1ST GEN: [2.7, 2.7, 0.1] |
||||
KIA SPORTAGE 5TH GEN: [2.7, 2.7, 0.1] |
||||
KIA SPORTAGE HYBRID 5TH GEN: [2.5, 2.5, 0.1] |
||||
GENESIS GV70 1ST GEN: [2.42, 2.42, 0.1] |
||||
KIA SORENTO PLUG-IN HYBRID 4TH GEN: [2.5, 2.5, 0.1] |
||||
GENESIS GV60 ELECTRIC 1ST GEN: [2.5, 2.5, 0.1] |
||||
KIA SORENTO 4TH GEN: [2.5, 2.5, 0.1] |
||||
KIA NIRO HYBRID 2ND GEN: [2.42, 2.5, 0.12] |
||||
KIA NIRO EV 2ND GEN: [2.05, 2.5, 0.14] |
||||
GENESIS GV80 2023: [2.5, 2.5, 0.1] |
||||
KIA CARNIVAL 4TH GEN: [1.75, 1.75, 0.15] |
||||
GMC ACADIA DENALI 2018: [1.6, 1.6, 0.2] |
||||
LEXUS IS 2023: [2.0, 2.0, 0.1] |
||||
KIA SORENTO HYBRID 4TH GEN: [2.5, 2.5, 0.1] |
||||
HYUNDAI KONA ELECTRIC 2ND GEN: [2.5, 2.5, 0.1] |
||||
HYUNDAI IONIQ 6 2023: [2.5, 2.5, 0.1] |
||||
HYUNDAI AZERA 6TH GEN: [1.8, 1.8, 0.1] |
||||
HYUNDAI AZERA HYBRID 6TH GEN: [1.8, 1.8, 0.1] |
||||
KIA K8 HYBRID 1ST GEN: [2.5, 2.5, 0.1] |
||||
HYUNDAI CUSTIN 1ST GEN: [2.5, 2.5, 0.1] |
||||
LEXUS GS F 2016: [2.5, 2.5, 0.08] |
||||
HYUNDAI STARIA 4TH GEN: [1.8, 2.0, 0.15] |
||||
|
||||
# Dashcam or fallback configured as ideal car |
||||
mock: [10.0, 10, 0.0] |
||||
|
||||
# Manually checked |
||||
HONDA CIVIC 2022: [2.5, 1.2, 0.15] |
||||
HONDA HR-V 2023: [2.5, 1.2, 0.2] |
@ -0,0 +1,88 @@ |
||||
legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"] |
||||
"ACURA ILX 2016" = [1.524988973896102, 0.519011053086259, 0.34236219253028] |
||||
"ACURA RDX 2018" = [0.9987728568686902, 0.5323765166196301, 0.303218805715844] |
||||
"ACURA RDX 2020" = [1.4314459806646749, 0.33874701282109954, 0.18048847083897598] |
||||
"AUDI A3 3RD GEN" = [1.5122414863077502, 1.7443517531719404, 0.15194151892450905] |
||||
"AUDI Q3 2ND GEN" = [1.4439223359448605, 1.2254955789112076, 0.1413798895978097] |
||||
"CHEVROLET VOLT PREMIER 2017" = [1.5961527626411784, 1.8422651988094612, 0.1572393918005158] |
||||
"CHRYSLER PACIFICA 2018" = [2.07140, 1.3366521181047952, 0.13776367250652022] |
||||
"CHRYSLER PACIFICA 2020" = [1.86206, 1.509076559398423, 0.14328246159386085] |
||||
"CHRYSLER PACIFICA HYBRID 2017" = [1.79422, 1.06831764583744, 0.116237] |
||||
"CHRYSLER PACIFICA HYBRID 2018" = [2.08887, 1.2943025830995154, 0.114818] |
||||
"CHRYSLER PACIFICA HYBRID 2019" = [1.90120, 1.1958788168371808, 0.131520] |
||||
"GENESIS G70 2018" = [3.8520195946707947, 2.354697063349854, 0.06830285485626221] |
||||
"HONDA ACCORD 2018" = [1.7135052593468778, 0.3461280068322071, 0.21579936052863807] |
||||
"HONDA ACCORD HYBRID 2018" = [1.6651615004829625, 0.30322180951193245, 0.2083000440586149] |
||||
"HONDA CIVIC (BOSCH) 2019" = [1.691708637466905, 0.40132900729454185, 0.25460295304024094] |
||||
"HONDA CIVIC 2016" = [1.6528895627785531, 0.4018518740819229, 0.25458812851328544] |
||||
"HONDA CR-V 2016" = [0.7667141440182675, 0.5927571534745969, 0.40909087636157127] |
||||
"HONDA CR-V 2017" = [2.01323205142022, 0.2700612209345081, 0.2238412881331528] |
||||
"HONDA CR-V HYBRID 2019" = [2.072034634644233, 0.7152085160516978, 0.20237105008376083] |
||||
"HONDA FIT 2018" = [1.5719981427109775, 0.5712761407108976, 0.110773383324281] |
||||
"HONDA HRV 2019" = [2.0661212805710205, 0.7521343418694775, 0.17760375789242094] |
||||
"HONDA INSIGHT 2019" = [1.5201671214069354, 0.5660229120683284, 0.25808042580281876] |
||||
"HONDA ODYSSEY 2018" = [1.8774809275211801, 0.8394431662987996, 0.2096978613792822] |
||||
"HONDA PILOT 2017" = [1.7262026201812795, 0.9470005614967523, 0.21351430733218763] |
||||
"HONDA RIDGELINE 2017" = [1.4146525028237624, 0.7356572861629564, 0.23307177552211328] |
||||
"HYUNDAI ELANTRA 2021" = [3.169, 2.1259108157250735, 0.0819] |
||||
"HYUNDAI GENESIS 2015-2016" = [2.7807965280270794, 2.325, 0.0984484465421171] |
||||
"HYUNDAI IONIQ 5 2022" = [3.172929, 2.713050, 0.096019] |
||||
"HYUNDAI IONIQ ELECTRIC LIMITED 2019" = [1.7662975472852054, 1.613755614526594, 0.17087579756306276] |
||||
"HYUNDAI IONIQ PHEV 2020" = [3.2928700076638537, 2.1193482926455656, 0.12463700961468778] |
||||
"HYUNDAI IONIQ PLUG-IN HYBRID 2019" = [2.970807902012267, 1.6312321830002083, 0.1088964990357482] |
||||
"HYUNDAI KONA ELECTRIC 2019" = [3.078814714619148, 2.307336938253934, 0.12359762054065548] |
||||
"HYUNDAI PALISADE 2020" = [2.544642494803999, 1.8721703683337008, 0.1301424599248651] |
||||
"HYUNDAI SANTA FE 2019" = [3.0787027729757632, 2.6173437483495565, 0.1207019341823945] |
||||
"HYUNDAI SANTA FE HYBRID 2022" = [3.501877602644835, 2.729064118456137, 0.10384068104538963] |
||||
"HYUNDAI SANTA FE PlUG-IN HYBRID 2022" = [1.6953050513611045, 1.5837614296206861, 0.12672855941458458] |
||||
"HYUNDAI SONATA 2019" = [2.2200457811703953, 1.2967330275895228, 0.14039920986586393] |
||||
"HYUNDAI SONATA 2020" = [2.9638737459977467, 2.1259108157250735, 0.07813665616927593] |
||||
"HYUNDAI SONATA HYBRID 2021" = [2.8990264092395734, 2.061410192222139, 0.0899805488717382] |
||||
"HYUNDAI TUCSON HYBRID 4TH GEN" = [2.960174, 2.860284, 0.108745] |
||||
"JEEP GRAND CHEROKEE 2019" = [2.30972, 1.289689569171081, 0.117048] |
||||
"JEEP GRAND CHEROKEE V6 2018" = [2.27116, 1.4057367824262523, 0.11725947414922003] |
||||
"KIA EV6 2022" = [3.2, 2.093457, 0.05] |
||||
"KIA K5 2021" = [2.405339728085138, 1.460032270828705, 0.11650989850813716] |
||||
"KIA NIRO EV 2020" = [2.9215954981365337, 2.1500583840260044, 0.09236802474810267] |
||||
"KIA SORENTO GT LINE 2018" = [2.464854685101844, 1.5335274218367956, 0.12056170567599558] |
||||
"KIA STINGER GT2 2018" = [2.7499043387418967, 1.849652021986449, 0.12048334239559202] |
||||
"LEXUS ES 2019" = [2.0357564999999997, 1.999082295195227, 0.101533] |
||||
"LEXUS NX 2018" = [2.3525924753753613, 1.9731412277641067, 0.15168101064205927] |
||||
"LEXUS NX 2020" = [2.4331999786982936, 2.1045680431705414, 0.14099899317761067] |
||||
"LEXUS RX 2016" = [1.5876816543130423, 1.0427699298523752, 0.21334066732397142] |
||||
"LEXUS RX 2020" = [1.5375561442049257, 1.343166476215164, 0.1931062001527557] |
||||
"LEXUS RX HYBRID 2017" = [1.6984261557042386, 1.3211501880159107, 0.1820354534928893] |
||||
"MAZDA CX-9 2021" = [1.7601682915983443, 1.0889677335154337, 0.17713792194297195] |
||||
"SKODA SUPERB 3RD GEN" = [1.166437404652981, 1.1686163012668165, 0.12194533036948708] |
||||
"SUBARU FORESTER 2019" = [3.6617001649776793, 2.342197172531713, 0.11075960785398745] |
||||
"SUBARU IMPREZA LIMITED 2019" = [1.0670704910352047, 0.8234374840709592, 0.20986563268614938] |
||||
"SUBARU IMPREZA SPORT 2020" = [2.6068223389108303, 2.134872342760203, 0.15261513193561627] |
||||
"TOYOTA AVALON 2016" = [2.5185770183845646, 1.7153346784214922, 0.10603968787111022] |
||||
"TOYOTA AVALON 2019" = [1.7036141952825095, 1.239619084240008, 0.08459830394899492] |
||||
"TOYOTA AVALON 2022" = [2.3154403649717357, 2.7777922854327124, 0.11453999639164605] |
||||
"TOYOTA C-HR 2018" = [1.5591084333664578, 1.271271459066948, 0.20259087058453193] |
||||
"TOYOTA C-HR 2021" = [1.7678810166088303, 1.3742176337919942, 0.2319674583741509] |
||||
"TOYOTA CAMRY 2018" = [2.0568162685952505, 1.7576185169559122, 0.108878753] |
||||
"TOYOTA CAMRY 2021" = [2.3548324999999997, 2.368900128946771, 0.118436] |
||||
"TOYOTA COROLLA 2017" = [3.117154369115421, 1.8438132575043773, 0.12289685869250652] |
||||
"TOYOTA COROLLA TSS2 2019" = [1.991132339206426, 1.868866242720403, 0.19570063298031432] |
||||
"TOYOTA HIGHLANDER 2017" = [1.8696367437248915, 1.626293990451463, 0.17485372210240796] |
||||
"TOYOTA HIGHLANDER 2020" = [1.9617570834136164, 1.8611643317268927, 0.14519673256119725] |
||||
"TOYOTA HIGHLANDER HYBRID 2018" = [1.752033, 1.6433903296845025, 0.144600] |
||||
"TOYOTA MIRAI 2021" = [2.506899832157829, 1.7417213930750164, 0.20182618449440565] |
||||
"TOYOTA PRIUS 2017" = [1.60, 1.5023147650693636, 0.151515] |
||||
"TOYOTA PRIUS TSS2 2021" = [1.972600, 1.9104337425537743, 0.170968] |
||||
"TOYOTA RAV4 2017" = [2.085695074355425, 2.2142832316984733, 0.13339165270103975] |
||||
"TOYOTA RAV4 2019" = [2.279239424615458, 2.087101966779332, 0.13682208413446817] |
||||
"TOYOTA RAV4 2019 8965" = [2.3080951748210854, 2.1189367835820603, 0.12942102328134028] |
||||
"TOYOTA RAV4 2019 x02" = [2.762293266024922, 2.243615865975329, 0.11113568178327986] |
||||
"TOYOTA RAV4 HYBRID 2017" = [1.9796257271652042, 1.7503987331707576, 0.14628860048885406] |
||||
"TOYOTA RAV4 2022" = [2.241883248393209, 1.9304407208090029, 0.112174] |
||||
"TOYOTA RAV4 2022 x02" = [3.044930631831037, 2.3979189796380918, 0.14023209146703736] |
||||
"TOYOTA SIENNA 2018" = [1.689726, 1.3208264576110418, 0.140456] |
||||
"VOLKSWAGEN ARTEON 1ST GEN" = [1.45136518053819, 1.3639364049316804, 0.23806361745695032] |
||||
"VOLKSWAGEN ATLAS 1ST GEN" = [1.4677006726964945, 1.6733266634075656, 0.12959584092073367] |
||||
"VOLKSWAGEN GOLF 7TH GEN" = [1.3750394140491293, 1.5814743077200641, 0.2018321939386586] |
||||
"VOLKSWAGEN JETTA 7TH GEN" = [1.2271623034089392, 1.216955117387, 0.19437384688370712] |
||||
"VOLKSWAGEN PASSAT 8TH GEN" = [1.3432120736752917, 1.7087275587362314, 0.19444383787326647] |
||||
"VOLKSWAGEN TIGUAN 2ND GEN" = [0.9711965500094828, 1.0001565939459098, 0.1465626137072916] |
@ -1,88 +0,0 @@ |
||||
ACURA ILX 2016: [1.524988973896102, 0.519011053086259, 0.34236219253028] |
||||
ACURA RDX 2018: [0.9987728568686902, 0.5323765166196301, 0.303218805715844] |
||||
ACURA RDX 2020: [1.4314459806646749, 0.33874701282109954, 0.18048847083897598] |
||||
AUDI A3 3RD GEN: [1.5122414863077502, 1.7443517531719404, 0.15194151892450905] |
||||
AUDI Q3 2ND GEN: [1.4439223359448605, 1.2254955789112076, 0.1413798895978097] |
||||
CHEVROLET VOLT PREMIER 2017: [1.5961527626411784, 1.8422651988094612, 0.1572393918005158] |
||||
CHRYSLER PACIFICA 2018: [2.07140, 1.3366521181047952, 0.13776367250652022] |
||||
CHRYSLER PACIFICA 2020: [1.86206, 1.509076559398423, 0.14328246159386085] |
||||
CHRYSLER PACIFICA HYBRID 2017: [1.79422, 1.06831764583744, 0.116237] |
||||
CHRYSLER PACIFICA HYBRID 2018: [2.08887, 1.2943025830995154, 0.114818] |
||||
CHRYSLER PACIFICA HYBRID 2019: [1.90120, 1.1958788168371808, 0.131520] |
||||
GENESIS G70 2018: [3.8520195946707947, 2.354697063349854, 0.06830285485626221] |
||||
HONDA ACCORD 2018: [1.7135052593468778, 0.3461280068322071, 0.21579936052863807] |
||||
HONDA ACCORD HYBRID 2018: [1.6651615004829625, 0.30322180951193245, 0.2083000440586149] |
||||
HONDA CIVIC (BOSCH) 2019: [1.691708637466905, 0.40132900729454185, 0.25460295304024094] |
||||
HONDA CIVIC 2016: [1.6528895627785531, 0.4018518740819229, 0.25458812851328544] |
||||
HONDA CR-V 2016: [0.7667141440182675, 0.5927571534745969, 0.40909087636157127] |
||||
HONDA CR-V 2017: [2.01323205142022, 0.2700612209345081, 0.2238412881331528] |
||||
HONDA CR-V HYBRID 2019: [2.072034634644233, 0.7152085160516978, 0.20237105008376083] |
||||
HONDA FIT 2018: [1.5719981427109775, 0.5712761407108976, 0.110773383324281] |
||||
HONDA HRV 2019: [2.0661212805710205, 0.7521343418694775, 0.17760375789242094] |
||||
HONDA INSIGHT 2019: [1.5201671214069354, 0.5660229120683284, 0.25808042580281876] |
||||
HONDA ODYSSEY 2018: [1.8774809275211801, 0.8394431662987996, 0.2096978613792822] |
||||
HONDA PILOT 2017: [1.7262026201812795, 0.9470005614967523, 0.21351430733218763] |
||||
HONDA RIDGELINE 2017: [1.4146525028237624, 0.7356572861629564, 0.23307177552211328] |
||||
HYUNDAI ELANTRA 2021: [3.169, 2.1259108157250735, 0.0819] |
||||
HYUNDAI GENESIS 2015-2016: [2.7807965280270794, 2.325, 0.0984484465421171] |
||||
HYUNDAI IONIQ 5 2022: [3.172929, 2.713050, 0.096019] |
||||
HYUNDAI IONIQ ELECTRIC LIMITED 2019: [1.7662975472852054, 1.613755614526594, 0.17087579756306276] |
||||
HYUNDAI IONIQ PHEV 2020: [3.2928700076638537, 2.1193482926455656, 0.12463700961468778] |
||||
HYUNDAI IONIQ PLUG-IN HYBRID 2019: [2.970807902012267, 1.6312321830002083, 0.1088964990357482] |
||||
HYUNDAI KONA ELECTRIC 2019: [3.078814714619148, 2.307336938253934, 0.12359762054065548] |
||||
HYUNDAI PALISADE 2020: [2.544642494803999, 1.8721703683337008, 0.1301424599248651] |
||||
HYUNDAI SANTA FE 2019: [3.0787027729757632, 2.6173437483495565, 0.1207019341823945] |
||||
HYUNDAI SANTA FE HYBRID 2022: [3.501877602644835, 2.729064118456137, 0.10384068104538963] |
||||
HYUNDAI SANTA FE PlUG-IN HYBRID 2022: [1.6953050513611045, 1.5837614296206861, 0.12672855941458458] |
||||
HYUNDAI SONATA 2019: [2.2200457811703953, 1.2967330275895228, 0.14039920986586393] |
||||
HYUNDAI SONATA 2020: [2.9638737459977467, 2.1259108157250735, 0.07813665616927593] |
||||
HYUNDAI SONATA HYBRID 2021: [2.8990264092395734, 2.061410192222139, 0.0899805488717382] |
||||
HYUNDAI TUCSON HYBRID 4TH GEN: [2.960174, 2.860284, 0.108745] |
||||
JEEP GRAND CHEROKEE 2019: [2.30972, 1.289689569171081, 0.117048] |
||||
JEEP GRAND CHEROKEE V6 2018: [2.27116, 1.4057367824262523, 0.11725947414922003] |
||||
KIA EV6 2022: [3.2, 2.093457, 0.05] |
||||
KIA K5 2021: [2.405339728085138, 1.460032270828705, 0.11650989850813716] |
||||
KIA NIRO EV 2020: [2.9215954981365337, 2.1500583840260044, 0.09236802474810267] |
||||
KIA SORENTO GT LINE 2018: [2.464854685101844, 1.5335274218367956, 0.12056170567599558] |
||||
KIA STINGER GT2 2018: [2.7499043387418967, 1.849652021986449, 0.12048334239559202] |
||||
LEXUS ES 2019: [2.0357564999999997, 1.999082295195227, 0.101533] |
||||
LEXUS NX 2018: [2.3525924753753613, 1.9731412277641067, 0.15168101064205927] |
||||
LEXUS NX 2020: [2.4331999786982936, 2.1045680431705414, 0.14099899317761067] |
||||
LEXUS RX 2016: [1.5876816543130423, 1.0427699298523752, 0.21334066732397142] |
||||
LEXUS RX 2020: [1.5375561442049257, 1.343166476215164, 0.1931062001527557] |
||||
LEXUS RX HYBRID 2017: [1.6984261557042386, 1.3211501880159107, 0.1820354534928893] |
||||
MAZDA CX-9 2021: [1.7601682915983443, 1.0889677335154337, 0.17713792194297195] |
||||
SKODA SUPERB 3RD GEN: [1.166437404652981, 1.1686163012668165, 0.12194533036948708] |
||||
SUBARU FORESTER 2019: [3.6617001649776793, 2.342197172531713, 0.11075960785398745] |
||||
SUBARU IMPREZA LIMITED 2019: [1.0670704910352047, 0.8234374840709592, 0.20986563268614938] |
||||
SUBARU IMPREZA SPORT 2020: [2.6068223389108303, 2.134872342760203, 0.15261513193561627] |
||||
TOYOTA AVALON 2016: [2.5185770183845646, 1.7153346784214922, 0.10603968787111022] |
||||
TOYOTA AVALON 2019: [1.7036141952825095, 1.239619084240008, 0.08459830394899492] |
||||
TOYOTA AVALON 2022: [2.3154403649717357, 2.7777922854327124, 0.11453999639164605] |
||||
TOYOTA C-HR 2018: [1.5591084333664578, 1.271271459066948, 0.20259087058453193] |
||||
TOYOTA C-HR 2021: [1.7678810166088303, 1.3742176337919942, 0.2319674583741509] |
||||
TOYOTA CAMRY 2018: [2.0568162685952505, 1.7576185169559122, 0.108878753] |
||||
TOYOTA CAMRY 2021: [2.3548324999999997, 2.368900128946771, 0.118436] |
||||
TOYOTA COROLLA 2017: [3.117154369115421, 1.8438132575043773, 0.12289685869250652] |
||||
TOYOTA COROLLA TSS2 2019: [1.991132339206426, 1.868866242720403, 0.19570063298031432] |
||||
TOYOTA HIGHLANDER 2017: [1.8696367437248915, 1.626293990451463, 0.17485372210240796] |
||||
TOYOTA HIGHLANDER 2020: [1.9617570834136164, 1.8611643317268927, 0.14519673256119725] |
||||
TOYOTA HIGHLANDER HYBRID 2018: [1.752033, 1.6433903296845025, 0.144600] |
||||
TOYOTA MIRAI 2021: [2.506899832157829, 1.7417213930750164, 0.20182618449440565] |
||||
TOYOTA PRIUS 2017: [1.60, 1.5023147650693636, 0.151515] |
||||
TOYOTA PRIUS TSS2 2021: [1.972600, 1.9104337425537743, 0.170968] |
||||
TOYOTA RAV4 2017: [2.085695074355425, 2.2142832316984733, 0.13339165270103975] |
||||
TOYOTA RAV4 2019: [2.279239424615458, 2.087101966779332, 0.13682208413446817] |
||||
TOYOTA RAV4 2019 8965: [2.3080951748210854, 2.1189367835820603, 0.12942102328134028] |
||||
TOYOTA RAV4 2019 x02: [2.762293266024922, 2.243615865975329, 0.11113568178327986] |
||||
TOYOTA RAV4 HYBRID 2017: [1.9796257271652042, 1.7503987331707576, 0.14628860048885406] |
||||
TOYOTA RAV4 2022: [2.241883248393209, 1.9304407208090029, 0.112174] |
||||
TOYOTA RAV4 2022 x02: [3.044930631831037, 2.3979189796380918, 0.14023209146703736] |
||||
TOYOTA SIENNA 2018: [1.689726, 1.3208264576110418, 0.140456] |
||||
VOLKSWAGEN ARTEON 1ST GEN: [1.45136518053819, 1.3639364049316804, 0.23806361745695032] |
||||
VOLKSWAGEN ATLAS 1ST GEN: [1.4677006726964945, 1.6733266634075656, 0.12959584092073367] |
||||
VOLKSWAGEN GOLF 7TH GEN: [1.3750394140491293, 1.5814743077200641, 0.2018321939386586] |
||||
VOLKSWAGEN JETTA 7TH GEN: [1.2271623034089392, 1.216955117387, 0.19437384688370712] |
||||
VOLKSWAGEN PASSAT 8TH GEN: [1.3432120736752917, 1.7087275587362314, 0.19444383787326647] |
||||
VOLKSWAGEN TIGUAN 2ND GEN: [0.9711965500094828, 1.0001565939459098, 0.1465626137072916] |
||||
legend: [LAT_ACCEL_FACTOR, MAX_LAT_ACCEL_MEASURED, FRICTION] |
@ -0,0 +1,84 @@ |
||||
legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"] |
||||
"MAZDA 3" = "MAZDA CX-9 2021" |
||||
"MAZDA 6" = "MAZDA CX-9 2021" |
||||
"MAZDA CX-5" = "MAZDA CX-9 2021" |
||||
"MAZDA CX-5 2022" = "MAZDA CX-9 2021" |
||||
"MAZDA CX-9" = "MAZDA CX-9 2021" |
||||
|
||||
"TOYOTA ALPHARD 2020" = "TOYOTA SIENNA 2018" |
||||
"TOYOTA PRIUS v 2017" = "TOYOTA PRIUS 2017" |
||||
"LEXUS IS 2018" = "LEXUS NX 2018" |
||||
"LEXUS CT HYBRID 2018" = "LEXUS NX 2018" |
||||
"LEXUS ES 2018" = "TOYOTA CAMRY 2018" |
||||
"LEXUS ES HYBRID 2018" = "TOYOTA CAMRY 2018" |
||||
"LEXUS RC 2020" = "LEXUS NX 2020" |
||||
|
||||
"KIA OPTIMA 4TH GEN" = "HYUNDAI SONATA 2020" |
||||
"KIA OPTIMA 4TH GEN FACELIFT" = "HYUNDAI SONATA 2020" |
||||
"KIA OPTIMA HYBRID 2017 & SPORTS 2019" = "HYUNDAI SONATA 2020" |
||||
"KIA OPTIMA HYBRID 4TH GEN FACELIFT" = "HYUNDAI SONATA 2020" |
||||
"KIA FORTE E 2018 & GT 2021" = "HYUNDAI SONATA 2020" |
||||
"KIA CEED INTRO ED 2019" = "HYUNDAI SONATA 2020" |
||||
"KIA SELTOS 2021" = "HYUNDAI SONATA 2020" |
||||
"KIA NIRO HYBRID 2019" = "KIA NIRO EV 2020" |
||||
"KIA NIRO PLUG-IN HYBRID 2022" = "KIA NIRO EV 2020" |
||||
"KIA NIRO HYBRID 2021" = "KIA NIRO EV 2020" |
||||
"HYUNDAI VELOSTER 2019" = "HYUNDAI SONATA 2019" |
||||
"HYUNDAI KONA 2020" = "HYUNDAI KONA ELECTRIC 2019" |
||||
"HYUNDAI KONA HYBRID 2020" = "HYUNDAI KONA ELECTRIC 2019" |
||||
"HYUNDAI KONA ELECTRIC 2022" = "HYUNDAI KONA ELECTRIC 2019" |
||||
"HYUNDAI IONIQ HYBRID 2017-2019" = "HYUNDAI IONIQ PLUG-IN HYBRID 2019" |
||||
"HYUNDAI IONIQ HYBRID 2020-2022" = "HYUNDAI IONIQ PLUG-IN HYBRID 2019" |
||||
"HYUNDAI IONIQ ELECTRIC 2020" = "HYUNDAI IONIQ PLUG-IN HYBRID 2019" |
||||
"HYUNDAI ELANTRA 2017" = "HYUNDAI SONATA 2019" |
||||
"HYUNDAI I30 N LINE 2019 & GT 2018 DCT" = "HYUNDAI SONATA 2019" |
||||
"HYUNDAI ELANTRA HYBRID 2021" = "HYUNDAI SONATA 2020" |
||||
"HYUNDAI TUCSON 2019" = "HYUNDAI SANTA FE 2019" |
||||
"HYUNDAI TUCSON 4TH GEN" = "HYUNDAI TUCSON HYBRID 4TH GEN" |
||||
"HYUNDAI SANTA FE 2022" = "HYUNDAI SANTA FE HYBRID 2022" |
||||
"KIA K5 HYBRID 2020" = "KIA K5 2021" |
||||
"KIA STINGER 2022" = "KIA STINGER GT2 2018" |
||||
"GENESIS G90 2017" = "GENESIS G70 2018" |
||||
"GENESIS G80 2017" = "GENESIS G70 2018" |
||||
"GENESIS G70 2020" = "HYUNDAI SONATA 2020" |
||||
|
||||
"HONDA FREED 2020" = "HONDA ODYSSEY 2018" |
||||
"HONDA CR-V EU 2016" = "HONDA CR-V 2016" |
||||
"HONDA CIVIC SEDAN 1.6 DIESEL 2019" = "HONDA CIVIC (BOSCH) 2019" |
||||
"HONDA E 2020" = "HONDA CIVIC (BOSCH) 2019" |
||||
"HONDA ODYSSEY CHN 2019" = "HONDA ODYSSEY 2018" |
||||
|
||||
"BUICK LACROSSE 2017" = "CHEVROLET VOLT PREMIER 2017" |
||||
"BUICK REGAL ESSENCE 2018" = "CHEVROLET VOLT PREMIER 2017" |
||||
"CADILLAC ESCALADE ESV 2016" = "CHEVROLET VOLT PREMIER 2017" |
||||
"CADILLAC ATS Premium Performance 2018" = "CHEVROLET VOLT PREMIER 2017" |
||||
"CHEVROLET MALIBU PREMIER 2017" = "CHEVROLET VOLT PREMIER 2017" |
||||
"HOLDEN ASTRA RS-V BK 2017" = "CHEVROLET VOLT PREMIER 2017" |
||||
|
||||
"SKODA FABIA 4TH GEN" = "VOLKSWAGEN GOLF 7TH GEN" |
||||
"SKODA OCTAVIA 3RD GEN" = "SKODA SUPERB 3RD GEN" |
||||
"SKODA SCALA 1ST GEN" = "SKODA SUPERB 3RD GEN" |
||||
"SKODA KODIAQ 1ST GEN" = "SKODA SUPERB 3RD GEN" |
||||
"SKODA KAROQ 1ST GEN" = "SKODA SUPERB 3RD GEN" |
||||
"SKODA KAMIQ 1ST GEN" = "SKODA SUPERB 3RD GEN" |
||||
"VOLKSWAGEN CRAFTER 2ND GEN" = "VOLKSWAGEN TIGUAN 2ND GEN" |
||||
"VOLKSWAGEN T-ROC 1ST GEN" = "VOLKSWAGEN TIGUAN 2ND GEN" |
||||
"VOLKSWAGEN T-CROSS 1ST GEN" = "VOLKSWAGEN TIGUAN 2ND GEN" |
||||
"VOLKSWAGEN TOURAN 2ND GEN" = "VOLKSWAGEN TIGUAN 2ND GEN" |
||||
"VOLKSWAGEN TRANSPORTER T6.1" = "VOLKSWAGEN TIGUAN 2ND GEN" |
||||
"AUDI Q2 1ST GEN" = "VOLKSWAGEN TIGUAN 2ND GEN" |
||||
"VOLKSWAGEN TAOS 1ST GEN" = "VOLKSWAGEN TIGUAN 2ND GEN" |
||||
"VOLKSWAGEN POLO 6TH GEN" = "VOLKSWAGEN GOLF 7TH GEN" |
||||
"SEAT LEON 3RD GEN" = "VOLKSWAGEN GOLF 7TH GEN" |
||||
"SEAT ATECA 1ST GEN" = "VOLKSWAGEN GOLF 7TH GEN" |
||||
|
||||
"SUBARU CROSSTREK HYBRID 2020" = "SUBARU IMPREZA SPORT 2020" |
||||
"SUBARU FORESTER HYBRID 2020" = "SUBARU IMPREZA SPORT 2020" |
||||
"SUBARU LEGACY 7TH GEN" = "SUBARU OUTBACK 6TH GEN" |
||||
|
||||
# Old subarus don't have much data guessing it's like low torque impreza" |
||||
"SUBARU OUTBACK 2018 - 2019" = "SUBARU IMPREZA LIMITED 2019" |
||||
"SUBARU OUTBACK 2015 - 2017" = "SUBARU IMPREZA LIMITED 2019" |
||||
"SUBARU FORESTER 2017 - 2018" = "SUBARU IMPREZA LIMITED 2019" |
||||
"SUBARU LEGACY 2015 - 2018" = "SUBARU IMPREZA LIMITED 2019" |
||||
"SUBARU ASCENT LIMITED 2019" = "SUBARU FORESTER 2019" |
@ -1,83 +0,0 @@ |
||||
MAZDA 3: MAZDA CX-9 2021 |
||||
MAZDA 6: MAZDA CX-9 2021 |
||||
MAZDA CX-5: MAZDA CX-9 2021 |
||||
MAZDA CX-5 2022: MAZDA CX-9 2021 |
||||
MAZDA CX-9: MAZDA CX-9 2021 |
||||
|
||||
TOYOTA ALPHARD 2020: TOYOTA SIENNA 2018 |
||||
TOYOTA PRIUS v 2017 : TOYOTA PRIUS 2017 |
||||
LEXUS IS 2018: LEXUS NX 2018 |
||||
LEXUS CT HYBRID 2018 : LEXUS NX 2018 |
||||
LEXUS ES 2018: TOYOTA CAMRY 2018 |
||||
LEXUS ES HYBRID 2018: TOYOTA CAMRY 2018 |
||||
LEXUS RC 2020: LEXUS NX 2020 |
||||
|
||||
KIA OPTIMA 4TH GEN: HYUNDAI SONATA 2020 |
||||
KIA OPTIMA 4TH GEN FACELIFT: HYUNDAI SONATA 2020 |
||||
KIA OPTIMA HYBRID 2017 & SPORTS 2019: HYUNDAI SONATA 2020 |
||||
KIA OPTIMA HYBRID 4TH GEN FACELIFT: HYUNDAI SONATA 2020 |
||||
KIA FORTE E 2018 & GT 2021: HYUNDAI SONATA 2020 |
||||
KIA CEED INTRO ED 2019: HYUNDAI SONATA 2020 |
||||
KIA SELTOS 2021: HYUNDAI SONATA 2020 |
||||
KIA NIRO HYBRID 2019: KIA NIRO EV 2020 |
||||
KIA NIRO PLUG-IN HYBRID 2022: KIA NIRO EV 2020 |
||||
KIA NIRO HYBRID 2021: KIA NIRO EV 2020 |
||||
HYUNDAI VELOSTER 2019: HYUNDAI SONATA 2019 |
||||
HYUNDAI KONA 2020: HYUNDAI KONA ELECTRIC 2019 |
||||
HYUNDAI KONA HYBRID 2020: HYUNDAI KONA ELECTRIC 2019 |
||||
HYUNDAI KONA ELECTRIC 2022: HYUNDAI KONA ELECTRIC 2019 |
||||
HYUNDAI IONIQ HYBRID 2017-2019: HYUNDAI IONIQ PLUG-IN HYBRID 2019 |
||||
HYUNDAI IONIQ HYBRID 2020-2022: HYUNDAI IONIQ PLUG-IN HYBRID 2019 |
||||
HYUNDAI IONIQ ELECTRIC 2020: HYUNDAI IONIQ PLUG-IN HYBRID 2019 |
||||
HYUNDAI ELANTRA 2017: HYUNDAI SONATA 2019 |
||||
HYUNDAI I30 N LINE 2019 & GT 2018 DCT: HYUNDAI SONATA 2019 |
||||
HYUNDAI ELANTRA HYBRID 2021: HYUNDAI SONATA 2020 |
||||
HYUNDAI TUCSON 2019: HYUNDAI SANTA FE 2019 |
||||
HYUNDAI TUCSON 4TH GEN: HYUNDAI TUCSON HYBRID 4TH GEN |
||||
HYUNDAI SANTA FE 2022: HYUNDAI SANTA FE HYBRID 2022 |
||||
KIA K5 HYBRID 2020: KIA K5 2021 |
||||
KIA STINGER 2022: KIA STINGER GT2 2018 |
||||
GENESIS G90 2017: GENESIS G70 2018 |
||||
GENESIS G80 2017: GENESIS G70 2018 |
||||
GENESIS G70 2020: HYUNDAI SONATA 2020 |
||||
|
||||
HONDA FREED 2020: HONDA ODYSSEY 2018 |
||||
HONDA CR-V EU 2016: HONDA CR-V 2016 |
||||
HONDA CIVIC SEDAN 1.6 DIESEL 2019: HONDA CIVIC (BOSCH) 2019 |
||||
HONDA E 2020: HONDA CIVIC (BOSCH) 2019 |
||||
HONDA ODYSSEY CHN 2019: HONDA ODYSSEY 2018 |
||||
|
||||
BUICK LACROSSE 2017: CHEVROLET VOLT PREMIER 2017 |
||||
BUICK REGAL ESSENCE 2018: CHEVROLET VOLT PREMIER 2017 |
||||
CADILLAC ESCALADE ESV 2016: CHEVROLET VOLT PREMIER 2017 |
||||
CADILLAC ATS Premium Performance 2018: CHEVROLET VOLT PREMIER 2017 |
||||
CHEVROLET MALIBU PREMIER 2017: CHEVROLET VOLT PREMIER 2017 |
||||
HOLDEN ASTRA RS-V BK 2017: CHEVROLET VOLT PREMIER 2017 |
||||
|
||||
SKODA FABIA 4TH GEN: VOLKSWAGEN GOLF 7TH GEN |
||||
SKODA OCTAVIA 3RD GEN: SKODA SUPERB 3RD GEN |
||||
SKODA SCALA 1ST GEN: SKODA SUPERB 3RD GEN |
||||
SKODA KODIAQ 1ST GEN: SKODA SUPERB 3RD GEN |
||||
SKODA KAROQ 1ST GEN: SKODA SUPERB 3RD GEN |
||||
SKODA KAMIQ 1ST GEN: SKODA SUPERB 3RD GEN |
||||
VOLKSWAGEN CRAFTER 2ND GEN: VOLKSWAGEN TIGUAN 2ND GEN |
||||
VOLKSWAGEN T-ROC 1ST GEN: VOLKSWAGEN TIGUAN 2ND GEN |
||||
VOLKSWAGEN T-CROSS 1ST GEN: VOLKSWAGEN TIGUAN 2ND GEN |
||||
VOLKSWAGEN TOURAN 2ND GEN: VOLKSWAGEN TIGUAN 2ND GEN |
||||
VOLKSWAGEN TRANSPORTER T6.1: VOLKSWAGEN TIGUAN 2ND GEN |
||||
AUDI Q2 1ST GEN: VOLKSWAGEN TIGUAN 2ND GEN |
||||
VOLKSWAGEN TAOS 1ST GEN: VOLKSWAGEN TIGUAN 2ND GEN |
||||
VOLKSWAGEN POLO 6TH GEN: VOLKSWAGEN GOLF 7TH GEN |
||||
SEAT LEON 3RD GEN: VOLKSWAGEN GOLF 7TH GEN |
||||
SEAT ATECA 1ST GEN: VOLKSWAGEN GOLF 7TH GEN |
||||
|
||||
SUBARU CROSSTREK HYBRID 2020: SUBARU IMPREZA SPORT 2020 |
||||
SUBARU FORESTER HYBRID 2020: SUBARU IMPREZA SPORT 2020 |
||||
SUBARU LEGACY 7TH GEN: SUBARU OUTBACK 6TH GEN |
||||
|
||||
# Old subarus don't have much data guessing it's like low torque impreza |
||||
SUBARU OUTBACK 2018 - 2019: SUBARU IMPREZA LIMITED 2019 |
||||
SUBARU OUTBACK 2015 - 2017: SUBARU IMPREZA LIMITED 2019 |
||||
SUBARU FORESTER 2017 - 2018: SUBARU IMPREZA LIMITED 2019 |
||||
SUBARU LEGACY 2015 - 2018: SUBARU IMPREZA LIMITED 2019 |
||||
SUBARU ASCENT LIMITED 2019: SUBARU FORESTER 2019 |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1 +1 @@ |
||||
Subproject commit 4df237c512622d3914a73f4fc15a3fc89b7f5a97 |
||||
Subproject commit ca10fb2410ee14e207f30aadebeec707904dc559 |
@ -1,44 +0,0 @@ |
||||
#!/usr/bin/env python |
||||
import os |
||||
import sys |
||||
import numpy as np |
||||
os.environ['ZMQ'] = '1' |
||||
|
||||
from openpilot.common.window import Window |
||||
import cereal.messaging as messaging |
||||
|
||||
# start camerad with 'SEND_ROAD=1 SEND_DRIVER=1 SEND_WIDE_ROAD=1 XMIN=771 XMAX=1156 YMIN=483 YMAX=724 ./camerad' |
||||
# also start bridge |
||||
# then run this "./receive.py <ip>" |
||||
|
||||
if "FULL" in os.environ: |
||||
SCALE = 2 |
||||
XMIN, XMAX = 0, 1927 |
||||
YMIN, YMAX = 0, 1207 |
||||
else: |
||||
SCALE = 1 |
||||
XMIN = 771 |
||||
XMAX = 1156 |
||||
YMIN = 483 |
||||
YMAX = 724 |
||||
H, W = ((YMAX-YMIN+1)//SCALE, (XMAX-XMIN+1)//SCALE) |
||||
|
||||
if __name__ == '__main__': |
||||
cameras = ['roadCameraState', 'wideRoadCameraState', 'driverCameraState'] |
||||
if "CAM" in os.environ: |
||||
cam = int(os.environ['CAM']) |
||||
cameras = cameras[cam:cam+1] |
||||
sm = messaging.SubMaster(cameras, addr=sys.argv[1]) |
||||
win = Window(W*len(cameras), H) |
||||
bdat = np.zeros((H, W*len(cameras), 3), dtype=np.uint8) |
||||
|
||||
while 1: |
||||
sm.update() |
||||
for i,k in enumerate(cameras): |
||||
if sm.updated[k]: |
||||
#print("update", k) |
||||
bgr_raw = sm[k].image |
||||
dat = np.frombuffer(bgr_raw, dtype=np.uint8).reshape(H, W, 3)[:, :, [2,1,0]] |
||||
bdat[:, W*i:W*(i+1)] = dat |
||||
win.draw(bdat) |
||||
|
Loading…
Reference in new issue