@@ -426,112 +426,112 @@ int main(int argc, char **argv)
426426 }
427427 }
428428
429- if (frame .can_id & CAN_EFF_FLAG )
430- printf (" %s %8X" , argv [optind ], frame .can_id & CAN_EFF_MASK );
431- else
432- printf (" %s %3X" , argv [optind ], frame .can_id & CAN_SFF_MASK );
433-
434- if (ext )
435- printf ("{%02X}" , frame .data [0 ]);
429+ if (frame .can_id & CAN_EFF_FLAG )
430+ printf (" %s %8X" , argv [optind ], frame .can_id & CAN_EFF_MASK );
431+ else
432+ printf (" %s %3X" , argv [optind ], frame .can_id & CAN_SFF_MASK );
433+
434+ if (ext )
435+ printf ("{%02X}" , frame .data [0 ]);
436+
437+ if (nbytes == CAN_MTU )
438+ printf (" [%d] " , frame .len );
439+ else
440+ printf (" [%02d] " , frame .len );
441+
442+ datidx = 0 ;
443+ n_pci = frame .data [ext ];
444+
445+ switch (n_pci & 0xF0 ) {
446+ case 0x00 :
447+ is_ff = 1 ;
448+ if (n_pci & 0xF ) {
449+ printf ("[SF] ln: %-4d data:" , n_pci & 0xF );
450+ datidx = ext + 1 ;
451+ } else {
452+ printf ("[SF] ln: %-4d data:" , frame .data [ext + 1 ]);
453+ datidx = ext + 2 ;
454+ }
455+ break ;
436456
437- if (nbytes == CAN_MTU )
438- printf (" [%d] " , frame .len );
439- else
440- printf (" [%02d] " , frame .len );
441-
442- datidx = 0 ;
443- n_pci = frame .data [ext ];
444-
445- switch (n_pci & 0xF0 ) {
446- case 0x00 :
447- is_ff = 1 ;
448- if (n_pci & 0xF ) {
449- printf ("[SF] ln: %-4d data:" , n_pci & 0xF );
450- datidx = ext + 1 ;
451- } else {
452- printf ("[SF] ln: %-4d data:" , frame .data [ext + 1 ]);
453- datidx = ext + 2 ;
454- }
455- break ;
457+ case 0x10 :
458+ is_ff = 1 ;
459+ fflen = ((n_pci & 0x0F )<<8 ) + frame .data [ext + 1 ];
460+ if (fflen )
461+ datidx = ext + 2 ;
462+ else {
463+ fflen = (frame .data [ext + 2 ]<<24 ) +
464+ (frame .data [ext + 3 ]<<16 ) +
465+ (frame .data [ext + 4 ]<<8 ) +
466+ frame .data [ext + 5 ];
467+ datidx = ext + 6 ;
468+ }
469+ printf ("[FF] ln: %-4lu data:" , fflen );
470+ break ;
456471
457- case 0x10 :
458- is_ff = 1 ;
459- fflen = ((n_pci & 0x0F )<<8 ) + frame .data [ext + 1 ];
460- if (fflen )
461- datidx = ext + 2 ;
462- else {
463- fflen = (frame .data [ext + 2 ]<<24 ) +
464- (frame .data [ext + 3 ]<<16 ) +
465- (frame .data [ext + 4 ]<<8 ) +
466- frame .data [ext + 5 ];
467- datidx = ext + 6 ;
468- }
469- printf ("[FF] ln: %-4lu data:" , fflen );
470- break ;
472+ case 0x20 :
473+ printf ("[CF] sn: %X data:" , n_pci & 0x0F );
474+ datidx = ext + 1 ;
475+ break ;
471476
472- case 0x20 :
473- printf ("[CF] sn: %X data:" , n_pci & 0x0F );
474- datidx = ext + 1 ;
475- break ;
477+ case 0x30 :
478+ n_pci &= 0x0F ;
479+ printf ("[FC] FC: %d " , n_pci );
476480
477- case 0x30 :
478- n_pci &= 0x0F ;
479- printf ("[FC] FC: %d " , n_pci );
481+ if (n_pci > 3 )
482+ n_pci = 3 ;
480483
481- if (n_pci > 3 )
482- n_pci = 3 ;
484+ printf ("= %s # " , fc_info [n_pci ]);
483485
484- printf ("= %s # " , fc_info [n_pci ]);
486+ printf ("BS: %d %s# " , frame .data [ext + 1 ],
487+ (frame .data [ext + 1 ])? "" :"= off " );
485488
486- printf ( "BS: %d %s# " , frame .data [ext + 1 ],
487- ( frame . data [ ext + 1 ])? "" : "= off " );
489+ i = frame .data [ext + 2 ];
490+ printf ( "STmin: 0x%02X = " , i );
488491
489- i = frame .data [ext + 2 ];
490- printf ("STmin: 0x%02X = " , i );
492+ if (i < 0x80 )
493+ printf ("%d ms" , i );
494+ else if (i > 0xF0 && i < 0xFA )
495+ printf ("%d us" , (i & 0x0F ) * 100 );
496+ else
497+ printf ("reserved" );
498+ break ;
491499
492- if (i < 0x80 )
493- printf ("%d ms" , i );
494- else if (i > 0xF0 && i < 0xFA )
495- printf ("%d us" , (i & 0x0F ) * 100 );
496- else
497- printf ("reserved" );
498- break ;
500+ default :
501+ printf ("[??]" );
502+ }
499503
500- default :
501- printf ("[??]" );
504+ if (datidx && frame .len > datidx ) {
505+ printf (" " );
506+ for (i = datidx ; i < frame .len ; i ++ ) {
507+ printf ("%02X " , frame .data [i ]);
502508 }
503509
504- if (datidx && frame .len > datidx ) {
505- printf (" " );
510+ if (asc ) {
511+ printf ("%*s" , ((7 - ext ) - (frame .len - datidx ))* 3 + 5 ,
512+ "- '" );
506513 for (i = datidx ; i < frame .len ; i ++ ) {
507- printf ("%02X " , frame .data [i ]);
508- }
509-
510- if (asc ) {
511- printf ("%*s" , ((7 - ext ) - (frame .len - datidx ))* 3 + 5 ,
512- "- '" );
513- for (i = datidx ; i < frame .len ; i ++ ) {
514- printf ("%c" ,((frame .data [i ] > 0x1F ) &&
515- (frame .data [i ] < 0x7F ))?
516- frame .data [i ] : '.' );
517- }
518- printf ("'" );
519- }
520- if (uds_output && is_ff ) {
521- int offset = 3 ;
522- if (asc )
523- offset = 1 ;
524- printf ("%*s" , ((7 - ext ) - (frame .len - datidx ))* offset + 3 ,
525- " - " );
526- print_uds_message (frame .data [datidx ], frame .data [datidx + 2 ]);
527- is_ff = 0 ;
514+ printf ("%c" ,((frame .data [i ] > 0x1F ) &&
515+ (frame .data [i ] < 0x7F ))?
516+ frame .data [i ] : '.' );
528517 }
518+ printf ("'" );
519+ }
520+ if (uds_output && is_ff ) {
521+ int offset = 3 ;
522+ if (asc )
523+ offset = 1 ;
524+ printf ("%*s" , ((7 - ext ) - (frame .len - datidx ))* offset + 3 ,
525+ " - " );
526+ print_uds_message (frame .data [datidx ], frame .data [datidx + 2 ]);
527+ is_ff = 0 ;
529528 }
529+ }
530530
531- if (color )
532- printf ("%s" , ATTRESET );
533- printf ("\n" );
534- fflush (stdout );
531+ if (color )
532+ printf ("%s" , ATTRESET );
533+ printf ("\n" );
534+ fflush (stdout );
535535 }
536536
537537 close (s );
0 commit comments