A CAN bus J1939 controller simulator.
- Integrates with all hardware CAN interfaces supported by python-can.
- Transmits configured J1939 PGNs to the CAN bus with the following methods:
- continuous tx of all PGNs
- all PGNs transmitted once on button press
- per PGN transmission, either continuous or on button press
- GUI for setting SPN values:
- sliders for changing continuous values
- label selection for discrete values
- direct entry of raw decimal values
- direct entry of decoded decimal values
Python 3.11 (64-bit) or higher is required.
pip install akrocansim
- A hardware CAN interface supported by python-can, see https://python-can.readthedocs.io/en/v4.3.1/interfaces.html.
- A version of J1939 Digital Annex (J1939DA) from SAE International, see https://www.sae.org/standards/?search=j1939DA.
- A way to convert
.xls
to.xlsx
if your copy of the J1939DA is in.xls
format.
python -m akrocansim
Upon initial run, a folder named akrocansim
is created in your home folder hosting a starting configuration file.
Follow the instructions on the application and in the configuration file for next steps.
Upon successful parsing of the J1939DA, a series of json files are created in the J1939
sub-folder inside the main configuration folder.
These can be inspected to evaluate parsing correctness.
The J1939DA PGN and SPN definition format is very irregular and parsing errors still exist. You can raise a GitHub issue or a pull request if you think that an SPN has not been parsed correctly.