-
Contribution by @DePierre (Tao Sauvage)
Bugs fixed:
Features:
- mod_stat fixes
- CANBusTriple change: now you need provide in 'bus' parameter to which BUS of CBT you want to work (read/write). It gives more flexibility
- Inspired by @_db5 and his cool vircar I have decide to create an analog but on CANToolz engine. Now you can emulate a car. You build car from ECU modules and CONTROL modules. ECU modules could be connected via virtual CAN Switch. see example car_config.py. So it is really flexible and abstract CAR emulator - you can write new ECU/Sensors/Controls and connect them like you want to emulate whole car!
- mod_stat cosmetic fix: Experimental function "detect changes" now return float for some values
- replay real timestamp added
- replay lib added as standard way to work with queue of messages and dump format
- relative timestamp support has been added!
- mod_stat - ECU status changes: feature to detect STATUS changes of ECU that can correlate to some event (door was open, now it is closed and etc)
- gen_ping - UDS mode: service scan added, based on value, list or range.
- gen_ping - UDS mode: sub-commands scan added, based on value, list or range.
- mod_stat - fields enumeration: this simple feature trying to detect CAN FRAME structure and extract fields
- mod_stat - META-DATA feature added: now we can describe fields by bits
- START/STOP now working right... sorry ;)
- USBtin bugs fixed... sorry ;)
- engine do_stop race-condition fixed... sorry :-)
- USBTin bug with restart fixed... sorry :-)
- lib module: cmd now can be any string, not just 1 byte
- CAN MIDI music R&D example added: Specil for PHDays forum! Done by Hardware Village crew!
- setup file added
- simple_io module added
- Exit supported, USBtin/CANBusTriple on exit - closing COM port
- mod_firewall, now body can be filtered not by list but by HEX ASCII also, more user-friendly
- ecu_controls module added, now you can configure ECU control and monitoring (regex now). Very useful as API 8)
- cmd parametrisation changed a bit
- mod_firewall can filter on BUS values!
- by default all gen_* classes uses it's own BUS value (if not set then module name as BUS used)
- UDS lib and mod_stat has been improved, now less error on detection and more info on requests!
- UDS lib FIX: wrong error code interpretation..
- mod_stat feature: Print/Dump diff now have additional parameter - limit on uniq values. This will help a lot! Now you can do diff and exclude all 'noisy' frames
- mod_stat feature: search by ID
- mod_stat refactoring: now we can support multi-buffers for sniffing and diff
- USBtin can be emulated/used via loop://
- mod_stat UDS analyzer now supports PADDING in CAN Frames
- UDS lib now support padding
- EXPERIMENTAL: mod_stat can calculate needed delay for gen_ping/gen_replay/gen_fuzz modules
- Ported to Python 3.4 (Python 2.7 not supported)
- hw_CANSocket added: support of linux CAN Socket
- Anton's request: USBTin - change speed to local USBTin restart if USBtin was active
- mod_stat: support meta input ID as hex value
- mod_stat: print values in hex
- mod_replay: can read replay format where ID is hex
- gen_* modules: can work in serial mode - will inject frames in "free" holes in the main loop.
- mod_stat feature: description now not only by ID but by ASCII HEX regex!
- mod_stat DIFF feature: now we can detect CAN frames by known amount of execution
- mod_stat feature REMOVED: index-byte meta ... really do not see it useful for now
- hw_USBtin fix: direct name/path to serial port now should work
- hw_CANBusTriple fix: when direct name/path to serial port used, do checking if device is there
- hw_USBtin fix - bug with writing 29bits ID... very bad bug. Sorry 8)
- mod_stat: added dump diff to replay format...
- fixed lib FRAG crash on 0 size frames...
- new web design/logo (thx my wife Sevtalana Sintcova!)
- mod_stat diff mode added: now we can compare "new" traffic and "old" to fins new ID/frames -- details: http://asintsov.blogspot.de/2016/04/cantoolz-modstat-diff-mode.html
- now commands can be disabled (in Diff mod of mod_stat you can't use some commands)
- USBTin default bitrates calc added. Any speed/rate supported! (forgot that rate can be float... now it is fixed)
- USBTin default bitrates calc added. Any speed/rate supported!
- USBTin default bitrates added to the list
- CAN module change: now we do not store additional raw data. We have saved up to 50% memory! But now "write" operation a little bit longer...
- BUS name as any string now (except CBT, should be num 1, 2 or 3)
- mod_ping/ gen_replay - delay added. This could be helpful when USBtin is overflowed with "write requests"
- WEB API: Status bar added
- FrontEnd status bar done
- FrontEnd fix: now parameters and options showing actual status (by Sergey Kononenko)
- libs/module.py workaround feature added: Now we can get current status of the module. This is needed because you need to know when ping/fuzz finished. Later we will think about proper status-bar
- mod_stat design change: now Analysis function is parametrized, if you do not want to see all output
- gen_ping fix: uds scan for non sub-commands fixed, new subbcomands added
- example uds_scan changed
- WEB interface fix: dependences from Intrnet connection (d3 external web)
- mod_stat fix: table print format
- mod_stat feature added: ASCII detection (print ASCII if found in the traffic)
- mod_stat feature added: Marking CAN frames via metafile/metadata (COMMENTS for ID)
- mod_stat feature added: Marking control bytes via metafile/metada to re-assemble fragmented frames
- mod_stat feature added: experimental chain detection (re-assemble fragmented frames that are sent in LOOP)
- mod_stat fix: UDS/ISO tp detection bug fixed (when you scan more)
- mod_stat change: now it stores ALL packets, not just table, and save in REPLAY save all these frames (WARNINING: Now this module stores all frames, which can affect memory and speed. Let's see how it works...)
- mod_stat feature removed: alert feature removed
- mod_stat fixes: better output, simple dump functions
- Fixed mod_stat analysis option bug, when CAN Frame has 1 byte size
- Default sniff config added
First Beta