mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-08-31 21:23:49 +08:00
Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9e7fb4680d | |||
| 40982f18ab | |||
| 4d47e1243d | |||
| 9ff1fb48de | |||
| 51aa86da12 | |||
| 6e00ef601d | |||
| db7ea2a599 | |||
| 682dc5ddad | |||
| 3b62a21fa7 | |||
| ffe062c774 | |||
| 4fd2b0e730 | |||
| 2d659de09c | |||
| 35bd9d9fb3 | |||
| f878928731 | |||
| 771a8b7a55 | |||
| fcd5a66252 | |||
| 23bbf52578 |
@@ -57,6 +57,8 @@ panda_jungle
|
||||
|
||||
.coverage*
|
||||
coverage.xml
|
||||
cppcheck_report.txt
|
||||
htmlcov
|
||||
pandaextra
|
||||
|
||||
.mypy_cache/
|
||||
|
||||
+3
-2
@@ -2,7 +2,7 @@
|
||||
|
||||
Our software is open source so you can solve your own problems without needing help from others. And if you solve a problem and are so kind, you can upstream it for the rest of the world to use.
|
||||
|
||||
Most open source development activity is coordinated through our [Discord](https://discord.comma.ai). A lot of documentation is available on our [medium](https://medium.com/@comma_ai/)
|
||||
Most open source development activity is coordinated through our [Discord](https://discord.comma.ai). A lot of documentation is available on our [medium](https://medium.com/@comma_ai/).
|
||||
|
||||
## Getting Started
|
||||
|
||||
@@ -18,7 +18,7 @@ You can test your changes on your machine by running `run_docker_tests.sh`. This
|
||||
|
||||
### Automated Testing
|
||||
|
||||
All PRs are automatically checked by Github Actions. Check out `.github/workflows/` for what Github Actions runs. Any new tests sould be added to Github Actions.
|
||||
All PRs and commits are automatically checked by Github Actions. Check out `.github/workflows/` for what Github Actions runs. Any new tests sould be added to Github Actions.
|
||||
|
||||
### Code Style and Linting
|
||||
|
||||
@@ -48,3 +48,4 @@ Modules that are in seperate repositories include:
|
||||
* laika
|
||||
* opendbc
|
||||
* panda
|
||||
* rednose
|
||||
|
||||
@@ -72,7 +72,7 @@ Supported Cars
|
||||
| Honda | Civic Sedan/Coupe 2016-18 | Honda Sensing | openpilot | 0mph | 12mph |
|
||||
| Honda | Civic Sedan/Coupe 2019-20 | Honda Sensing | Stock | 0mph | 2mph<sup>2</sup> |
|
||||
| Honda | CR-V 2015-16 | Touring | openpilot | 25mph<sup>1</sup> | 12mph |
|
||||
| Honda | CR-V 2017-19 | Honda Sensing | Stock | 0mph | 12mph |
|
||||
| Honda | CR-V 2017-20 | Honda Sensing | Stock | 0mph | 12mph |
|
||||
| Honda | CR-V Hybrid 2017-2019 | Honda Sensing | Stock | 0mph | 12mph |
|
||||
| Honda | Fit 2018-19 | Honda Sensing | openpilot | 25mph<sup>1</sup> | 12mph |
|
||||
| Honda | HR-V 2019 | Honda Sensing | openpilot | 25mph<sup>1</sup> | 12mph |
|
||||
@@ -91,6 +91,7 @@ Supported Cars
|
||||
| Lexus | RX 2016-17 | All | Stock<sup>3</sup>| 0mph | 0mph |
|
||||
| Lexus | RX 2020 | All | openpilot | 0mph | 0mph |
|
||||
| Lexus | RX Hybrid 2016-19 | All | Stock<sup>3</sup>| 0mph | 0mph |
|
||||
| Lexus | RX Hybrid 2020 | All | openpilot | 0mph | 0mph |
|
||||
| Toyota | Avalon 2016 | TSS-P | Stock<sup>3</sup>| 20mph<sup>1</sup> | 0mph |
|
||||
| Toyota | Avalon 2017-18 | All | Stock<sup>3</sup>| 20mph<sup>1</sup> | 0mph |
|
||||
| Toyota | Camry 2018-20 | All | Stock | 0mph<sup>4</sup> | 0mph |
|
||||
@@ -114,7 +115,7 @@ Supported Cars
|
||||
| Toyota | Rav4 Hybrid 2016 | TSS-P | Stock<sup>3</sup>| 0mph | 0mph |
|
||||
| Toyota | Rav4 Hybrid 2017-18 | All | Stock<sup>3</sup>| 0mph | 0mph |
|
||||
| Toyota | Rav4 Hybrid 2019-20 | All | openpilot | 0mph | 0mph |
|
||||
| Toyota | Sienna 2018 | All | Stock<sup>3</sup>| 0mph | 0mph |
|
||||
| Toyota | Sienna 2018-20 | All | Stock<sup>3</sup>| 0mph | 0mph |
|
||||
|
||||
<sup>1</sup>[Comma Pedal](https://community.comma.ai/wiki/index.php/Comma_Pedal) is used to provide stop-and-go capability to some of the openpilot-supported cars that don't currently support stop-and-go. Here is how to [build a Comma Pedal](https://medium.com/@jfrux/comma-pedal-building-with-macrofab-6328bea791e8). ***NOTE: The Comma Pedal is not officially supported by [comma](https://comma.ai).*** <br />
|
||||
<sup>2</sup>2019 Honda Civic 1.6L Diesel Sedan does not have ALC below 12mph. <br />
|
||||
@@ -135,34 +136,32 @@ Community Maintained Cars and Features
|
||||
| Chrysler | Pacifica Hybrid 2017-18 | Adaptive Cruise | Stock | 0mph | 9mph |
|
||||
| Chrysler | Pacifica Hybrid 2019-20 | Adaptive Cruise | Stock | 0mph | 39mph |
|
||||
| Genesis | G80 2018<sup>2</sup> | All | Stock | 0mph | 0mph |
|
||||
| Genesis | G90 2018<sup>2</sup> | All | Stock | 0mph | 0mph |
|
||||
| GMC | Acadia Denali 2018<sup>3</sup>| Adaptive Cruise | openpilot | 0mph | 7mph |
|
||||
| Genesis | G90 2018 | All | Stock | 0mph | 0mph |
|
||||
| GMC | Acadia Denali 2018<sup>2</sup>| Adaptive Cruise | openpilot | 0mph | 7mph |
|
||||
| Holden | Astra 2017<sup>1</sup> | Adaptive Cruise | openpilot | 0mph | 7mph |
|
||||
| Hyundai | Elantra 2017-19<sup>2</sup> | SCC + LKAS | Stock | 19mph | 34mph |
|
||||
| Hyundai | Genesis 2015-16<sup>2</sup> | SCC + LKAS | Stock | 19mph | 37mph |
|
||||
| Hyundai | Ioniq 2017<sup>2</sup> | SCC + LKAS | Stock | 0mph | 32mph |
|
||||
| Hyundai | Ioniq 2019 EV<sup>2</sup> | SCC + LKAS | Stock | 0mph | 32mph |
|
||||
| Hyundai | Kona 2017-19<sup>2</sup> | SCC + LKAS | Stock | 22mph | 0mph |
|
||||
| Hyundai | Kona 2019 EV<sup>2</sup> | SCC + LKAS | Stock | 0mph | 0mph |
|
||||
| Hyundai | Palisade 2020<sup>2</sup> | All | Stock | 0mph | 0mph |
|
||||
| Hyundai | Santa Fe 2019<sup>2</sup> | All | Stock | 0mph | 0mph |
|
||||
| Hyundai | Sonata 2020<sup>2</sup> | All | Stock | 0mph | 0mph |
|
||||
| Hyundai | Santa Fe 2019 | All | Stock | 0mph | 0mph |
|
||||
| Hyundai | Sonata 2019-20 | All | Stock | 0mph | 0mph |
|
||||
| Jeep | Grand Cherokee 2016-18 | Adaptive Cruise | Stock | 0mph | 9mph |
|
||||
| Jeep | Grand Cherokee 2019 | Adaptive Cruise | Stock | 0mph | 39mph |
|
||||
| Kia | Forte 2018<sup>2</sup> | SCC + LKAS | Stock | 0mph | 0mph |
|
||||
| Kia | Forte 2018-19<sup>2</sup> | SCC + LKAS | Stock | 0mph | 0mph |
|
||||
| Kia | Optima 2017<sup>2</sup> | SCC + LKAS/LDWS | Stock | 0mph | 32mph |
|
||||
| Kia | Optima 2019<sup>2</sup> | SCC + LKAS | Stock | 0mph | 0mph |
|
||||
| Kia | Sorento 2018<sup>2</sup> | SCC + LKAS | Stock | 0mph | 0mph |
|
||||
| Kia | Stinger 2018<sup>2</sup> | SCC + LKAS | Stock | 0mph | 0mph |
|
||||
| Nissan | Leaf 2019 | Propilot | Stock | 0mph | 0mph |
|
||||
| Nissan | X-Trail 2018 | Propilot | Stock | 0mph | 0mph |
|
||||
| Nissan | Leaf 2018-19<sup>2</sup> | Propilot | Stock | 0mph | 0mph |
|
||||
| Nissan | Rogue 2019<sup>2</sup> | Propilot | Stock | 0mph | 0mph |
|
||||
| Nissan | X-Trail 2017<sup>2</sup> | Propilot | Stock | 0mph | 0mph |
|
||||
| Subaru | Crosstrek 2018-19 | EyeSight | Stock | 0mph | 0mph |
|
||||
| Subaru | Impreza 2018-20 | EyeSight | Stock | 0mph | 0mph |
|
||||
| Volkswagen| Golf 2016-19<sup>3</sup> | Driver Assistance | Stock | 0mph | 0mph |
|
||||
| Volkswagen| Golf 2015-19 | Driver Assistance | Stock | 0mph | 0mph |
|
||||
|
||||
<sup>1</sup>Requires a [panda](https://comma.ai/shop/products/panda-obd-ii-dongle) and [community built giraffe](https://zoneos.com/volt/). ***NOTE: disconnecting the ASCM disables Automatic Emergency Braking (AEB).*** <br />
|
||||
<sup>2</sup>Requires a [panda](https://comma.ai/shop/products/panda-obd-ii-dongle) and open sourced [Hyundai giraffe](https://github.com/commaai/neo/tree/master/giraffe/hyundai), designed for the 2019 Sante Fe; pinout may differ for other Hyundai and Kia models. <br />
|
||||
<sup>3</sup>Requires a [custom connector](https://community.comma.ai/wiki/index.php/Volkswagen#Integration_at_R242_Camera) for the [car harness](https://comma.ai/shop/products/car-harness) <br />
|
||||
<sup>2</sup>May require a custom connector for the developer [car harness](https://comma.ai/shop/products/car-harness) <br />
|
||||
|
||||
Although it's not upstream, there's a community of people getting openpilot to run on Tesla's [here](https://tinkla.us/)
|
||||
|
||||
@@ -328,6 +327,7 @@ NO WARRANTY EXPRESSED OR IMPLIED.**
|
||||
|
||||
<img src="https://d1qb2nb5cznatu.cloudfront.net/startups/i/1061157-bc7e9bf3b246ece7322e6ffe653f6af8-medium_jpg.jpg?buster=1458363130" width="75"></img> <img src="https://cdn-images-1.medium.com/max/1600/1*C87EjxGeMPrkTuVRVWVg4w.png" width="225"></img>
|
||||
|
||||
[](https://github.com/commaai/openpilot/actions)
|
||||
[](https://lgtm.com/projects/g/commaai/openpilot/alerts/)
|
||||
[](https://lgtm.com/projects/g/commaai/openpilot/context:python)
|
||||
[](https://lgtm.com/projects/g/commaai/openpilot/context:cpp)
|
||||
|
||||
+12
-1
@@ -1,3 +1,15 @@
|
||||
Version 0.7.6.1 (2020-06-16)
|
||||
========================
|
||||
* Hotfix: update kernel on some comma twos (orders #8570-#8680)
|
||||
|
||||
Version 0.7.6 (2020-06-05)
|
||||
========================
|
||||
* White panda is deprecated, upgrade to comma two or black panda
|
||||
* 2017 Nissan X-Trail, 2018-19 Leaf and 2019 Rogue support thanks to avolmensky!
|
||||
* 2017 Mazda CX-5 support in dashcam mode thanks to Jafaral!
|
||||
* Huge CPU savings in modeld by using thneed!
|
||||
* Lots of code cleanup and refactors
|
||||
|
||||
Version 0.7.5 (2020-05-13)
|
||||
========================
|
||||
* Right-Hand Drive support for both driving and driver monitoring!
|
||||
@@ -5,7 +17,6 @@ Version 0.7.5 (2020-05-13)
|
||||
* New driver monitoring model: overall improvement on comma two
|
||||
* Driver camera preview in settings to improve mounting position
|
||||
* Added support for many Hyundai, Kia, Genesis models thanks to xx979xx!
|
||||
* 2019 Nissan X-Trail and 2018 Nissan Leaf support thanks to avolmensky!
|
||||
* Improved lateral tuning for 2020 Toyota Rav 4 (hybrid)
|
||||
|
||||
Version 0.7.4 (2020-03-20)
|
||||
|
||||
+11
-24
@@ -43,10 +43,9 @@ if arch == "aarch64" or arch == "larch64":
|
||||
]
|
||||
|
||||
if arch == "larch64":
|
||||
cpppath += ["#phonelibs/capnp-cpp/include"]
|
||||
libpath += ["#phonelibs/snpe/larch64"]
|
||||
libpath += ["#phonelibs/libyuv/larch64/lib"]
|
||||
libpath += ["#external/capnparm/lib", "/usr/lib/aarch64-linux-gnu"]
|
||||
libpath += ["/usr/lib/aarch64-linux-gnu"]
|
||||
cflags = ["-DQCOM2", "-mcpu=cortex-a57"]
|
||||
cxxflags = ["-DQCOM2", "-mcpu=cortex-a57"]
|
||||
rpath = ["/usr/local/lib"]
|
||||
@@ -62,14 +61,11 @@ else:
|
||||
"PATH": "#external/bin:" + os.environ['PATH'],
|
||||
}
|
||||
cpppath = [
|
||||
"#phonelibs/capnp-cpp/include",
|
||||
"#phonelibs/zmq/x64/include",
|
||||
"#external/tensorflow/include",
|
||||
]
|
||||
|
||||
if arch == "Darwin":
|
||||
libpath = [
|
||||
"#phonelibs/capnp-cpp/mac/lib",
|
||||
"#phonelibs/libyuv/mac/lib",
|
||||
"#cereal",
|
||||
"#selfdrive/common",
|
||||
@@ -78,11 +74,8 @@ else:
|
||||
]
|
||||
else:
|
||||
libpath = [
|
||||
"#phonelibs/capnp-cpp/x64/lib",
|
||||
"#phonelibs/snpe/x86_64-linux-clang",
|
||||
"#phonelibs/zmq/x64/lib",
|
||||
"#phonelibs/libyuv/x64/lib",
|
||||
"#external/zmq/lib",
|
||||
"#external/tensorflow/lib",
|
||||
"#cereal",
|
||||
"#selfdrive/common",
|
||||
@@ -90,8 +83,7 @@ else:
|
||||
"/usr/local/lib",
|
||||
]
|
||||
|
||||
rpath = ["phonelibs/capnp-cpp/x64/lib",
|
||||
"phonelibs/zmq/x64/lib",
|
||||
rpath = [
|
||||
"external/tensorflow/lib",
|
||||
"cereal",
|
||||
"selfdrive/common"]
|
||||
@@ -114,11 +106,9 @@ env = Environment(
|
||||
"-g",
|
||||
"-fPIC",
|
||||
"-O2",
|
||||
"-Werror=implicit-function-declaration",
|
||||
"-Werror=incompatible-pointer-types",
|
||||
"-Werror=int-conversion",
|
||||
"-Werror=return-type",
|
||||
"-Werror=format-extra-args",
|
||||
"-Werror",
|
||||
"-Wno-deprecated-register",
|
||||
"-Wno-inconsistent-missing-override",
|
||||
] + cflags + ccflags_asan,
|
||||
|
||||
CPPPATH=cpppath + [
|
||||
@@ -128,7 +118,6 @@ env = Environment(
|
||||
"#phonelibs/libyuv/include",
|
||||
"#phonelibs/openmax/include",
|
||||
"#phonelibs/json11",
|
||||
"#phonelibs/eigen",
|
||||
"#phonelibs/curl/include",
|
||||
#"#phonelibs/opencv/include", # use opencv4 instead
|
||||
"#phonelibs/libgralloc/include",
|
||||
@@ -189,10 +178,7 @@ def abspath(x):
|
||||
return x[0].path.rsplit("/", 1)[1][:-3]
|
||||
|
||||
# still needed for apks
|
||||
if arch == 'larch64':
|
||||
zmq = 'zmq'
|
||||
else:
|
||||
zmq = FindFile("libzmq.a", libpath)
|
||||
zmq = 'zmq'
|
||||
Export('env', 'arch', 'zmq', 'SHARED', 'webcam')
|
||||
|
||||
# cereal and messaging are shared with the system
|
||||
@@ -238,11 +224,12 @@ SConscript(['selfdrive/proclogd/SConscript'])
|
||||
SConscript(['selfdrive/ui/SConscript'])
|
||||
SConscript(['selfdrive/loggerd/SConscript'])
|
||||
|
||||
SConscript(['selfdrive/locationd/SConscript'])
|
||||
SConscript(['selfdrive/locationd/models/SConscript'])
|
||||
|
||||
if arch == "aarch64":
|
||||
SConscript(['selfdrive/logcatd/SConscript'])
|
||||
SConscript(['selfdrive/sensord/SConscript'])
|
||||
SConscript(['selfdrive/clocksd/SConscript'])
|
||||
|
||||
SConscript(['selfdrive/locationd/SConscript'])
|
||||
SConscript(['selfdrive/locationd/kalman/SConscript'])
|
||||
SConscript(['tools/lib/index_log/SConscript'])
|
||||
else:
|
||||
SConscript(['tools/lib/index_log/SConscript'])
|
||||
|
||||
Binary file not shown.
Vendored
+3
-1
@@ -11,6 +11,9 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build docker image
|
||||
run: docker build -t cereal .
|
||||
- name: Static analysis
|
||||
run: |
|
||||
docker run cereal bash -c "git init && git add -A && pre-commit run --all"
|
||||
- name: Unit Tests
|
||||
run: |
|
||||
docker run cereal bash -c "scons --test --asan -j$(nproc) && messaging/test_runner"
|
||||
@@ -20,4 +23,3 @@ jobs:
|
||||
- name: Test MSGQ
|
||||
run: |
|
||||
docker run cereal bash -c "MSGQ=1 python -m unittest discover ."
|
||||
|
||||
|
||||
+1
-1
@@ -11,4 +11,4 @@ libmessaging_shared.*
|
||||
services.h
|
||||
.sconsign.dblite
|
||||
libcereal_shared.*
|
||||
|
||||
.mypy_cache/
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: master
|
||||
hooks:
|
||||
- id: check-ast
|
||||
- id: check-json
|
||||
- id: check-xml
|
||||
- id: check-yaml
|
||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||
rev: master
|
||||
hooks:
|
||||
- id: mypy
|
||||
- repo: https://github.com/PyCQA/flake8
|
||||
rev: master
|
||||
hooks:
|
||||
- id: flake8
|
||||
args:
|
||||
- --select=F
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: pylint
|
||||
name: pylint
|
||||
entry: pylint
|
||||
language: system
|
||||
types: [python]
|
||||
args:
|
||||
- --disable=R,C,W
|
||||
+4
-5
@@ -1,19 +1,18 @@
|
||||
from ubuntu:16.04
|
||||
FROM ubuntu:16.04
|
||||
|
||||
RUN apt-get update && apt-get install -y libzmq3-dev clang wget git autoconf libtool curl make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
|
||||
RUN apt-get update && apt-get install -y libzmq3-dev capnproto libcapnp-dev clang wget git autoconf libtool curl make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
|
||||
|
||||
RUN curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
|
||||
ENV PATH="/root/.pyenv/bin:/root/.pyenv/shims:${PATH}"
|
||||
RUN pyenv install 3.7.3
|
||||
RUN pyenv global 3.7.3
|
||||
RUN pyenv rehash
|
||||
RUN pip3 install pyyaml==5.1.2 Cython==0.29.14 scons==3.1.1 pycapnp==0.6.4
|
||||
RUN pip3 install pyyaml==5.1.2 Cython==0.29.14 scons==3.1.1 pycapnp==0.6.4 pre-commit==2.4.0 pylint==2.5.2
|
||||
|
||||
WORKDIR /project/cereal
|
||||
COPY install_capnp.sh .
|
||||
RUN ./install_capnp.sh
|
||||
|
||||
ENV PYTHONPATH=/project
|
||||
|
||||
COPY . .
|
||||
RUN rm -rf .git
|
||||
RUN scons -c && scons -j$(nproc)
|
||||
|
||||
+5
-2
@@ -20,6 +20,7 @@ if shutil.which('capnpc-java'):
|
||||
cereal_objects = env.SharedObject([
|
||||
'gen/cpp/car.capnp.c++',
|
||||
'gen/cpp/log.capnp.c++',
|
||||
'messaging/socketmaster.cc',
|
||||
])
|
||||
|
||||
env.Library('cereal', cereal_objects)
|
||||
@@ -43,8 +44,10 @@ Depends('messaging/impl_zmq.cc', services_h)
|
||||
|
||||
# note, this rebuilds the deps shared, zmq is statically linked to make APK happy
|
||||
# TODO: get APK to load system zmq to remove the static link
|
||||
shared_lib_shared_lib = [zmq, 'm', 'stdc++'] + ["gnustl_shared"] if arch == "aarch64" else [zmq]
|
||||
env.SharedLibrary('messaging_shared', messaging_objects, LIBS=shared_lib_shared_lib)
|
||||
if arch == "aarch64":
|
||||
zmq_static = FindFile("libzmq.a", "/usr/lib")
|
||||
shared_lib_shared_lib = [zmq_static, 'm', 'stdc++', "gnustl_shared"]
|
||||
env.SharedLibrary('messaging_shared', messaging_objects, LIBS=shared_lib_shared_lib)
|
||||
|
||||
env.Program('messaging/bridge', ['messaging/bridge.cc'], LIBS=[messaging_lib, 'zmq'])
|
||||
Depends('messaging/bridge.cc', services_h)
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# pylint: skip-file
|
||||
import os
|
||||
import capnp
|
||||
|
||||
|
||||
+20
-10
@@ -13,12 +13,12 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
||||
name @0 :EventName;
|
||||
enable @1 :Bool;
|
||||
noEntry @2 :Bool;
|
||||
warning @3 :Bool;
|
||||
warning @3 :Bool; # alerts presented only when enabled or soft disabling
|
||||
userDisable @4 :Bool;
|
||||
softDisable @5 :Bool;
|
||||
immediateDisable @6 :Bool;
|
||||
preEnable @7 :Bool;
|
||||
permanent @8 :Bool;
|
||||
permanent @8 :Bool; # alerts presented regardless of openpilot state
|
||||
|
||||
enum EventName @0xbaa8c5d505f727de {
|
||||
# TODO: copy from error list
|
||||
@@ -38,7 +38,7 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
||||
pedalPressed @13;
|
||||
cruiseDisabled @14;
|
||||
radarCanError @15;
|
||||
dataNeeded @16;
|
||||
dataNeededDEPRECATED @16;
|
||||
speedTooLow @17;
|
||||
outOfSpace @18;
|
||||
overheat @19;
|
||||
@@ -55,23 +55,23 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
||||
manualRestart @30;
|
||||
lowSpeedLockout @31;
|
||||
plannerError @32;
|
||||
ipasOverride @33;
|
||||
ipasOverrideDEPRECATED @33;
|
||||
debugAlert @34;
|
||||
steerTempUnavailableMute @35;
|
||||
resumeRequired @36;
|
||||
preDriverDistracted @37;
|
||||
promptDriverDistracted @38;
|
||||
driverDistracted @39;
|
||||
geofence @40;
|
||||
driverMonitorOn @41;
|
||||
driverMonitorOff @42;
|
||||
geofenceDEPRECATED @40;
|
||||
driverMonitorOnDEPRECATED @41;
|
||||
driverMonitorOffDEPRECATED @42;
|
||||
preDriverUnresponsive @43;
|
||||
promptDriverUnresponsive @44;
|
||||
driverUnresponsive @45;
|
||||
belowSteerSpeed @46;
|
||||
calibrationProgress @47;
|
||||
calibrationProgressDEPRECATED @47;
|
||||
lowBattery @48;
|
||||
invalidGiraffeHonda @49;
|
||||
invalidGiraffeHondaDEPRECATED @49;
|
||||
vehicleModelInvalid @50;
|
||||
controlsFailed @51;
|
||||
sensorDataInvalid @52;
|
||||
@@ -93,10 +93,20 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
||||
driverMonitorLowAcc @68;
|
||||
invalidLkasSetting @69;
|
||||
speedTooHigh @70;
|
||||
laneChangeBlocked @71;
|
||||
laneChangeBlockedDEPRECATED @71;
|
||||
relayMalfunction @72;
|
||||
gasPressed @73;
|
||||
stockFcw @74;
|
||||
startup @75;
|
||||
startupNoCar @76;
|
||||
startupNoControl @77;
|
||||
startupMaster @78;
|
||||
fcw @79;
|
||||
steerSaturated @80;
|
||||
whitePandaUnsupported @81;
|
||||
startupWhitePanda @82;
|
||||
canErrorPersistent @83;
|
||||
belowEngageSpeed @84;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,31 +10,3 @@ CXXFLAGS="-fPIC" ./configure
|
||||
|
||||
make -j$(nproc)
|
||||
make install
|
||||
|
||||
# manually build binaries statically
|
||||
g++ -std=gnu++11 -I./src -I./src -DKJ_HEADER_WARNINGS -DCAPNP_HEADER_WARNINGS -DCAPNP_INCLUDE_DIR=\"/usr/local/include\" -pthread -O2 -DNDEBUG -pthread -pthread -o .libs/capnp src/capnp/compiler/module-loader.o src/capnp/compiler/capnp.o ./.libs/libcapnpc.a ./.libs/libcapnp.a ./.libs/libkj.a -lpthread -pthread
|
||||
|
||||
g++ -std=gnu++11 -I./src -I./src -DKJ_HEADER_WARNINGS -DCAPNP_HEADER_WARNINGS -DCAPNP_INCLUDE_DIR=\"/usr/local/include\" -pthread -O2 -DNDEBUG -pthread -pthread -o .libs/capnpc-c++ src/capnp/compiler/capnpc-c++.o ./.libs/libcapnp.a ./.libs/libkj.a -lpthread -pthread
|
||||
|
||||
g++ -std=gnu++11 -I./src -I./src -DKJ_HEADER_WARNINGS -DCAPNP_HEADER_WARNINGS -DCAPNP_INCLUDE_DIR=\"/usr/local/include\" -pthread -O2 -DNDEBUG -pthread -pthread -o .libs/capnpc-capnp src/capnp/compiler/capnpc-capnp.o ./.libs/libcapnp.a ./.libs/libkj.a -lpthread -pthread
|
||||
|
||||
cp .libs/capnp /usr/local/bin/
|
||||
cp .libs/capnpc-c++ /usr/local/bin/
|
||||
cp .libs/capnpc-capnp /usr/local/bin/
|
||||
cp .libs/*.a /usr/local/lib
|
||||
|
||||
cd /tmp
|
||||
echo "Installing c-capnp"
|
||||
git clone https://github.com/commaai/c-capnproto.git
|
||||
cd c-capnproto
|
||||
git submodule update --init --recursive
|
||||
autoreconf -f -i -s
|
||||
CXXFLAGS="-fPIC" ./configure
|
||||
make -j$(nproc)
|
||||
make install
|
||||
|
||||
# manually build binaries statically
|
||||
gcc -fPIC -o .libs/capnpc-c compiler/capnpc-c.o compiler/schema.capnp.o compiler/str.o ./.libs/libcapnp_c.a
|
||||
|
||||
cp .libs/capnpc-c /usr/local/bin/
|
||||
cp .libs/*.a /usr/local/lib
|
||||
|
||||
@@ -855,6 +855,9 @@ struct LiveLocationKalman {
|
||||
gpsTimeOfWeek @14 :Float64;
|
||||
status @15 :Status;
|
||||
unixTimestampMillis @16 :Int64;
|
||||
inputsOK @17 :Bool = true;
|
||||
posenetOK @18 :Bool = true;
|
||||
gpsOK @19 :Bool = true;
|
||||
|
||||
enum Status {
|
||||
uninitialized @0;
|
||||
|
||||
@@ -155,7 +155,7 @@ class SubMaster():
|
||||
|
||||
try:
|
||||
data = new_message(s)
|
||||
except capnp.lib.capnp.KjException:
|
||||
except capnp.lib.capnp.KjException: # pylint: disable=c-extension-no-member
|
||||
# lists
|
||||
data = new_message(s, 0)
|
||||
|
||||
|
||||
@@ -143,7 +143,11 @@ int MSGQPubSocket::connect(Context *context, std::string endpoint){
|
||||
assert(context);
|
||||
|
||||
q = new msgq_queue_t;
|
||||
msgq_new_queue(q, endpoint.c_str(), DEFAULT_SEGMENT_SIZE);
|
||||
int r = msgq_new_queue(q, endpoint.c_str(), DEFAULT_SEGMENT_SIZE);
|
||||
if (r != 0){
|
||||
return r;
|
||||
}
|
||||
|
||||
msgq_init_publisher(q);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -2,9 +2,15 @@
|
||||
#include "impl_zmq.hpp"
|
||||
#include "impl_msgq.hpp"
|
||||
|
||||
#ifdef __APPLE__
|
||||
const bool MUST_USE_ZMQ = true;
|
||||
#else
|
||||
const bool MUST_USE_ZMQ = false;
|
||||
#endif
|
||||
|
||||
Context * Context::create(){
|
||||
Context * c;
|
||||
if (std::getenv("ZMQ")){
|
||||
if (std::getenv("ZMQ") || MUST_USE_ZMQ){
|
||||
c = new ZMQContext();
|
||||
} else {
|
||||
c = new MSGQContext();
|
||||
@@ -14,7 +20,7 @@ Context * Context::create(){
|
||||
|
||||
SubSocket * SubSocket::create(){
|
||||
SubSocket * s;
|
||||
if (std::getenv("ZMQ")){
|
||||
if (std::getenv("ZMQ") || MUST_USE_ZMQ){
|
||||
s = new ZMQSubSocket();
|
||||
} else {
|
||||
s = new MSGQSubSocket();
|
||||
@@ -60,7 +66,7 @@ SubSocket * SubSocket::create(Context * context, std::string endpoint, std::stri
|
||||
|
||||
PubSocket * PubSocket::create(){
|
||||
PubSocket * s;
|
||||
if (std::getenv("ZMQ")){
|
||||
if (std::getenv("ZMQ") || MUST_USE_ZMQ){
|
||||
s = new ZMQPubSocket();
|
||||
} else {
|
||||
s = new MSGQPubSocket();
|
||||
@@ -82,7 +88,7 @@ PubSocket * PubSocket::create(Context * context, std::string endpoint){
|
||||
|
||||
Poller * Poller::create(){
|
||||
Poller * p;
|
||||
if (std::getenv("ZMQ")){
|
||||
if (std::getenv("ZMQ") || MUST_USE_ZMQ){
|
||||
p = new ZMQPoller();
|
||||
} else {
|
||||
p = new MSGQPoller();
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
#pragma once
|
||||
#include <cstddef>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <capnp/serialize.h>
|
||||
#include "../gen/cpp/log.capnp.h"
|
||||
|
||||
#define MSG_MULTIPLE_PUBLISHERS 100
|
||||
|
||||
@@ -54,3 +57,36 @@ public:
|
||||
static Poller * create(std::vector<SubSocket*> sockets);
|
||||
virtual ~Poller(){};
|
||||
};
|
||||
|
||||
class SubMaster {
|
||||
public:
|
||||
SubMaster(const std::initializer_list<const char *> &service_list,
|
||||
const char *address = nullptr, const std::initializer_list<const char *> &ignore_alive = {});
|
||||
int update(int timeout = 1000);
|
||||
inline bool allAlive(const std::initializer_list<const char *> &service_list = {}) { return all_(service_list, false, true); }
|
||||
inline bool allValid(const std::initializer_list<const char *> &service_list = {}) { return all_(service_list, true, false); }
|
||||
inline bool allAliveAndValid(const std::initializer_list<const char *> &service_list = {}) { return all_(service_list, true, true); }
|
||||
bool updated(const char *name) const;
|
||||
void drain();
|
||||
cereal::Event::Reader &operator[](const char *name);
|
||||
~SubMaster();
|
||||
|
||||
private:
|
||||
bool all_(const std::initializer_list<const char *> &service_list, bool valid, bool alive);
|
||||
Poller *poller_ = nullptr;
|
||||
uint64_t frame_ = 0;
|
||||
struct SubMessage;
|
||||
std::map<SubSocket *, SubMessage *> messages_;
|
||||
std::map<std::string, SubMessage *> services_;
|
||||
};
|
||||
|
||||
class PubMaster {
|
||||
public:
|
||||
PubMaster(const std::initializer_list<const char *> &service_list);
|
||||
inline int send(const char *name, capnp::byte *data, size_t size) { return sockets_.at(name)->send((char *)data, size); }
|
||||
int send(const char *name, capnp::MessageBuilder &msg);
|
||||
~PubMaster();
|
||||
|
||||
private:
|
||||
std::map<std::string, PubSocket *> sockets_;
|
||||
};
|
||||
|
||||
@@ -30,7 +30,7 @@ class BuildExtWithoutPlatformSuffix(build_ext):
|
||||
|
||||
|
||||
sourcefiles = ['messaging_pyx.pyx']
|
||||
extra_compile_args = ["-std=c++11"]
|
||||
extra_compile_args = ["-std=c++14"]
|
||||
libraries = ['zmq']
|
||||
ARCH = subprocess.check_output(["uname", "-m"], encoding='utf8').rstrip() # pylint: disable=unexpected-keyword-arg
|
||||
|
||||
|
||||
@@ -90,8 +90,10 @@ int msgq_new_queue(msgq_queue_t * q, const char * path, size_t size){
|
||||
auto fd = open(full_path, O_RDWR | O_CREAT, 0777);
|
||||
delete[] full_path;
|
||||
|
||||
if (fd < 0)
|
||||
if (fd < 0) {
|
||||
std::cout << "Warning, could not open: " << full_path << std::endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int rc = ftruncate(fd, size + sizeof(msgq_header_t));
|
||||
if (rc < 0)
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
#include <assert.h>
|
||||
#include <time.h>
|
||||
#include "messaging.hpp"
|
||||
#include "services.h"
|
||||
#ifdef __APPLE__
|
||||
#define CLOCK_BOOTTIME CLOCK_MONOTONIC
|
||||
#endif
|
||||
static inline uint64_t nanos_since_boot() {
|
||||
struct timespec t;
|
||||
clock_gettime(CLOCK_BOOTTIME, &t);
|
||||
return t.tv_sec * 1000000000ULL + t.tv_nsec;
|
||||
}
|
||||
static const service *get_service(const char *name) {
|
||||
for (const auto &it : services) {
|
||||
if (strcmp(it.name, name) == 0) return ⁢
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
static inline bool inList(const std::initializer_list<const char *> &list, const char *value) {
|
||||
for (auto &v : list) {
|
||||
if (strcmp(value, v) == 0) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
class MessageContext {
|
||||
public:
|
||||
MessageContext() { ctx_ = Context::create(); }
|
||||
~MessageContext() { delete ctx_; }
|
||||
Context *ctx_;
|
||||
};
|
||||
MessageContext ctx;
|
||||
|
||||
struct SubMaster::SubMessage {
|
||||
std::string name;
|
||||
SubSocket *socket = nullptr;
|
||||
int freq = 0;
|
||||
bool updated = false, alive = false, valid = false, ignore_alive;
|
||||
uint64_t rcv_time = 0, rcv_frame = 0;
|
||||
void *allocated_msg_reader = nullptr;
|
||||
capnp::FlatArrayMessageReader *msg_reader = nullptr;
|
||||
kj::Array<capnp::word> buf;
|
||||
cereal::Event::Reader event;
|
||||
};
|
||||
|
||||
SubMaster::SubMaster(const std::initializer_list<const char *> &service_list, const char *address,
|
||||
const std::initializer_list<const char *> &ignore_alive) {
|
||||
poller_ = Poller::create();
|
||||
for (auto name : service_list) {
|
||||
const service *serv = get_service(name);
|
||||
assert(serv != nullptr);
|
||||
SubSocket *socket = SubSocket::create(ctx.ctx_, name, address ? address : "127.0.0.1", true);
|
||||
assert(socket != 0);
|
||||
poller_->registerSocket(socket);
|
||||
SubMessage *m = new SubMessage{
|
||||
.socket = socket,
|
||||
.freq = serv->frequency,
|
||||
.ignore_alive = inList(ignore_alive, name),
|
||||
.allocated_msg_reader = malloc(sizeof(capnp::FlatArrayMessageReader)),
|
||||
.buf = kj::heapArray<capnp::word>(1024)};
|
||||
messages_[socket] = m;
|
||||
services_[name] = m;
|
||||
}
|
||||
}
|
||||
|
||||
int SubMaster::update(int timeout) {
|
||||
if (++frame_ == UINT64_MAX) frame_ = 1;
|
||||
for (auto &kv : messages_) kv.second->updated = false;
|
||||
|
||||
int updated = 0;
|
||||
auto sockets = poller_->poll(timeout);
|
||||
uint64_t current_time = nanos_since_boot();
|
||||
for (auto s : sockets) {
|
||||
Message *msg = s->receive(true);
|
||||
if (msg == nullptr) continue;
|
||||
|
||||
SubMessage *m = messages_.at(s);
|
||||
const size_t size = (msg->getSize() / sizeof(capnp::word)) + 1;
|
||||
if (m->buf.size() < size) {
|
||||
m->buf = kj::heapArray<capnp::word>(size);
|
||||
}
|
||||
memcpy(m->buf.begin(), msg->getData(), msg->getSize());
|
||||
delete msg;
|
||||
|
||||
if (m->msg_reader) {
|
||||
m->msg_reader->~FlatArrayMessageReader();
|
||||
}
|
||||
m->msg_reader = new (m->allocated_msg_reader) capnp::FlatArrayMessageReader(kj::ArrayPtr<capnp::word>(m->buf.begin(), size));
|
||||
m->event = m->msg_reader->getRoot<cereal::Event>();
|
||||
m->updated = true;
|
||||
m->rcv_time = current_time;
|
||||
m->rcv_frame = frame_;
|
||||
m->valid = m->event.getValid();
|
||||
|
||||
++updated;
|
||||
}
|
||||
|
||||
for (auto &kv : messages_) {
|
||||
SubMessage *m = kv.second;
|
||||
m->alive = (m->freq <= (1e-5) || ((current_time - m->rcv_time) * (1e-9)) < (10.0 / m->freq));
|
||||
}
|
||||
return updated;
|
||||
}
|
||||
|
||||
bool SubMaster::all_(const std::initializer_list<const char *> &service_list, bool valid, bool alive) {
|
||||
int found = 0;
|
||||
for (auto &kv : messages_) {
|
||||
SubMessage *m = kv.second;
|
||||
if (service_list.size() == 0 || inList(service_list, m->name.c_str())) {
|
||||
found += (!valid || m->valid) && (!alive || (m->alive && !m->ignore_alive));
|
||||
}
|
||||
}
|
||||
return service_list.size() == 0 ? found == messages_.size() : found == service_list.size();
|
||||
}
|
||||
|
||||
void SubMaster::drain() {
|
||||
while (true) {
|
||||
auto polls = poller_->poll(0);
|
||||
if (polls.size() == 0)
|
||||
break;
|
||||
|
||||
for (auto sock : polls) {
|
||||
Message *msg = sock->receive(true);
|
||||
delete msg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool SubMaster::updated(const char *name) const { return services_.at(name)->updated; }
|
||||
cereal::Event::Reader &SubMaster::operator[](const char *name) { return services_.at(name)->event; };
|
||||
|
||||
SubMaster::~SubMaster() {
|
||||
delete poller_;
|
||||
for (auto &kv : messages_) {
|
||||
SubMessage *m = kv.second;
|
||||
if (m->msg_reader) {
|
||||
m->msg_reader->~FlatArrayMessageReader();
|
||||
}
|
||||
free(m->allocated_msg_reader);
|
||||
delete m->socket;
|
||||
delete m;
|
||||
}
|
||||
}
|
||||
|
||||
PubMaster::PubMaster(const std::initializer_list<const char *> &service_list) {
|
||||
for (auto name : service_list) {
|
||||
assert(get_service(name) != nullptr);
|
||||
PubSocket *socket = PubSocket::create(ctx.ctx_, name);
|
||||
assert(socket);
|
||||
sockets_[name] = socket;
|
||||
}
|
||||
}
|
||||
|
||||
int PubMaster::send(const char *name, capnp::MessageBuilder &msg) {
|
||||
auto words = capnp::messageToFlatArray(msg);
|
||||
auto bytes = words.asBytes();
|
||||
return send(name, bytes.begin(), bytes.size());
|
||||
}
|
||||
|
||||
PubMaster::~PubMaster() {
|
||||
for (auto s : sockets_) delete s.second;
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
comment: false
|
||||
coverage:
|
||||
status:
|
||||
project:
|
||||
|
||||
+3
-2
@@ -22,10 +22,10 @@ def get_imei(slot):
|
||||
if slot not in ("0", "1"):
|
||||
raise ValueError("SIM slot must be 0 or 1")
|
||||
|
||||
ret = parse_service_call_string(service_call(["iphonesubinfo", "3" ,"i32", str(slot)]))
|
||||
ret = parse_service_call_string(service_call(["iphonesubinfo", "3" , "i32", str(slot)]))
|
||||
if not ret:
|
||||
# allow non android to be identified differently
|
||||
ret = "%015d" % random.randint(0, 1<<32)
|
||||
ret = "%015d" % random.randint(0, 1 << 32)
|
||||
return ret
|
||||
|
||||
def get_serial():
|
||||
@@ -132,6 +132,7 @@ def get_network_type():
|
||||
|
||||
def get_network_strength(network_type):
|
||||
network_strength = NetworkStrength.unknown
|
||||
|
||||
# from SignalStrength.java
|
||||
def get_lte_level(rsrp, rssnr):
|
||||
INT_MAX = 2147483647
|
||||
|
||||
@@ -39,4 +39,3 @@ def api_get(endpoint, method='GET', timeout=None, access_token=None, **params):
|
||||
headers['User-Agent'] = "openpilot-" + version
|
||||
|
||||
return requests.request(method, backend+endpoint, timeout=timeout, headers = headers, params=params)
|
||||
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ def get_installed_apks():
|
||||
ret = {}
|
||||
for x in dat:
|
||||
if x.startswith("package:"):
|
||||
v,k = x.split("package:")[1].split("=")
|
||||
v, k = x.split("package:")[1].split("=")
|
||||
ret[k] = v
|
||||
return ret
|
||||
|
||||
|
||||
@@ -8,4 +8,3 @@ if ANDROID:
|
||||
else:
|
||||
PERSIST = os.path.join(BASEDIR, "persist")
|
||||
PARAMS = os.path.join(BASEDIR, "persist", "params")
|
||||
|
||||
|
||||
@@ -44,7 +44,8 @@ class AutoMoveTempdir():
|
||||
def close(self):
|
||||
os.rename(self._path, self._target_path)
|
||||
|
||||
def __enter__(self): return self
|
||||
def __enter__(self):
|
||||
return self
|
||||
|
||||
def __exit__(self, type, value, traceback):
|
||||
if type is None:
|
||||
@@ -63,7 +64,8 @@ class NamedTemporaryDir():
|
||||
def close(self):
|
||||
shutil.rmtree(self._path)
|
||||
|
||||
def __enter__(self): return self
|
||||
def __enter__(self):
|
||||
return self
|
||||
|
||||
def __exit__(self, type, value, traceback):
|
||||
self.close()
|
||||
|
||||
@@ -68,8 +68,11 @@ class SwagErrorFilter(logging.Filter):
|
||||
def filter(self, record):
|
||||
return record.levelno < logging.ERROR
|
||||
|
||||
_tmpfunc = lambda: 0
|
||||
_srcfile = os.path.normcase(_tmpfunc.__code__.co_filename)
|
||||
def _tmpfunc():
|
||||
return 0
|
||||
|
||||
def _srcfile():
|
||||
return os.path.normcase(_tmpfunc.__code__.co_filename)
|
||||
|
||||
class SwagLogger(logging.Logger):
|
||||
def __init__(self):
|
||||
|
||||
@@ -6,13 +6,13 @@ def print_cpu_usage(first_proc, last_proc):
|
||||
r = 0
|
||||
procs = [
|
||||
("selfdrive.controls.controlsd", 59.46),
|
||||
("./_modeld", 48.94),
|
||||
("./_modeld", 6.75),
|
||||
("./loggerd", 28.49),
|
||||
("selfdrive.controls.plannerd", 19.77),
|
||||
("selfdrive.controls.radard", 9.54),
|
||||
("./_ui", 9.54),
|
||||
("./camerad", 7.07),
|
||||
("selfdrive.locationd.locationd", 7.13),
|
||||
("selfdrive.locationd.locationd", 27.46),
|
||||
("./_sensord", 6.17),
|
||||
("selfdrive.controls.dmonitoringd", 5.48),
|
||||
("./boardd", 3.63),
|
||||
|
||||
@@ -6,6 +6,7 @@ def clip(x, lo, hi):
|
||||
|
||||
def interp(x, xp, fp):
|
||||
N = len(xp)
|
||||
|
||||
def get_interp(xv):
|
||||
hi = 0
|
||||
while hi < N and xv > xp[hi]:
|
||||
@@ -14,8 +15,8 @@ def interp(x, xp, fp):
|
||||
return fp[-1] if hi == N and xv > xp[low] else (
|
||||
fp[0] if hi == 0 else
|
||||
(xv - xp[low]) * (fp[hi] - fp[low]) / (xp[hi] - xp[low]) + fp[low])
|
||||
return [get_interp(v) for v in x] if hasattr(
|
||||
x, '__iter__') else get_interp(x)
|
||||
|
||||
return [get_interp(v) for v in x] if hasattr(x, '__iter__') else get_interp(x)
|
||||
|
||||
def mean(x):
|
||||
return sum(x) / len(x)
|
||||
|
||||
+2
-23
@@ -22,10 +22,7 @@ file in place without messing with <params_dir>/d.
|
||||
"""
|
||||
import time
|
||||
import os
|
||||
import string
|
||||
import binascii
|
||||
import errno
|
||||
import sys
|
||||
import shutil
|
||||
import fcntl
|
||||
import tempfile
|
||||
@@ -198,7 +195,8 @@ class DBReader(DBAccessor):
|
||||
finally:
|
||||
lock.release()
|
||||
|
||||
def __exit__(self, type, value, traceback): pass
|
||||
def __exit__(self, type, value, traceback):
|
||||
pass
|
||||
|
||||
|
||||
class DBWriter(DBAccessor):
|
||||
@@ -401,22 +399,3 @@ def put_nonblocking(key, val):
|
||||
t = threading.Thread(target=f, args=(key, val))
|
||||
t.start()
|
||||
return t
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
params = Params()
|
||||
if len(sys.argv) > 2:
|
||||
params.put(sys.argv[1], sys.argv[2])
|
||||
else:
|
||||
for k in keys:
|
||||
pp = params.get(k)
|
||||
if pp is None:
|
||||
print("%s is None" % k)
|
||||
elif all(chr(c) in string.printable for c in pp):
|
||||
print("%s = %s" % (k, pp))
|
||||
else:
|
||||
print("%s = %s" % (k, binascii.hexlify(pp)))
|
||||
|
||||
# Test multiprocess:
|
||||
# seq 0 100000 | xargs -P20 -I{} python common/params.py DongleId {} && sleep 0.05
|
||||
# while python common/params.py DongleId; do sleep 0.05; done
|
||||
|
||||
@@ -43,4 +43,3 @@ class Profiler():
|
||||
else:
|
||||
print("%30s: %9.2f percent: %3.0f" % (n, ms*1000.0, ms/self.tot*100))
|
||||
print("Iter clock: %2.6f TOTAL: %2.2f" % (self.tot/self.iter, self.tot))
|
||||
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ class Spinner():
|
||||
self.close()
|
||||
|
||||
|
||||
class FakeSpinner():
|
||||
class FakeSpinner(Spinner):
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
|
||||
+2
-2
@@ -32,7 +32,7 @@ class RunningStat():
|
||||
self.S_last = 0.
|
||||
else:
|
||||
self.M = self.M_last + (new_data - self.M_last) / self.n
|
||||
self.S = self.S_last + (new_data - self.M_last) * (new_data - self.M);
|
||||
self.S = self.S_last + (new_data - self.M_last) * (new_data - self.M)
|
||||
self.M_last = self.M
|
||||
self.S_last = self.S
|
||||
|
||||
@@ -64,7 +64,7 @@ class RunningStatFilter():
|
||||
_std_last = self.raw_stat.std()
|
||||
self.raw_stat.push_data(new_data)
|
||||
_delta_std = self.raw_stat.std() - _std_last
|
||||
if _delta_std<=0:
|
||||
if _delta_std <= 0:
|
||||
self.filtered_stat.push_data(new_data)
|
||||
else:
|
||||
pass
|
||||
|
||||
@@ -6,4 +6,3 @@ def phone_only(x):
|
||||
return x
|
||||
else:
|
||||
return nottest(x)
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ class TextWindow():
|
||||
self.close()
|
||||
|
||||
|
||||
class FakeTextWindow():
|
||||
class FakeTextWindow(TextWindow):
|
||||
def __init__(self, s):
|
||||
pass
|
||||
|
||||
@@ -59,6 +59,9 @@ class FakeTextWindow():
|
||||
def update(self, _):
|
||||
pass
|
||||
|
||||
def close(self):
|
||||
pass
|
||||
|
||||
def __exit__(self, type, value, traceback):
|
||||
pass
|
||||
|
||||
|
||||
@@ -25,4 +25,3 @@ class Timeout:
|
||||
|
||||
def __exit__(self, exc_type, exc_val, exc_tb):
|
||||
signal.alarm(0)
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ def vp_from_ke(m):
|
||||
|
||||
The vanishing point is defined as lim x->infinity C (x, 0, 0, 1).T
|
||||
"""
|
||||
return (m[0, 0]/m[2,0], m[1,0]/m[2,0])
|
||||
return (m[0, 0]/m[2, 0], m[1, 0]/m[2, 0])
|
||||
|
||||
|
||||
def vp_from_rpy(rpy):
|
||||
@@ -81,10 +81,10 @@ def normalize(img_pts, intrinsics=eon_intrinsics):
|
||||
img_pts = np.array(img_pts)
|
||||
input_shape = img_pts.shape
|
||||
img_pts = np.atleast_2d(img_pts)
|
||||
img_pts = np.hstack((img_pts, np.ones((img_pts.shape[0],1))))
|
||||
img_pts = np.hstack((img_pts, np.ones((img_pts.shape[0], 1))))
|
||||
img_pts_normalized = img_pts.dot(intrinsics_inv.T)
|
||||
img_pts_normalized[(img_pts < 0).any(axis=1)] = np.nan
|
||||
return img_pts_normalized[:,:2].reshape(input_shape)
|
||||
return img_pts_normalized[:, :2].reshape(input_shape)
|
||||
|
||||
|
||||
def denormalize(img_pts, intrinsics=eon_intrinsics):
|
||||
@@ -93,13 +93,13 @@ def denormalize(img_pts, intrinsics=eon_intrinsics):
|
||||
img_pts = np.array(img_pts)
|
||||
input_shape = img_pts.shape
|
||||
img_pts = np.atleast_2d(img_pts)
|
||||
img_pts = np.hstack((img_pts, np.ones((img_pts.shape[0],1))))
|
||||
img_pts = np.hstack((img_pts, np.ones((img_pts.shape[0], 1))))
|
||||
img_pts_denormalized = img_pts.dot(intrinsics.T)
|
||||
img_pts_denormalized[img_pts_denormalized[:,0] > W] = np.nan
|
||||
img_pts_denormalized[img_pts_denormalized[:,0] < 0] = np.nan
|
||||
img_pts_denormalized[img_pts_denormalized[:,1] > H] = np.nan
|
||||
img_pts_denormalized[img_pts_denormalized[:,1] < 0] = np.nan
|
||||
return img_pts_denormalized[:,:2].reshape(input_shape)
|
||||
img_pts_denormalized[img_pts_denormalized[:, 0] > W] = np.nan
|
||||
img_pts_denormalized[img_pts_denormalized[:, 0] < 0] = np.nan
|
||||
img_pts_denormalized[img_pts_denormalized[:, 1] > H] = np.nan
|
||||
img_pts_denormalized[img_pts_denormalized[:, 1] < 0] = np.nan
|
||||
return img_pts_denormalized[:, :2].reshape(input_shape)
|
||||
|
||||
|
||||
def device_from_ecef(pos_ecef, orientation_ecef, pt_ecef):
|
||||
@@ -124,10 +124,10 @@ def img_from_device(pt_device):
|
||||
pt_view = np.einsum('jk,ik->ij', view_frame_from_device_frame, pt_device)
|
||||
|
||||
# This function should never return negative depths
|
||||
pt_view[pt_view[:,2] < 0] = np.nan
|
||||
pt_view[pt_view[:, 2] < 0] = np.nan
|
||||
|
||||
pt_img = pt_view/pt_view[:,2:3]
|
||||
return pt_img.reshape(input_shape)[:,:2]
|
||||
pt_img = pt_view/pt_view[:, 2:3]
|
||||
return pt_img.reshape(input_shape)[:, :2]
|
||||
|
||||
|
||||
def get_camera_frame_from_calib_frame(camera_frame_from_road_frame):
|
||||
@@ -145,4 +145,3 @@ def pretransform_from_calib(calib):
|
||||
camera_frame_from_road_frame = np.dot(eon_intrinsics, view_frame_from_road_frame)
|
||||
camera_frame_from_calib_frame = get_camera_frame_from_calib_frame(camera_frame_from_road_frame)
|
||||
return np.linalg.inv(camera_frame_from_calib_frame)
|
||||
|
||||
|
||||
@@ -18,9 +18,9 @@ def geodetic2ecef(geodetic, radians=False):
|
||||
geodetic = np.atleast_2d(geodetic)
|
||||
|
||||
ratio = 1.0 if radians else (np.pi / 180.0)
|
||||
lat = ratio*geodetic[:,0]
|
||||
lon = ratio*geodetic[:,1]
|
||||
alt = geodetic[:,2]
|
||||
lat = ratio*geodetic[:, 0]
|
||||
lon = ratio*geodetic[:, 1]
|
||||
alt = geodetic[:, 2]
|
||||
|
||||
xi = np.sqrt(1 - esq * np.sin(lat)**2)
|
||||
x = (a / xi + alt) * np.cos(lat) * np.cos(lon)
|
||||
@@ -52,7 +52,7 @@ def ecef2geodetic(ecef, radians=False):
|
||||
S = np.cbrt(1 + C + np.sqrt(C * C + 2 * C))
|
||||
P = F / (3 * pow((S + 1 / S + 1), 2) * G * G)
|
||||
Q = np.sqrt(1 + 2 * esq * esq * P)
|
||||
r_0 = -(P * esq * r) / (1 + Q) + np.sqrt(0.5 * a * a*(1 + 1.0 / Q) - \
|
||||
r_0 = -(P * esq * r) / (1 + Q) + np.sqrt(0.5 * a * a*(1 + 1.0 / Q) - \
|
||||
P * (1 - esq) * z * z / (Q * (1 + Q)) - 0.5 * P * r * r)
|
||||
U = np.sqrt(pow((r - esq * r_0), 2) + z * z)
|
||||
V = np.sqrt(pow((r - esq * r_0), 2) + (1 - esq) * z * z)
|
||||
@@ -78,6 +78,8 @@ class LocalCoord():
|
||||
[-np.sin(lat)*np.sin(lon), np.cos(lon), -np.cos(lat)*np.sin(lon)],
|
||||
[np.cos(lat), 0, -np.sin(lat)]])
|
||||
self.ecef2ned_matrix = self.ned2ecef_matrix.T
|
||||
self.ecef_from_ned_matrix = self.ned2ecef_matrix
|
||||
self.ned_from_ecef_matrix = self.ecef2ned_matrix
|
||||
|
||||
@classmethod
|
||||
def from_geodetic(cls, init_geodetic):
|
||||
|
||||
@@ -130,9 +130,9 @@ def get_camera_frame_from_bigmodel_frame(camera_frame_from_road_frame):
|
||||
|
||||
def get_model_frame(snu_full, camera_frame_from_model_frame, size):
|
||||
idxs = camera_frame_from_model_frame.dot(np.column_stack([np.tile(np.arange(size[0]), size[1]),
|
||||
np.tile(np.arange(size[1]), (size[0],1)).T.flatten(),
|
||||
np.tile(np.arange(size[1]), (size[0], 1)).T.flatten(),
|
||||
np.ones(size[0] * size[1])]).T).T.astype(int)
|
||||
calib_flat = snu_full[idxs[:,1], idxs[:,0]]
|
||||
calib_flat = snu_full[idxs[:, 1], idxs[:, 0]]
|
||||
if len(snu_full.shape) == 3:
|
||||
calib = calib_flat.reshape((size[1], size[0], 3))
|
||||
elif len(snu_full.shape) == 2:
|
||||
|
||||
@@ -13,11 +13,11 @@ Supports both x2y and y_from_x format (y_from_x preferred!).
|
||||
def euler2quat(eulers):
|
||||
eulers = array(eulers)
|
||||
if len(eulers.shape) > 1:
|
||||
output_shape = (-1,4)
|
||||
output_shape = (-1, 4)
|
||||
else:
|
||||
output_shape = (4,)
|
||||
eulers = np.atleast_2d(eulers)
|
||||
gamma, theta, psi = eulers[:,0], eulers[:,1], eulers[:,2]
|
||||
gamma, theta, psi = eulers[:, 0], eulers[:, 1], eulers[:, 2]
|
||||
|
||||
q0 = np.cos(gamma / 2) * np.cos(theta / 2) * np.cos(psi / 2) + \
|
||||
np.sin(gamma / 2) * np.sin(theta / 2) * np.sin(psi / 2)
|
||||
@@ -30,7 +30,7 @@ def euler2quat(eulers):
|
||||
|
||||
quats = array([q0, q1, q2, q3]).T
|
||||
for i in range(len(quats)):
|
||||
if quats[i,0] < 0:
|
||||
if quats[i, 0] < 0:
|
||||
quats[i] = -quats[i]
|
||||
return quats.reshape(output_shape)
|
||||
|
||||
@@ -38,11 +38,11 @@ def euler2quat(eulers):
|
||||
def quat2euler(quats):
|
||||
quats = array(quats)
|
||||
if len(quats.shape) > 1:
|
||||
output_shape = (-1,3)
|
||||
output_shape = (-1, 3)
|
||||
else:
|
||||
output_shape = (3,)
|
||||
quats = np.atleast_2d(quats)
|
||||
q0, q1, q2, q3 = quats[:,0], quats[:,1], quats[:,2], quats[:,3]
|
||||
q0, q1, q2, q3 = quats[:, 0], quats[:, 1], quats[:, 2], quats[:, 3]
|
||||
|
||||
gamma = np.arctan2(2 * (q0 * q1 + q2 * q3), 1 - 2 * (q1**2 + q2**2))
|
||||
theta = np.arcsin(2 * (q0 * q2 - q3 * q1))
|
||||
@@ -101,7 +101,7 @@ def rot2quat(rots):
|
||||
q = np.empty((len(rots), 4))
|
||||
for i in range(len(rots)):
|
||||
_, eigvecs = linalg.eigh(K3[i].T)
|
||||
eigvecs = eigvecs[:,3:]
|
||||
eigvecs = eigvecs[:, 3:]
|
||||
q[i, 0] = eigvecs[-1]
|
||||
q[i, 1:] = -eigvecs[:-1].flatten()
|
||||
if q[i, 0] < 0:
|
||||
@@ -124,8 +124,8 @@ def rot2euler(rots):
|
||||
quats_from_rotations = rot2quat
|
||||
quat_from_rot = rot2quat
|
||||
rotations_from_quats = quat2rot
|
||||
rot_from_quat= quat2rot
|
||||
rot_from_quat= quat2rot
|
||||
rot_from_quat = quat2rot
|
||||
rot_from_quat = quat2rot
|
||||
euler_from_rot = rot2euler
|
||||
euler_from_quat = quat2euler
|
||||
rot_from_euler = euler2rot
|
||||
@@ -154,9 +154,9 @@ def rot_matrix(roll, pitch, yaw):
|
||||
cr, sr = np.cos(roll), np.sin(roll)
|
||||
cp, sp = np.cos(pitch), np.sin(pitch)
|
||||
cy, sy = np.cos(yaw), np.sin(yaw)
|
||||
rr = array([[1,0,0],[0, cr,-sr],[0, sr, cr]])
|
||||
rp = array([[cp,0,sp],[0, 1,0],[-sp, 0, cp]])
|
||||
ry = array([[cy,-sy,0],[sy, cy,0],[0, 0, 1]])
|
||||
rr = array([[1, 0, 0], [0, cr, -sr], [0, sr, cr]])
|
||||
rp = array([[cp, 0, sp], [0, 1, 0], [-sp, 0, cp]])
|
||||
ry = array([[cy, -sy, 0], [sy, cy, 0], [0, 0, 1]])
|
||||
return ry.dot(rp.dot(rr))
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"ota_url": "https://commadist.azureedge.net/neosupdate/ota-signed-3bd2b3bdd6a501569e00b8f12786d65e0fd2788c0dd238f8c986e3e2e504683a-kernel.zip",
|
||||
"ota_hash": "3bd2b3bdd6a501569e00b8f12786d65e0fd2788c0dd238f8c986e3e2e504683a",
|
||||
"recovery_url": "https://commadist.azureedge.net/neosupdate/recovery-97c27e6ed04ed6bb0608b845a2d4100912093f9380c3f2ba6b56bccd608e5f6e.img",
|
||||
"recovery_len": 15861036,
|
||||
"recovery_hash": "97c27e6ed04ed6bb0608b845a2d4100912093f9380c3f2ba6b56bccd608e5f6e"
|
||||
}
|
||||
@@ -83,6 +83,10 @@ function launch {
|
||||
fi
|
||||
|
||||
"$DIR/installer/updater/updater" "file://$DIR/installer/updater/update.json"
|
||||
else
|
||||
if [[ $(uname -v) == "#1 SMP PREEMPT Wed Jun 10 12:40:53 PDT 2020" ]]; then
|
||||
"$DIR/installer/updater/updater" "file://$DIR/installer/updater/update_kernel.json"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
@@ -11,4 +11,7 @@ extraction:
|
||||
- "export PATH=$PWD/external/bin:$PATH"
|
||||
index:
|
||||
build_command: "python3 $(which scons)"
|
||||
|
||||
javascript:
|
||||
index:
|
||||
filters:
|
||||
- exclude: "*"
|
||||
|
||||
Vendored
+3
@@ -12,6 +12,9 @@ jobs:
|
||||
set -e
|
||||
docker build -t opendbc .
|
||||
name: "Build"
|
||||
- name: Static analysis
|
||||
run: |
|
||||
docker run opendbc bash -c "cd opendbc && git init && git add -A && pre-commit run --all"
|
||||
- run: |
|
||||
docker run opendbc bash -c "python -m unittest discover opendbc"
|
||||
name: "Unit tests"
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
.mypy_cache/
|
||||
*.pyc
|
||||
*.os
|
||||
*.tmp
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: master
|
||||
hooks:
|
||||
- id: check-ast
|
||||
- id: check-json
|
||||
- id: check-xml
|
||||
- id: check-yaml
|
||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||
rev: master
|
||||
hooks:
|
||||
- id: mypy
|
||||
- repo: https://github.com/PyCQA/flake8
|
||||
rev: master
|
||||
hooks:
|
||||
- id: flake8
|
||||
args:
|
||||
- --select=F
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: pylint
|
||||
name: pylint
|
||||
entry: pylint
|
||||
language: system
|
||||
types: [python]
|
||||
args:
|
||||
- --disable=R,C,W
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
from ubuntu:16.04
|
||||
|
||||
RUN apt-get update && apt-get install -y libzmq3-dev clang wget git autoconf libtool curl make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
|
||||
RUN apt-get update && apt-get install -y libzmq3-dev capnproto libcapnp-dev clang wget git autoconf libtool curl make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
|
||||
|
||||
RUN curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
|
||||
ENV PATH="/root/.pyenv/bin:/root/.pyenv/shims:${PATH}"
|
||||
@@ -10,16 +10,16 @@ RUN pyenv rehash
|
||||
|
||||
COPY requirements.txt /tmp/
|
||||
RUN pip install -r /tmp/requirements.txt
|
||||
RUN pip install pre-commit==2.4.0 pylint==2.5.2
|
||||
|
||||
ENV PYTHONPATH=/project
|
||||
|
||||
WORKDIR /project
|
||||
# TODO: Add tag to cereal
|
||||
RUN git clone https://github.com/commaai/cereal.git /project/cereal
|
||||
RUN /project/cereal/install_capnp.sh
|
||||
|
||||
WORKDIR /project
|
||||
|
||||
COPY SConstruct .
|
||||
COPY . /project/opendbc
|
||||
|
||||
RUN rm -rf /project/opendbc/.git
|
||||
RUN scons -c && scons -j$(nproc)
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
from opendbc.can.parser_pyx import CANDefine # pylint: disable=no-name-in-module, import-error
|
||||
from opendbc.can.parser_pyx import CANDefine # pylint: disable=no-name-in-module, import-error
|
||||
assert CANDefine
|
||||
|
||||
+13
-13
@@ -55,7 +55,7 @@ class dbc():
|
||||
|
||||
name = dat.group(2)
|
||||
size = int(dat.group(3))
|
||||
ids = int(dat.group(1), 0) # could be hex
|
||||
ids = int(dat.group(1), 0) # could be hex
|
||||
if ids in self.msgs:
|
||||
sys.exit("Duplicate address detected %d %s" % (ids, self.name))
|
||||
|
||||
@@ -73,15 +73,15 @@ class dbc():
|
||||
print("bad SG {0}".format(l))
|
||||
|
||||
sgname = dat.group(1)
|
||||
start_bit = int(dat.group(go+2))
|
||||
signal_size = int(dat.group(go+3))
|
||||
is_little_endian = int(dat.group(go+4))==1
|
||||
is_signed = dat.group(go+5)=='-'
|
||||
factor = int_or_float(dat.group(go+6))
|
||||
offset = int_or_float(dat.group(go+7))
|
||||
tmin = int_or_float(dat.group(go+8))
|
||||
tmax = int_or_float(dat.group(go+9))
|
||||
units = dat.group(go+10)
|
||||
start_bit = int(dat.group(go + 2))
|
||||
signal_size = int(dat.group(go + 3))
|
||||
is_little_endian = int(dat.group(go + 4)) == 1
|
||||
is_signed = dat.group(go + 5) == '-'
|
||||
factor = int_or_float(dat.group(go + 6))
|
||||
offset = int_or_float(dat.group(go + 7))
|
||||
tmin = int_or_float(dat.group(go + 8))
|
||||
tmax = int_or_float(dat.group(go + 9))
|
||||
units = dat.group(go + 10)
|
||||
|
||||
self.msgs[ids][1].append(
|
||||
DBCSignal(sgname, start_bit, signal_size, is_little_endian,
|
||||
@@ -94,15 +94,15 @@ class dbc():
|
||||
if dat is None:
|
||||
print("bad VAL {0}".format(l))
|
||||
|
||||
ids = int(dat.group(1), 0) # could be hex
|
||||
ids = int(dat.group(1), 0) # could be hex
|
||||
sgname = dat.group(2)
|
||||
defvals = dat.group(3)
|
||||
|
||||
defvals = defvals.replace("?",r"\?") #escape sequence in C++
|
||||
defvals = defvals.replace("?", r"\?") # escape sequence in C++
|
||||
defvals = defvals.split('"')[:-1]
|
||||
|
||||
# convert strings to UPPER_CASE_WITH_UNDERSCORES
|
||||
defvals[1::2] = [d.strip().upper().replace(" ","_") for d in defvals[1::2]]
|
||||
defvals[1::2] = [d.strip().upper().replace(" ", "_") for d in defvals[1::2]]
|
||||
defvals = '"'+"".join(str(i) for i in defvals)+'"'
|
||||
|
||||
self.def_vals[ids].append((sgname, defvals))
|
||||
|
||||
@@ -33,7 +33,7 @@ class BuildExtWithoutPlatformSuffix(build_ext):
|
||||
|
||||
|
||||
sourcefiles = ['packer_pyx.pyx']
|
||||
extra_compile_args = ["-std=c++11"]
|
||||
extra_compile_args = ["-std=c++14"]
|
||||
ARCH = subprocess.check_output(["uname", "-m"], encoding='utf8').rstrip() # pylint: disable=unexpected-keyword-arg
|
||||
|
||||
if ARCH == "aarch64":
|
||||
@@ -54,7 +54,7 @@ setup(name='CAN packer',
|
||||
extra_compile_args=extra_compile_args,
|
||||
include_dirs=[
|
||||
BASEDIR,
|
||||
os.path.join(BASEDIR, 'phonelibs', 'capnp-cpp/include'),
|
||||
os.path.join(BASEDIR, 'phonelibs'),
|
||||
],
|
||||
extra_link_args=[
|
||||
os.path.join(BASEDIR, 'opendbc', 'can', libdbc),
|
||||
@@ -66,4 +66,3 @@ setup(name='CAN packer',
|
||||
|
||||
if platform.system() == "Darwin":
|
||||
os.system("install_name_tool -change opendbc/can/libdbc.dylib "+BASEDIR+"/opendbc/can/libdbc.dylib packer_pyx.so")
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ class BuildExtWithoutPlatformSuffix(build_ext):
|
||||
|
||||
|
||||
sourcefiles = ['parser_pyx.pyx']
|
||||
extra_compile_args = ["-std=c++11"]
|
||||
extra_compile_args = ["-std=c++14"]
|
||||
ARCH = subprocess.check_output(["uname", "-m"], encoding='utf8').rstrip() # pylint: disable=unexpected-keyword-arg
|
||||
|
||||
if ARCH == "aarch64":
|
||||
@@ -54,7 +54,7 @@ setup(name='CAN parser',
|
||||
extra_compile_args=extra_compile_args,
|
||||
include_dirs=[
|
||||
BASEDIR,
|
||||
os.path.join(BASEDIR, 'phonelibs', 'capnp-cpp/include'),
|
||||
os.path.join(BASEDIR, 'phonelibs'),
|
||||
],
|
||||
extra_link_args=[
|
||||
os.path.join(BASEDIR, 'opendbc', 'can', libdbc),
|
||||
@@ -66,4 +66,3 @@ setup(name='CAN parser',
|
||||
|
||||
if platform.system() == "Darwin":
|
||||
os.system("install_name_tool -change opendbc/can/libdbc.dylib "+BASEDIR+"/opendbc/can/libdbc.dylib parser_pyx.so")
|
||||
|
||||
|
||||
@@ -19,10 +19,11 @@ def process(in_fn, out_fn):
|
||||
|
||||
can_dbc = dbc(in_fn)
|
||||
|
||||
msgs = [(address, msg_name, msg_size, sorted(msg_sigs, key=lambda s: s.name not in ("COUNTER", "CHECKSUM"))) # process counter and checksums first
|
||||
# process counter and checksums first
|
||||
msgs = [(address, msg_name, msg_size, sorted(msg_sigs, key=lambda s: s.name not in ("COUNTER", "CHECKSUM")))
|
||||
for address, ((msg_name, msg_size), msg_sigs) in sorted(can_dbc.msgs.items()) if msg_sigs]
|
||||
|
||||
def_vals = {a: sorted(set(b)) for a, b in can_dbc.def_vals.items()} # remove duplicates
|
||||
def_vals = {a: sorted(set(b)) for a, b in can_dbc.def_vals.items()} # remove duplicates
|
||||
def_vals = sorted(def_vals.items())
|
||||
|
||||
if can_dbc.name.startswith(("honda_", "acura_")):
|
||||
@@ -46,7 +47,7 @@ def process(in_fn, out_fn):
|
||||
checksum_start_bit = 0
|
||||
counter_start_bit = 0
|
||||
little_endian = True
|
||||
elif can_dbc.name.startswith(("subaru_")):
|
||||
elif can_dbc.name.startswith(("subaru_global_")):
|
||||
checksum_type = "subaru"
|
||||
checksum_size = 8
|
||||
counter_size = None
|
||||
@@ -123,4 +124,3 @@ def main():
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
|
||||
@@ -60,12 +60,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -128,10 +128,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -285,6 +286,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -3,7 +3,6 @@ CM_ "IMPORT _comma.dbc"
|
||||
CM_ "IMPORT _toyota_nodsu_bsm.dbc"
|
||||
|
||||
BO_ 401 STEERING_LTA: 8 XXX
|
||||
SG_ COUNTER : 7|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ SETME_X3 : 29|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ PERCENTAGE : 39|8@0+ (1,0) [0|255] "" XXX
|
||||
@@ -12,6 +11,9 @@ BO_ 401 STEERING_LTA: 8 XXX
|
||||
SG_ STEER_ANGLE_CMD : 15|16@0- (0.0573,0) [-540|540] "" XXX
|
||||
SG_ STEER_REQUEST : 25|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BIT : 30|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COUNTER : 6|6@0+ (1,0) [0|255] "" XXX
|
||||
SG_ STEER_REQUEST_2 : 0|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SETME_X1 : 7|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 550 BRAKE_MODULE: 8 XXX
|
||||
SG_ BRAKE_PRESSURE : 0|9@0+ (1,0) [0|511] "" XXX
|
||||
|
||||
@@ -32,126 +32,124 @@ NS_ :
|
||||
SG_MUL_VAL_
|
||||
|
||||
BS_:
|
||||
BU_: K16_BECM K114B_HPCM T18_BatteryCharger
|
||||
|
||||
BU_: K16_BECM K114B_HPCM T18_BatteryCharger
|
||||
BO_ 512 Battery_Module_1: 8 K16_BECM
|
||||
SG_ Voltage_1_0_A m0 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_0_B m0 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_0_C m0 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_1_A m1 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_1_B m1 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_1_C m1 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_2_A m2 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_2_B m2 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_2_C m2 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_3_A m3 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_3_B m3 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_3_C m3 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_4_A m4 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_4_B m4 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_4_C m4 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_5_A m5 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_5_B m5 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_5_C m5 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_6_A m6 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_6_B m6 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_6_C m6 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_7_A m7 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_7_B m7 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_7_C m7 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Cell_Bank_Number_1 M : 53|7@1+ (1,0) [0|0] "" K16_BECM
|
||||
SG_ Voltage_1_0_A m0 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_0_B m0 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_0_C m0 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_1_A m1 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_1_B m1 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_1_C m1 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_2_A m2 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_2_B m2 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_2_C m2 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_3_A m3 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_3_B m3 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_3_C m3 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_4_A m4 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_4_B m4 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_4_C m4 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_5_A m5 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_5_B m5 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_5_C m5 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_6_A m6 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_6_B m6 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_6_C m6 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_7_A m7 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_7_B m7 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_1_7_C m7 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Cell_Bank_Number_1 M : 55|3@0+ (1,0) [0|0] "" K16_BECM
|
||||
|
||||
BO_ 514 Battery_Module_2: 8 K16_BECM
|
||||
SG_ Voltage_2_0_A m0 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_0_B m0 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_0_C m0 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_1_A m1 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_1_B m1 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_1_C m1 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_2_A m2 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_2_B m2 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_2_C m2 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_3_A m3 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_3_B m3 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_3_C m3 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_4_A m4 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_4_B m4 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_4_C m4 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_5_A m5 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_5_B m5 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_5_C m5 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_6_A m6 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_6_B m6 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_6_C m6 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_7_A m7 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_7_B m7 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_7_C m7 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Cell_Bank_Number_2 M : 53|7@1+ (1,0) [0|0] "" K16_BECM
|
||||
SG_ Voltage_2_0_A m0 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_0_B m0 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_0_C m0 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_1_A m1 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_1_B m1 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_1_C m1 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_2_A m2 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_2_B m2 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_2_C m2 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_3_A m3 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_3_B m3 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_3_C m3 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_4_A m4 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_4_B m4 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_4_C m4 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_5_A m5 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_5_B m5 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_5_C m5 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_6_A m6 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_6_B m6 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_6_C m6 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_7_A m7 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_7_B m7 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_2_7_C m7 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Cell_Bank_Number_2 M : 55|3@0+ (1,0) [0|0] "" K16_BECM
|
||||
|
||||
BO_ 516 Battery_Module_3: 8 K16_BECM
|
||||
SG_ Voltage_3_0_A m0 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_0_B m0 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_0_C m0 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_1_A m1 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_1_B m1 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_1_C m1 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_2_A m2 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_2_B m2 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_2_C m2 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_3_A m3 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_3_B m3 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_3_C m3 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_4_A m4 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_4_B m4 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_4_C m4 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_5_A m5 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_5_B m5 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_5_C m5 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_6_A m6 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_6_B m6 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_6_C m6 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_7_A m7 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_7_B m7 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_7_C m7 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Cell_Bank_Number_3 M : 53|7@1+ (1,0) [0|0] "" K16_BECM
|
||||
SG_ Voltage_3_0_A m0 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_0_B m0 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_0_C m0 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_1_A m1 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_1_B m1 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_1_C m1 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_2_A m2 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_2_B m2 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_2_C m2 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_3_A m3 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_3_B m3 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_3_C m3 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_4_A m4 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_4_B m4 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_4_C m4 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_5_A m5 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_5_B m5 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_5_C m5 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_6_A m6 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_6_B m6 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_6_C m6 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_7_A m7 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_7_B m7 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_3_7_C m7 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Cell_Bank_Number_3 M : 55|3@0+ (1,0) [0|0] "" K16_BECM
|
||||
|
||||
BO_ 518 Battery_Module_4: 8 K16_BECM
|
||||
SG_ Voltage_4_0_A m0 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_0_B m0 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_0_C m0 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_1_A m1 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_1_B m1 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_1_C m1 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_2_A m2 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_2_B m2 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_2_C m2 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_3_A m3 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_3_B m3 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_3_C m3 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_4_A m4 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_4_B m4 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_4_C m4 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_5_A m5 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_5_B m5 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_5_C m5 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_6_A m6 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_6_B m6 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_6_C m6 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_7_A m7 : 4|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_7_B m7 : 20|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_7_C m7 : 36|12@1+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Cell_Bank_Number_4 M : 53|7@1+ (1,0) [0|0] "" K16_BECM
|
||||
SG_ Voltage_4_0_A m0 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_0_B m0 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_0_C m0 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_1_A m1 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_1_B m1 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_1_C m1 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_2_A m2 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_2_B m2 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_2_C m2 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_3_A m3 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_3_B m3 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_3_C m3 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_4_A m4 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_4_B m4 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_4_C m4 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_5_A m5 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_5_B m5 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_5_C m5 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_6_A m6 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_6_B m6 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_6_C m6 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_7_A m7 : 4|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_7_B m7 : 20|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Voltage_4_7_C m7 : 39|12@0+ (0.00125,0) [0|0] "V" K16_BECM
|
||||
SG_ Cell_Bank_Number_4 M : 55|3@0+ (1,0) [0|0] "" K16_BECM
|
||||
|
||||
BO_ 528 Pack_Stats: 8 K16_BECM
|
||||
SG_ Pack_Voltage : 7|12@0+ (0.125,0) [0|0] "V" K16_BECM
|
||||
SG_ Pack_Amps : 9|10@0+ (0.1,0) [0|0] "" K16_BECM
|
||||
SG_ Pack_Amps2 : 28|12@0+ (0.05,0) [0|0] "" K16_BECM
|
||||
SG_ Pack_Current : 23|8@0- (0.15,0) [0|0] "A" K16_BECM
|
||||
|
||||
BO_ 530 Charger_stats: 6 T18_BatteryCharger
|
||||
SG_ Charger_HV_Current : 0|13@1+ (0.05,0) [0|0] "A" K16_BECM
|
||||
SG_ HV_Voltage : 13|10@1+ (0.5,0) [0|0] "V" K16_BECM
|
||||
SG_ Charger_HV_Current : 0|10@1+ (0.05,0) [0|0] "A" K16_BECM
|
||||
SG_ HV_Voltage : 10|10@1+ (0.5,0) [0|0] "V" K16_BECM
|
||||
SG_ LV_Current : 23|8@1+ (0.2,0) [0|0] "A" K16_BECM
|
||||
SG_ LV_Voltage : 31|10@1- (0.025,0) [0|0] "V" K16_BECM
|
||||
SG_ LV_Voltage : 31|10@1+ (0.025,0) [0|0] "V" K16_BECM
|
||||
|
||||
BO_ 770 Battery_temp: 8 K16_BECM
|
||||
SG_ Temp_A m0 : 8|8@1+ (0.5,-40) [0|0] "C" K16_BECM
|
||||
@@ -165,6 +163,26 @@ BO_ 770 Battery_temp: 8 K16_BECM
|
||||
SG_ Temp_I m1 : 24|8@1+ (0.5,-40) [0|0] "C" K16_BECM
|
||||
SG_ Switch M : 2|1@1+ (1,0) [0|0] "" K16_BECM
|
||||
|
||||
BO_ 782 Charger_Command: 1 T18_BatteryCharger
|
||||
SG_ Command : 0|8@1+ (1,0) [0|0] "" Vector__XXX
|
||||
|
||||
BO_ 772 Charger_parameters: 4 T18_BatteryCharger
|
||||
SG_ Unknown : 0|8@1+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ Current : 8|8@1+ (0.05,0) [0|0] "A" Vector__XXX
|
||||
SG_ Voltage : 23|16@0+ (0.5,0) [0|0] "V" Vector__XXX
|
||||
|
||||
BO_ 1120 Coolant_Temp: 4 K16_BECM
|
||||
SG_ Coolant_Temp : 7|16@0+ (1,0) [0|0] "" Vector__XXX
|
||||
|
||||
BO_ 778 AC_Stats: 7 T18_BatteryCharger
|
||||
SG_ Mains_Voltage : 0|12@1+ (0.1,0) [0|0] "V" Vector__XXX
|
||||
SG_ Total_Charge : 19|8@0+ (1,0) [0|0] "" Vector__XXX
|
||||
|
||||
BO_ 776 Charger_unknown: 5 T18_BatteryCharger
|
||||
SG_ Bit_20 : 20|1@1+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ Bit_21 : 21|1@1+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ Bit_22 : 22|1@1+ (1,0) [0|0] "" Vector__XXX
|
||||
|
||||
BA_DEF_ BO_ "GenMsgBackgroundColor" STRING ;
|
||||
BA_DEF_ BO_ "GenMsgForegroundColor" STRING ;
|
||||
BA_DEF_ BO_ "isj1939dbc" INT 0 0;
|
||||
@@ -173,4 +191,5 @@ BA_DEF_DEF_ "GenMsgForegroundColor" "#000000";
|
||||
BA_DEF_DEF_ "isj1939dbc" 0;
|
||||
CM_ BU_ K16_BECM "Battery Energy Control Module";
|
||||
CM_ BU_ K114B_HPCM "Hybrid Powertrain Control Module";
|
||||
CM_ BU_ T18_BatteryCharger "Battery Charger";
|
||||
CM_ BU_ T18_BatteryCharger "Battery Charger";
|
||||
VAL_ 782 Command 1 "12V_Only" 2 "HV_Only" 3 "12V_and_HV";
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
VERSION ""
|
||||
|
||||
|
||||
NS_ :
|
||||
NS_DESC_
|
||||
CM_
|
||||
BA_DEF_
|
||||
BA_
|
||||
VAL_
|
||||
CAT_DEF_
|
||||
CAT_
|
||||
FILTER
|
||||
BA_DEF_DEF_
|
||||
EV_DATA_
|
||||
ENVVAR_DATA_
|
||||
SGTYPE_
|
||||
SGTYPE_VAL_
|
||||
BA_DEF_SGTYPE_
|
||||
BA_SGTYPE_
|
||||
SIG_TYPE_REF_
|
||||
VAL_TABLE_
|
||||
SIG_GROUP_
|
||||
SIG_VALTYPE_
|
||||
SIGTYPE_VALTYPE_
|
||||
BO_TX_BU_
|
||||
BA_DEF_REL_
|
||||
BA_REL_
|
||||
BA_DEF_DEF_REL_
|
||||
BU_SG_REL_
|
||||
BU_EV_REL_
|
||||
BU_BO_REL_
|
||||
SG_MUL_VAL_
|
||||
|
||||
BS_:
|
||||
BU_: K1_APM
|
||||
BO_ 470 APM_Stats: 7 K1_APM
|
||||
SG_ APM_Low_Voltage_Sensed : 16|8@1+ (0.0787402,0) [0|0] "V" Vector__XXX
|
||||
SG_ APM_Temperature_1 : 24|8@1+ (1,-40) [0|0] "C" Vector__XXX
|
||||
SG_ APM_Temperature_2 : 32|8@1+ (1,-40) [0|0] "C" Vector__XXX
|
||||
SG_ APM_Low_Voltage_Current_Output : 40|8@1- (1,0) [0|0] "A" Vector__XXX
|
||||
SG_ APM_Status : 7|8@0+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ APM_High_Voltage_Input_Current : 8|8@1- (0.15,-7) [0|0] "A" Vector__XXX
|
||||
SG_ APM_Counter : 48|8@1+ (1,0) [0|0] "" Vector__XXX
|
||||
|
||||
BO_ 468 APM_Command: 2 K1_APM
|
||||
SG_ APM_Status : 0|8@1+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ APM_Voltage_Requested : 8|8@1+ (0.0787402,0) [0|0] "V" Vector__XXX
|
||||
|
||||
BA_DEF_ BO_ "GenMsgBackgroundColor" STRING ;
|
||||
BA_DEF_ BO_ "GenMsgForegroundColor" STRING ;
|
||||
BA_DEF_ BO_ "isj1939dbc" INT 0 0;
|
||||
BA_DEF_DEF_ "GenMsgBackgroundColor" "#ffffff";
|
||||
BA_DEF_DEF_ "GenMsgForegroundColor" "#000000";
|
||||
BA_DEF_DEF_ "isj1939dbc" 0;
|
||||
CM_ BU_ K1_APM "14V Power Module";
|
||||
VAL_ 468 APM_Status 0 "Off" 160 "On";
|
||||
@@ -990,6 +990,8 @@ BO_ 1342 LKAS12: 6 LDWS_LKAS
|
||||
SG_ CF_Lkas_TsrSpeed_Display_Clu : 16|8@1+ (1.0,0.0) [0.0|255.0] "" CLU
|
||||
SG_ CF_LkasTsrSpeed_Display_Navi : 24|8@1+ (1.0,0.0) [0.0|255.0] "" BCM,CLU
|
||||
SG_ CF_Lkas_TsrAddinfo_Display : 32|2@1+ (1.0,0.0) [0.0|3.0] "" CLU
|
||||
SG_ CF_LkasDawStatus : 40|3@1+ (1,0) [0|7] "" CLU
|
||||
SG_ CF_Lkas_Daw_USM : 39|3@1+ (1,0) [0|7] "" CLU
|
||||
|
||||
BO_ 1338 TMU_GW_E_01: 8 CLU
|
||||
SG_ CF_Gway_TeleReqDrLock : 0|2@1+ (1.0,0.0) [0.0|3.0] "" BCM
|
||||
@@ -1159,27 +1161,27 @@ BO_ 1314 GW_IPM_PE_1: 8 BCM
|
||||
SG_ C_SMKTeleCrankingFailRes : 34|2@1+ (1.0,0.0) [0.0|3.0] "" CLU
|
||||
|
||||
BO_ 1057 SCC12: 8 SCC
|
||||
SG_ CF_VSM_Prefill : 0|1@1+ (1.0,0.0) [0.0|1.0] "" ESC
|
||||
SG_ CF_VSM_DecCmdAct : 1|1@1+ (1.0,0.0) [0.0|1.0] "" ESC
|
||||
SG_ CF_VSM_HBACmd : 2|2@1+ (1.0,0.0) [0.0|3.0] "" ESC
|
||||
SG_ CF_VSM_Warn : 4|2@1+ (1.0,0.0) [0.0|3.0] "" CLU,ESC,IAP
|
||||
SG_ CF_VSM_Stat : 6|2@1+ (1.0,0.0) [0.0|3.0] "" CLU,ESC,PSB
|
||||
SG_ CF_VSM_BeltCmd : 8|3@1+ (1.0,0.0) [0.0|7.0] "" ESC,PSB
|
||||
SG_ ACCFailInfo : 11|2@1+ (1.0,0.0) [0.0|3.0] "" CLU,CUBIS,ESC,IBOX
|
||||
SG_ ACCMode : 13|2@1+ (1.0,0.0) [0.0|3.0] "" CLU,ESC,IBOX,TCU
|
||||
SG_ StopReq : 15|1@1+ (1.0,0.0) [0.0|1.0] "" EPB,ESC
|
||||
SG_ CR_VSM_DecCmd : 16|8@1+ (0.01,0.0) [0.0|2.55] "g" ESC
|
||||
SG_ aReqMax : 24|11@1+ (0.01,-10.23) [-10.23|10.24] "m/s^2" EMS,ESC,TCU
|
||||
SG_ TakeOverReq : 35|1@1+ (1.0,0.0) [0.0|1.0] "" CLU,ESC,TCU
|
||||
SG_ PreFill : 36|1@1+ (1.0,0.0) [0.0|1.0] "" ESC,TCU
|
||||
SG_ aReqMin : 37|11@1+ (0.01,-10.23) [-10.23|10.24] "m/s^2" EMS,ESC,TCU
|
||||
SG_ CF_VSM_ConfMode : 48|2@1+ (1.0,0.0) [0.0|3.0] "" CLU,ESC
|
||||
SG_ AEB_Failinfo : 50|2@1+ (1.0,0.0) [0.0|3.0] "" CLU,ESC
|
||||
SG_ AEB_Status : 52|2@1+ (1.0,0.0) [0.0|3.0] "" CLU,ESC
|
||||
SG_ AEB_CmdAct : 54|1@1+ (1.0,0.0) [0.0|1.0] "" ESC
|
||||
SG_ AEB_StopReq : 55|1@1+ (1.0,0.0) [0.0|1.0] "" CLU,ESC
|
||||
SG_ CR_VSM_Alive : 56|4@1+ (1.0,0.0) [0.0|15.0] "" ESC,PSB
|
||||
SG_ CR_VSM_ChkSum : 60|4@1+ (1.0,0.0) [0.0|15.0] "" ESC,PSB
|
||||
SG_ CF_VSM_Prefill : 0|1@1+ (1,0) [0|1] "" ESC
|
||||
SG_ CF_VSM_DecCmdAct : 1|1@1+ (1,0) [0|1] "" ESC
|
||||
SG_ CF_VSM_HBACmd : 2|2@1+ (1,0) [0|3] "" ESC
|
||||
SG_ CF_VSM_Warn : 4|2@1+ (1,0) [0|3] "" CLU,ESC,IAP
|
||||
SG_ CF_VSM_Stat : 6|2@1+ (1,0) [0|3] "" CLU,ESC,PSB
|
||||
SG_ CF_VSM_BeltCmd : 8|3@1+ (1,0) [0|7] "" ESC,PSB
|
||||
SG_ ACCFailInfo : 11|2@1+ (1,0) [0|3] "" CLU,CUBIS,ESC,IBOX
|
||||
SG_ ACCMode : 13|2@1+ (1,0) [0|3] "" CLU,ESC,IBOX,TCU
|
||||
SG_ StopReq : 15|1@1+ (1,0) [0|1] "" EPB,ESC
|
||||
SG_ CR_VSM_DecCmd : 16|8@1+ (0.01,0) [0|2.55] "g" ESC
|
||||
SG_ TakeOverReq : 35|1@1+ (1,0) [0|1] "" CLU,ESC,TCU
|
||||
SG_ PreFill : 36|1@1+ (1,0) [0|1] "" ESC,TCU
|
||||
SG_ CF_VSM_ConfMode : 48|2@1+ (1,0) [0|3] "" CLU,ESC
|
||||
SG_ AEB_Failinfo : 50|2@1+ (1,0) [0|3] "" CLU,ESC
|
||||
SG_ AEB_Status : 52|2@1+ (1,0) [0|3] "" CLU,ESC
|
||||
SG_ AEB_CmdAct : 54|1@1+ (1,0) [0|1] "" ESC
|
||||
SG_ AEB_StopReq : 55|1@1+ (1,0) [0|1] "" CLU,ESC
|
||||
SG_ CR_VSM_Alive : 56|4@1+ (1,0) [0|15] "" ESC,PSB
|
||||
SG_ CR_VSM_ChkSum : 60|4@1+ (1,0) [0|15] "" ESC,PSB
|
||||
SG_ aReqValue : 37|11@1+ (0.01,-10.23) [-10.23|10.24] "m/s^2" Vector__XXX
|
||||
SG_ aReqRaw : 24|11@1+ (0.01,-10.23) [-10.23|10.24] "m/s^2" Vector__XXX
|
||||
|
||||
BO_ 1313 GW_DDM_PE: 8 BCM
|
||||
SG_ C_DRVDoorStatus : 0|2@1+ (1.0,0.0) [0.0|3.0] "" CLU
|
||||
@@ -1188,23 +1190,23 @@ BO_ 1313 GW_DDM_PE: 8 BCM
|
||||
SG_ C_RRDoorStatus : 6|2@1+ (1.0,0.0) [0.0|3.0] "" CLU
|
||||
SG_ C_TrunkStatus : 8|2@1+ (1.0,0.0) [0.0|3.0] "" CLU
|
||||
SG_ C_OSMirrorStatus : 10|2@1+ (1.0,0.0) [0.0|3.0] "" CLU
|
||||
|
||||
|
||||
BO_ 1056 SCC11: 8 SCC
|
||||
SG_ MainMode_ACC : 0|1@1+ (1.0,0.0) [0.0|1.0] "" CLU,EMS,ESC
|
||||
SG_ SCCInfoDisplay : 1|3@1+ (1.0,0.0) [0.0|7.0] "" CLU,ESC
|
||||
SG_ AliveCounterACC : 4|4@1+ (1.0,0.0) [0.0|15.0] "" CLU,EMS,ESC,TCU
|
||||
SG_ VSetDis : 8|8@1+ (1.0,0.0) [0.0|255.0] "km/h or MPH" CLU,ESC,TCU
|
||||
SG_ ObjValid : 16|1@1+ (1.0,0.0) [0.0|1.0] "" CLU,ESC,TCU
|
||||
SG_ DriverAlertDisplay : 17|2@1+ (1.0,0.0) [0.0|3.0] "" CLU,ESC
|
||||
SG_ TauGapSet : 19|3@1+ (1.0,0.0) [0.0|7.0] "" CLU,ESC,TCU
|
||||
SG_ ACC_ObjStatus : 22|2@1+ (1.0,0.0) [0.0|3.0] "" ABS,ESC
|
||||
SG_ ACC_ObjLatPos : 24|9@1+ (0.1,-20.0) [-20.0|31.1] "m" ABS,ESC
|
||||
SG_ ACC_ObjDist : 33|11@1+ (0.1,0.0) [0.0|204.7] "m" ABS,ESC
|
||||
SG_ ACC_ObjRelSpd : 44|12@1+ (0.1,-170.0) [-170.0|239.5] "m/s" ABS,ESC
|
||||
SG_ Navi_SCC_Curve_Status : 56|2@1+ (1.0,0.0) [0.0|3.0] "" CLU
|
||||
SG_ Navi_SCC_Curve_Act : 58|2@1+ (1.0,0.0) [0.0|3.0] "" CLU
|
||||
SG_ Navi_SCC_Camera_Act : 60|2@1+ (1.0,0.0) [0.0|3.0] "" CLU
|
||||
SG_ Navi_SCC_Camera_Status : 62|2@1+ (1.0,0.0) [0.0|3.0] "" CLU
|
||||
SG_ MainMode_ACC : 0|1@1+ (1,0) [0|1] "" CLU,EMS,ESC
|
||||
SG_ SCCInfoDisplay : 1|3@1+ (1,0) [0|7] "" CLU,ESC
|
||||
SG_ AliveCounterACC : 4|4@1+ (1,0) [0|15] "" CLU,EMS,ESC,TCU
|
||||
SG_ VSetDis : 8|8@1+ (1,0) [0|255] "km/h or MPH" CLU,ESC,TCU
|
||||
SG_ ObjValid : 16|1@1+ (1,0) [0|1] "" CLU,ESC,TCU
|
||||
SG_ DriverAlertDisplay : 17|2@1+ (1,0) [0|3] "" CLU,ESC
|
||||
SG_ TauGapSet : 19|3@1+ (1,0) [0|7] "" CLU,ESC,TCU
|
||||
SG_ Navi_SCC_Curve_Status : 56|2@1+ (1,0) [0|3] "" CLU
|
||||
SG_ Navi_SCC_Curve_Act : 58|2@1+ (1,0) [0|3] "" CLU
|
||||
SG_ Navi_SCC_Camera_Act : 60|2@1+ (1,0) [0|3] "" CLU
|
||||
SG_ Navi_SCC_Camera_Status : 62|2@1+ (1,0) [0|3] "" CLU
|
||||
SG_ ACC_ObjStatus : 22|2@1+ (1,0) [0|3] "" ABS,ESC
|
||||
SG_ ACC_ObjLatPos : 24|9@1+ (0.1,-20) [-20|31.1] "m" ABS,ESC
|
||||
SG_ ACC_ObjRelSpd : 44|12@1+ (0.1,-170) [-170|239.5] "m/s" ABS,ESC
|
||||
SG_ ACC_ObjDist : 33|11@1+ (0.1,0) [0|204.7] "m" ABS,ESC
|
||||
|
||||
BO_ 1312 CGW3: 8 BCM
|
||||
SG_ CR_Photosensor_LH : 0|8@1+ (78.125,0.0) [0.0|20000.0] "" DATC,DATC
|
||||
@@ -1248,6 +1250,14 @@ BO_ 790 EMS11: 8 EMS
|
||||
SG_ VS : 48|8@1+ (1.0,0.0) [0.0|254.0] "km/h" _4WD,AAF,ACU,AHLS,BCM,CLU,DATC,ECS,EPB,IBOX,LCA,LDWS_LKAS,LVR,MDPS,ODS,SCC,SMK,SPAS,TCU,TPMS
|
||||
SG_ RATIO_TQI_BAS_MAX_STND : 56|8@1+ (0.0078,0.0) [0.0|2.0] "" _4WD,IBOX,TCU
|
||||
|
||||
BO_ 881 E_EMS11: 8 XXX
|
||||
SG_ Cruise_Limit_Status : 13|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Limit_Target : 23|8@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Gear_Change : 12|1@0+ (1,0) [0|31] "" XXX
|
||||
SG_ IG_Reactive_Stat : 8|3@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Brake_Pedal_Pos : 0|8@1+ (1,0) [0|127] "" XXX
|
||||
SG_ Accel_Pedal_Pos : 31|8@1+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 1301 CLU14: 8 CLU
|
||||
SG_ CF_Clu_ADrUNValueSet : 0|3@1+ (1.0,0.0) [0.0|7.0] "" BCM
|
||||
SG_ CF_Clu_ADrLNValueSet : 3|3@1+ (1.0,0.0) [0.0|7.0] "" BCM
|
||||
@@ -1367,9 +1377,9 @@ BO_ 1292 CLU13: 8 CLU
|
||||
SG_ CF_Clu_AliveCnt2 : 60|4@1+ (1.0,0.0) [0.0|15.0] "" EMS,LDWS_LKAS
|
||||
|
||||
BO_ 1290 SCC13: 8 SCC
|
||||
SG_ SCCDrvModeRValue : 0|3@1+ (1.0,0.0) [0.0|7.0] "" CLU
|
||||
SG_ SCC_Equip : 3|1@1+ (1.0,0.0) [0.0|1.0] "" ESC
|
||||
SG_ AebDrvSetStatus : 4|3@1+ (1.0,0.0) [0.0|7.0] "" CLU,ESC
|
||||
SG_ SCCDrvModeRValue : 0|3@1+ (1,0) [0|7] "" CLU
|
||||
SG_ SCC_Equip : 3|1@1+ (1,0) [0|1] "" ESC
|
||||
SG_ AebDrvSetStatus : 4|3@1+ (1,0) [0|7] "" CLU,ESC
|
||||
|
||||
BO_ 1287 TCS15: 4 ESC
|
||||
SG_ ABS_W_LAMP : 0|1@1+ (1.0,0.0) [0.0|1.0] "" _4WD,CLU,CUBIS,IBOX
|
||||
@@ -1423,26 +1433,38 @@ BO_ 512 EMS20: 6 EMS
|
||||
SG_ Split_Stat : 32|1@1+ (1.0,0.0) [0.0|1.0] "" FPCM
|
||||
|
||||
BO_ 909 FCA11: 8 FCA
|
||||
SG_ CF_VSM_Prefill : 0|1@1+ (1,0) [0|1] "" ESC
|
||||
SG_ CF_VSM_HBACmd : 1|2@1+ (1,0) [0|3] "" ESC
|
||||
SG_ CF_VSM_Warn : 3|2@1+ (1,0) [0|3] "" ACU,CLU,ESC
|
||||
SG_ CF_VSM_BeltCmd : 5|3@1+ (1,0) [0|7] "" ESC
|
||||
SG_ CR_VSM_DecCmd : 8|8@1+ (0.01,0) [0|2.55] "g" ESC
|
||||
SG_ FCA_Status : 18|2@1+ (1,0) [0|3] "" ACU,CLU,ESC
|
||||
SG_ FCA_CmdAct : 20|1@1+ (1,0) [0|1] "" ESC
|
||||
SG_ FCA_StopReq : 21|1@1+ (1,0) [0|1] "" CLU,ESC
|
||||
SG_ FCA_DrvSetStatus : 22|3@1+ (1,0) [0|7] "" CLU,ESC
|
||||
SG_ CF_VSM_DecCmdAct : 31|1@1+ (1,0) [0|1] "" ESC
|
||||
SG_ FCA_Failinfo : 32|3@1+ (1,0) [0|7] "" ACU,CLU,ESC
|
||||
SG_ CR_FCA_Alive : 56|4@1+ (1,0) [0|15] "" ESC
|
||||
SG_ CR_FCA_ChkSum : 60|4@1+ (1,0) [0|15] "" ESC
|
||||
SG_ CF_VSM_Prefill : 0|1@1+ (1,0) [0|1] "" ESC
|
||||
SG_ CF_VSM_HBACmd : 1|2@1+ (1,0) [0|3] "" ESC
|
||||
SG_ CF_VSM_Warn : 3|2@1+ (1,0) [0|3] "" ACU,CLU,ESC
|
||||
SG_ CF_VSM_BeltCmd : 5|3@1+ (1,0) [0|7] "" ESC
|
||||
SG_ CR_VSM_DecCmd : 8|8@1+ (0.01,0) [0|2.55] "g" ESC
|
||||
SG_ FCA_Status : 18|2@1+ (1,0) [0|3] "" ACU,CLU,ESC
|
||||
SG_ FCA_CmdAct : 20|1@1+ (1,0) [0|1] "" ESC
|
||||
SG_ FCA_StopReq : 21|1@1+ (1,0) [0|1] "" CLU,ESC
|
||||
SG_ FCA_DrvSetStatus : 22|3@1+ (1,0) [0|7] "" CLU,ESC
|
||||
SG_ CF_VSM_DecCmdAct : 31|1@1+ (1,0) [0|1] "" ESC
|
||||
SG_ FCA_Failinfo : 32|3@1+ (1,0) [0|7] "" ACU,CLU,ESC
|
||||
SG_ FCA_RelativeVelocity : 39|9@1+ (0.1,-25.5) [-25.5|25.5] "m/s" iBAU
|
||||
SG_ FCA_TimetoCollision : 48|8@1+ (10,0) [0|2540] "ms" iBAU
|
||||
SG_ CR_FCA_Alive : 56|4@1+ (1,0) [0|15] "" ESC
|
||||
SG_ CR_FCA_ChkSum : 60|4@1+ (1,0) [0|15] "" ESC
|
||||
SG_ Supplemental_Counter : 35|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ PAINT1_Status : 16|2@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 1155 FCA12: 8 FCA
|
||||
SG_ FCA_USM : 0|3@1+ (1,0) [0|7] "" CGW,CLU,ESC
|
||||
SG_ FCA_DrvSetState : 3|3@1+ (1,0) [0|7] "" CGW
|
||||
|
||||
BO_ 1186 FRT_RADAR11: 2 FCA
|
||||
SG_ CF_FCA_Equip_Front_Radar : 0|3@1+ (1,0) [0|7] "" LDWS_LKAS,LDW_LKA,ESC
|
||||
|
||||
BO_ 905 SCC14: 8 SCC
|
||||
SG_ ComfortBandUpper : 0|6@1+ (0.02,0) [0|1.26] "m/s^2" ESC
|
||||
SG_ ComfortBandLower : 6|6@1+ (0.02,0) [0|1.26] "m/s^2" ESC
|
||||
SG_ JerkUpperLimit : 12|7@1+ (0.1,0) [0|12.7] "m/s^3" ESC
|
||||
SG_ JerkLowerLimit : 19|7@1+ (0.1,0) [0|12.7] "m/s^3" ESC
|
||||
SG_ SCCMode : 32|3@1+ (1,0) [0|7] "" ESC
|
||||
SG_ ComfortBandLower : 6|6@1+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ ComfortBandUpper : 0|6@1+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ JerkLowerLimit : 19|7@1+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ JerkUpperLimit : 12|7@1+ (0.1,0) [0|0] "" Vector__XXX
|
||||
SG_ ACCMode : 32|3@1+ (1,0) [0|7] "" CLU,HUD,LDWS_LKAS,ESC
|
||||
SG_ ObjGap : 56|8@1+ (1,0) [0|255] "" CLU,HUD,ESC
|
||||
|
||||
BO_ 882 ELECT_GEAR: 8 XXX
|
||||
SG_ Elect_Gear_Shifter : 16|3@1+ (1,0) [0|7] "" CLU
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -402,23 +402,26 @@ BO_ 158 MSG_05: 8 XXX
|
||||
SG_ NEW_SIGNAL_3 : 55|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 157 CRZ_BTNS: 8 XXX
|
||||
SG_ SET_P_INV : 21|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ CAN_OFF_INV : 17|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ CAN_OFF : 0|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SET_M_INV : 22|1@0+ (1,0) [0|255] "" XXX
|
||||
SG_ SET_M : 5|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ SET_P : 4|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ RES_INV : 19|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ RES : 2|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ BIT1 : 16|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BIT2 : 18|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BIT3 : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_P_INV : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CAN_OFF_INV : 17|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CAN_OFF : 0|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_M_INV : 22|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_M : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_P : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ RES_INV : 19|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ RES : 2|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ DISTANCE_LESS : 7|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ DISTANCE_LESS_INV : 8|1@0+ (1,0) [0|31] "" XXX
|
||||
SG_ DISTANCE_MORE : 6|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ DISTANCE_LESS_INV : 8|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ DISTANCE_MORE : 6|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ DISTANCE_MORE_INV : 23|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MODE_Y : 13|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ MODE_X : 14|1@0+ (1,0) [0|255] "" XXX
|
||||
SG_ MODE_Y_INV : 30|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ MODE_X_INV : 31|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ CTR : 29|4@0+ (1,0) [0|255] "" XXX
|
||||
SG_ MODE_Y : 13|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MODE_X : 14|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MODE_Y_INV : 30|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MODE_X_INV : 31|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CTR : 29|4@0+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 154 BLINK_INFO: 8 XXX
|
||||
SG_ LEFT_BLINK : 18|1@1+ (1,0) [0|3] "" XXX
|
||||
@@ -37,54 +37,52 @@ BU_: XXX X
|
||||
|
||||
|
||||
BO_ 2 Steering: 8 XXX
|
||||
SG_ Steering_Angle : 7|16@0- (0.1,0) [0|65535] "" XXX
|
||||
SG_ Counter : 25|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ CHECKSUM : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Steering_Angle : 7|16@0- (0.1,0) [0|65535] "" XXX
|
||||
|
||||
BO_ 64 Throttle: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 12|4@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Engine_RPM : 16|12@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 28|5@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Throttle_Pedal : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Cruise : 40|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Combo : 48|7@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal1 : 55|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 56|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Combo : 48|8@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal1 : 56|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Off_Accel : 60|4@1+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 65 NEW_MSG_1: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 32|12@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 16|12@1+ (1,0) [0|1] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 31|1@0+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_6 : 48|8@1+ (1,0) [0|63] "" XXX
|
||||
SG_ NEW_SIGNAL_7 : 59|2@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 72 Transmission: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Gear : 24|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 38|3@0+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 40|16@1+ (1,0) [0|255] "" XXX
|
||||
SG_ RPM : 40|16@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 316 NEW_MSG_3: 8 XXX
|
||||
BO_ 73 CVT: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ CVT_Gear : 24|8@1+ (1,0) [0|127] "" XXX
|
||||
|
||||
BO_ 316 Brake_Status: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal1 : 12|46@1+ (1,0) [0|1] "" XXX
|
||||
SG_ ES_Brake : 58|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal2 : 59|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Brake : 62|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal3 : 63|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 326 Cruise_Buttons: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Signal1 : 12|30@1+ (1,0) [0|1073741823] "" XXX
|
||||
SG_ Main : 42|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ set : 43|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Set : 43|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Resume : 44|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal2 : 45|19@1+ (1,0) [0|524287] "" XXX
|
||||
|
||||
BO_ 315 G_Sensor: 8 XXX
|
||||
SG_ longitudinal : 63|8@0- (1,0) [0|255] "" XXX
|
||||
SG_ Latitudinal : 48|8@1- (1,0) [0|255] "" XXX
|
||||
SG_ Lateral : 48|8@1- (-0.1,0) [0|255] "m/s2" XXX
|
||||
SG_ Longitudinal : 56|8@1- (-0.1,0) [0|255] "m/s2" XXX
|
||||
|
||||
BO_ 314 Wheel_Speeds: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
@@ -94,26 +92,18 @@ BO_ 314 Wheel_Speeds: 8 XXX
|
||||
SG_ FL : 51|13@1+ (0.057,0) [0|255] "kph" XXX
|
||||
SG_ RL : 38|13@1+ (0.057,0) [0|255] "kph" XXX
|
||||
|
||||
BO_ 73 NEW_MSG_5: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 32|8@1+ (1,0) [0|4095] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 24|8@1+ (1,0) [0|127] "" XXX
|
||||
|
||||
BO_ 280 STOP_START: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|1] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 12|12@1- (1,0) [0|4095] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 40|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 48|8@1- (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 61|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ State : 63|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 281 Steering_Torque: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|3] "" XXX
|
||||
SG_ counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Steer_Error_1 : 12|1@0+ (1,0) [0|7] "" XXX
|
||||
SG_ Steer_Torque_Sensor : 16|11@1- (-1,0) [0|3] "" XXX
|
||||
SG_ Steer_Error_2 : 28|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Steer_Warning : 29|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Steering_Angle : 32|16@1- (-0.0217,0) [0|255] "" X
|
||||
SG_ Steer_Torque_Output : 48|11@1- (-1,0) [0|31] "" XXX
|
||||
|
||||
@@ -126,8 +116,9 @@ BO_ 312 Brake_Pressure_L_R: 8 XXX
|
||||
BO_ 313 Brake_Pedal: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal1 : 12|22@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Brake_Pedal_On : 34|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Signal1 : 12|4@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Speed : 16|12@1+ (0.05625,0) [0|255] "kph" XXX
|
||||
SG_ Brake_Lights : 34|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Signal2 : 35|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Brake_Pedal : 36|12@1+ (1,0) [0|65535] "" XXX
|
||||
SG_ Signal3 : 48|16@1+ (1,0) [0|1] "" XXX
|
||||
@@ -135,16 +126,9 @@ BO_ 313 Brake_Pedal: 8 XXX
|
||||
BO_ 290 ES_LKAS: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_1 : 12|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ LKAS_Output : 16|13@1- (-1,0) [0|3] "" XXX
|
||||
SG_ LKAS_Request : 29|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ SET_1 : 12|1@0+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 722 NEW_MSG_10: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 27|3@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 56|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 45|2@0+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 544 ES_Brake: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
@@ -152,66 +136,74 @@ BO_ 544 ES_Brake: 8 XXX
|
||||
SG_ Signal1 : 12|4@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Brake_Pressure : 16|16@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Signal2 : 32|4@1+ (1,0) [0|1] "" XXX
|
||||
SG_ State : 36|4@1+ (1,0) [0|63] "" XXX
|
||||
SG_ Cruise_Brake_Lights : 36|1@1+ (1,0) [0|63] "" XXX
|
||||
SG_ Cruise_Brake_Fault : 37|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Brake_Active : 38|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Activated : 39|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal3 : 40|24@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 545 ES_Distance: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ ES_Cruise_Throttle : 12|20@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Signal1 : 12|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Fault : 15|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Throttle : 16|12@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Signal2 : 28|4@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Car_Follow : 32|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal1 : 33|4@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal3 : 33|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Brake_Active : 36|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Distance_Swap : 37|1@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Signal2 : 38|2@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_EPB : 38|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal4 : 39|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ Close_Distance : 40|8@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal3 : 48|8@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal5 : 48|8@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Cancel : 56|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Set : 57|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Resume : 58|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal4 : 59|5@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal6 : 59|5@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 546 ES_Status: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ RPM : 16|12@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Signal1 : 12|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Fault : 15|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_RPM : 16|12@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Signal2 : 28|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Activated : 29|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_Brake : 30|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Brake_Lights : 30|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_Hold : 31|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 554 ES_Blank: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_65535 : 39|16@1+ (1,0) [0|16777215] "" XXX
|
||||
SG_ SET_1 : 13|1@1+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 557 NEW_MSG_14: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Signal3 : 32|32@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 576 CruiseControl: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 42|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal1 : 12|28@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_On : 40|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_Activated : 41|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal2 : 42|22@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 577 NEW_MSG_16: 8 XXX
|
||||
BO_ 577 Cruise_Status: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 16|12@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Cruise_On : 54|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Activated : 55|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Active : 57|4@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 552 NEW_MSG_17: 8 XXX
|
||||
BO_ 552 BSD_RCTA: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 48|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ R_ADJACENT : 48|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ L_ADJACENT : 49|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ R_APPROACHING : 58|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ L_APPROACHING : 59|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 912 Dashlights: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 32|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ RIGHT_BLINKER : 51|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LEFT_BLINKER : 50|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ ICY_ROAD : 32|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SEATBELT_FL : 48|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LEFT_BLINKER : 50|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ RIGHT_BLINKER : 51|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 940 BodyInfo: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|1] "" XXX
|
||||
@@ -226,20 +218,29 @@ BO_ 940 BodyInfo: 8 XXX
|
||||
SG_ Highbeam : 58|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ FOG_LIGHTS2 : 60|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ WIPERS : 62|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BRAKE : 54|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 801 ES_DashStatus: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|7] "" XXX
|
||||
SG_ PCB_Off : 12|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LDW_Off : 13|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal1 : 14|10@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Soft_Disable : 24|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal2 : 25|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Distance : 28|3@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal3 : 31|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Conventional_Cruise : 32|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal4 : 33|2@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Disengaged : 35|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_Activated : 36|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal5 : 37|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Set_Speed : 40|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Cruise_Fault : 48|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ NEW_SIGNAL_10 : 49|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Brake_Pedal : 51|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal6 : 49|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Brake_Lights : 51|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Car_Follow : 52|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal7 : 53|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Far_Distance : 56|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Cruise_State : 60|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
@@ -253,149 +254,43 @@ BO_ 802 ES_LKAS_State: 8 XXX
|
||||
SG_ Signal2 : 18|5@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Backward_Speed_Limit_Menu : 23|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LKAS_ENABLE_3 : 24|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal3 : 25|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LKAS_Left_Line_Light_Blink : 25|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LKAS_ENABLE_2 : 26|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal4 : 27|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LKAS_Right_Line_Light_Blink : 27|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LKAS_Left_Line_Visible : 28|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal6 : 29|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LKAS_Left_Line_Green : 29|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LKAS_Right_Line_Visible : 30|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal7 : 31|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ FCW_Cont_Beep : 32|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ FCW_Repeated_Beep : 33|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Throttle_Management_Activated : 34|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Lead_Vehicle_Start_Alert : 35|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Right_Depart : 36|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal5 : 37|27@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LKAS_Right_Line_Green : 31|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LKAS_Alert : 32|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Signal3 : 36|28@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 805 ES_NEW_MSG_22: 8 XXX
|
||||
BO_ 722 AC_State: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 22|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 14|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 15|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 808 NEW_MSG_23: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 837 NEW_MSG_24: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 40|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 32|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 24|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 838 NEW_MSG_25: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 40|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 842 NEW_MSG_26: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 915 NEW_MSG_27: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 32|9@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 1788 NEW_MSG_28: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 40|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 48|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 816 NEW_MSG_29: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 826 NEW_MSG_30: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 839 NEW_MSG_31: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 2015 NEW_MSG_32: 8 XXX
|
||||
SG_ NEW_SIGNAL_2 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 2024 NEW_MSG_33: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 24|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 0|3@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 1614 NEW_MSG_34: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 1617 NEW_MSG_35: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 1632 NEW_MSG_36: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 55|16@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 1650 NEW_MSG_37: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 1657 NEW_MSG_38: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 1658 NEW_MSG_39: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 33|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 31|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ AC_Mode : 37|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ AC_ON : 24|2@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 1677 Dash_State: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 16|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Units : 29|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Icy_Road_Warning : 20|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 1743 NEW_MSG_41: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 1785 NEW_MSG_42: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 0|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 21|1@1+ (1,0) [0|31] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 17|1@1+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 1759 NEW_MSG_43: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 17|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 1786 NEW_MSG_44: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 0|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 8|8@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 1787 NEW_MSG_45: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 0|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 8|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
|
||||
|
||||
|
||||
CM_ SG_ 64 Throttle_Combo "Throttle Cruise + Pedal";
|
||||
CM_ SG_ 544 State "0 = ES disabled, 8 = ES enabled, 12, 13 = ES_Brake active";
|
||||
CM_ SG_ 545 ES_Cruise_Throttle "signal might be smaller, values do not correlate with Throttle:CruiseThrottle";
|
||||
CM_ SG_ 313 Brake_Lights "Driver or Cruise Brake on";
|
||||
CM_ SG_ 544 Cruise_Brake_Lights "1 = switch on brake lights";
|
||||
CM_ SG_ 545 Cruise_Throttle "RPM-like output signal";
|
||||
CM_ SG_ 545 Cruise_EPB "1 = Electric Parking Brake set";
|
||||
CM_ SG_ 545 Distance_Swap "Switch from Close to Far distance";
|
||||
CM_ SG_ 546 Cruise_RPM "ES RPM output for ECM and TCM";
|
||||
CM_ SG_ 546 Signal3 "0 when cruise_activated = 1";
|
||||
CM_ SG_ 801 PCB_Off "Pre-Collision Braking off";
|
||||
CM_ SG_ 801 Brake_Lights "Driver or Cruise brake on";
|
||||
CM_ SG_ 801 Cruise_State "0 = Normal, 1 = Hold+User Brake, 2 = Ready, 3 = Hold";
|
||||
CM_ SG_ 801 Far_Distance "1=0-5m, 2=5-10m, 3=10-15m, 4=15-20m, 5=20-25m, 6=25-30m, 7=30-35m, 8=35-40m, 9=40-45m, 10=45-50m, 11=50-55m, 12=55-60m, 13=60-65m, 14=65-70m, 15=75m+";
|
||||
CM_ SG_ 801 Cruise_Soft_Disable "Eyesight soft disable (eg direct sunlight)";
|
||||
CM_ SG_ 802 LKAS_Alert "1 = FCW_Cont_Beep, 2 = FCW_Repeated_Beep, 3 = Throttle_Management_Activated_Warning, 4 = Throttle_Management_Activated_Alert, 8 = Traffic_Light_Ahead, 9 = Apply_Brake_to_Hold Position, 11 = LDW_Right, 12 = LDW_Left, 13 = Stay_Alert, 14 = Lead_Vehicle_Start_Alert";
|
||||
CM_ SG_ 912 ICY_ROAD "1 = DASHLIGHT ON, 2 = WARNING, 3 = OFF";
|
||||
CM_ SG_ 940 Highbeam "01 = low beam, 11 = high beam";
|
||||
CM_ SG_ 940 FOG_LIGHTS2 "yellow fog light in the dash";
|
||||
CM_ SG_ 801 PCB_Off "Pre-Collision Braking";
|
||||
CM_ SG_ 801 Cruise_State "0 = Normal, 1 = Hold+User Brake, 2 = Ready, 3 = Hold";
|
||||
CM_ SG_ 805 NEW_SIGNAL_3 "always 3";
|
||||
CM_ SG_ 805 NEW_SIGNAL_4 "always 1";
|
||||
CM_ SG_ 1677 Units "1 = imperial, 6 = metric";
|
||||
VAL_ 72 Gear 2 "N" 3 "R" 4 "P" 121 "D" 137 "1" 145 "2" 153 "3" 161 "4" 169 "5" 177 "6" ;
|
||||
CM_ SG_ 1677 Units "AU/EU: 1 = imperial, 3 = metric US: 3 = imperial, 4 = metric";
|
||||
VAL_ 72 Gear 2 "N" 3 "R" 4 "P" 121 "D" 137 "1" 145 "2" 153 "3" 161 "4" 169 "5" 177 "6";
|
||||
|
||||
@@ -0,0 +1,266 @@
|
||||
VERSION ""
|
||||
|
||||
|
||||
NS_ :
|
||||
NS_DESC_
|
||||
CM_
|
||||
BA_DEF_
|
||||
BA_
|
||||
VAL_
|
||||
CAT_DEF_
|
||||
CAT_
|
||||
FILTER
|
||||
BA_DEF_DEF_
|
||||
EV_DATA_
|
||||
ENVVAR_DATA_
|
||||
SGTYPE_
|
||||
SGTYPE_VAL_
|
||||
BA_DEF_SGTYPE_
|
||||
BA_SGTYPE_
|
||||
SIG_TYPE_REF_
|
||||
VAL_TABLE_
|
||||
SIG_GROUP_
|
||||
SIG_VALTYPE_
|
||||
SIGTYPE_VALTYPE_
|
||||
BO_TX_BU_
|
||||
BA_DEF_REL_
|
||||
BA_REL_
|
||||
BA_DEF_DEF_REL_
|
||||
BU_SG_REL_
|
||||
BU_EV_REL_
|
||||
BU_BO_REL_
|
||||
SG_MUL_VAL_
|
||||
|
||||
BS_:
|
||||
|
||||
BU_: XXX 0
|
||||
|
||||
|
||||
BO_ 2 Steering: 8 XXX
|
||||
SG_ Steering_Angle : 7|16@0- (0.1,0) [-500|500] "degree" XXX
|
||||
SG_ Counter : 27|3@0+ (1,0) [0|15] "" XXX
|
||||
SG_ Checksum : 39|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 208 G_Sensor: 8 XXX
|
||||
SG_ Steering_Angle : 0|16@1- (1,0) [0|65535] "" XXX
|
||||
SG_ Lateral : 16|16@1- (0.0035,1) [0|65535] "" XXX
|
||||
SG_ Longitudinal : 48|16@1- (0.000035,0) [0|255] "" XXX
|
||||
|
||||
BO_ 209 Brake_Pedal: 8 XXX
|
||||
SG_ Speed : 0|16@1+ (0.05625,0) [0|255] "KPH" XXX
|
||||
SG_ Brake_Pedal : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 210 Brake_2: 8 XXX
|
||||
SG_ Brake_Light : 35|1@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Brake_Related : 36|1@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Right_Brake : 48|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Left_Brake : 56|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 211 Brake_Type: 8 XXX
|
||||
SG_ Brake_Light : 21|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Speed_Counter : 32|8@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Brake_Cruise_On : 42|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Brake_Pedal_On : 46|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Counter : 48|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 212 Wheel_Speeds: 8 XXX
|
||||
SG_ FL : 0|16@1+ (0.0592,0) [2|255] "KPH" XXX
|
||||
SG_ FR : 16|16@1+ (0.0592,0) [0|255] "KPH" XXX
|
||||
SG_ RL : 32|16@1+ (0.0592,0) [0|255] "" XXX
|
||||
SG_ RR : 48|16@1+ (0.0592,0) [0|127] "KPH" XXX
|
||||
|
||||
BO_ 320 Throttle: 8 XXX
|
||||
SG_ Throttle_Pedal : 0|8@1+ (0.392157,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Not_Full_Throttle : 14|1@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Engine_RPM : 16|14@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Off_Throttle : 30|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Throttle_Cruise : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Combo : 40|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Body_ : 48|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Off_Throttle_2 : 56|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 321 Engine: 8 XXX
|
||||
SG_ Engine_Torque : 0|15@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Engine_Stop : 15|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Wheel_Torque : 16|12@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Engine_RPM : 32|12@1+ (1,0) [0|8191] "" XXX
|
||||
|
||||
BO_ 324 CruiseControl: 8 XXX
|
||||
SG_ OnOffButton : 2|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SET_BUTTON : 3|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ RES_BUTTON : 4|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Button : 13|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_On : 48|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_Activated : 49|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Brake_Pedal_On : 51|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 328 Transmission: 8 XXX
|
||||
SG_ Manual_Gear : 4|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Transmission_Engine : 16|15@1+ (1,0) [0|65535] "" XXX
|
||||
SG_ Gear : 48|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Gear_2 : 52|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Paddle_Shift : 60|2@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 329 CVT_Ratio: 8 XXX
|
||||
|
||||
BO_ 336 Brake_Pressure: 8 XXX
|
||||
SG_ Brake_Pressure_Right : 0|8@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Brake_Pressure_Left : 8|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 338 Stalk: 8 XXX
|
||||
SG_ Counter : 12|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Brake_Light : 52|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Runlights : 58|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Headlights : 59|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Highbeam : 60|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Wiper : 62|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 352 ES_Brake: 8 XXX
|
||||
SG_ Brake_Pressure : 0|16@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Brake_Light : 20|1@1+ (1,0) [0|2047] "" XXX
|
||||
SG_ ES_Error : 21|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Brake_On : 22|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_Activated : 23|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Counter : 48|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Checksum : 56|8@1+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 353 ES_CruiseThrottle: 8 XXX
|
||||
SG_ Throttle_Cruise : 0|12@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Signal1 : 12|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Cruise_Activated : 16|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Signal2 : 17|3@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Brake_On : 20|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ DistanceSwap : 21|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Standstill : 22|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal3 : 23|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ CloseDistance : 24|8@1+ (0.0196,0) [0|255] "m" XXX
|
||||
SG_ Signal4 : 32|9@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Standstill_2 : 41|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ ES_Error : 42|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal5 : 43|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Counter : 44|3@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Signal6 : 47|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Button : 48|3@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal7 : 51|5@1+ (1,0) [0|31] "" XXX
|
||||
SG_ Checksum : 56|8@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 354 ES_RPM: 8 XXX
|
||||
SG_ Brake : 8|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Cruise_Activated : 9|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ RPM : 16|16@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Checksum : 32|8@1+ (1,0) [0|65535] "" XXX
|
||||
SG_ Counter : 48|3@1+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 356 ES_LKAS: 8 XXX
|
||||
SG_ Counter : 0|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ LKAS_Command : 8|13@1- (-1,0) [-4096|4096] "" XXX
|
||||
SG_ LKAS_Active : 24|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Checksum : 56|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 359 ES_LDW: 8 XXX
|
||||
SG_ All_depart_2015 : 0|1@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Right_Line_2017 : 24|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Left_Line_2017 : 25|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig2All_Depart : 28|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig1All_Depart : 31|1@1+ (1,0) [0|15] "" XXX
|
||||
SG_ LKAS_Inactive_2017 : 36|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ LKAS_Active : 37|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig1Right_Depart_Front : 49|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Left_Depart_Front : 51|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig3All_Depart : 52|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Alerts : 48|5@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig1Right_Depart : 48|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig2Right_Depart : 50|1@1+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 642 Dashlights: 8 XXX
|
||||
SG_ Counter : 12|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ SEATBELT_FL : 40|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ LEFT_BLINKER : 44|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ RIGHT_BLINKER : 45|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 880 Steer_Torque_2: 8 XXX
|
||||
SG_ Steering_Voltage_Flat : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Steer_Torque_Sensor : 32|8@1- (-1,0) [0|255] "" XXX
|
||||
SG_ Counter : 40|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 881 Steering_Torque: 8 XXX
|
||||
SG_ Steering_Motor_Flat : 0|10@1+ (32,0) [0|16500] "" XXX
|
||||
SG_ Steer_Torque_Output : 16|11@1- (-32,0) [-16500|16500] "" XXX
|
||||
SG_ LKA_Lockout : 27|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Steer_Torque_Sensor : 29|11@1- (8,0) [-8500|8500] "" XXX
|
||||
SG_ Steering_Angle : 40|16@1- (-0.033,0) [-600|600] "" XXX
|
||||
|
||||
BO_ 884 BodyInfo: 8 XXX
|
||||
SG_ DOOR_OPEN_FR : 24|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_FL : 25|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_RL : 26|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_RR : 27|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_Hatch : 28|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 864 Engine_Temp: 8 XXX
|
||||
SG_ Oil_Temp : 16|8@1+ (1,-40) [0|255] "" XXX
|
||||
SG_ Coolant_Temp : 24|8@1+ (1,-40) [0|255] "" XXX
|
||||
SG_ Cruise_Activated : 45|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Saved_Speed : 56|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 866 Fuel__: 8 XXX
|
||||
|
||||
BO_ 604 BSD_RCTA: 8 XXX
|
||||
SG_ Counter : 0|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ State : 5|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ R_ADJACENT : 32|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ L_ADJACENT : 33|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ R_APPROACHING : 42|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ L_APPROACHING : 43|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ R_RCTA : 46|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ L_RCTA : 47|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 1745 Dash_State: 8 XXX
|
||||
SG_ Units : 13|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Units2 : 15|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 355 ES_DashStatus: 8 XXX
|
||||
SG_ Not_Ready_Startup : 4|2@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_On : 16|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Set_Speed : 24|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 40|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Activated : 54|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
CM_ SG_ 211 Brake_Pedal_On "high tolerance";
|
||||
CM_ SG_ 212 FL "KPH";
|
||||
CM_ SG_ 212 RL "KPH";
|
||||
CM_ SG_ 320 Off_Throttle_2 "Less sensitive";
|
||||
CM_ SG_ 320 Throttle_Body_ "Throttle related";
|
||||
CM_ SG_ 328 Gear "15 = P, 14 = R, 0 = N, 1-6=gear";
|
||||
CM_ SG_ 328 Gear_2 "15 = P, 14 = R, 0 = N, 1-6=gear";
|
||||
CM_ SG_ 353 Button "1 = main, 2 = set shallow, 3 = set deep, 4 = resume shallow, 5 resume deep";
|
||||
CM_ SG_ 353 Brake_On "long activatedish";
|
||||
CM_ SG_ 353 SET_1 "always 1";
|
||||
CM_ SG_ 353 SET_2 "";
|
||||
CM_ SG_ 354 RPM "20hz version of Transmission_Engine under Transmission";
|
||||
CM_ SG_ 358 3SecondDisengage "seatbelt disengage";
|
||||
CM_ SG_ 358 Disengage_Alert "seatbelt and steep hill disengage";
|
||||
CM_ SG_ 358 Cruise_Activated "is 1 when cruise is able to go";
|
||||
CM_ SG_ 358 ES_Error "No engagement until restart";
|
||||
CM_ SG_ 358 Lead_Car "front car detected";
|
||||
CM_ SG_ 359 Sig1Right_Depart "right depart, hill steep and seatbelt disengage";
|
||||
CM_ SG_ 359 LKAS_Inactive_2017 "1 when not steering, 0 when lkas steering";
|
||||
CM_ SG_ 359 Sig1Right_Depart_Front "object in front, right depart, hill steep and seatbelt disengage alert ";
|
||||
CM_ SG_ 359 Left_Depart_Front "warning after acceleration into car in front and left depart";
|
||||
CM_ SG_ 359 Alerts "2 = lead beep";
|
||||
CM_ SG_ 359 Sig1All_Depart "Left and right depart";
|
||||
CM_ SG_ 359 Sig2All_Depart "Left and right depart";
|
||||
CM_ SG_ 359 All_depart_2015 "always 1 on 2017";
|
||||
CM_ SG_ 604 R_APPROACHING "Faster car approaching in far right lane";
|
||||
CM_ SG_ 604 L_APPROACHING "Faster car approaching in far left lane";
|
||||
CM_ SG_ 604 R_RCTA "Rear cross traffic alert, only when in R gear";
|
||||
CM_ SG_ 604 L_RCTA "Rear cross traffic alert, only when in R gear";
|
||||
CM_ SG_ 642 Counter "Affected by signals";
|
||||
CM_ SG_ 642 RIGHT_BLINKER "0 off, 2 right, 1 left";
|
||||
CM_ SG_ 642 SEATBELT_FL "Driver seatbelt";
|
||||
CM_ SG_ 880 Steering_Voltage_Flat "receives later than 371";
|
||||
VAL_ 328 Gear 0 "N" 1 "D" 2 "D" 3 "D" 4 "D" 5 "D" 6 "D" 14 "R" 15 "P";
|
||||
VAL_ 1745 Units 0 "Metric" 1 "Imperial";
|
||||
VAL_ 1745 Units2 0 "Metric 1 "Imperial";
|
||||
+22
-189
@@ -37,41 +37,23 @@ BU_: XXX X
|
||||
|
||||
|
||||
BO_ 2 Steering: 8 XXX
|
||||
SG_ Steering_Angle : 7|16@0- (0.1,0) [0|65535] "" XXX
|
||||
SG_ Counter : 25|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ CHECKSUM : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Steering_Angle : 7|16@0- (0.1,0) [0|65535] "" XXX
|
||||
|
||||
BO_ 64 Throttle: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Off_Accel : 60|4@1+ (1,0) [0|7] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 56|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Cruise : 40|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Combo : 55|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Pedal : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 48|7@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Engine_RPM : 16|12@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 12|4@1+ (1,0) [0|1] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 28|5@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 65 NEW_MSG_1: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 32|12@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 16|12@1+ (1,0) [0|1] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 31|1@0+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_6 : 48|8@1+ (1,0) [0|63] "" XXX
|
||||
SG_ NEW_SIGNAL_7 : 59|2@0+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Pedal : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Cruise : 40|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Combo : 48|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Off_Accel : 60|4@1+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 72 Transmission: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Gear : 24|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 38|3@0+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 40|16@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 316 NEW_MSG_3: 8 XXX
|
||||
|
||||
BO_ 326 Cruise_Buttons: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
@@ -83,8 +65,8 @@ BO_ 326 Cruise_Buttons: 8 XXX
|
||||
SG_ Signal2 : 45|19@1+ (1,0) [0|524287] "" XXX
|
||||
|
||||
BO_ 315 G_Sensor: 8 XXX
|
||||
SG_ longitudinal : 63|8@0- (1,0) [0|255] "" XXX
|
||||
SG_ Latitudinal : 48|8@1- (1,0) [0|255] "" XXX
|
||||
SG_ Lateral : 48|8@1- (-0.1,0) [0|255] "m/s2" XXX
|
||||
SG_ Longitudinal : 56|8@1- (-0.1,0) [0|255] "m/s2" XXX
|
||||
|
||||
BO_ 314 Wheel_Speeds: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
@@ -94,31 +76,20 @@ BO_ 314 Wheel_Speeds: 8 XXX
|
||||
SG_ FL : 51|13@1+ (0.057,0) [0|255] "kph" XXX
|
||||
SG_ RL : 38|13@1+ (0.057,0) [0|255] "kph" XXX
|
||||
|
||||
BO_ 73 NEW_MSG_5: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 32|8@1+ (1,0) [0|4095] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 24|8@1+ (1,0) [0|127] "" XXX
|
||||
|
||||
BO_ 280 NEW_MSG_6: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 12|12@1- (1,0) [0|4095] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 48|8@1- (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 61|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 40|4@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 281 Steering_Torque: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|3] "" XXX
|
||||
SG_ counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Steer_Error_1 : 12|1@0+ (1,0) [0|7] "" XXX
|
||||
SG_ Steer_Torque_Sensor : 16|11@1- (-1,0) [0|3] "" XXX
|
||||
SG_ Steer_Error_2 : 28|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Steering_Angle : 32|16@1- (-0.0217,0) [0|255] "" X
|
||||
SG_ Steer_Torque_Output : 48|11@1- (-1,0) [0|31] "" XXX
|
||||
SG_ Steer_Error_1 : 12|1@0+ (1,0) [0|7] "" XXX
|
||||
SG_ Steer_Error_2 : 28|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 312 Brake_Pressure_L_R: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|31] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Brake_2 : 56|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Brake_1 : 48|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Brake_2 : 56|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 313 Brake_Pedal: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
@@ -129,16 +100,9 @@ BO_ 313 Brake_Pedal: 8 XXX
|
||||
BO_ 290 ES_LKAS: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_1 : 12|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ LKAS_Output : 16|13@1- (-1,0) [0|3] "" XXX
|
||||
SG_ LKAS_Request : 29|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ SET_1 : 12|1@0+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 722 NEW_MSG_10: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 27|3@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 56|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 45|2@0+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 544 ES_Brake: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
@@ -161,40 +125,26 @@ BO_ 546 ES_Status: 8 XXX
|
||||
SG_ Cruise_Activated : 29|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_Brake : 30|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 554 ES_Blank: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_65535 : 39|16@1+ (1,0) [0|16777215] "" XXX
|
||||
SG_ SET_1 : 13|1@1+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 557 NEW_MSG_14: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 576 CruiseControl: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 42|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_On : 40|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_Activated : 41|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 577 NEW_MSG_16: 8 XXX
|
||||
BO_ 552 BSD_RCTA: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 16|12@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 552 NEW_MSG_17: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 48|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ R_ADJACENT : 48|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ L_ADJACENT : 49|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ R_APPROACHING : 58|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ L_APPROACHING : 59|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 912 Dashlights: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 32|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ RIGHT_BLINKER : 51|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LEFT_BLINKER : 50|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ SEATBELT_FL : 48|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LEFT_BLINKER : 50|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ RIGHT_BLINKER : 51|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 940 BodyInfo: 8 XXX
|
||||
SG_ DOOR_OPEN_FL : 32|1@1+ (1,0) [0|255] "" XXX
|
||||
@@ -216,7 +166,6 @@ BO_ 801 ES_DashStatus: 8 XXX
|
||||
SG_ Cruise_Activated : 36|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_Set_Speed : 40|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Cruise_Fault : 48|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ NEW_SIGNAL_10 : 49|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Brake_Pedal : 51|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Car_Follow : 52|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Far_Distance : 56|4@1+ (1,0) [0|15] "" XXX
|
||||
@@ -246,130 +195,14 @@ BO_ 802 ES_LKAS_State: 8 XXX
|
||||
SG_ Right_Depart : 36|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal5 : 37|27@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 805 ES_NEW_MSG_22: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 22|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 14|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 15|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 808 NEW_MSG_23: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 837 NEW_MSG_24: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 40|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 32|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 24|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 838 NEW_MSG_25: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 40|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 842 NEW_MSG_26: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 915 NEW_MSG_27: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 32|9@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 1788 NEW_MSG_28: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 40|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 48|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 816 NEW_MSG_29: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 826 NEW_MSG_30: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 839 NEW_MSG_31: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 2015 NEW_MSG_32: 8 XXX
|
||||
SG_ NEW_SIGNAL_2 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 2024 NEW_MSG_33: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 24|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 0|3@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 1614 NEW_MSG_34: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 1617 NEW_MSG_35: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 1632 NEW_MSG_36: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 55|16@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 1650 NEW_MSG_37: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 1657 NEW_MSG_38: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 1658 NEW_MSG_39: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 33|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 31|1@0+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 1677 Dash_State: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 16|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Units : 29|3@1+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 1743 NEW_MSG_41: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 1785 NEW_MSG_42: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 0|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 21|1@1+ (1,0) [0|31] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 17|1@1+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 1759 NEW_MSG_43: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 17|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 1786 NEW_MSG_44: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 0|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 8|8@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 1787 NEW_MSG_45: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 0|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 8|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
|
||||
|
||||
|
||||
CM_ SG_ 940 FOG_LIGHTS2 "yellow fog light in the dash";
|
||||
CM_ SG_ 940 Highbeam "01 = low beam, 11 = high beam";
|
||||
CM_ SG_ 801 Cruise_State "0 = Normal, 3 = Hold";
|
||||
CM_ SG_ 802 Traffic_light_Ahead "Crosstrek 2018 = car in front has moved";
|
||||
CM_ SG_ 805 NEW_SIGNAL_3 "always 3";
|
||||
CM_ SG_ 805 NEW_SIGNAL_4 "always 1";
|
||||
CM_ SG_ 940 FOG_LIGHTS2 "yellow fog light in the dash";
|
||||
CM_ SG_ 940 Highbeam "01 = low beam, 11 = high beam";
|
||||
CM_ SG_ 1677 Units "1 = imperial, 6 = metric";
|
||||
VAL_ 72 Gear 2 "N" 3 "R" 4 "P" 121 "D" 137 "1" 145 "2" 153 "3" 161 "4" 169 "5" 177 "6";
|
||||
|
||||
@@ -38,167 +38,126 @@ BU_: XXX 0
|
||||
|
||||
BO_ 2 Steering: 8 XXX
|
||||
SG_ Steering_Angle : 7|16@0- (0.1,0) [-500|500] "degree" XXX
|
||||
SG_ NEW_SIGNAL_6 : 24|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 22|3@0+ (1,0) [0|7] "" XXX
|
||||
SG_ Counter : 27|3@0+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 31|4@0- (1,0) [0|65535] "" XXX
|
||||
SG_ Checksum : 39|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 208 G_Sensor: 8 XXX
|
||||
SG_ NEW_SIGNAL_3 : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ _Latitudinal : 16|16@1- (0.0035,1) [0|65535] "" XXX
|
||||
SG_ _Longitudinal : 48|16@1- (0.000035,0) [0|255] "" XXX
|
||||
SG_ Steering_Angle : 0|16@1- (1,0) [0|65535] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 40|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Lateral : 16|16@1- (0.0035,1) [0|65535] "" XXX
|
||||
SG_ Longitudinal : 48|16@1- (0.000035,0) [0|255] "" XXX
|
||||
|
||||
BO_ 209 Brake_Pedal: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 26|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 31|1@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Brake_Pedal : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Speed : 0|16@1+ (0.05625,0) [0|255] "KPH" XXX
|
||||
SG_ Brake_Pedal : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 210 Brake_2: 8 XXX
|
||||
SG_ Right_Brake : 48|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Brake_Light : 35|1@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Brake_Related : 36|1@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Right_Brake : 48|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Left_Brake : 56|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 46|1@1+ (1,0) [0|4294967295] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 37|3@1+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 211 Brake_Type: 8 XXX
|
||||
SG_ NEW_SIGNAL_3 : 7|1@1+ (1,0) [0|4294967295] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 16|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Brake_Light : 21|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 28|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Speed_Counter : 32|8@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Brake_Cruise_On : 42|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Brake_Pedal_On : 46|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Counter : 48|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 212 Wheel_Speeds: 8 XXX
|
||||
SG_ FL : 0|16@1+ (0.0592,0) [2|255] "KPH" XXX
|
||||
SG_ FL : 0|16@1+ (0.0592,0) [0|255] "KPH" XXX
|
||||
SG_ FR : 16|16@1+ (0.0592,0) [0|255] "KPH" XXX
|
||||
SG_ RL : 32|16@1+ (0.0592,0) [0|255] "" XXX
|
||||
SG_ RR : 48|16@1+ (0.0592,0) [0|127] "KPH" XXX
|
||||
|
||||
BO_ 320 Throttle: 8 XXX
|
||||
SG_ Off_Throttle_2 : 56|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Throttle_Combo : 40|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Engine_RPM : 16|14@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 63|1@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 61|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Throttle_Body_ : 48|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Cruise : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Off_Throttle : 30|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Throttle_Pedal : 0|8@1+ (0.392157,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Not_Full_Throttle : 14|1@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Engine_RPM : 16|14@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Off_Throttle : 30|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Throttle_Cruise : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Combo : 40|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Throttle_Body_ : 48|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Off_Throttle_2 : 56|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 321 Engine: 8 XXX
|
||||
SG_ NEW_SIGNAL_7 : 59|2@1+ (1,0) [0|63] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 47|1@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 48|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Engine_Torque : 0|15@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Engine_Stop : 15|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Wheel_Torque : 16|12@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Engine_RPM : 32|12@1+ (1,0) [0|8191] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 53|2@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_6 : 46|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_8 : 28|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Engine_Stop : 15|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Engine_Torque : 0|15@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 324 CruiseControl: 8 XXX
|
||||
SG_ OnOffButton : 2|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SET_BUTTON : 3|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ RES_BUTTON : 4|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 8|1@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Button : 13|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_9 : 15|1@1+ (1,0) [0|127] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 16|8@1+ (1,-124) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 24|5@1+ (1,0) [0|16777215] "" XXX
|
||||
SG_ Cruise_On : 48|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_Activated : 49|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ NEW_SIGNAL_6 : 50|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Brake_Pedal_On : 51|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 328 Transmission: 8 XXX
|
||||
SG_ Paddle_Shift : 60|2@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Manual_Gear : 4|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Transmission_Engine : 16|15@1+ (1,0) [0|65535] "" XXX
|
||||
SG_ Gear : 48|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Gear_2 : 52|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Manual_Gear : 4|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Transmission_Engine : 16|15@1+ (1,0) [0|65535] "" XXX
|
||||
SG_ NEW_SIGNAL_7 : 63|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 43|1@1+ (1,0) [0|65535] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 31|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 12|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Paddle_Shift : 60|2@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 329 CVT_Ratio: 8 XXX
|
||||
SG_ NEW_SIGNAL_4 : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 8|4@1+ (1,0) [0|65535] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 24|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 40|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 336 Brake_Pressure: 8 XXX
|
||||
SG_ Brake_Pressure_Right : 0|8@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Brake_Pressure_Left : 8|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 338 Stalk: 8 XXX
|
||||
SG_ Runlights : 58|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Wiper : 62|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Highbeam : 60|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Headlights : 59|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ brake_light : 52|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Counter : 12|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 346 Counter_3: 8 XXX
|
||||
SG_ Counter : 0|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 20|1@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 57|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Brake_Light : 52|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Runlights : 58|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Headlights : 59|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Highbeam : 60|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Wiper : 62|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 352 ES_Brake: 8 XXX
|
||||
SG_ Brake_Pressure : 0|16@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Brake_Light : 20|1@1+ (1,0) [0|2047] "" XXX
|
||||
SG_ ES_Error : 21|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Brake_On : 22|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_Activated : 23|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Counter : 48|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Checksum : 56|8@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Brake_Pressure : 0|16@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Cruise_Activated : 23|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Brake_On : 22|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ ES_Error : 21|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Brake_Light : 20|1@1+ (1,0) [0|2047] "" XXX
|
||||
|
||||
BO_ 353 ES_CruiseThrottle: 8 XXX
|
||||
SG_ Checksum : 56|8@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Button : 48|3@1+ (1,0) [0|3] "" XXX
|
||||
SG_ ES_Error : 42|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Standstill_2 : 41|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Standstill : 22|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Unknown : 18|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Throttle_Cruise : 0|12@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Signal1 : 12|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Cruise_Activated : 16|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Signal2 : 17|3@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Brake_On : 20|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ DistanceSwap : 21|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Counter : 44|3@1+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_0_1 : 32|9@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Standstill : 22|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal3 : 23|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ CloseDistance : 24|8@1+ (0.0196,0) [0|255] "m" XXX
|
||||
SG_ SET_0_2 : 51|5@1+ (1,0) [0|31] "" XXX
|
||||
SG_ SET_0_3 : 47|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SET_0_4 : 43|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SET_1 : 23|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 19|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Throttle_Cruise : 0|12@1+ (1,0) [0|255] "" XXX
|
||||
SG_ SET_2 : 12|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Cruise_Activatedish : 16|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ NEW_SIGNAL_9 : 17|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal4 : 32|9@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Standstill_2 : 41|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ ES_Error : 42|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal5 : 43|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Counter : 44|3@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Signal6 : 47|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Button : 48|3@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Signal7 : 51|5@1+ (1,0) [0|31] "" XXX
|
||||
SG_ Checksum : 56|8@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 354 ES_RPM: 8 XXX
|
||||
SG_ Counter : 48|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ RPM : 16|16@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Brake : 8|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Cruise_Activated : 9|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ RPM : 16|16@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Checksum : 32|8@1+ (1,0) [0|65535] "" XXX
|
||||
SG_ Counter : 48|3@1+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 356 ES_LKAS: 8 XXX
|
||||
SG_ Checksum : 56|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 0|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ LKAS_Active : 24|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LKAS_Command : 8|13@1- (-1,0) [-4096|4096] "" XXX
|
||||
SG_ LKAS_Active : 24|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Checksum : 56|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 358 ES_DashStatus: 8 XXX
|
||||
SG_ Not_Ready_Startup : 0|3@1+ (1,0) [0|7] "" XXX
|
||||
@@ -206,136 +165,80 @@ BO_ 358 ES_DashStatus: 8 XXX
|
||||
SG_ Disengage_Alert : 14|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_On : 16|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Cruise_Activated : 17|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Untitled_Blank_2 : 18|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ WHEELS_MOVING_2015 : 19|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Driver_Input : 20|1@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Distance_Bars : 21|3@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_Set_Speed : 24|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ ES_Error : 32|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_5_Blank : 33|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Cruise_On_2 : 34|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 35|1@1+ (1,0) [0|31] "" XXX
|
||||
SG_ Counter : 37|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Steep_Hill_Disengage : 44|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Lead_Car : 46|1@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Cruise_Set_Speed : 24|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Distance_Bars : 21|3@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Untitled_Blank_2 : 18|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Obstacle_Distance : 48|4@1+ (5,0) [0|15] "m" XXX
|
||||
|
||||
BO_ 359 ES_LDW: 8 XXX
|
||||
SG_ All_depart_2015 : 0|1@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Right_Line_2017 : 24|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Left_Line_2017 : 25|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig2All_Depart : 28|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig1All_Depart : 31|1@1+ (1,0) [0|15] "" XXX
|
||||
SG_ LKAS_Inactive_2017 : 36|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ LKAS_Active : 37|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig1Right_Depart_Front : 49|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Left_Depart_Front : 51|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig3All_Depart : 52|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Alerts : 48|5@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig1Right_Depart : 48|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig2Right_Depart : 50|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ LKAS_Inactive_2017 : 36|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig1Right_Depart_Front : 49|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig3All_Depart : 52|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Left_Depart_Front : 51|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Alerts : 48|5@1+ (1,0) [0|3] "" XXX
|
||||
SG_ LKAS_Active : 37|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Sig1All_Depart : 31|1@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Sig2All_Depart : 28|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Right_Line_2017 : 24|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ All_depart_2015 : 0|1@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 392 Counter_0: 8 XXX
|
||||
SG_ Counter : 16|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 554 NEW_MSG_3: 8 XXX
|
||||
SG_ Counter : 0|4@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 640 NEW_MSG_10: 8 XXX
|
||||
SG_ NEW_SIGNAL_6 : 0|1@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 24|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 33|2@1+ (1,0) [0|63] "" XXX
|
||||
SG_ NEW_SIGNAL_7 : 38|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 39|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 40|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 53|2@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 642 Dashlights: 8 XXX
|
||||
SG_ NEW_SIGNAL_2 : 32|1@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 34|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 0|12@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 12|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ RIGHT_BLINKER : 45|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ LEFT_BLINKER : 44|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SEATBELT_FL : 40|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 644 NEW_MSG_8: 8 XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ LEFT_BLINKER : 44|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ RIGHT_BLINKER : 45|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 880 Steer_Torque_2: 8 XXX
|
||||
SG_ Steering_Voltage_Flat : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 8|1@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 30|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Steer_Torque_Sensor : 32|8@1- (-1,0) [0|255] "" XXX
|
||||
SG_ Counter : 40|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 48|4@1- (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_4_2017 : 52|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ NEW_SIGNAL_5_2017 : 54|1@1+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 881 Steering_Torque: 8 XXX
|
||||
SG_ Steering_Motor_Flat : 0|10@1+ (32,0) [0|16500] "" XXX
|
||||
SG_ Steer_Torque_Output : 16|11@1- (-32,0) [-16500|16500] "" XXX
|
||||
SG_ LKA_Lockout : 27|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Steer_Torque_Sensor : 29|11@1- (8,0) [-8500|-8500] "" XXX
|
||||
SG_ Steer_Torque_Sensor : 29|11@1- (8,0) [-8500|8500] "" XXX
|
||||
SG_ Steering_Angle : 40|16@1- (-0.033,0) [-600|600] "" XXX
|
||||
|
||||
BO_ 882 Counter: 8 XXX
|
||||
SG_ Something : 16|2@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 12|4@1+ (1,0) [0|31] "" XXX
|
||||
|
||||
BO_ 884 BodyInfo: 8 XXX
|
||||
SG_ DOOR_OPEN_Hatch : 28|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_RR : 27|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_RL : 26|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_FL : 25|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_FR : 24|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ _UNKNOWN : 0|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_FL : 25|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_RL : 26|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_RR : 27|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_Hatch : 28|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 864 Engine_Temp: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 32|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 44|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Saved_Speed : 56|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Cruise_Activated : 45|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Oil_Temp : 16|8@1+ (1,-40) [0|255] "" XXX
|
||||
SG_ Coolant_Temp : 24|8@1+ (1,-40) [0|255] "" XXX
|
||||
|
||||
BO_ 865 NEW_MSG_16: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 32|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 12|1@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Cruise_Activated : 45|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Saved_Speed : 56|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 866 Fuel__: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 0|16@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_5 : 24|1@1+ (1,0) [0|32767] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 32|4@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_4 : 40|8@1+ (1,0) [0|1] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 48|8@1+ (1,0) [0|16777215] "" XXX
|
||||
|
||||
BO_ 872 NEW_MSG_15: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 24|8@1+ (1,0) [0|65535] "" XXX
|
||||
BO_ 604 BSD_RCTA: 8 XXX
|
||||
SG_ Counter : 0|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ State : 5|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ R_ADJACENT : 32|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ L_ADJACENT : 33|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ R_APPROACHING : 42|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ L_APPROACHING : 43|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ R_RCTA : 46|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ L_RCTA : 47|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 977 NEW_MSG_12: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 16|12@1+ (1,0) [0|255] "" XXX
|
||||
BO_ 1745 Dash_State: 8 XXX
|
||||
SG_ Units : 13|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Units2 : 15|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 1632 Huge_Counter: 8 XXX
|
||||
SG_ Counter : 55|16@0+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_1 : 31|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 1745 NEW_MSG_11: 8 XXX
|
||||
SG_ NEW_SIGNAL_1 : 24|6@1+ (1,0) [0|255] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 40|6@1+ (1,0) [0|15] "" XXX
|
||||
SG_ NEW_SIGNAL_3 : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 1786 NEW_MSG_9: 8 XXX
|
||||
SG_ NEW_SIGNAL_2 : 8|16@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Counter : 0|4@1+ (1,0) [0|255] "" XXX
|
||||
|
||||
|
||||
|
||||
|
||||
CM_ SG_ 2 NEW_SIGNAL_1 "";
|
||||
CM_ SG_ 211 Brake_Pedal_On "high tolerance";
|
||||
CM_ SG_ 212 FL "KPH";
|
||||
CM_ SG_ 212 RL "KPH";
|
||||
@@ -347,7 +250,6 @@ CM_ SG_ 353 Button "1 = main, 2 = set shallow, 3 = set deep, 4 = resume shallow,
|
||||
CM_ SG_ 353 Brake_On "long activatedish";
|
||||
CM_ SG_ 353 SET_1 "always 1";
|
||||
CM_ SG_ 353 SET_2 "";
|
||||
CM_ SG_ 353 NEW_SIGNAL_9 "flipped around quick engagement";
|
||||
CM_ SG_ 354 RPM "20hz version of Transmission_Engine under Transmission";
|
||||
CM_ SG_ 358 3SecondDisengage "seatbelt disengage";
|
||||
CM_ SG_ 358 Disengage_Alert "seatbelt and steep hill disengage";
|
||||
@@ -362,10 +264,14 @@ CM_ SG_ 359 Alerts "2 = lead beep";
|
||||
CM_ SG_ 359 Sig1All_Depart "Left and right depart";
|
||||
CM_ SG_ 359 Sig2All_Depart "Left and right depart";
|
||||
CM_ SG_ 359 All_depart_2015 "always 1 on 2017";
|
||||
CM_ SG_ 604 R_APPROACHING "Faster car approaching in far right lane";
|
||||
CM_ SG_ 604 L_APPROACHING "Faster car approaching in far left lane";
|
||||
CM_ SG_ 604 R_RCTA "Rear cross traffic alert, only when in R gear";
|
||||
CM_ SG_ 604 L_RCTA "Rear cross traffic alert, only when in R gear";
|
||||
CM_ SG_ 642 Counter "Affected by signals";
|
||||
CM_ SG_ 642 RIGHT_BLINKER "0 off, 2 right, 1 left";
|
||||
CM_ SG_ 642 SEATBELT_FL "";
|
||||
CM_ SG_ 642 SEATBELT_FL "Driver seatbelt";
|
||||
CM_ SG_ 880 Steering_Voltage_Flat "receives later than 371";
|
||||
CM_ SG_ 880 NEW_SIGNAL_1 "0 in 2017";
|
||||
CM_ SG_ 880 NEW_SIGNAL_4_2017 "1 in 2017";
|
||||
CM_ SG_ 880 NEW_SIGNAL_5_2017 "1 in 2017";
|
||||
VAL_ 328 Gear 0 "N" 1 "D" 2 "D" 3 "D" 4 "D" 5 "D" 6 "D" 14 "R" 15 "P";
|
||||
VAL_ 1745 Units 0 "Metric" 1 "Imperial";
|
||||
VAL_ 1745 Units2 0 "Metric 1 "Imperial";
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -111,12 +111,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -179,10 +179,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -336,6 +337,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -111,12 +111,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -179,10 +179,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -336,6 +337,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
@@ -382,7 +385,6 @@ CM_ "toyota_nodsu_pt.dbc starts here"
|
||||
|
||||
|
||||
BO_ 401 STEERING_LTA: 8 XXX
|
||||
SG_ COUNTER : 7|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ SETME_X3 : 29|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ PERCENTAGE : 39|8@0+ (1,0) [0|255] "" XXX
|
||||
@@ -391,6 +393,9 @@ BO_ 401 STEERING_LTA: 8 XXX
|
||||
SG_ STEER_ANGLE_CMD : 15|16@0- (0.0573,0) [-540|540] "" XXX
|
||||
SG_ STEER_REQUEST : 25|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BIT : 30|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COUNTER : 6|6@0+ (1,0) [0|255] "" XXX
|
||||
SG_ STEER_REQUEST_2 : 0|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SETME_X1 : 7|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 550 BRAKE_MODULE: 8 XXX
|
||||
SG_ BRAKE_PRESSURE : 0|9@0+ (1,0) [0|511] "" XXX
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -94,12 +94,12 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 353 DSU_SPEED: 8 XXX
|
||||
BO_ 353 DSU_SPEED: 7 XXX
|
||||
SG_ FORWARD_SPEED : 15|16@0- (0.00390625,-30) [0|255] "kph" XXX
|
||||
|
||||
|
||||
BO_ 452 ENGINE_RPM: 8 CGW
|
||||
SG_ RPM : 7|16@0- (0.78125,0) [0|0] "rpm" SCS
|
||||
|
||||
|
||||
BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -162,10 +162,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
SG_ DISTANCE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MINI_CAR : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_ME_X3 : 19|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ PERMIT_BRAKING : 30|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_CMD_ALT : 47|8@0- (0.05,0) [0|0] "m/s^2" XXX
|
||||
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
@@ -319,6 +320,8 @@ CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active";
|
||||
CM_ SG_ 643 COUNTER "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 BRAKE_STATUS "only used on cars that use this msg for cruise control";
|
||||
CM_ SG_ 643 PRECOLLISION_ACTIVE "set 0.5s before any braking";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was "SET_ME_1" and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces";
|
||||
|
||||
@@ -1,118 +0,0 @@
|
||||
version: 2
|
||||
jobs:
|
||||
safety:
|
||||
machine:
|
||||
docker_layer_caching: true
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Build image
|
||||
command: "docker build -t panda_safety -f tests/safety/Dockerfile ."
|
||||
- run:
|
||||
name: Run safety test
|
||||
command: |
|
||||
docker run panda_safety /bin/bash -c "cd /openpilot/panda/tests/safety; PYTHONPATH=/openpilot ./test.sh"
|
||||
|
||||
misra-c2012:
|
||||
machine:
|
||||
docker_layer_caching: true
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Build image
|
||||
command: "docker build -t panda_misra -f tests/misra/Dockerfile ."
|
||||
- run:
|
||||
name: Run Misra C 2012 test
|
||||
command: |
|
||||
mkdir /tmp/misra
|
||||
docker run -v /tmp/misra:/tmp/misra panda_misra /bin/bash -c "cd /panda/tests/misra; ./test_misra.sh"
|
||||
- store_artifacts:
|
||||
name: Store cppcheck test output
|
||||
path: /tmp/misra/cppcheck_output.txt
|
||||
- store_artifacts:
|
||||
name: Store misra test output
|
||||
path: /tmp/misra/misra_output.txt
|
||||
|
||||
build:
|
||||
machine:
|
||||
docker_layer_caching: true
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Build image
|
||||
command: "docker build -t panda_build -f tests/build/Dockerfile ."
|
||||
- run:
|
||||
name: Test python package installer
|
||||
command: |
|
||||
docker run panda_build /bin/bash -c "cd /panda; python setup.py install"
|
||||
- run:
|
||||
name: Build Panda STM image
|
||||
command: |
|
||||
docker run panda_build /bin/bash -c "cd /panda/board; make bin"
|
||||
- run:
|
||||
name: Build Panda STM bootstub image
|
||||
command: |
|
||||
docker run panda_build /bin/bash -c "cd /panda/board; make obj/bootstub.panda.bin"
|
||||
- run:
|
||||
name: Build Pedal STM image
|
||||
command: |
|
||||
docker run panda_build /bin/bash -c "cd /panda/board/pedal; make obj/comma.bin"
|
||||
- run:
|
||||
name: Build Pedal STM bootstub image
|
||||
command: |
|
||||
docker run panda_build /bin/bash -c "cd /panda/board/pedal; make obj/bootstub.bin"
|
||||
- run:
|
||||
name: Build ESP image
|
||||
command: |
|
||||
docker run panda_build /bin/bash -c "cd /panda/boardesp; ./get_sdk.sh; make user1.bin"
|
||||
|
||||
safety_replay:
|
||||
machine:
|
||||
docker_layer_caching: true
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Build image
|
||||
command: "docker build -t panda_safety_replay -f tests/safety_replay/Dockerfile ."
|
||||
- run:
|
||||
name: Replay drives
|
||||
command: |
|
||||
docker run panda_safety_replay /bin/bash -c "cd /openpilot/panda/tests/safety_replay; PYTHONPATH=/openpilot ./test_safety_replay.py"
|
||||
|
||||
language_check:
|
||||
machine:
|
||||
docker_layer_caching: true
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Build image
|
||||
command: "docker build -t language_check -f tests/language/Dockerfile ."
|
||||
- run:
|
||||
name: Check code for bad language
|
||||
command: |
|
||||
docker run language_check /bin/bash -c "cd /panda/tests/language; ./test_language.py"
|
||||
|
||||
linter_python:
|
||||
machine:
|
||||
docker_layer_caching: true
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Build image
|
||||
command: "docker build -t linter_python -f tests/linter_python/Dockerfile ."
|
||||
- run:
|
||||
name: Run linter python test
|
||||
command: |
|
||||
docker run linter_python /bin/bash -c "cd /panda/tests/linter_python; PYTHONPATH=/ ./flake8_panda.sh"
|
||||
docker run linter_python /bin/bash -c "cd /panda/tests/linter_python; PYTHONPATH=/ ./pylint_panda.sh"
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
main:
|
||||
jobs:
|
||||
- safety
|
||||
- misra-c2012
|
||||
- build
|
||||
- safety_replay
|
||||
- language_check
|
||||
- linter_python
|
||||
Vendored
+128
@@ -0,0 +1,128 @@
|
||||
name: panda tests
|
||||
on: [push, pull_request]
|
||||
|
||||
env:
|
||||
RUN: docker run --rm panda /bin/bash -c
|
||||
PERSIST: docker run --name panda panda /bin/sh -c
|
||||
BUILD: |
|
||||
docker pull $(grep -ioP '(?<=^from)\s+\S+' Dockerfile.panda) || true
|
||||
docker pull docker.io/commaai/panda:latest || true
|
||||
docker build --cache-from docker.io/commaai/panda:latest -t panda -f Dockerfile.panda .
|
||||
|
||||
jobs:
|
||||
docker_push:
|
||||
name: docker push
|
||||
runs-on: ubuntu-16.04
|
||||
timeout-minutes: 45
|
||||
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' && github.repository == 'commaai/panda'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build Docker image
|
||||
run: eval "$BUILD"
|
||||
- name: Login to dockerhub
|
||||
run: docker login -u wmelching -p ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
- name: Tag image
|
||||
run: docker tag panda docker.io/commaai/panda:latest
|
||||
- name: Push image
|
||||
run: docker push docker.io/commaai/panda:latest
|
||||
|
||||
build:
|
||||
name: build
|
||||
runs-on: ubuntu-16.04
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build Docker image
|
||||
run: eval "$BUILD"
|
||||
- name: Test python package installer
|
||||
run: $RUN "cd /tmp/openpilot/panda && python setup.py install"
|
||||
- name: Build panda STM image
|
||||
run: $RUN "cd /tmp/openpilot/panda/board && make bin"
|
||||
- name: Build panda STM bootstub image
|
||||
run: $RUN "cd /tmp/openpilot/panda/board && make obj/bootstub.panda.bin"
|
||||
- name: Build pedal STM image
|
||||
run: $RUN "cd /tmp/openpilot/panda/board/pedal && make obj/comma.bin"
|
||||
- name: Build pedal STM bootstub image
|
||||
run: $RUN "cd /tmp/openpilot/panda/board/pedal && make obj/bootstub.bin"
|
||||
|
||||
build_esp:
|
||||
name: build esp
|
||||
runs-on: ubuntu-16.04
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build docker image
|
||||
run: |
|
||||
docker pull $(grep -ioP '(?<=^from)\s+\S+' tests/build/Dockerfile.panda_esp) || true
|
||||
docker pull docker.io/commaai/panda_esp:latest || true
|
||||
docker build --cache-from docker.io/commaai/panda_esp:latest -t panda_esp -f tests/build/Dockerfile.panda_esp .
|
||||
- name: Build ESP image
|
||||
run: docker run --rm panda_esp /bin/sh -c "cd /panda/boardesp && make user1.bin"
|
||||
- name: Push image
|
||||
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' && github.repository == 'commaai/panda'
|
||||
run: |
|
||||
docker login -u wmelching -p ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
docker tag panda_esp docker.io/commaai/panda_esp:latest
|
||||
docker push docker.io/commaai/panda_esp:latest
|
||||
|
||||
safety:
|
||||
name: safety
|
||||
runs-on: ubuntu-16.04
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build Docker image
|
||||
run: eval "$BUILD"
|
||||
- name: Run safety tests
|
||||
run: |
|
||||
$RUN "cd /tmp/openpilot && \
|
||||
scons -c && \
|
||||
scons -j$(nproc) opendbc/ cereal/ && \
|
||||
cd panda/tests/safety && \
|
||||
./test.sh"
|
||||
|
||||
safety_replay:
|
||||
name: safety replay
|
||||
runs-on: ubuntu-16.04
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build Docker image
|
||||
run: eval "$BUILD"
|
||||
- name: Run safety replay
|
||||
run: $RUN "cd /tmp/openpilot/panda/tests/safety_replay && ./test_safety_replay.py"
|
||||
|
||||
misra:
|
||||
name: misra c2012
|
||||
runs-on: ubuntu-16.04
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build Docker image
|
||||
run: eval "$BUILD"
|
||||
- name: Run Misra C 2012 analysis
|
||||
run: $PERSIST "cd /tmp/openpilot/panda/tests/misra && ./test_misra.sh"
|
||||
- name: Copy analysis outputs
|
||||
run: docker cp panda:/tmp/misra /tmp
|
||||
- uses: actions/upload-artifact@v2
|
||||
if: always()
|
||||
with:
|
||||
name: cppcheck.txt
|
||||
path: /tmp/misra/cppcheck_output.txt
|
||||
- uses: actions/upload-artifact@v2
|
||||
if: always()
|
||||
with:
|
||||
name: misra.txt
|
||||
path: /tmp/misra/misra_output.txt
|
||||
|
||||
python_linter:
|
||||
name: python linter
|
||||
runs-on: ubuntu-16.04
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build Docker image
|
||||
run: eval "$BUILD"
|
||||
- name: Run static analysis
|
||||
run: |
|
||||
$RUN "cd /tmp/openpilot/panda && git init && git add -A && MYPYPATH=/tmp/openpilot pre-commit run --all"
|
||||
@@ -15,3 +15,4 @@ examples/output.csv
|
||||
.DS_Store
|
||||
.vscode
|
||||
nosetests.xml
|
||||
.mypy_cache/
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: master
|
||||
hooks:
|
||||
- id: check-ast
|
||||
- id: check-json
|
||||
- id: check-xml
|
||||
- id: check-yaml
|
||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||
rev: master
|
||||
hooks:
|
||||
- id: mypy
|
||||
exclude: '^(tests/automated)/'
|
||||
- repo: https://github.com/PyCQA/flake8
|
||||
rev: master
|
||||
hooks:
|
||||
- id: flake8
|
||||
exclude: '^(tests/automated)/'
|
||||
args:
|
||||
- --select=F
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: pylint
|
||||
name: pylint
|
||||
entry: pylint
|
||||
language: system
|
||||
types: [python]
|
||||
exclude: '^(tests/automated)/'
|
||||
args:
|
||||
- --disable=R,C,W
|
||||
@@ -0,0 +1,2 @@
|
||||
[MASTER]
|
||||
generated-members=usb1.*
|
||||
@@ -0,0 +1,66 @@
|
||||
FROM ubuntu:16.04
|
||||
ENV PYTHONUNBUFFERED 1
|
||||
ENV PYTHONPATH /tmp/openpilot:$PYTHONPATH
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
autoconf \
|
||||
automake \
|
||||
bzip2 \
|
||||
capnproto \
|
||||
clang \
|
||||
curl \
|
||||
g++ \
|
||||
gcc-arm-none-eabi libnewlib-arm-none-eabi \
|
||||
git \
|
||||
libarchive-dev \
|
||||
libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev libavfilter-dev \
|
||||
libbz2-dev \
|
||||
libcapnp-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libffi-dev \
|
||||
libtool \
|
||||
libssl-dev \
|
||||
libsqlite3-dev \
|
||||
libusb-1.0-0 \
|
||||
libzmq3-dev \
|
||||
locales \
|
||||
make \
|
||||
pkg-config \
|
||||
python \
|
||||
python-dev \
|
||||
python-pip \
|
||||
unzip \
|
||||
wget \
|
||||
zlib1g-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LANGUAGE en_US:en
|
||||
ENV LC_ALL en_US.UTF-8
|
||||
|
||||
RUN curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
|
||||
ENV PATH="/root/.pyenv/bin:/root/.pyenv/shims:${PATH}"
|
||||
|
||||
COPY requirements.txt /tmp/
|
||||
RUN pyenv install 3.7.3 && \
|
||||
pyenv global 3.7.3 && \
|
||||
pyenv rehash && \
|
||||
pip install --no-cache-dir --upgrade pip==18.0 && \
|
||||
pip install --no-cache-dir -r /tmp/requirements.txt
|
||||
|
||||
RUN cd /tmp && \
|
||||
git clone https://github.com/commaai/openpilot.git tmppilot || true && \
|
||||
cd /tmp/tmppilot && \
|
||||
git pull && git checkout 44560b5bb74e451767725144c3fa5f1564481a20 && \
|
||||
git submodule update --init cereal opendbc && \
|
||||
mkdir /tmp/openpilot && \
|
||||
cp -pR SConstruct tools/ selfdrive/ common/ cereal/ opendbc/ /tmp/openpilot && \
|
||||
rm -rf /tmp/tmppilot
|
||||
|
||||
RUN cd /tmp/openpilot && \
|
||||
pip install --no-cache-dir -r opendbc/requirements.txt && \
|
||||
pip install --no-cache-dir -r tools/requirements.txt
|
||||
|
||||
COPY . /tmp/openpilot/panda
|
||||
RUN rm -rf /tmp/openpilot/panda/.git
|
||||
+2
-2
@@ -13,7 +13,7 @@ It uses an [STM32F413](http://www.st.com/en/microcontrollers/stm32f413-423.html?
|
||||
|
||||
It is 2nd gen hardware, reusing code and parts from the [NEO](https://github.com/commaai/neo) interface board.
|
||||
|
||||
[](https://circleci.com/gh/commaai/panda)
|
||||

|
||||
|
||||
Usage (Python)
|
||||
------
|
||||
@@ -99,7 +99,7 @@ When compiled from an [EON Dev Kit](https://comma.ai/shop/products/eon-gold-dash
|
||||
conjuction with [openpilot](https://github.com/commaai/openpilot). The panda FW, through its safety model, provides and enforces the
|
||||
[openpilot Safety](https://github.com/commaai/openpilot/blob/devel/SAFETY.md). Due to its critical function, it's important that the application code rigor within the `board` folder is held to high standards.
|
||||
|
||||
These are the [CI regression tests](https://circleci.com/gh/commaai/panda) we have in place:
|
||||
These are the [CI regression tests](https://github.com/commaai/panda/actions) we have in place:
|
||||
* A generic static code analysis is performed by [Cppcheck](https://github.com/danmar/cppcheck/).
|
||||
* In addition, [Cppcheck](https://github.com/danmar/cppcheck/) has a specific addon to check for [MISRA C:2012](https://www.misra.org.uk/MISRAHome/MISRAC2012/tabid/196/Default.aspx) violations. See [current coverage](https://github.com/commaai/panda/blob/master/tests/misra/coverage_table).
|
||||
* Compiler options are relatively strict: the flags `-Wall -Wextra -Wstrict-prototypes -Werror` are enforced on board and pedal makefiles.
|
||||
|
||||
+3
-1
@@ -1 +1,3 @@
|
||||
from .python import Panda, PandaWifiStreaming, PandaDFU, ESPROM, CesantaFlasher, flash_release, BASEDIR, ensure_st_up_to_date, build_st, PandaSerial # noqa: F401
|
||||
# flake8: noqa
|
||||
# pylint: skip-file
|
||||
from .python import Panda, PandaWifiStreaming, PandaDFU, ESPROM, CesantaFlasher, flash_release, BASEDIR, ensure_st_up_to_date, build_st, PandaSerial
|
||||
|
||||
+8
-4
@@ -13,6 +13,7 @@
|
||||
#include "boards/grey.h"
|
||||
#include "boards/black.h"
|
||||
#include "boards/uno.h"
|
||||
#include "boards/dos.h"
|
||||
#else
|
||||
#include "boards/pedal.h"
|
||||
#endif
|
||||
@@ -22,7 +23,10 @@ void detect_board_type(void) {
|
||||
// SPI lines floating: white (TODO: is this reliable? Not really, we have to enable ESP/GPS to be able to detect this on the UART)
|
||||
set_gpio_output(GPIOC, 14, 1);
|
||||
set_gpio_output(GPIOC, 5, 1);
|
||||
if((detect_with_pull(GPIOA, 4, PULL_DOWN)) || (detect_with_pull(GPIOA, 5, PULL_DOWN)) || (detect_with_pull(GPIOA, 6, PULL_DOWN)) || (detect_with_pull(GPIOA, 7, PULL_DOWN))){
|
||||
if(!detect_with_pull(GPIOB, 1, PULL_UP)){
|
||||
hw_type = HW_TYPE_DOS;
|
||||
current_board = &board_dos;
|
||||
} else if((detect_with_pull(GPIOA, 4, PULL_DOWN)) || (detect_with_pull(GPIOA, 5, PULL_DOWN)) || (detect_with_pull(GPIOA, 6, PULL_DOWN)) || (detect_with_pull(GPIOA, 7, PULL_DOWN))){
|
||||
hw_type = HW_TYPE_WHITE_PANDA;
|
||||
current_board = &board_white;
|
||||
} else if(detect_with_pull(GPIOA, 13, PULL_DOWN)) { // Rev AB deprecated, so no pullup means black. In REV C, A13 is pulled up to 5V with a 10K
|
||||
@@ -78,7 +82,7 @@ bool board_has_gmlan(void) {
|
||||
}
|
||||
|
||||
bool board_has_obd(void) {
|
||||
return ((hw_type == HW_TYPE_BLACK_PANDA) || (hw_type == HW_TYPE_UNO));
|
||||
return ((hw_type == HW_TYPE_BLACK_PANDA) || (hw_type == HW_TYPE_UNO) || (hw_type == HW_TYPE_DOS));
|
||||
}
|
||||
|
||||
bool board_has_lin(void) {
|
||||
@@ -86,9 +90,9 @@ bool board_has_lin(void) {
|
||||
}
|
||||
|
||||
bool board_has_rtc(void) {
|
||||
return (hw_type == HW_TYPE_UNO);
|
||||
return ((hw_type == HW_TYPE_UNO) || (hw_type == HW_TYPE_DOS));
|
||||
}
|
||||
|
||||
bool board_has_relay(void) {
|
||||
return ((hw_type == HW_TYPE_BLACK_PANDA) || (hw_type == HW_TYPE_UNO));
|
||||
return ((hw_type == HW_TYPE_BLACK_PANDA) || (hw_type == HW_TYPE_UNO) || (hw_type == HW_TYPE_DOS));
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ struct board {
|
||||
#define HW_TYPE_BLACK_PANDA 3U
|
||||
#define HW_TYPE_PEDAL 4U
|
||||
#define HW_TYPE_UNO 5U
|
||||
#define HW_TYPE_DOS 6U
|
||||
|
||||
// LED colors
|
||||
#define LED_RED 0U
|
||||
|
||||
@@ -0,0 +1,224 @@
|
||||
// ///////////// //
|
||||
// Dos + Harness //
|
||||
// ///////////// //
|
||||
|
||||
void dos_enable_can_transciever(uint8_t transciever, bool enabled) {
|
||||
switch (transciever){
|
||||
case 1U:
|
||||
set_gpio_output(GPIOC, 1, !enabled);
|
||||
break;
|
||||
case 2U:
|
||||
set_gpio_output(GPIOC, 13, !enabled);
|
||||
break;
|
||||
case 3U:
|
||||
set_gpio_output(GPIOA, 0, !enabled);
|
||||
break;
|
||||
case 4U:
|
||||
set_gpio_output(GPIOB, 10, !enabled);
|
||||
break;
|
||||
default:
|
||||
puts("Invalid CAN transciever ("); puth(transciever); puts("): enabling failed\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void dos_enable_can_transcievers(bool enabled) {
|
||||
for(uint8_t i=1U; i<=4U; i++){
|
||||
// Leave main CAN always on for CAN-based ignition detection
|
||||
if((car_harness_status == HARNESS_STATUS_FLIPPED) ? (i == 3U) : (i == 1U)){
|
||||
uno_enable_can_transciever(i, true);
|
||||
} else {
|
||||
uno_enable_can_transciever(i, enabled);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void dos_set_led(uint8_t color, bool enabled) {
|
||||
switch (color){
|
||||
case LED_RED:
|
||||
set_gpio_output(GPIOC, 9, !enabled);
|
||||
break;
|
||||
case LED_GREEN:
|
||||
set_gpio_output(GPIOC, 7, !enabled);
|
||||
break;
|
||||
case LED_BLUE:
|
||||
set_gpio_output(GPIOC, 6, !enabled);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void dos_set_gps_load_switch(bool enabled) {
|
||||
UNUSED(enabled);
|
||||
}
|
||||
|
||||
void dos_set_bootkick(bool enabled){
|
||||
UNUSED(enabled);
|
||||
}
|
||||
|
||||
void dos_bootkick(void) {}
|
||||
|
||||
void dos_set_phone_power(bool enabled){
|
||||
UNUSED(enabled);
|
||||
}
|
||||
|
||||
void dos_set_usb_power_mode(uint8_t mode) {
|
||||
UNUSED(mode);
|
||||
}
|
||||
|
||||
void dos_set_esp_gps_mode(uint8_t mode) {
|
||||
UNUSED(mode);
|
||||
}
|
||||
|
||||
void dos_set_can_mode(uint8_t mode){
|
||||
switch (mode) {
|
||||
case CAN_MODE_NORMAL:
|
||||
case CAN_MODE_OBD_CAN2:
|
||||
if ((bool)(mode == CAN_MODE_NORMAL) != (bool)(car_harness_status == HARNESS_STATUS_FLIPPED)) {
|
||||
// B12,B13: disable OBD mode
|
||||
set_gpio_mode(GPIOB, 12, MODE_INPUT);
|
||||
set_gpio_mode(GPIOB, 13, MODE_INPUT);
|
||||
|
||||
// B5,B6: normal CAN2 mode
|
||||
set_gpio_alternate(GPIOB, 5, GPIO_AF9_CAN2);
|
||||
set_gpio_alternate(GPIOB, 6, GPIO_AF9_CAN2);
|
||||
} else {
|
||||
// B5,B6: disable normal CAN2 mode
|
||||
set_gpio_mode(GPIOB, 5, MODE_INPUT);
|
||||
set_gpio_mode(GPIOB, 6, MODE_INPUT);
|
||||
|
||||
// B12,B13: OBD mode
|
||||
set_gpio_alternate(GPIOB, 12, GPIO_AF9_CAN2);
|
||||
set_gpio_alternate(GPIOB, 13, GPIO_AF9_CAN2);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
puts("Tried to set unsupported CAN mode: "); puth(mode); puts("\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void dos_usb_power_mode_tick(uint32_t uptime){
|
||||
UNUSED(uptime);
|
||||
if(bootkick_timer != 0U){
|
||||
bootkick_timer--;
|
||||
} else {
|
||||
dos_set_bootkick(false);
|
||||
}
|
||||
}
|
||||
|
||||
bool dos_check_ignition(void){
|
||||
// ignition is checked through harness
|
||||
return harness_check_ignition();
|
||||
}
|
||||
|
||||
void dos_set_usb_switch(bool phone){
|
||||
set_gpio_output(GPIOB, 3, phone);
|
||||
}
|
||||
|
||||
void dos_set_ir_power(uint8_t percentage){
|
||||
pwm_set(TIM4, 2, percentage);
|
||||
}
|
||||
|
||||
void dos_set_fan_power(uint8_t percentage){
|
||||
// Enable fan power only if percentage is non-zero.
|
||||
set_gpio_output(GPIOA, 1, (percentage != 0U));
|
||||
fan_set_power(percentage);
|
||||
}
|
||||
|
||||
uint32_t dos_read_current(void){
|
||||
// No current sense on Dos
|
||||
return 0U;
|
||||
}
|
||||
|
||||
void dos_init(void) {
|
||||
common_init_gpio();
|
||||
|
||||
// A8,A15: normal CAN3 mode
|
||||
set_gpio_alternate(GPIOA, 8, GPIO_AF11_CAN3);
|
||||
set_gpio_alternate(GPIOA, 15, GPIO_AF11_CAN3);
|
||||
|
||||
// C0: OBD_SBU1 (orientation detection)
|
||||
// C3: OBD_SBU2 (orientation detection)
|
||||
set_gpio_mode(GPIOC, 0, MODE_ANALOG);
|
||||
set_gpio_mode(GPIOC, 3, MODE_ANALOG);
|
||||
|
||||
// C10: OBD_SBU1_RELAY (harness relay driving output)
|
||||
// C11: OBD_SBU2_RELAY (harness relay driving output)
|
||||
set_gpio_mode(GPIOC, 10, MODE_OUTPUT);
|
||||
set_gpio_mode(GPIOC, 11, MODE_OUTPUT);
|
||||
set_gpio_output_type(GPIOC, 10, OUTPUT_TYPE_OPEN_DRAIN);
|
||||
set_gpio_output_type(GPIOC, 11, OUTPUT_TYPE_OPEN_DRAIN);
|
||||
set_gpio_output(GPIOC, 10, 1);
|
||||
set_gpio_output(GPIOC, 11, 1);
|
||||
|
||||
// C8: FAN PWM aka TIM3_CH3
|
||||
set_gpio_alternate(GPIOC, 8, GPIO_AF2_TIM3);
|
||||
|
||||
// Initialize IR PWM and set to 0%
|
||||
set_gpio_alternate(GPIOB, 7, GPIO_AF2_TIM4);
|
||||
pwm_init(TIM4, 2);
|
||||
dos_set_ir_power(0U);
|
||||
|
||||
// Initialize fan and set to 0%
|
||||
fan_init();
|
||||
dos_set_fan_power(0U);
|
||||
|
||||
// Initialize harness
|
||||
harness_init();
|
||||
|
||||
// Initialize RTC
|
||||
rtc_init();
|
||||
|
||||
// Enable CAN transcievers
|
||||
dos_enable_can_transcievers(true);
|
||||
|
||||
// Disable LEDs
|
||||
dos_set_led(LED_RED, false);
|
||||
dos_set_led(LED_GREEN, false);
|
||||
dos_set_led(LED_BLUE, false);
|
||||
|
||||
// Set normal CAN mode
|
||||
dos_set_can_mode(CAN_MODE_NORMAL);
|
||||
|
||||
// flip CAN0 and CAN2 if we are flipped
|
||||
if (car_harness_status == HARNESS_STATUS_FLIPPED) {
|
||||
can_flip_buses(0, 2);
|
||||
}
|
||||
|
||||
// init multiplexer
|
||||
can_set_obd(car_harness_status, false);
|
||||
}
|
||||
|
||||
const harness_configuration dos_harness_config = {
|
||||
.has_harness = true,
|
||||
.GPIO_SBU1 = GPIOC,
|
||||
.GPIO_SBU2 = GPIOC,
|
||||
.GPIO_relay_SBU1 = GPIOC,
|
||||
.GPIO_relay_SBU2 = GPIOC,
|
||||
.pin_SBU1 = 0,
|
||||
.pin_SBU2 = 3,
|
||||
.pin_relay_SBU1 = 10,
|
||||
.pin_relay_SBU2 = 11,
|
||||
.adc_channel_SBU1 = 10,
|
||||
.adc_channel_SBU2 = 13
|
||||
};
|
||||
|
||||
const board board_dos = {
|
||||
.board_type = "Dos",
|
||||
.harness_config = &dos_harness_config,
|
||||
.init = dos_init,
|
||||
.enable_can_transciever = dos_enable_can_transciever,
|
||||
.enable_can_transcievers = dos_enable_can_transcievers,
|
||||
.set_led = dos_set_led,
|
||||
.set_usb_power_mode = dos_set_usb_power_mode,
|
||||
.set_esp_gps_mode = dos_set_esp_gps_mode,
|
||||
.set_can_mode = dos_set_can_mode,
|
||||
.usb_power_mode_tick = dos_usb_power_mode_tick,
|
||||
.check_ignition = dos_check_ignition,
|
||||
.read_current = dos_read_current,
|
||||
.set_fan_power = dos_set_fan_power,
|
||||
.set_ir_power = dos_set_ir_power,
|
||||
.set_phone_power = dos_set_phone_power
|
||||
};
|
||||
@@ -14,6 +14,7 @@
|
||||
#define GET_BYTE(msg, b) (((int)(b) > 3) ? (((msg)->RDHR >> (8U * ((unsigned int)(b) % 4U))) & 0xFFU) : (((msg)->RDLR >> (8U * (unsigned int)(b))) & 0xFFU))
|
||||
#define GET_BYTES_04(msg) ((msg)->RDLR)
|
||||
#define GET_BYTES_48(msg) ((msg)->RDHR)
|
||||
#define GET_FLAG(value, mask) (((__typeof__(mask))param & mask) == mask)
|
||||
|
||||
#define CAN_INIT_TIMEOUT_MS 500U
|
||||
#define CAN_NAME_FROM_CANIF(CAN_DEV) (((CAN_DEV)==CAN1) ? "CAN1" : (((CAN_DEV) == CAN2) ? "CAN2" : "CAN3"))
|
||||
|
||||
+58
-15
@@ -72,10 +72,14 @@ void gen_crc_lookup_table(uint8_t poly, uint8_t crc_lut[]) {
|
||||
}
|
||||
}
|
||||
|
||||
bool msg_allowed(int addr, int bus, const AddrBus addr_list[], int len) {
|
||||
bool msg_allowed(CAN_FIFOMailBox_TypeDef *to_send, const CanMsg msg_list[], int len) {
|
||||
int addr = GET_ADDR(to_send);
|
||||
int bus = GET_BUS(to_send);
|
||||
int length = GET_LEN(to_send);
|
||||
|
||||
bool allowed = false;
|
||||
for (int i = 0; i < len; i++) {
|
||||
if ((addr == addr_list[i].addr) && (bus == addr_list[i].bus)) {
|
||||
if ((addr == msg_list[i].addr) && (bus == msg_list[i].bus) && (length == msg_list[i].len)) {
|
||||
allowed = true;
|
||||
break;
|
||||
}
|
||||
@@ -92,17 +96,29 @@ uint32_t get_ts_elapsed(uint32_t ts, uint32_t ts_last) {
|
||||
int get_addr_check_index(CAN_FIFOMailBox_TypeDef *to_push, AddrCheckStruct addr_list[], const int len) {
|
||||
int bus = GET_BUS(to_push);
|
||||
int addr = GET_ADDR(to_push);
|
||||
int length = GET_LEN(to_push);
|
||||
|
||||
int index = -1;
|
||||
for (int i = 0; i < len; i++) {
|
||||
for (uint8_t j = 0U; addr_list[i].addr[j] != 0; j++) {
|
||||
if ((addr == addr_list[i].addr[j]) && (bus == addr_list[i].bus)) {
|
||||
index = i;
|
||||
goto Return;
|
||||
// if multiple msgs are allowed, determine which one is present on the bus
|
||||
if (!addr_list[i].msg_seen) {
|
||||
for (uint8_t j = 0U; addr_list[i].msg[j].addr != 0; j++) {
|
||||
if ((addr == addr_list[i].msg[j].addr) && (bus == addr_list[i].msg[j].bus) &&
|
||||
(length == addr_list[i].msg[j].len)) {
|
||||
addr_list[i].index = j;
|
||||
addr_list[i].msg_seen = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int idx = addr_list[i].index;
|
||||
if ((addr == addr_list[i].msg[idx].addr) && (bus == addr_list[i].msg[idx].bus) &&
|
||||
(length == addr_list[i].msg[idx].len)) {
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
Return:
|
||||
return index;
|
||||
}
|
||||
|
||||
@@ -115,7 +131,7 @@ void safety_tick(const safety_hooks *hooks) {
|
||||
// lag threshold is max of: 1s and MAX_MISSED_MSGS * expected timestep.
|
||||
// Quite conservative to not risk false triggers.
|
||||
// 2s of lag is worse case, since the function is called at 1Hz
|
||||
bool lagging = elapsed_time > MAX(hooks->addr_check[i].expected_timestep * MAX_MISSED_MSGS, 1e6);
|
||||
bool lagging = elapsed_time > MAX(hooks->addr_check[i].msg[hooks->addr_check[i].index].expected_timestep * MAX_MISSED_MSGS, 1e6);
|
||||
hooks->addr_check[i].lagging = lagging;
|
||||
if (lagging) {
|
||||
controls_allowed = 0;
|
||||
@@ -126,7 +142,7 @@ void safety_tick(const safety_hooks *hooks) {
|
||||
|
||||
void update_counter(AddrCheckStruct addr_list[], int index, uint8_t counter) {
|
||||
if (index != -1) {
|
||||
uint8_t expected_counter = (addr_list[index].last_counter + 1U) % (addr_list[index].max_counter + 1U);
|
||||
uint8_t expected_counter = (addr_list[index].last_counter + 1U) % (addr_list[index].msg[addr_list[index].index].max_counter + 1U);
|
||||
addr_list[index].wrong_counters += (expected_counter == counter) ? -1 : 1;
|
||||
addr_list[index].wrong_counters = MAX(MIN(addr_list[index].wrong_counters, MAX_WRONG_COUNTERS), 0);
|
||||
addr_list[index].last_counter = counter;
|
||||
@@ -163,7 +179,7 @@ bool addr_safety_check(CAN_FIFOMailBox_TypeDef *to_push,
|
||||
|
||||
if (index != -1) {
|
||||
// checksum check
|
||||
if ((get_checksum != NULL) && (compute_checksum != NULL) && rx_checks[index].check_checksum) {
|
||||
if ((get_checksum != NULL) && (compute_checksum != NULL) && rx_checks[index].msg[rx_checks[index].index].check_checksum) {
|
||||
uint8_t checksum = get_checksum(to_push);
|
||||
uint8_t checksum_comp = compute_checksum(to_push);
|
||||
rx_checks[index].valid_checksum = checksum_comp == checksum;
|
||||
@@ -172,7 +188,7 @@ bool addr_safety_check(CAN_FIFOMailBox_TypeDef *to_push,
|
||||
}
|
||||
|
||||
// counter check (max_counter == 0 means skip check)
|
||||
if ((get_counter != NULL) && (rx_checks[index].max_counter > 0U)) {
|
||||
if ((get_counter != NULL) && (rx_checks[index].msg[rx_checks[index].index].max_counter > 0U)) {
|
||||
uint8_t counter = get_counter(to_push);
|
||||
update_counter(rx_checks, index, counter);
|
||||
} else {
|
||||
@@ -209,13 +225,13 @@ const safety_hook_config safety_hook_registry[] = {
|
||||
{SAFETY_CHRYSLER, &chrysler_hooks},
|
||||
{SAFETY_SUBARU, &subaru_hooks},
|
||||
{SAFETY_SUBARU_LEGACY, &subaru_legacy_hooks},
|
||||
{SAFETY_MAZDA, &mazda_hooks},
|
||||
{SAFETY_VOLKSWAGEN_MQB, &volkswagen_mqb_hooks},
|
||||
{SAFETY_VOLKSWAGEN_PQ, &volkswagen_pq_hooks},
|
||||
{SAFETY_NISSAN, &nissan_hooks},
|
||||
{SAFETY_NOOUTPUT, &nooutput_hooks},
|
||||
#ifdef ALLOW_DEBUG
|
||||
{SAFETY_MAZDA, &mazda_hooks},
|
||||
{SAFETY_TESLA, &tesla_hooks},
|
||||
{SAFETY_NISSAN, &nissan_hooks},
|
||||
{SAFETY_ALLOUTPUT, &alloutput_hooks},
|
||||
{SAFETY_GM_ASCM, &gm_ascm_hooks},
|
||||
{SAFETY_FORD, &ford_hooks},
|
||||
@@ -223,7 +239,29 @@ const safety_hook_config safety_hook_registry[] = {
|
||||
};
|
||||
|
||||
int set_safety_hooks(uint16_t mode, int16_t param) {
|
||||
safety_mode_cnt = 0U; // reset safety mode timer
|
||||
// reset state set by safety mode
|
||||
safety_mode_cnt = 0U;
|
||||
relay_malfunction = false;
|
||||
gas_interceptor_detected = false;
|
||||
gas_interceptor_prev = 0;
|
||||
gas_pressed_prev = false;
|
||||
brake_pressed_prev = false;
|
||||
cruise_engaged_prev = false;
|
||||
vehicle_speed = 0;
|
||||
vehicle_moving = false;
|
||||
desired_torque_last = 0;
|
||||
rt_torque_last = 0;
|
||||
ts_angle_last = 0;
|
||||
desired_angle_last = 0;
|
||||
ts_last = 0;
|
||||
|
||||
torque_meas.max = 0;
|
||||
torque_meas.max = 0;
|
||||
torque_driver.min = 0;
|
||||
torque_driver.max = 0;
|
||||
angle_meas.min = 0;
|
||||
angle_meas.max = 0;
|
||||
|
||||
int set_status = -1; // not set
|
||||
int hook_config_count = sizeof(safety_hook_registry) / sizeof(safety_hook_config);
|
||||
for (int i = 0; i < hook_config_count; i++) {
|
||||
@@ -231,7 +269,12 @@ int set_safety_hooks(uint16_t mode, int16_t param) {
|
||||
current_hooks = safety_hook_registry[i].hooks;
|
||||
current_safety_mode = safety_hook_registry[i].id;
|
||||
set_status = 0; // set
|
||||
break;
|
||||
}
|
||||
|
||||
// reset message index and seen flags in addr struct
|
||||
for (int j = 0; j < safety_hook_registry[i].hooks->addr_check_len; j++) {
|
||||
safety_hook_registry[i].hooks->addr_check[j].index = 0;
|
||||
safety_hook_registry[i].hooks->addr_check[j].msg_seen = false;
|
||||
}
|
||||
}
|
||||
if ((set_status == 0) && (current_hooks->init != NULL)) {
|
||||
|
||||
@@ -6,20 +6,17 @@ const int CHRYSLER_MAX_RATE_DOWN = 3;
|
||||
const int CHRYSLER_MAX_TORQUE_ERROR = 80; // max torque cmd in excess of torque motor
|
||||
const int CHRYSLER_GAS_THRSLD = 30; // 7% more than 2m/s
|
||||
const int CHRYSLER_STANDSTILL_THRSLD = 10; // about 1m/s
|
||||
const AddrBus CHRYSLER_TX_MSGS[] = {{571, 0}, {658, 0}, {678, 0}};
|
||||
const CanMsg CHRYSLER_TX_MSGS[] = {{571, 0, 3}, {658, 0, 6}, {678, 0, 8}};
|
||||
|
||||
// TODO: do checksum and counter checks
|
||||
AddrCheckStruct chrysler_rx_checks[] = {
|
||||
{.addr = {544}, .bus = 0, .check_checksum = true, .max_counter = 15U, .expected_timestep = 10000U},
|
||||
{.addr = {514}, .bus = 0, .check_checksum = false, .max_counter = 0U, .expected_timestep = 10000U},
|
||||
{.addr = {500}, .bus = 0, .check_checksum = true, .max_counter = 15U, .expected_timestep = 20000U},
|
||||
{.addr = {308}, .bus = 0, .check_checksum = false, .max_counter = 15U, .expected_timestep = 20000U},
|
||||
{.addr = {320}, .bus = 0, .check_checksum = true, .max_counter = 15U, .expected_timestep = 20000U},
|
||||
{.msg = {{544, 0, 8, .check_checksum = true, .max_counter = 15U, .expected_timestep = 10000U}}},
|
||||
{.msg = {{514, 0, 8, .check_checksum = false, .max_counter = 0U, .expected_timestep = 10000U}}},
|
||||
{.msg = {{500, 0, 8, .check_checksum = true, .max_counter = 15U, .expected_timestep = 20000U}}},
|
||||
{.msg = {{308, 0, 8, .check_checksum = false, .max_counter = 15U, .expected_timestep = 20000U}}},
|
||||
{.msg = {{320, 0, 8, .check_checksum = true, .max_counter = 15U, .expected_timestep = 20000U}}},
|
||||
};
|
||||
const int CHRYSLER_RX_CHECK_LEN = sizeof(chrysler_rx_checks) / sizeof(chrysler_rx_checks[0]);
|
||||
|
||||
int chrysler_speed = 0;
|
||||
|
||||
static uint8_t chrysler_get_checksum(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
int checksum_byte = GET_LEN(to_push) - 1;
|
||||
return (uint8_t)(GET_BYTE(to_push, checksum_byte));
|
||||
@@ -98,14 +95,14 @@ static int chrysler_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
if (addr == 514) {
|
||||
int speed_l = (GET_BYTE(to_push, 0) << 4) + (GET_BYTE(to_push, 1) >> 4);
|
||||
int speed_r = (GET_BYTE(to_push, 2) << 4) + (GET_BYTE(to_push, 3) >> 4);
|
||||
chrysler_speed = (speed_l + speed_r) / 2;
|
||||
vehicle_moving = chrysler_speed > CHRYSLER_STANDSTILL_THRSLD;
|
||||
vehicle_speed = (speed_l + speed_r) / 2;
|
||||
vehicle_moving = (int)vehicle_speed > CHRYSLER_STANDSTILL_THRSLD;
|
||||
}
|
||||
|
||||
// exit controls on rising edge of gas press
|
||||
if (addr == 308) {
|
||||
bool gas_pressed = (GET_BYTE(to_push, 5) & 0x7F) != 0;
|
||||
if (!unsafe_allow_gas && gas_pressed && !gas_pressed_prev && (chrysler_speed > CHRYSLER_GAS_THRSLD)) {
|
||||
if (!unsafe_allow_gas && gas_pressed && !gas_pressed_prev && ((int)vehicle_speed > CHRYSLER_GAS_THRSLD)) {
|
||||
controls_allowed = 0;
|
||||
}
|
||||
gas_pressed_prev = gas_pressed;
|
||||
@@ -132,9 +129,8 @@ static int chrysler_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
|
||||
int tx = 1;
|
||||
int addr = GET_ADDR(to_send);
|
||||
int bus = GET_BUS(to_send);
|
||||
|
||||
if (!msg_allowed(addr, bus, CHRYSLER_TX_MSGS, sizeof(CHRYSLER_TX_MSGS) / sizeof(CHRYSLER_TX_MSGS[0]))) {
|
||||
if (!msg_allowed(to_send, CHRYSLER_TX_MSGS, sizeof(CHRYSLER_TX_MSGS) / sizeof(CHRYSLER_TX_MSGS[0]))) {
|
||||
tx = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,18 +18,18 @@ const int GM_DRIVER_TORQUE_FACTOR = 4;
|
||||
const int GM_MAX_GAS = 3072;
|
||||
const int GM_MAX_REGEN = 1404;
|
||||
const int GM_MAX_BRAKE = 350;
|
||||
const AddrBus GM_TX_MSGS[] = {{384, 0}, {1033, 0}, {1034, 0}, {715, 0}, {880, 0}, // pt bus
|
||||
{161, 1}, {774, 1}, {776, 1}, {784, 1}, // obs bus
|
||||
{789, 2}, // ch bus
|
||||
{0x104c006c, 3}, {0x10400060, 3}}; // gmlan
|
||||
const CanMsg GM_TX_MSGS[] = {{384, 0, 4}, {1033, 0, 7}, {1034, 0, 7}, {715, 0, 8}, {880, 0, 6}, // pt bus
|
||||
{161, 1, 7}, {774, 1, 8}, {776, 1, 7}, {784, 1, 2}, // obs bus
|
||||
{789, 2, 5}, // ch bus
|
||||
{0x104c006c, 3, 3}, {0x10400060, 3, 5}}; // gmlan
|
||||
|
||||
// TODO: do checksum and counter checks. Add correct timestep, 0.1s for now.
|
||||
AddrCheckStruct gm_rx_checks[] = {
|
||||
{.addr = {388}, .bus = 0, .expected_timestep = 100000U},
|
||||
{.addr = {842}, .bus = 0, .expected_timestep = 100000U},
|
||||
{.addr = {481}, .bus = 0, .expected_timestep = 100000U},
|
||||
{.addr = {241}, .bus = 0, .expected_timestep = 100000U},
|
||||
{.addr = {417}, .bus = 0, .expected_timestep = 100000U},
|
||||
{.msg = {{388, 0, 8, .expected_timestep = 100000U}}},
|
||||
{.msg = {{842, 0, 5, .expected_timestep = 100000U}}},
|
||||
{.msg = {{481, 0, 7, .expected_timestep = 100000U}}},
|
||||
{.msg = {{241, 0, 6, .expected_timestep = 100000U}}},
|
||||
{.msg = {{417, 0, 7, .expected_timestep = 100000U}}},
|
||||
};
|
||||
const int GM_RX_CHECK_LEN = sizeof(gm_rx_checks) / sizeof(gm_rx_checks[0]);
|
||||
|
||||
@@ -122,9 +122,8 @@ static int gm_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
|
||||
int tx = 1;
|
||||
int addr = GET_ADDR(to_send);
|
||||
int bus = GET_BUS(to_send);
|
||||
|
||||
if (!msg_allowed(addr, bus, GM_TX_MSGS, sizeof(GM_TX_MSGS)/sizeof(GM_TX_MSGS[0]))) {
|
||||
if (!msg_allowed(to_send, GM_TX_MSGS, sizeof(GM_TX_MSGS)/sizeof(GM_TX_MSGS[0]))) {
|
||||
tx = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,9 +6,11 @@
|
||||
// accel rising edge
|
||||
// brake rising edge
|
||||
// brake > 0mph
|
||||
const AddrBus HONDA_N_TX_MSGS[] = {{0xE4, 0}, {0x194, 0}, {0x1FA, 0}, {0x200, 0}, {0x30C, 0}, {0x33D, 0}};
|
||||
const AddrBus HONDA_BG_TX_MSGS[] = {{0xE4, 2}, {0xE5, 2}, {0x296, 0}, {0x33D, 2}}; // Bosch Giraffe
|
||||
const AddrBus HONDA_BH_TX_MSGS[] = {{0xE4, 0}, {0xE5, 0}, {0x296, 1}, {0x33D, 0}}; // Bosch Harness
|
||||
const CanMsg HONDA_N_TX_MSGS[] = {{0xE4, 0, 5}, {0x194, 0, 4}, {0x1FA, 0, 8}, {0x200, 0, 6}, {0x30C, 0, 8}, {0x33D, 0, 5}};
|
||||
const CanMsg HONDA_BG_TX_MSGS[] = {{0xE4, 2, 5}, {0xE5, 2, 8}, {0x296, 0, 4}, {0x33D, 2, 5}}; // Bosch Giraffe
|
||||
const CanMsg HONDA_BH_TX_MSGS[] = {{0xE4, 0, 5}, {0xE5, 0, 8}, {0x296, 1, 4}, {0x33D, 0, 5}}; // Bosch Harness
|
||||
const CanMsg HONDA_BG_LONG_TX_MSGS[] = {{0xE4, 0, 5}, {0x1DF, 0, 8}, {0x1EF, 0, 8}, {0x1FA, 0, 8}, {0x30C, 0, 8}, {0x33D, 0, 5}, {0x39F, 0, 8}, {0x18DAB0F1, 0, 8}}; // Bosch Giraffe w/ gas and brakes
|
||||
const CanMsg HONDA_BH_LONG_TX_MSGS[] = {{0xE4, 1, 5}, {0x1DF, 1, 8}, {0x1EF, 1, 8}, {0x1FA, 1, 8}, {0x30C, 1, 8}, {0x33D, 1, 5}, {0x39F, 1, 8}, {0x18DAB0F1, 1, 8}}; // Bosch Harness w/ gas and brakes
|
||||
|
||||
// Roughly calculated using the offsets in openpilot +5%:
|
||||
// In openpilot: ((gas1_norm + gas2_norm)/2) > 15
|
||||
@@ -18,26 +20,34 @@ const AddrBus HONDA_BH_TX_MSGS[] = {{0xE4, 0}, {0xE5, 0}, {0x296, 1}, {0x33D, 0}
|
||||
// In this safety: ((gas1 + (gas2/2))/2) > THRESHOLD
|
||||
const int HONDA_GAS_INTERCEPTOR_THRESHOLD = 344;
|
||||
#define HONDA_GET_INTERCEPTOR(msg) (((GET_BYTE((msg), 0) << 8) + GET_BYTE((msg), 1) + ((GET_BYTE((msg), 2) << 8) + GET_BYTE((msg), 3)) / 2 ) / 2) // avg between 2 tracks
|
||||
const int HONDA_BOSCH_NO_GAS_VALUE = -30000; // value sent when not requesting gas
|
||||
const int HONDA_BOSCH_GAS_MAX = 2000;
|
||||
const int HONDA_BOSCH_ACCEL_MIN = -350; // max braking == -3.5m/s2
|
||||
|
||||
// Nidec and Bosch giraffe have pt on bus 0
|
||||
AddrCheckStruct honda_rx_checks[] = {
|
||||
{.addr = {0x1A6, 0x296}, .bus = 0, .check_checksum = true, .max_counter = 3U, .expected_timestep = 40000U},
|
||||
{.addr = { 0x158}, .bus = 0, .check_checksum = true, .max_counter = 3U, .expected_timestep = 10000U},
|
||||
{.addr = { 0x17C}, .bus = 0, .check_checksum = true, .max_counter = 3U, .expected_timestep = 10000U},
|
||||
{.msg = {{0x1A6, 0, 8, .check_checksum = true, .max_counter = 3U, .expected_timestep = 40000U},
|
||||
{0x296, 0, 4, .check_checksum = true, .max_counter = 3U, .expected_timestep = 40000U}}},
|
||||
{.msg = {{0x158, 0, 8, .check_checksum = true, .max_counter = 3U, .expected_timestep = 10000U}}},
|
||||
{.msg = {{0x17C, 0, 8, .check_checksum = true, .max_counter = 3U, .expected_timestep = 10000U}}},
|
||||
};
|
||||
const int HONDA_RX_CHECKS_LEN = sizeof(honda_rx_checks) / sizeof(honda_rx_checks[0]);
|
||||
|
||||
// Bosch harness has pt on bus 1
|
||||
AddrCheckStruct honda_bh_rx_checks[] = {
|
||||
{.addr = {0x296}, .bus = 1, .check_checksum = true, .max_counter = 3U, .expected_timestep = 40000U},
|
||||
{.addr = {0x158}, .bus = 1, .check_checksum = true, .max_counter = 3U, .expected_timestep = 10000U},
|
||||
{.addr = {0x17C}, .bus = 1, .check_checksum = true, .max_counter = 3U, .expected_timestep = 10000U},
|
||||
{.msg = {{0x296, 1, 4, .check_checksum = true, .max_counter = 3U, .expected_timestep = 40000U}}},
|
||||
{.msg = {{0x158, 1, 8, .check_checksum = true, .max_counter = 3U, .expected_timestep = 10000U}}},
|
||||
{.msg = {{0x17C, 1, 8, .check_checksum = true, .max_counter = 3U, .expected_timestep = 10000U}}},
|
||||
};
|
||||
const int HONDA_BH_RX_CHECKS_LEN = sizeof(honda_bh_rx_checks) / sizeof(honda_bh_rx_checks[0]);
|
||||
|
||||
const uint16_t HONDA_PARAM_ALT_BRAKE = 1;
|
||||
const uint16_t HONDA_PARAM_BOSCH_LONG = 2;
|
||||
|
||||
int honda_brake = 0;
|
||||
bool honda_alt_brake_msg = false;
|
||||
bool honda_fwd_brake = false;
|
||||
bool honda_bosch_long = false;
|
||||
enum {HONDA_N_HW, HONDA_BG_HW, HONDA_BH_HW} honda_hw = HONDA_N_HW;
|
||||
|
||||
|
||||
@@ -191,12 +201,16 @@ static int honda_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
int addr = GET_ADDR(to_send);
|
||||
int bus = GET_BUS(to_send);
|
||||
|
||||
if (honda_hw == HONDA_BG_HW) {
|
||||
tx = msg_allowed(addr, bus, HONDA_BG_TX_MSGS, sizeof(HONDA_BG_TX_MSGS)/sizeof(HONDA_BG_TX_MSGS[0]));
|
||||
} else if (honda_hw == HONDA_BH_HW) {
|
||||
tx = msg_allowed(addr, bus, HONDA_BH_TX_MSGS, sizeof(HONDA_BH_TX_MSGS)/sizeof(HONDA_BH_TX_MSGS[0]));
|
||||
if ((honda_hw == HONDA_BG_HW) && !honda_bosch_long) {
|
||||
tx = msg_allowed(to_send, HONDA_BG_TX_MSGS, sizeof(HONDA_BG_TX_MSGS)/sizeof(HONDA_BG_TX_MSGS[0]));
|
||||
} else if ((honda_hw == HONDA_BG_HW) && honda_bosch_long) {
|
||||
tx = msg_allowed(to_send, HONDA_BG_LONG_TX_MSGS, sizeof(HONDA_BG_LONG_TX_MSGS)/sizeof(HONDA_BG_LONG_TX_MSGS[0]));
|
||||
} else if ((honda_hw == HONDA_BH_HW) && !honda_bosch_long) {
|
||||
tx = msg_allowed(to_send, HONDA_BH_TX_MSGS, sizeof(HONDA_BH_TX_MSGS)/sizeof(HONDA_BH_TX_MSGS[0]));
|
||||
} else if ((honda_hw == HONDA_BH_HW) && honda_bosch_long) {
|
||||
tx = msg_allowed(to_send, HONDA_BH_LONG_TX_MSGS, sizeof(HONDA_BH_LONG_TX_MSGS)/sizeof(HONDA_BH_LONG_TX_MSGS[0]));
|
||||
} else {
|
||||
tx = msg_allowed(addr, bus, HONDA_N_TX_MSGS, sizeof(HONDA_N_TX_MSGS)/sizeof(HONDA_N_TX_MSGS[0]));
|
||||
tx = msg_allowed(to_send, HONDA_N_TX_MSGS, sizeof(HONDA_N_TX_MSGS)/sizeof(HONDA_N_TX_MSGS[0]));
|
||||
}
|
||||
|
||||
if (relay_malfunction) {
|
||||
@@ -211,9 +225,10 @@ static int honda_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
pedal_pressed = pedal_pressed || gas_pressed_prev || (gas_interceptor_prev > HONDA_GAS_INTERCEPTOR_THRESHOLD);
|
||||
}
|
||||
bool current_controls_allowed = controls_allowed && !(pedal_pressed);
|
||||
int bus_pt = (honda_hw == HONDA_BH_HW)? 1 : 0;
|
||||
|
||||
// BRAKE: safety check
|
||||
if ((addr == 0x1FA) && (bus == 0)) {
|
||||
// BRAKE: safety check (nidec)
|
||||
if ((addr == 0x1FA) && (bus == bus_pt)) {
|
||||
honda_brake = (GET_BYTE(to_send, 0) << 2) + ((GET_BYTE(to_send, 1) >> 6) & 0x3);
|
||||
if (!current_controls_allowed) {
|
||||
if (honda_brake != 0) {
|
||||
@@ -228,6 +243,31 @@ static int honda_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
}
|
||||
}
|
||||
|
||||
// BRAKE/GAS: safety check (bosch)
|
||||
if ((addr == 0x1DF) && (bus == bus_pt)) {
|
||||
int accel = (GET_BYTE(to_send, 3) << 3) | ((GET_BYTE(to_send, 4) >> 5) & 0x7);
|
||||
accel = to_signed(accel, 11);
|
||||
if (!current_controls_allowed) {
|
||||
if (accel != 0) {
|
||||
tx = 0;
|
||||
}
|
||||
}
|
||||
if (accel < HONDA_BOSCH_ACCEL_MIN) {
|
||||
tx = 0;
|
||||
}
|
||||
|
||||
int gas = (GET_BYTE(to_send, 0) << 8) | GET_BYTE(to_send, 1);
|
||||
gas = to_signed(gas, 16);
|
||||
if (!current_controls_allowed) {
|
||||
if (gas != HONDA_BOSCH_NO_GAS_VALUE) {
|
||||
tx = 0;
|
||||
}
|
||||
}
|
||||
if (gas > HONDA_BOSCH_GAS_MAX) {
|
||||
tx = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// STEER: safety check
|
||||
if ((addr == 0xE4) || (addr == 0x194)) {
|
||||
if (!current_controls_allowed) {
|
||||
@@ -245,7 +285,7 @@ static int honda_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
}
|
||||
}
|
||||
|
||||
// GAS: safety check
|
||||
// GAS: safety check (interceptor)
|
||||
if (addr == 0x200) {
|
||||
if (!current_controls_allowed) {
|
||||
if (GET_BYTE(to_send, 0) || GET_BYTE(to_send, 1)) {
|
||||
@@ -257,7 +297,6 @@ static int honda_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
// FORCE CANCEL: safety check only relevant when spamming the cancel button in Bosch HW
|
||||
// ensuring that only the cancel button press is sent (VAL 2) when controls are off.
|
||||
// This avoids unintended engagements while still allowing resume spam
|
||||
int bus_pt = (honda_hw == HONDA_BH_HW)? 1 : 0;
|
||||
if ((addr == 0x296) && !current_controls_allowed && (bus == bus_pt)) {
|
||||
if (((GET_BYTE(to_send, 0) >> 5) & 0x7) != 2) {
|
||||
tx = 0;
|
||||
@@ -275,6 +314,7 @@ static void honda_nidec_init(int16_t param) {
|
||||
gas_interceptor_detected = 0;
|
||||
honda_hw = HONDA_N_HW;
|
||||
honda_alt_brake_msg = false;
|
||||
honda_bosch_long = false;
|
||||
}
|
||||
|
||||
static void honda_bosch_giraffe_init(int16_t param) {
|
||||
@@ -282,7 +322,9 @@ static void honda_bosch_giraffe_init(int16_t param) {
|
||||
relay_malfunction_reset();
|
||||
honda_hw = HONDA_BG_HW;
|
||||
// Checking for alternate brake override from safety parameter
|
||||
honda_alt_brake_msg = (param == 1) ? true : false;
|
||||
honda_alt_brake_msg = GET_FLAG(param, HONDA_PARAM_ALT_BRAKE);
|
||||
// radar disabled so allow gas/brakes
|
||||
honda_bosch_long = GET_FLAG(param, HONDA_PARAM_BOSCH_LONG);
|
||||
}
|
||||
|
||||
static void honda_bosch_harness_init(int16_t param) {
|
||||
@@ -290,7 +332,9 @@ static void honda_bosch_harness_init(int16_t param) {
|
||||
relay_malfunction_reset();
|
||||
honda_hw = HONDA_BH_HW;
|
||||
// Checking for alternate brake override from safety parameter
|
||||
honda_alt_brake_msg = (param == 1) ? true : false;
|
||||
honda_alt_brake_msg = GET_FLAG(param, HONDA_PARAM_ALT_BRAKE);
|
||||
// radar disabled so allow gas/brakes
|
||||
honda_bosch_long = GET_FLAG(param, HONDA_PARAM_BOSCH_LONG);
|
||||
}
|
||||
|
||||
static int honda_nidec_fwd_hook(int bus_num, CAN_FIFOMailBox_TypeDef *to_fwd) {
|
||||
|
||||
@@ -6,15 +6,28 @@ const int HYUNDAI_MAX_RATE_DOWN = 7;
|
||||
const int HYUNDAI_DRIVER_TORQUE_ALLOWANCE = 50;
|
||||
const int HYUNDAI_DRIVER_TORQUE_FACTOR = 2;
|
||||
const int HYUNDAI_STANDSTILL_THRSLD = 30; // ~1kph
|
||||
const AddrBus HYUNDAI_TX_MSGS[] = {{832, 0}, {1265, 0}, {1157, 0}};
|
||||
const CanMsg HYUNDAI_TX_MSGS[] = {
|
||||
{832, 0, 8}, // LKAS11 Bus 0
|
||||
{1265, 0, 4}, // CLU11 Bus 0
|
||||
{1157, 0, 4}, // LFAHDA_MFC Bus 0
|
||||
// {1056, 0, 8}, // SCC11, Bus 0
|
||||
// {1057, 0, 8}, // SCC12, Bus 0
|
||||
// {1290, 0, 8}, // SCC13, Bus 0
|
||||
// {905, 0, 8}, // SCC14, Bus 0
|
||||
// {1186, 0, 8} // 4a2SCC, Bus 0
|
||||
};
|
||||
|
||||
// TODO: do checksum checks
|
||||
// TODO: missing checksum for wheel speeds message,worst failure case is
|
||||
// wheel speeds stuck at 0 and we don't disengage on brake press
|
||||
// TODO: refactor addr check to cleanly re-enable commented out checks for cars that have them
|
||||
AddrCheckStruct hyundai_rx_checks[] = {
|
||||
{.addr = {608}, .bus = 0, .max_counter = 3U, .expected_timestep = 10000U},
|
||||
{.addr = {897}, .bus = 0, .max_counter = 255U, .expected_timestep = 10000U},
|
||||
{.addr = {902}, .bus = 0, .max_counter = 3U, .expected_timestep = 10000U},
|
||||
{.addr = {916}, .bus = 0, .max_counter = 7U, .expected_timestep = 10000U},
|
||||
{.addr = {1057}, .bus = 0, .max_counter = 15U, .expected_timestep = 20000U},
|
||||
{.msg = {{608, 0, 8, .check_checksum = true, .max_counter = 3U, .expected_timestep = 10000U}}},
|
||||
// TODO: older hyundai models don't populate the counter bits in 902
|
||||
//{.msg = {{902, 0, 8, .max_counter = 15U, .expected_timestep = 10000U}}},
|
||||
{.msg = {{902, 0, 8, .max_counter = 0U, .expected_timestep = 10000U}}},
|
||||
//{.msg = {{916, 0, 8, .check_checksum = true, .max_counter = 7U, .expected_timestep = 10000U}}},
|
||||
{.msg = {{916, 0, 8, .check_checksum = false, .max_counter = 0U, .expected_timestep = 10000U}}},
|
||||
{.msg = {{1057, 0, 8, .check_checksum = true, .max_counter = 15U, .expected_timestep = 20000U}}},
|
||||
};
|
||||
const int HYUNDAI_RX_CHECK_LEN = sizeof(hyundai_rx_checks) / sizeof(hyundai_rx_checks[0]);
|
||||
|
||||
@@ -24,10 +37,8 @@ static uint8_t hyundai_get_counter(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
uint8_t cnt;
|
||||
if (addr == 608) {
|
||||
cnt = (GET_BYTE(to_push, 7) >> 4) & 0x3;
|
||||
} else if (addr == 897) {
|
||||
cnt = GET_BYTE(to_push, 5);
|
||||
} else if (addr == 902) {
|
||||
cnt = (GET_BYTE(to_push, 1) >> 6) & 0x3;
|
||||
cnt = ((GET_BYTE(to_push, 3) >> 6) << 2) | (GET_BYTE(to_push, 1) >> 6);
|
||||
} else if (addr == 916) {
|
||||
cnt = (GET_BYTE(to_push, 1) >> 5) & 0x7;
|
||||
} else if (addr == 1057) {
|
||||
@@ -38,10 +49,42 @@ static uint8_t hyundai_get_counter(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
return cnt;
|
||||
}
|
||||
|
||||
static uint8_t hyundai_get_checksum(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
int addr = GET_ADDR(to_push);
|
||||
|
||||
uint8_t chksum;
|
||||
if (addr == 608) {
|
||||
chksum = GET_BYTE(to_push, 7) & 0xF;
|
||||
} else if (addr == 916) {
|
||||
chksum = GET_BYTE(to_push, 6) & 0xF;
|
||||
} else if (addr == 1057) {
|
||||
chksum = GET_BYTE(to_push, 7) >> 4;
|
||||
} else {
|
||||
chksum = 0;
|
||||
}
|
||||
return chksum;
|
||||
}
|
||||
|
||||
static uint8_t hyundai_compute_checksum(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
int addr = GET_ADDR(to_push);
|
||||
|
||||
uint8_t chksum = 0;
|
||||
// same algorithm, but checksum is in a different place
|
||||
for (int i = 0; i < 8; i++) {
|
||||
uint8_t b = GET_BYTE(to_push, i);
|
||||
if (((addr == 608) && (i == 7)) || ((addr == 916) && (i == 6)) || ((addr == 1057) && (i == 7))) {
|
||||
b &= (addr == 1057) ? 0x0FU : 0xF0U; // remove checksum
|
||||
}
|
||||
chksum += (b % 16U) + (b / 16U);
|
||||
}
|
||||
return (16U - (chksum % 16U)) % 16U;
|
||||
}
|
||||
|
||||
static int hyundai_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
|
||||
bool valid = addr_safety_check(to_push, hyundai_rx_checks, HYUNDAI_RX_CHECK_LEN,
|
||||
NULL, NULL, hyundai_get_counter);
|
||||
hyundai_get_checksum, hyundai_compute_checksum,
|
||||
hyundai_get_counter);
|
||||
|
||||
bool unsafe_allow_gas = unsafe_mode & UNSAFE_DISABLE_DISENGAGE_ON_GAS;
|
||||
|
||||
@@ -106,9 +149,8 @@ static int hyundai_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
|
||||
int tx = 1;
|
||||
int addr = GET_ADDR(to_send);
|
||||
int bus = GET_BUS(to_send);
|
||||
|
||||
if (!msg_allowed(addr, bus, HYUNDAI_TX_MSGS, sizeof(HYUNDAI_TX_MSGS)/sizeof(HYUNDAI_TX_MSGS[0]))) {
|
||||
if (!msg_allowed(to_send, HYUNDAI_TX_MSGS, sizeof(HYUNDAI_TX_MSGS)/sizeof(HYUNDAI_TX_MSGS[0]))) {
|
||||
tx = 0;
|
||||
}
|
||||
|
||||
@@ -192,7 +234,6 @@ static int hyundai_fwd_hook(int bus_num, CAN_FIFOMailBox_TypeDef *to_fwd) {
|
||||
return bus_fwd;
|
||||
}
|
||||
|
||||
|
||||
const safety_hooks hyundai_hooks = {
|
||||
.init = nooutput_init,
|
||||
.rx = hyundai_rx_hook,
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
|
||||
// CAN msgs we care about
|
||||
#define MAZDA_LKAS 0x243
|
||||
#define MAZDA_LANEINFO 0x440
|
||||
#define MAZDA_CRZ_CTRL 0x21c
|
||||
#define MAZDA_WHEEL_SPEED 0x215
|
||||
#define MAZDA_STEER_TORQUE 0x240
|
||||
#define MAZDA_LKAS 0x243
|
||||
#define MAZDA_CRZ_CTRL 0x21c
|
||||
#define MAZDA_CRZ_BTNS 0x09d
|
||||
#define MAZDA_STEER_TORQUE 0x240
|
||||
#define MAZDA_ENGINE_DATA 0x202
|
||||
#define MAZDA_PEDALS 0x165
|
||||
|
||||
// CAN bus numbers
|
||||
#define MAZDA_MAIN 0
|
||||
@@ -21,43 +21,102 @@
|
||||
#define MAZDA_MAX_RATE_DOWN 25
|
||||
#define MAZDA_DRIVER_TORQUE_ALLOWANCE 15
|
||||
#define MAZDA_DRIVER_TORQUE_FACTOR 1
|
||||
#define MAZDA_MAX_TORQUE_ERROR 350
|
||||
|
||||
int mazda_cruise_engaged_last = 0;
|
||||
int mazda_rt_torque_last = 0;
|
||||
int mazda_desired_torque_last = 0;
|
||||
uint32_t mazda_ts_last = 0;
|
||||
struct sample_t mazda_torque_driver; // last few driver torques measured
|
||||
// lkas enable speed 52kph, disable at 45kph
|
||||
#define MAZDA_LKAS_ENABLE_SPEED 5200
|
||||
#define MAZDA_LKAS_DISABLE_SPEED 4500
|
||||
|
||||
const CanMsg MAZDA_TX_MSGS[] = {{MAZDA_LKAS, 0, 8}, {MAZDA_CRZ_BTNS, 0, 8}};
|
||||
bool mazda_lkas_allowed = false;
|
||||
|
||||
AddrCheckStruct mazda_rx_checks[] = {
|
||||
{.msg = {{MAZDA_CRZ_CTRL, 0, 8, .expected_timestep = 20000U}}},
|
||||
{.msg = {{MAZDA_CRZ_BTNS, 0, 8, .expected_timestep = 100000U}}},
|
||||
{.msg = {{MAZDA_STEER_TORQUE, 0, 8, .expected_timestep = 12000U}}},
|
||||
{.msg = {{MAZDA_ENGINE_DATA, 0, 8, .expected_timestep = 10000U}}},
|
||||
{.msg = {{MAZDA_PEDALS, 0, 8, .expected_timestep = 20000U}}},
|
||||
};
|
||||
const int MAZDA_RX_CHECKS_LEN = sizeof(mazda_rx_checks) / sizeof(mazda_rx_checks[0]);
|
||||
|
||||
// track msgs coming from OP so that we know what CAM msgs to drop and what to forward
|
||||
static int mazda_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
int bus = GET_BUS(to_push);
|
||||
int addr = GET_ADDR(to_push);
|
||||
bool valid;
|
||||
|
||||
if ((addr == MAZDA_STEER_TORQUE) && (bus == MAZDA_MAIN)) {
|
||||
int torque_driver_new = GET_BYTE(to_push, 0) - 127;
|
||||
// update array of samples
|
||||
update_sample(&mazda_torque_driver, torque_driver_new);
|
||||
}
|
||||
valid = addr_safety_check(to_push, mazda_rx_checks, MAZDA_RX_CHECKS_LEN,
|
||||
NULL, NULL, NULL);
|
||||
if (valid) {
|
||||
int bus = GET_BUS(to_push);
|
||||
int addr = GET_ADDR(to_push);
|
||||
|
||||
// enter controls on rising edge of ACC, exit controls on ACC off
|
||||
if ((addr == MAZDA_CRZ_CTRL) && (bus == MAZDA_MAIN)) {
|
||||
int cruise_engaged = GET_BYTE(to_push, 0) & 8;
|
||||
if (cruise_engaged != 0) {
|
||||
if (!mazda_cruise_engaged_last) {
|
||||
controls_allowed = 1;
|
||||
if (bus == MAZDA_MAIN) {
|
||||
|
||||
if (addr == MAZDA_ENGINE_DATA) {
|
||||
// sample speed: scale by 0.01 to get kph
|
||||
int speed = (GET_BYTE(to_push, 2) << 8) | GET_BYTE(to_push, 3);
|
||||
|
||||
vehicle_moving = speed > 10; // moving when speed > 0.1 kph
|
||||
|
||||
// Enable LKAS at 52kph going up, disable at 45kph going down
|
||||
if (speed > MAZDA_LKAS_ENABLE_SPEED) {
|
||||
mazda_lkas_allowed = true;
|
||||
} else if (speed < MAZDA_LKAS_DISABLE_SPEED) {
|
||||
mazda_lkas_allowed = false;
|
||||
} else {
|
||||
// Misra-able appeasment block!
|
||||
}
|
||||
}
|
||||
|
||||
if (addr == MAZDA_STEER_TORQUE) {
|
||||
int torque_driver_new = GET_BYTE(to_push, 0) - 127;
|
||||
// update array of samples
|
||||
update_sample(&torque_driver, torque_driver_new);
|
||||
}
|
||||
|
||||
// enter controls on rising edge of ACC, exit controls on ACC off
|
||||
if (addr == MAZDA_CRZ_CTRL) {
|
||||
bool cruise_engaged = GET_BYTE(to_push, 0) & 8;
|
||||
if (cruise_engaged) {
|
||||
if (!cruise_engaged_prev) {
|
||||
// do not engage until we hit the speed at which lkas is on
|
||||
if (mazda_lkas_allowed) {
|
||||
controls_allowed = 1;
|
||||
} else {
|
||||
controls_allowed = 0;
|
||||
cruise_engaged = false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
controls_allowed = 0;
|
||||
}
|
||||
cruise_engaged_prev = cruise_engaged;
|
||||
}
|
||||
|
||||
// Exit controls on rising edge of gas press
|
||||
if (addr == MAZDA_ENGINE_DATA) {
|
||||
bool gas_pressed = (GET_BYTE(to_push, 4) || (GET_BYTE(to_push, 5) & 0xF0));
|
||||
if (gas_pressed && !gas_pressed_prev && !(unsafe_mode & UNSAFE_DISABLE_DISENGAGE_ON_GAS)) {
|
||||
controls_allowed = 0;
|
||||
}
|
||||
gas_pressed_prev = gas_pressed;
|
||||
}
|
||||
|
||||
// Exit controls on rising edge of brake press
|
||||
if (addr == MAZDA_PEDALS) {
|
||||
bool brake_pressed = (GET_BYTE(to_push, 0) & 0x10);
|
||||
if (brake_pressed && (!brake_pressed_prev || vehicle_moving)) {
|
||||
controls_allowed = 0;
|
||||
}
|
||||
brake_pressed_prev = brake_pressed;
|
||||
}
|
||||
|
||||
// if we see lkas msg on MAZDA_MAIN bus then relay is closed
|
||||
if ((safety_mode_cnt > RELAY_TRNS_TIMEOUT) && (addr == MAZDA_LKAS)) {
|
||||
relay_malfunction_set();
|
||||
}
|
||||
}
|
||||
else {
|
||||
controls_allowed = 0;
|
||||
}
|
||||
mazda_cruise_engaged_last = cruise_engaged;
|
||||
}
|
||||
|
||||
// if we see wheel speed msgs on MAZDA_CAM bus then relay is closed
|
||||
if ((safety_mode_cnt > RELAY_TRNS_TIMEOUT) && (bus == MAZDA_CAM) && (addr == MAZDA_WHEEL_SPEED)) {
|
||||
relay_malfunction_set();
|
||||
}
|
||||
return 1;
|
||||
return valid;
|
||||
}
|
||||
|
||||
static int mazda_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
@@ -65,12 +124,17 @@ static int mazda_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
int addr = GET_ADDR(to_send);
|
||||
int bus = GET_BUS(to_send);
|
||||
|
||||
if (!msg_allowed(to_send, MAZDA_TX_MSGS, sizeof(MAZDA_TX_MSGS)/sizeof(MAZDA_TX_MSGS[0]))) {
|
||||
tx = 0;
|
||||
}
|
||||
|
||||
if (relay_malfunction) {
|
||||
tx = 0;
|
||||
}
|
||||
|
||||
// Check if msg is sent on the main BUS
|
||||
if (bus == MAZDA_MAIN) {
|
||||
|
||||
// steer cmd checks
|
||||
if (addr == MAZDA_LKAS) {
|
||||
int desired_torque = (((GET_BYTE(to_send, 0) & 0x0f) << 8) | GET_BYTE(to_send, 1)) - MAZDA_MAX_STEER;
|
||||
@@ -83,20 +147,21 @@ static int mazda_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
violation |= max_limit_check(desired_torque, MAZDA_MAX_STEER, -MAZDA_MAX_STEER);
|
||||
|
||||
// *** torque rate limit check ***
|
||||
violation |= driver_limit_check(desired_torque, mazda_desired_torque_last, &mazda_torque_driver,
|
||||
violation |= driver_limit_check(desired_torque, desired_torque_last, &torque_driver,
|
||||
MAZDA_MAX_STEER, MAZDA_MAX_RATE_UP, MAZDA_MAX_RATE_DOWN,
|
||||
MAZDA_DRIVER_TORQUE_ALLOWANCE, MAZDA_DRIVER_TORQUE_FACTOR);
|
||||
|
||||
// used next time
|
||||
mazda_desired_torque_last = desired_torque;
|
||||
desired_torque_last = desired_torque;
|
||||
|
||||
// *** torque real time rate limit check ***
|
||||
violation |= rt_rate_limit_check(desired_torque, mazda_rt_torque_last, MAZDA_MAX_RT_DELTA);
|
||||
violation |= rt_rate_limit_check(desired_torque, rt_torque_last, MAZDA_MAX_RT_DELTA);
|
||||
|
||||
// every RT_INTERVAL set the new limits
|
||||
uint32_t ts_elapsed = get_ts_elapsed(ts, mazda_ts_last);
|
||||
uint32_t ts_elapsed = get_ts_elapsed(ts, ts_last);
|
||||
if (ts_elapsed > ((uint32_t) MAZDA_RT_INTERVAL)) {
|
||||
mazda_rt_torque_last = desired_torque;
|
||||
mazda_ts_last = ts;
|
||||
rt_torque_last = desired_torque;
|
||||
ts_last = ts;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,9 +172,9 @@ static int mazda_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
|
||||
// reset to 0 if either controls is not allowed or there's a violation
|
||||
if (violation || !controls_allowed) {
|
||||
mazda_desired_torque_last = 0;
|
||||
mazda_rt_torque_last = 0;
|
||||
mazda_ts_last = ts;
|
||||
desired_torque_last = 0;
|
||||
rt_torque_last = 0;
|
||||
ts_last = ts;
|
||||
}
|
||||
|
||||
if (violation) {
|
||||
@@ -126,24 +191,30 @@ static int mazda_fwd_hook(int bus, CAN_FIFOMailBox_TypeDef *to_fwd) {
|
||||
int addr = GET_ADDR(to_fwd);
|
||||
if (bus == MAZDA_MAIN) {
|
||||
bus_fwd = MAZDA_CAM;
|
||||
}
|
||||
else if (bus == MAZDA_CAM) {
|
||||
} else if (bus == MAZDA_CAM) {
|
||||
if (!(addr == MAZDA_LKAS)) {
|
||||
bus_fwd = MAZDA_MAIN;
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
bus_fwd = -1;
|
||||
}
|
||||
}
|
||||
return bus_fwd;
|
||||
}
|
||||
|
||||
static void mazda_init(int16_t param) {
|
||||
UNUSED(param);
|
||||
controls_allowed = false;
|
||||
relay_malfunction_reset();
|
||||
mazda_lkas_allowed = false;
|
||||
}
|
||||
|
||||
const safety_hooks mazda_hooks = {
|
||||
.init = nooutput_init,
|
||||
.init = mazda_init,
|
||||
.rx = mazda_rx_hook,
|
||||
.tx = mazda_tx_hook,
|
||||
.tx_lin = nooutput_tx_lin_hook,
|
||||
.fwd = mazda_fwd_hook,
|
||||
// TODO: add addr safety checks
|
||||
.addr_check = mazda_rx_checks,
|
||||
.addr_check_len = sizeof(mazda_rx_checks) / sizeof(mazda_rx_checks[0]),
|
||||
};
|
||||
|
||||
@@ -11,24 +11,19 @@ const struct lookup_t NISSAN_LOOKUP_ANGLE_RATE_DOWN = {
|
||||
|
||||
const int NISSAN_DEG_TO_CAN = 100;
|
||||
|
||||
const AddrBus NISSAN_TX_MSGS[] = {{0x169, 0}, {0x2b1, 0}, {0x4cc, 0}, {0x20b, 2}, {0x280, 2}};
|
||||
const CanMsg NISSAN_TX_MSGS[] = {{0x169, 0, 8}, {0x2b1, 0, 8}, {0x4cc, 0, 8}, {0x20b, 2, 6}, {0x280, 2, 8}};
|
||||
|
||||
AddrCheckStruct nissan_rx_checks[] = {
|
||||
{.addr = {0x2}, .bus = 0, .expected_timestep = 10000U}, // STEER_ANGLE_SENSOR (100Hz)
|
||||
{.addr = {0x285}, .bus = 0, .expected_timestep = 20000U}, // WHEEL_SPEEDS_REAR (50Hz)
|
||||
{.addr = {0x30f}, .bus = 2, .expected_timestep = 100000U}, // CRUISE_STATE (10Hz)
|
||||
{.addr = {0x15c, 0x239}, .bus = 0, .expected_timestep = 20000U}, // GAS_PEDAL (100Hz / 50Hz)
|
||||
{.addr = {0x454, 0x1cc}, .bus = 0, .expected_timestep = 100000U}, // DOORS_LIGHTS (10Hz) / BRAKE (100Hz)
|
||||
{.msg = {{0x2, 0, 5, .expected_timestep = 10000U}}}, // STEER_ANGLE_SENSOR (100Hz)
|
||||
{.msg = {{0x285, 0, 8, .expected_timestep = 20000U}}}, // WHEEL_SPEEDS_REAR (50Hz)
|
||||
{.msg = {{0x30f, 2, 3, .expected_timestep = 100000U}}}, // CRUISE_STATE (10Hz)
|
||||
{.msg = {{0x15c, 0, 8, .expected_timestep = 20000U},
|
||||
{0x239, 0, 8, .expected_timestep = 20000U}}}, // GAS_PEDAL (100Hz / 50Hz)
|
||||
{.msg = {{0x454, 0, 8, .expected_timestep = 100000U},
|
||||
{0x1cc, 0, 4, .expected_timestep = 10000U}}}, // DOORS_LIGHTS (10Hz) / BRAKE (100Hz)
|
||||
};
|
||||
const int NISSAN_RX_CHECK_LEN = sizeof(nissan_rx_checks) / sizeof(nissan_rx_checks[0]);
|
||||
|
||||
float nissan_speed = 0;
|
||||
//int nissan_controls_allowed_last = 0;
|
||||
uint32_t nissan_ts_angle_last = 0;
|
||||
int nissan_desired_angle_last = 0;
|
||||
|
||||
struct sample_t nissan_angle_meas; // last 3 steer angles
|
||||
|
||||
|
||||
static int nissan_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
|
||||
@@ -50,14 +45,14 @@ static int nissan_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
angle_meas_new = to_signed(angle_meas_new, 16) * 10;
|
||||
|
||||
// update array of samples
|
||||
update_sample(&nissan_angle_meas, angle_meas_new);
|
||||
update_sample(&angle_meas, angle_meas_new);
|
||||
}
|
||||
|
||||
if (addr == 0x285) {
|
||||
// Get current speed
|
||||
// Factor 0.005
|
||||
nissan_speed = ((GET_BYTE(to_push, 2) << 8) | (GET_BYTE(to_push, 3))) * 0.005 / 3.6;
|
||||
vehicle_moving = nissan_speed > 0.;
|
||||
vehicle_speed = ((GET_BYTE(to_push, 2) << 8) | (GET_BYTE(to_push, 3))) * 0.005 / 3.6;
|
||||
vehicle_moving = vehicle_speed > 0.;
|
||||
}
|
||||
|
||||
// exit controls on rising edge of gas press
|
||||
@@ -119,10 +114,9 @@ static int nissan_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
static int nissan_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
int tx = 1;
|
||||
int addr = GET_ADDR(to_send);
|
||||
int bus = GET_BUS(to_send);
|
||||
bool violation = 0;
|
||||
|
||||
if (!msg_allowed(addr, bus, NISSAN_TX_MSGS, sizeof(NISSAN_TX_MSGS) / sizeof(NISSAN_TX_MSGS[0]))) {
|
||||
if (!msg_allowed(to_send, NISSAN_TX_MSGS, sizeof(NISSAN_TX_MSGS) / sizeof(NISSAN_TX_MSGS[0]))) {
|
||||
tx = 0;
|
||||
}
|
||||
|
||||
@@ -141,24 +135,22 @@ static int nissan_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
if (controls_allowed && lka_active) {
|
||||
// add 1 to not false trigger the violation
|
||||
float delta_angle_float;
|
||||
delta_angle_float = (interpolate(NISSAN_LOOKUP_ANGLE_RATE_UP, nissan_speed) * NISSAN_DEG_TO_CAN) + 1.;
|
||||
delta_angle_float = (interpolate(NISSAN_LOOKUP_ANGLE_RATE_UP, vehicle_speed) * NISSAN_DEG_TO_CAN) + 1.;
|
||||
int delta_angle_up = (int)(delta_angle_float);
|
||||
delta_angle_float = (interpolate(NISSAN_LOOKUP_ANGLE_RATE_DOWN, nissan_speed) * NISSAN_DEG_TO_CAN) + 1.;
|
||||
delta_angle_float = (interpolate(NISSAN_LOOKUP_ANGLE_RATE_DOWN, vehicle_speed) * NISSAN_DEG_TO_CAN) + 1.;
|
||||
int delta_angle_down = (int)(delta_angle_float);
|
||||
int highest_desired_angle = nissan_desired_angle_last + ((nissan_desired_angle_last > 0) ? delta_angle_up : delta_angle_down);
|
||||
int lowest_desired_angle = nissan_desired_angle_last - ((nissan_desired_angle_last >= 0) ? delta_angle_down : delta_angle_up);
|
||||
int highest_desired_angle = desired_angle_last + ((desired_angle_last > 0) ? delta_angle_up : delta_angle_down);
|
||||
int lowest_desired_angle = desired_angle_last - ((desired_angle_last >= 0) ? delta_angle_down : delta_angle_up);
|
||||
|
||||
// check for violation;
|
||||
violation |= max_limit_check(desired_angle, highest_desired_angle, lowest_desired_angle);
|
||||
|
||||
//nissan_controls_allowed_last = controls_allowed;
|
||||
}
|
||||
nissan_desired_angle_last = desired_angle;
|
||||
desired_angle_last = desired_angle;
|
||||
|
||||
// desired steer angle should be the same as steer angle measured when controls are off
|
||||
if ((!controls_allowed) &&
|
||||
((desired_angle < (nissan_angle_meas.min - 1)) ||
|
||||
(desired_angle > (nissan_angle_meas.max + 1)))) {
|
||||
((desired_angle < (angle_meas.min - 1)) ||
|
||||
(desired_angle > (angle_meas.max + 1)))) {
|
||||
violation = 1;
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user