odxtools 6.4.3__py3-none-any.whl → 6.5.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odxtools
3
- Version: 6.4.3
3
+ Version: 6.5.0
4
4
  Summary: Utilities to work with the ODX standard for automotive diagnostics
5
5
  Author-email: Katrin Bauer <katrin.bauer@mbition.io>, Andreas Lauser <andreas.lauser@mbition.io>, Ayoub Kaanich <kayoub5@live.com>
6
6
  Maintainer-email: Andreas Lauser <andreas.lauser@mbition.io>, Ayoub Kaanich <kayoub5@live.com>
@@ -29,6 +29,8 @@ Requires-Dist: python-can >=4.2
29
29
  Requires-Dist: markdownify >=0.11
30
30
  Requires-Dist: deprecation >=2.1
31
31
  Requires-Dist: packaging
32
+ Requires-Dist: tabulate >=0.9.0
33
+ Requires-Dist: rich >=13.7.0
32
34
  Provides-Extra: all
33
35
  Requires-Dist: odxtools[browse-tool,examples,test] ; extra == 'all'
34
36
  Provides-Extra: browse-tool
@@ -37,6 +39,7 @@ Provides-Extra: examples
37
39
  Requires-Dist: can-isotp >=1.9 ; extra == 'examples'
38
40
  Provides-Extra: test
39
41
  Requires-Dist: mypy >=1.5 ; extra == 'test'
42
+ Requires-Dist: types-tabulate >=0.9.0.3 ; extra == 'test'
40
43
  Requires-Dist: ruff >=0.0.290 ; extra == 'test'
41
44
  Requires-Dist: pytest >=7.4 ; extra == 'test'
42
45
  Requires-Dist: coverage >=7.3 ; extra == 'test'
@@ -96,6 +99,7 @@ send to/received from ECUs in an pythonic manner.
96
99
  - [The `snoop` subcommand](#the-snoop-subcommand)
97
100
  - [The `find` subcommand](#the-find-subcommand)
98
101
  - [The `decode` subcommand](#the-decode-subcommand)
102
+ - [The `compare` subcommand](#the-compare-subcommand)
99
103
  - [Testing](#testing)
100
104
  - [Contributing](#contributing)
101
105
  - [Code of Conduct](#code-of-conduct)
@@ -320,7 +324,7 @@ using `odxtools --help`:
320
324
 
321
325
  ```bash
322
326
  $ odxtools --help
323
- usage: odxtools [-h] [--version] {list,browse,snoop,find} ...
327
+ usage: odxtools [-h] [--version] {list,browse,snoop,find,decode,compare} ...
324
328
 
325
329
  Utilities to interact with automotive diagnostic descriptions based on the ODX standard.
326
330
 
@@ -331,13 +335,14 @@ Examples:
331
335
  odxtools browse ./path/to/database.pdx
332
336
 
333
337
  positional arguments:
334
- {list,browse,snoop,find}
338
+ {list,browse,snoop,find,decode,compare}
335
339
  Select a sub command
336
340
  list Print a summary of automotive diagnostic files.
337
341
  browse Interactively browse the content of automotive diagnostic files.
338
342
  snoop Live decoding of a diagnostic session.
339
343
  find Find & display services by their name
340
- decode Decode hex-data to service-name & optionally its parameters
344
+ decode Find & print service by hex-data. Can also decode the hex-data to its named parameters.
345
+ compare Compares two ecu versions or databases with each other. Checks whether diagnostic services and its parameters have changed.
341
346
 
342
347
  optional arguments:
343
348
  -h, --help show this help message and exit
@@ -362,7 +367,7 @@ print the relevant parts of its content to the terminal.
362
367
 
363
368
  ```bash
364
369
  $ odxtools list -h
365
- usage: odxtools list [-h] [-v VARIANT [VARIANT ...]] [-s [SERVICE [SERVICE ...]]] [-p] [-d] [-a] PDX_FILE
370
+ usage: odxtools list [-h] [-v VARIANT [VARIANT ...]] [-g] [-s [SERVICE [SERVICE ...]]] [-p] [-d] [-a] [-po] PDX_FILE
366
371
 
367
372
  List the content of automotive diagnostic files (*.pdx)
368
373
 
@@ -381,26 +386,53 @@ optional arguments:
381
386
  -h, --help show this help message and exit
382
387
  -v VARIANT [VARIANT ...], --variants VARIANT [VARIANT ...]
383
388
  Specifies which variants should be included.
389
+ -g, --global-negative-responses
390
+ Print a list of the global negative responses for the selected ECUs.
384
391
  -s [SERVICE [SERVICE ...]], --services [SERVICE [SERVICE ...]]
385
392
  Print a list of diagnostic services specified in the pdx.
386
393
  If no service names are specified, all services are printed.
387
394
  -p, --params Print a list of all parameters relevant for the selected items.
388
395
  -d, --dops Print a list of all data object properties relevant for the selected items
389
396
  -a, --all Print a list of all diagnostic services and DOPs specified in the pdx
397
+ -po, --plumbing-output
398
+ Print full objects instead of selected and formatted attributes
390
399
  ```
391
400
 
392
- The options `--variants` and `--services` can be used to specify which
393
- services should be printed. If the `--params` option is specified,
394
- the message layout is printed for all specified variants/services and
395
- the `--all` parameter prints all data of the file that is recognized
396
- by `odxtools`. Example:
401
+ The options `--variants` and `--services` can be used to specify which services should be printed.
402
+ If the `--params` option is specified, the message layout and information about the service parameters (reuest as well as responses) are printed for all specified variants/services.
403
+ If the `--global-negative-responses` option is specified, all global negative responses are printed for all specified variants.
404
+ If the `--dops` option is specified, a list of all data object properties (their names) is printed for all specified variants/services.
405
+ With the parameter `--all` all data of the file that is recognized by `odxtools` is printed.
406
+ The default output does not display all information of the specified objects but a selection. To see all object information choose the parameter `--plumbing-output`.
407
+
408
+ Example:
397
409
 
398
410
  ```bash
399
411
  $ odxtools list $BASE_DIR/odxtools/examples/somersault.pdx --variants somersault_lazy --services do_forward_flips --params
400
- ECU-VARIANT 'somersault_lazy' (Receive ID: 0x7b, Send ID: 0x1c8)
401
- num services: 5, num DOPs: 6, num communication parameters: 11.
402
- The services of the ECU-VARIANT 'somersault_lazy' are:
403
- do_forward_flips <ID: somersault.service.do_forward_flips>
412
+ Overview of diagnostic layers:
413
+ | Name | Variant Type | Num. of Services | Num. of DOPs | Num. of comparams
414
+ ----+-----------------+--------------+------------------+--------------+-------------------
415
+ 0 | somersault_lazy | ECU-VARIANT | 5 | 10 | 10
416
+
417
+ Diagnostic layer: 'somersault_lazy'
418
+ Variant Type: ECU-VARIANT
419
+ Description: Sloppy variant of the somersault ECU (lazy < assiduous)
420
+
421
+ The services of 'somersault_lazy' are:
422
+ do_forward_flips <ID: OdxLinkId('somersault.service.do_forward_flips')>
423
+ Service description: Do a forward flip.
424
+
425
+ Request Properties:
426
+ Request Name: do_forward_flips
427
+ Byte-Array: --- Hex-String: 0x---
428
+ Service Parameters: [sid, forward_soberness_check, num_flips]
429
+
430
+ | Name | Byte Pos. | Bit Length | Param. Type | Data Type | Value | Value Desc. | Linked DOP
431
+ ----+-------------------------+-----------+------------+-------------+-----------+-------+-------------+-----------------
432
+ 0 | sid | 0 | 8 | CODED-CONST | A_UINT32 | 0xBA | coded value |
433
+ 1 | forward_soberness_check | 1 | 8 | VALUE | A_UINT32 | | | soberness_check
434
+ 2 | num_flips | 2 | 8 | VALUE | A_UINT32 | | | num_flips
435
+
404
436
  Message format of a request:
405
437
  7 6 5 4 3 2 1 0
406
438
  +-----+-----+-----+-----+-----+-----+-----+-----+
@@ -410,12 +442,17 @@ The services of the ECU-VARIANT 'somersault_lazy' are:
410
442
  +-----+-----+-----+-----+-----+-----+-----+-----+
411
443
  2 | num_flips(8 bits) |
412
444
  +-----+-----+-----+-----+-----+-----+-----+-----+
413
- Parameter(short_name='sid', type='CODED-CONST', semantic=None, byte_position=0, bit_length=8, coded_value='0xba')
414
- Parameter(short_name='forward_soberness_check', type='VALUE', semantic=None, byte_position=1, bit_length=8, dop_ref='somersault.DOP.soberness_check')
415
- DataObjectProperty('soberness_check', category='LINEAR', internal_type='A_UINT32', physical_type='A_UINT32')
416
- Parameter(short_name='num_flips', type='VALUE', semantic=None, byte_position=2, bit_length=8, dop_ref='somersault.DOP.num_flips')
417
- DataObjectProperty('num_flips', category='LINEAR', internal_type='A_UINT32', physical_type='A_UINT32')
418
- Number of positive responses: 1
445
+
446
+ Positive Response Properties:
447
+ Number of Positive Responses: 1
448
+ Positive Responses: [grudging_forward]
449
+ Service Parameters: [sid, num_flips_done]
450
+
451
+ | Name | Byte Pos. | Bit Length | Parameter Type | Data Type | Value | Value Desc. | Linked DOP
452
+ ----+----------------+-----------+------------+------------------------+-----------+-------+-------------+-------------
453
+ 0 | sid | 0 | 8 | CODED-CONST | A_UINT32 | 0xFA | coded value |
454
+ 1 | num_flips_done | 1 | 8 | MATCHING-REQUEST-PARAM | | | |
455
+
419
456
  Message format of a positive response:
420
457
  7 6 5 4 3 2 1 0
421
458
  +-----+-----+-----+-----+-----+-----+-----+-----+
@@ -423,9 +460,19 @@ The services of the ECU-VARIANT 'somersault_lazy' are:
423
460
  +-----+-----+-----+-----+-----+-----+-----+-----+
424
461
  1 | num_flips_done(8 bits) |
425
462
  +-----+-----+-----+-----+-----+-----+-----+-----+
426
- Parameter(short_name='sid', type='CODED-CONST', semantic=None, byte_position=0, bit_length=8, coded_value='0xfa')
427
- Parameter(short_name='num_flips_done', type='MATCHING-REQUEST-PARAM', semantic=None, byte_position=1)
428
- Request byte position = 2, byte length = 1
463
+
464
+ Negative Response Properties:
465
+ Number of Negative Responses: 1
466
+ Negative Responses: [flips_not_done]
467
+ Service Parameters: [sid, rq_sid, reason, flips_successfully_done]
468
+
469
+ | Name |Byte Pos. | Bit Length | Parameter Type | Data Type | Value | Value Desc. | Linked DOP
470
+ ----+-------------------------+----------+------------+------------------------+-----------+-----------+-------------+-------------
471
+ 0 | sid | 0 | 8 | CODED-CONST | A_UINT32 | 0x7F | coded value |
472
+ 1 | rq_sid | 1 | 8 | MATCHING-REQUEST-PARAM | | | |
473
+ 2 | reason | 2 | 8 | NRC-CONST | A_UINT32 | [0, 1, 2] | coded value |
474
+ 3 | flips_successfully_done | 3 | 8 | VALUE | A_UINT32 | | | num_flips
475
+
429
476
  Number of negative responses: 1
430
477
  Message format of a negative response:
431
478
  7 6 5 4 3 2 1 0
@@ -438,13 +485,7 @@ The services of the ECU-VARIANT 'somersault_lazy' are:
438
485
  +-----+-----+-----+-----+-----+-----+-----+-----+
439
486
  3 | flips_successfully_done(8 bits) |
440
487
  +-----+-----+-----+-----+-----+-----+-----+-----+
441
- Parameter(short_name='sid', type='CODED-CONST', semantic=None, byte_position=0, bit_length=8, coded_value='0x7f')
442
- Parameter(short_name='rq_sid', type='MATCHING-REQUEST-PARAM', semantic=None, byte_position=1)
443
- Request byte position = 0, byte length = 1
444
- Parameter(short_name='reason', type='VALUE', semantic=None, byte_position=2, bit_length=8, dop_ref='somersault.DOP.error_code')
445
- DataObjectProperty('error_code', category='LINEAR', internal_type='A_UINT32', physical_type='A_UINT32')
446
- Parameter(short_name='flips_successfully_done', type='VALUE', semantic=None, byte_position=3, bit_length=8, dop_ref='somersault.DOP.num_flips')
447
- DataObjectProperty('num_flips', category='LINEAR', internal_type='A_UINT32', physical_type='A_UINT32')
488
+
448
489
  ```
449
490
 
450
491
  ### The `browse` subcommand
@@ -539,12 +580,11 @@ Tester: do_forward_flips(forward_soberness_check=18, num_flips=50)
539
580
 
540
581
  ### The `find` subcommand
541
582
 
542
- The `find` subcommand can be used to find a service and its associated
543
- information by a partial name via cli.
583
+ The `find` subcommand can be used to find a service and its associated information by a partial name via cli.
544
584
 
545
585
  ```bash
546
586
  $ odxtools find -h
547
- usage: odxtools find [-h] [-v VARIANT] -s [SERVICES ...] [-nd] [-ro] PDX_FILE
587
+ usage: odxtools find [-h] [-v VARIANT] -s [SERVICES ...] [-nd] [-ro] [-po] PDX_FILE
548
588
 
549
589
  Find & print services by name
550
590
 
@@ -566,12 +606,14 @@ options:
566
606
  -nd, --no-details Don't show all service details
567
607
  -ro, --relaxed-output
568
608
  Relax output formatting rules (allow unknown bitlengths for ascii representation)
609
+ -po, --plumbing-output
610
+ Print full objects instead of selected and formatted attributes
569
611
  ```
570
612
 
571
613
  Example: Find diagnostic services with the name `session_start`
572
614
 
573
615
  ```bash
574
- $ odxtools find examples/somersault.pdx -s session_start
616
+ $ odxtools find $BASE_DIR/odxtools/examples/somersault.pdx -s session_start
575
617
 
576
618
  =====================================
577
619
  somersault_lazy, somersault_assiduous
@@ -579,6 +621,17 @@ somersault_lazy, somersault_assiduous
579
621
 
580
622
 
581
623
  session_start <ID: OdxLinkId('somersault.service.session_start')>
624
+
625
+ Request Properties:
626
+ Request Name: start_session
627
+ Byte-Array: bytearray(b'\x10\x00') Hex-String: 0x1000
628
+ Service Parameters: [sid, id]
629
+
630
+ | Name | Byte Pos. | Bit Length | Param. Type | Data Type | Value | Value Desc. | Linked DOP
631
+ ----+------+-----------+------------+-------------+-----------+-------+-------------+------------
632
+ 0 | sid | 0 | 8 | CODED-CONST | A_UINT32 | 0x10 | coded value |
633
+ 1 | id | 1 | 8 | CODED-CONST | A_UINT32 | 0x00 | coded value |
634
+
582
635
  Message format of a request:
583
636
  7 6 5 4 3 2 1 0
584
637
  +-----+-----+-----+-----+-----+-----+-----+-----+
@@ -586,9 +639,17 @@ somersault_lazy, somersault_assiduous
586
639
  +-----+-----+-----+-----+-----+-----+-----+-----+
587
640
  1 | id (8 bits) |
588
641
  +-----+-----+-----+-----+-----+-----+-----+-----+
589
- CodedConstParameter(short_name='sid', long_name=None, description=None, byte_position=0, bit_position=None, semantic=None, sdgs=[], diag_coded_type=StandardLengthType(base_data_type=<DataType.A_UINT32: 'A_UINT32'>, base_type_encoding=None, is_highlow_byte_order_raw=None, bit_length=8, bit_mask=None, is_condensed_raw=None), coded_value=16)
590
- CodedConstParameter(short_name='id', long_name=None, description=None, byte_position=1, bit_position=None, semantic=None, sdgs=[], diag_coded_type=StandardLengthType(base_data_type=<DataType.A_UINT32: 'A_UINT32'>, base_type_encoding=None, is_highlow_byte_order_raw=None, bit_length=8, bit_mask=None, is_condensed_raw=None), coded_value=0)
591
- Number of positive responses: 1
642
+
643
+ Positive Response Properties:
644
+ Number of Positive Responses: 1
645
+ Positive Responses: [session]
646
+ Service Parameters: [sid, can_do_backward_flips]
647
+
648
+ | Name | Byte Pos. | Bit Length | Param. Type | Data Type | Value | Value Desc. | Linked DOP
649
+ ----+-----------------------+-----------+------------+-------------+------------------+-------+-------------+------------
650
+ 0 | sid | 0 | 8 | CODED-CONST | A_UINT32 | 0x50 | coded value |
651
+ 1 | can_do_backward_flips | 1 | 8 | VALUE | A_UNICODE2STRING | | | boolean
652
+
592
653
  Message format of a positive response:
593
654
  7 6 5 4 3 2 1 0
594
655
  +-----+-----+-----+-----+-----+-----+-----+-----+
@@ -596,9 +657,18 @@ somersault_lazy, somersault_assiduous
596
657
  +-----+-----+-----+-----+-----+-----+-----+-----+
597
658
  1 | can_do_backward_flips (8 bits) |
598
659
  +-----+-----+-----+-----+-----+-----+-----+-----+
599
- CodedConstParameter(short_name='sid', long_name=None, description=None, byte_position=0, bit_position=None, semantic=None, sdgs=[], diag_coded_type=StandardLengthType(base_data_type=<DataType.A_UINT32: 'A_UINT32'>, base_type_encoding=None, is_highlow_byte_order_raw=None, bit_length=8, bit_mask=None, is_condensed_raw=None), coded_value=80)
600
- ValueParameter(short_name='can_do_backward_flips', long_name=None, description=None, byte_position=1, bit_position=None, semantic=None, sdgs=[], dop_ref=OdxLinkRef(ref_id='somersault.DOP.boolean', ref_docs=[OdxDocFragment(doc_name='somersault', doc_type='CONTAINER'), OdxDocFragment(doc_name='somersault', doc_type='LAYER')]), dop_snref=None, physical_default_value_raw=None)
601
- Number of negative responses: 1
660
+
661
+ Negative Response Properties:
662
+ Number of Negative Responses: 1
663
+ Negative Responses: [general_negative_response]
664
+ Service Parameters: [sid, rq_sid, response_code]
665
+
666
+ | Name | Byte Pos.| Bit Length | Parameter Type | Data Type | Value | Value Desc. | Linked DOP
667
+ ----+---------------+----------+------------+------------------------+-----------+-------+-------------+------------
668
+ 0 | sid | 0 | 8 | CODED-CONST | A_UINT32 | 0x7F | coded value |
669
+ 1 | rq_sid | 1 | 8 | MATCHING-REQUEST-PARAM | | | |
670
+ 2 | response_code | 2 | 8 | VALUE | A_UINT32 | | | error_code
671
+
602
672
  Message format of a negative response:
603
673
  7 6 5 4 3 2 1 0
604
674
  +-----+-----+-----+-----+-----+-----+-----+-----+
@@ -608,9 +678,7 @@ somersault_lazy, somersault_assiduous
608
678
  +-----+-----+-----+-----+-----+-----+-----+-----+
609
679
  2 | response_code (8 bits) |
610
680
  +-----+-----+-----+-----+-----+-----+-----+-----+
611
- CodedConstParameter(short_name='sid', long_name=None, description=None, byte_position=0, bit_position=None, semantic=None, sdgs=[], diag_coded_type=StandardLengthType(base_data_type=<DataType.A_UINT32: 'A_UINT32'>, base_type_encoding=None, is_highlow_byte_order_raw=None, bit_length=8, bit_mask=None, is_condensed_raw=None), coded_value=127)
612
- MatchingRequestParameter(short_name='rq_sid', long_name=None, description=None, byte_position=1, bit_position=None, semantic=None, sdgs=[], request_byte_position=0, byte_length=1)
613
- ValueParameter(short_name='response_code', long_name=None, description=None, byte_position=2, bit_position=None, semantic=None, sdgs=[], dop_ref=OdxLinkRef(ref_id='somersault.DOP.error_code', ref_docs=[OdxDocFragment(doc_name='somersault', doc_type='CONTAINER'), OdxDocFragment(doc_name='somersault', doc_type='LAYER')]), dop_snref=None, physical_default_value_raw=None)
681
+
614
682
  ```
615
683
 
616
684
  ### The `decode` subcommand
@@ -646,7 +714,7 @@ options:
646
714
  Example: Decode diagnostic services with the request `10 00`
647
715
 
648
716
  ```bash
649
- $ odxtools decode examples/somersault.pdx -d '10 00'
717
+ $ odxtools decode $BASE_DIR/odxtools/examples/somersault.pdx -d '10 00'
650
718
  Binary data: 10 00
651
719
  Decoded by service 'session_start' (decoding ECUs: somersault_lazy, somersault_assiduous)
652
720
  ```
@@ -654,12 +722,285 @@ Decoded by service 'session_start' (decoding ECUs: somersault_lazy, somersault_a
654
722
  Example: Decode diagnostic services with the request `10 00`, and parameters
655
723
 
656
724
  ```bash
657
- $ odxtools decode examples/somersault.pdx -d '10 00' -D
725
+ $ odxtools decode $BASE_DIR/odxtools/examples/somersault.pdx -d '10 00' -D
658
726
  Binary data: 10 00
659
727
  Decoded by service 'session_start' (decoding ECUs: somersault_lazy, somersault_assiduous)
660
728
  Decoded data:
661
- sid=16 (0x10)
662
- id=0 (0x0)
729
+ sid=16 (0x10)
730
+ id=0 (0x0)
731
+ ```
732
+
733
+ ### The `compare` subcommand
734
+
735
+ The `compare` subcommand can be used to compare databases (pdx-files) and diagnostic layers with each other. All diagnostic services as well as its parameters of specified databases and variants are compared with each other and changes are displayed.
736
+
737
+ #### database comparison:
738
+ - new diagnostic layers
739
+ - deleted diagnostic layers
740
+ - diagnostic layer comparison
741
+
742
+ #### diagnostic layer comparison:
743
+ - new services
744
+ - deleted services
745
+ - renamed services
746
+ - service parameter comparison
747
+
748
+ #### service parameter comparison:
749
+ find changes in following properties:
750
+ - Name
751
+ - Byte Position
752
+ - Bit Length
753
+ - Semantic
754
+ - Parameter Type
755
+ - Coded Value
756
+ - Data Type
757
+ - Data Object Property (Name, Data Type, Bit Length, Default Value)
758
+
759
+ ```bash
760
+ $ odxtools compare -h
761
+ usage: odxtools compare [-h] [-v VARIANT [VARIANT ...]] [-db DATABASE [DATABASE ...]] [-nd] [-od] PDX_FILE
762
+
763
+ Compares two ecu versions or databases with each other. Checks whether diagnostic services and its parameters have changed.
764
+
765
+ Examples:
766
+ Comparison of two ecu versions:
767
+ odxtools compare ./path/to/database.pdx -v variant1 variant2
768
+ Comparison of two database versions:
769
+ odxtools compare ./path/to/database.pdx -db ./path/to/old-database.pdx
770
+ For more information use:
771
+ odxtools compare -h
772
+
773
+ positional arguments:
774
+ PDX_FILE Location of the .pdx file
775
+
776
+ options:
777
+ -h, --help show this help message and exit
778
+ -v VARIANT [VARIANT ...], --variants VARIANT [VARIANT ...]
779
+ Compare specified ecu variants to each other.
780
+ -db DATABASE [DATABASE ...], --database DATABASE [DATABASE ...]
781
+ Compare specified database file(s) to database file of first input argument.
782
+ -nd, --no-details Don't show all service parameter details
783
+ -od, --object-details
784
+ Print all object details instead of just the name
785
+ ```
786
+
787
+ Example: Compare the ecu variants `somersault_lazy` and `somersault_assiduous`
788
+
789
+ ```bash
790
+ $ odxtools compare $BASE_DIR/odxtools/examples/somersault.pdx -v somersault_lazy somersault_assiduous
791
+
792
+ Overview of diagnostic layers:
793
+ | Name | Variant Type | Num. of Services | Num. of DOPs | Num. of comparams
794
+ ----+----------------------+--------------+------------------+--------------+-------------------
795
+ 0 | somersault_lazy | ECU-VARIANT | 5 | 10 | 10
796
+ 1 | somersault_assiduous | ECU-VARIANT | 8 | 10 | 10
797
+
798
+
799
+ Changes in ecu variant somersault_lazy
800
+ (compared to somersault_assiduous)
801
+
802
+ Changed diagnostic services for ecu variant: somersault_lazy
803
+
804
+ Deleted services
805
+ | Name | Semantic | Hex-Request
806
+ ----+----------------------+------------+---------------
807
+ 0 | set_operation_params | FUNCTION |
808
+ 1 | do_backward_flips | FUNCTION |
809
+ 2 | headstand | UNKNOWN |
810
+ ```
811
+
812
+ Example: Compare two databases
813
+
814
+ ```bash
815
+ $ odxtools compare $BASE_DIR/odxtools/examples/somersault_modified.pdx -db $BASE_DIR/odxtools/examples/somersault.pdx -nd
816
+
817
+ Changes in file somersault_modified.pdx
818
+ (compared to somersault.pdx)
819
+
820
+ Overview of diagnostic layers (for somersault_modified.pdx)
821
+ | Name | Variant Type | Num. of Services | Num. of DOPs | Num. of comparams
822
+ ----+----------------------+--------------+------------------+--------------+-------------------
823
+ 0 | somersault | BASE-VARIANT | 6 | 10 | 10
824
+ 1 | somersault_lazy | ECU-VARIANT | 5 | 10 | 10
825
+ 2 | somersault_assiduous | ECU-VARIANT | 8 | 10 | 10
826
+ 3 | somersault_young | ECU-VARIANT | 6 | 10 | 10
827
+
828
+
829
+ Overview of diagnostic layers (for somersault.pdx)
830
+ | Name | Variant Type | Num. of Services | Num. of DOPs | Num. of comparams
831
+ ----+----------------------+--------------+------------------+--------------+-------------------
832
+ 0 | somersault | BASE-VARIANT | 7 | 10 | 10
833
+ 1 | somersault_lazy | ECU-VARIANT | 5 | 10 | 10
834
+ 2 | somersault_assiduous | ECU-VARIANT | 8 | 10 | 10
835
+
836
+ Changed ecu variants:
837
+ New ecu variants:
838
+ somersault_young
839
+ Deleted ecu variants:
840
+
841
+ Changed diagnostic services for ecu variant: somersault_lazy
842
+
843
+ Renamed services
844
+ | Name | Semantic | Hex-Request | Old service name
845
+ ----+---------------+------------+---------------+--------------------
846
+ 0 | session_start | SESSION | 0x1000 | start_session
847
+
848
+ Services with parameter changes
849
+ | Name | Semantic | Hex-Request | Changed parameters
850
+ ----+----------------+---------------+-------------+-----------------------------------------------------------------------------------------------
851
+ 0 | session_start | SESSION | 0x1000 | positive response parameter 'can_do_backward_flips',
852
+ 1 | session_stop | SESSION | 0x1001 | request parameter 'id', positive response parameter 'can_do_backward_flips',
853
+ 2 | tester_present | TESTERPRESENT | 0x3E00 | request parameter 'id', positive response parameter 'status',
854
+ 3 | report_status | CURRENTDATA | 0x2200 | positive response parameter 'dizzyness_level', positive response parameter 'happiness_level',
855
+
856
+ Detailed changes of diagnostic service session_start
857
+
858
+ Properties of 2. positive response parameter can_do_backward_flips have changed
859
+ | Property | Old Value | New Value
860
+ ----+---------------+-------------+------------------
861
+ 0 | Linked DOP | uint8 | boolean
862
+ 1 | DOP data type | A_UINT32 | A_UNICODE2STRING
863
+
864
+ Detailed changes of diagnostic service session_stop
865
+
866
+ Properties of 2. request parameter id have changed
867
+ | Property | Old Value | New Value
868
+ ----+------------+-------------+-------------
869
+ 0 | Bit Length | 16 | 8
870
+
871
+ Properties of 2. positive response parameter can_do_backward_flips have changed
872
+ | Property | Old Value | New Value
873
+ ----+---------------+-------------+------------------
874
+ 0 | Linked DOP | uint8 | boolean
875
+ 1 | DOP data type | A_UINT32 | A_UNICODE2STRING
876
+
877
+ Detailed changes of diagnostic service tester_present
878
+
879
+ Properties of 2. request parameter id have changed
880
+ | Property | Old Value | New Value
881
+ ----+------------+-------------+-------------
882
+ 0 | Value | 0x01 | 0x00
883
+
884
+ Properties of 2. positive response parameter status have changed
885
+ | Property | Old Value | New Value
886
+ ----+------------+-------------+-------------
887
+ 0 | Bit Length | 16 | 8
888
+ 1 | Value | 0x0043 | 0x00
889
+
890
+ Detailed changes of diagnostic service report_status
891
+
892
+ Properties of 2. positive response parameter dizzyness_level have changed
893
+ | Property | Old Value | New Value
894
+ ----+----------------+-----------------+-----------------
895
+ 0 | Parameter name | happiness_level | dizzyness_level
896
+ 1 | Linked DOP | happiness_level | dizzyness_level
897
+
898
+ Properties of 3. positive response parameter happiness_level have changed
899
+ | Property | Old Value | New Value
900
+ ----+----------------+-----------------+-----------------
901
+ 0 | Parameter name | dizzyness_level | happiness_level
902
+ 1 | Linked DOP | dizzyness_level | happiness_level
903
+
904
+ Changed diagnostic services for ecu variant: somersault_assiduous
905
+
906
+ New services
907
+ | Name | Semantic | Hex-Request
908
+ ----+----------+------------+---------------
909
+ 0 | flicflac | FUNCTION |
910
+
911
+ Deleted services
912
+ | Name | Semantic | Hex-Request
913
+ ----+----------------------+------------+---------------
914
+ 0 | set_operation_params | FUNCTION |
915
+
916
+ Renamed services
917
+ | Name | Semantic | Hex-Request | Old service name
918
+ ----+---------------+------------+---------------+--------------------
919
+ 0 | session_start | SESSION | 0x1000 | start_session
920
+
921
+ Services with parameter changes
922
+ | Name | Semantic | Hex-Request | Changed parameters
923
+ ----+-------------------+---------------+-------------+---------------------------------------------------------------------------------------------------------------------------------------------
924
+ 0 | session_start | SESSION | 0x1000 | positive response parameter 'can_do_backward_flips',
925
+ 1 | session_stop | SESSION | 0x1001 | request parameter 'id', positive response parameter 'can_do_backward_flips',
926
+ 2 | tester_present | TESTERPRESENT | 0x3E00 | request parameter 'id', positive response parameter 'status',
927
+ 3 | do_backward_flips | FUNCTION | | request parameter 'backward_soberness_check', positive response parameter 'num_flips_done', positive response parameter 'grumpiness_level',
928
+ 4 | report_status | CURRENTDATA | 0x2200 | positive response parameter 'dizzyness_level', positive response parameter 'happiness_level',
929
+ 5 | headstand | UNKNOWN | | request parameter list,
930
+
931
+ Detailed changes of diagnostic service session_start
932
+
933
+ Properties of 2. positive response parameter can_do_backward_flips have changed
934
+ | Property | Old Value | New Value
935
+ ----+---------------+-------------+------------------
936
+ 0 | Linked DOP | uint8 | boolean
937
+ 1 | DOP data type | A_UINT32 | A_UNICODE2STRING
938
+
939
+ Detailed changes of diagnostic service session_stop
940
+
941
+ Properties of 2. request parameter id have changed
942
+ | Property | Old Value | New Value
943
+ ----+------------+-------------+-------------
944
+ 0 | Bit Length | 16 | 8
945
+
946
+ Properties of 2. positive response parameter can_do_backward_flips have changed
947
+ | Property | Old Value | New Value
948
+ ----+---------------+-------------+------------------
949
+ 0 | Linked DOP | uint8 | boolean
950
+ 1 | DOP data type | A_UINT32 | A_UNICODE2STRING
951
+
952
+ Detailed changes of diagnostic service tester_present
953
+
954
+ Properties of 2. request parameter id have changed
955
+ | Property | Old Value | New Value
956
+ ----+------------+-------------+-------------
957
+ 0 | Value | 0x01 | 0x00
958
+
959
+ Properties of 2. positive response parameter status have changed
960
+ | Property | Old Value | New Value
961
+ ----+------------+-------------+-------------
962
+ 0 | Bit Length | 16 | 8
963
+ 1 | Value | 0x0043 | 0x00
964
+
965
+ Detailed changes of diagnostic service do_backward_flips
966
+
967
+ Properties of 2. request parameter backward_soberness_check have changed
968
+ | Property | Old Value | New Value
969
+ ----+----------------+----------------+--------------------------
970
+ 0 | Parameter name | backward_check | backward_soberness_check
971
+
972
+ Properties of 2. positive response parameter num_flips_done have changed
973
+ | Property | Old Value | New Value
974
+ ----+---------------+-------------+-------------
975
+ 0 | Byte position | 1 |
976
+
977
+ Properties of 3. positive response parameter grumpiness_level have changed
978
+ | Property | Old Value | New Value
979
+ ----+----------------+-------------+-------------
980
+ 0 | Byte position | 2 |
981
+ 1 | Parameter type | CODED-CONST | VALUE
982
+
983
+ Detailed changes of diagnostic service report_status
984
+
985
+ Properties of 2. positive response parameter dizzyness_level have changed
986
+ | Property | Old Value | New Value
987
+ ----+----------------+-----------------+-----------------
988
+ 0 | Parameter name | happiness_level | dizzyness_level
989
+ 1 | Linked DOP | happiness_level | dizzyness_level
990
+
991
+ Properties of 3. positive response parameter happiness_level have changed
992
+ | Property | Old Value | New Value
993
+ ----+----------------+-----------------+-----------------
994
+ 0 | Parameter name | dizzyness_level | happiness_level
995
+ 1 | Linked DOP | dizzyness_level | happiness_level
996
+
997
+ Detailed changes of diagnostic service headstand
998
+
999
+ List of request parameters for service headstand is not identical.
1000
+ | List | Values
1001
+ ----+----------+---------------------
1002
+ 0 | Old list | [sid, id, duration]
1003
+ 1 | New list | [sid, duration]
663
1004
  ```
664
1005
 
665
1006
  ## Testing
@@ -4,7 +4,7 @@ odxtools/additionalaudience.py,sha256=e08SzJpxkx8Zeb9fiNWWpPuneTA7INCW9qcU335eTn
4
4
  odxtools/admindata.py,sha256=mc7yyK5yGpd1A4Rv2rv9pf9Ja-PNvB_IB1wEaIEbBNU,1919
5
5
  odxtools/audience.py,sha256=6PaZRi_-e5GDN2BZgynLWx03brvw0QgMBcl5N8heO0Y,3324
6
6
  odxtools/basecomparam.py,sha256=TTNUHm5Q8BY56HEmaK3NvDsW3K1LV6bLdxFExMJO1-I,2418
7
- odxtools/basicstructure.py,sha256=_oOePdPcjRNP93ZssZKvVBH2QNrRkKMYF4phgeBXUfQ,20537
7
+ odxtools/basicstructure.py,sha256=Ftov2gfWnpbKgAOBc3uM35JEGNntyqoMCwpyeb8sU4w,20690
8
8
  odxtools/companydata.py,sha256=RaxSq0E6kall8wZL8av5HPO9KSXLZpE_hSEIkvpzCw0,2579
9
9
  odxtools/companydocinfo.py,sha256=KLVUA-TvOnHjPYF32W8JAv8Q6LLuo6-x9u3Mj7ewBiM,2294
10
10
  odxtools/companyrevisioninfo.py,sha256=vvozMDtDZg3znZNN6Nx1MqjSsSmXtg9nY-TkF_sIHzk,1390
@@ -20,11 +20,11 @@ odxtools/createanydiagcodedtype.py,sha256=QIKSGnU6xL4DWImuXqrW6oNsWfcRphwdWi9lIS
20
20
  odxtools/createcompanydatas.py,sha256=Lkyx5gIGCozaX412GiPRUzjFOa5sZvT1LYOf_ycysdE,582
21
21
  odxtools/createecuvariantpatterns.py,sha256=FXHLGR4M791MRkpU2_keck88hoMYkuyPiCUxuGbUasQ,559
22
22
  odxtools/createsdgs.py,sha256=tPdkPN4cHBWGddMWb7QLvyUIA9boa87da2Aj_2m3C2o,531
23
- odxtools/database.py,sha256=-6XudeceL5K-oyl1_DTxp2Gumeeqcqq1Lo0YXDas27Q,6510
23
+ odxtools/database.py,sha256=-zYf7p7cT-FN-MSEHubnUpKgNobYA1APvEeM4LYZSNk,6511
24
24
  odxtools/dataobjectproperty.py,sha256=HPI33FYngl4wy_Nb7KQfUgYLYRbmDm2HKHLe9rOwJsc,6436
25
25
  odxtools/decodestate.py,sha256=vSFnn2xEl_7e_WLlpIVvHelNAOISlPKGYTb4hQFkBPQ,443
26
26
  odxtools/determinenumberofitems.py,sha256=L2u0Wv9KhRsXqOBnaKuFFOeG-FQE6pDpwRtdoGf1H3g,1562
27
- odxtools/diagcodedtype.py,sha256=r0R6vg6TL3X2aCrfKtG5O_Pkt5t5WrJA1wRau_pP_es,10635
27
+ odxtools/diagcodedtype.py,sha256=8BM1EHcCX84bf6TQufrUWm7xqufx-VHTky789aO1Si0,10744
28
28
  odxtools/diagcomm.py,sha256=nS57xwrArzU22jbgJ5io7zpmq2P0Qz8fxnbqb60VIJg,7623
29
29
  odxtools/diagdatadictionaryspec.py,sha256=Bo9Zt5oQ5At8ztZqqLOrnPO6Jk3sp6ry7vmTO2DXnLM,9111
30
30
  odxtools/diaglayer.py,sha256=br_jcyXreEXuM3O_MH3ZZWAaYotP7PC1qSw02uIQDpw,43208
@@ -98,18 +98,19 @@ odxtools/unit.py,sha256=Yhf8Q2PkOnOImO7C7nehS59ua6kWd2da73VRQ0xNRfU,3701
98
98
  odxtools/unitgroup.py,sha256=HCFwmUR_-N1_bfcDQiWV2rq29uRQWbVMbxSASw8P8ow,2101
99
99
  odxtools/unitspec.py,sha256=WFifnGPLfaRzCUpZNY8lvB5_jXuoGJuvKcyL1R04oJ0,2981
100
100
  odxtools/utils.py,sha256=JeUgIYnxysVELmSYbKH49IC9dU6B31Cwoo85Ag10V74,1983
101
- odxtools/version.py,sha256=fd6CksWgIHdYBNlROhGsq3zYOi8WI9g_FLoitjFImdw,411
101
+ odxtools/version.py,sha256=uQ1o6bfgOrVa8iy3C4FXIIz419pqzLk2K1vtbZmZoTM,411
102
102
  odxtools/write_pdx_file.py,sha256=OrzmXmJ1rIZ6PBKws3muI_XL8IAwAqsXla-0cAQlKq0,6624
103
103
  odxtools/xdoc.py,sha256=pUYo6l60ns9LOEdutE06WMcNy25yNVl1Ni4lMpYt1pY,1467
104
104
  odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
105
105
  odxtools/cli/_parser_utils.py,sha256=8wS4PP-CXxnV3Fm5p9_A-4qGFO39MD8RjzyreyqYLq8,580
106
- odxtools/cli/_print_utils.py,sha256=EVbg-6HdNHPLgfoLd2mqFY6nj0etO9yW_zdtqiER8wY,3275
106
+ odxtools/cli/_print_utils.py,sha256=2JwTwESxdqbB9rXKERcGP6v04e6b8Zy3gXAjzvCOgdw,11251
107
107
  odxtools/cli/browse.py,sha256=2QfqhN2mcoK_gAZoNCg1Wbogsoxz5E64y7tTXohTems,15153
108
- odxtools/cli/decode.py,sha256=DJusN-vyvhFPtLTJuMDACrWZeuexD81Xi9nyhVoplQE,4294
108
+ odxtools/cli/compare.py,sha256=JE8vphsaAQ0V6JgddgPWxRxHWIWab3IkqO2vQaYNZOI,37264
109
+ odxtools/cli/decode.py,sha256=nts8wXh--nQepBGOmflRzS-trSGUYgKP0FXJaqkA6Fw,4287
109
110
  odxtools/cli/dummy_sub_parser.py,sha256=0oe0b3TrqP1xAzNHn6aB5r_MupIUV6vBZe1t1Wo-PuI,1190
110
- odxtools/cli/find.py,sha256=___l94Sdpm_Je4ljfQQBTOXiT31wR_p-C97PX4Fevys,4421
111
- odxtools/cli/list.py,sha256=UHKHt_MD7ahBRBl5uveeaC4VNbed3NIOyCKt6cneCeE,7480
112
- odxtools/cli/main.py,sha256=LmJqbxTnh1_nwfeVX9k-EfPmfCGtAEw4bR653UsrNWU,1788
111
+ odxtools/cli/find.py,sha256=aS2bFapLoqmYDE_lTS1S2FH0VbQjHKYNj2iiaKOoikg,4719
112
+ odxtools/cli/list.py,sha256=njTQ33YuD4oBIdsJRoF4zcWWeuXFO04Mmu3HPcORL58,8810
113
+ odxtools/cli/main.py,sha256=IMldf_aYiQf3rDLrNDW0SEMEdLgnYBiC042x_6euItI,1799
113
114
  odxtools/cli/snoop.py,sha256=_0xelTnN7V_1Vsky1JaxuVQoeBP68FJr1JSeZOdRcFA,9049
114
115
  odxtools/compumethods/compumethod.py,sha256=HDLLoRhzd_ujZZEzKYDTvaW_sNx_CoZOWufc3Hfn2_o,953
115
116
  odxtools/compumethods/compurationalcoeffs.py,sha256=gRD0B2Ut03Rg4ixVPh2Mh6PY20RXzozGMxoP75vMr0U,782
@@ -170,9 +171,9 @@ odxtools/templates/macros/printStructure.xml.jinja2,sha256=uswYs2xse0B9hZut_FN1G
170
171
  odxtools/templates/macros/printTable.xml.jinja2,sha256=DGd-TolTeBFoDuowd_KW0ZZT_etKRjwq9lia0yXror4,1466
171
172
  odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=AJ5jWYKRmoIZkrd25R1KmjjgU6pfOqRiOQHtUAuS6GI,2813
172
173
  odxtools/templates/macros/printVariant.xml.jinja2,sha256=nq9NnMmncbCNFx0AARc1CIVxt2ANfXgqstQAVZlwRj0,6337
173
- odxtools-6.4.3.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
174
- odxtools-6.4.3.dist-info/METADATA,sha256=K_-aY5JSGY0V37Iuu_9bUxGkg7wMuXW_9jPXnWtSAUA,29709
175
- odxtools-6.4.3.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
176
- odxtools-6.4.3.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
177
- odxtools-6.4.3.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
178
- odxtools-6.4.3.dist-info/RECORD,,
174
+ odxtools-6.5.0.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
175
+ odxtools-6.5.0.dist-info/METADATA,sha256=sZw3GQ-mC7q5pgjV9hAH9G6Z0aa2j79F5ZDtcG4q3i0,43597
176
+ odxtools-6.5.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
177
+ odxtools-6.5.0.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
178
+ odxtools-6.5.0.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
179
+ odxtools-6.5.0.dist-info/RECORD,,