]> rtime.felk.cvut.cz Git - can-utils.git/blobdiff - isotpperf.c
slcan: added listen-only flag
[can-utils.git] / isotpperf.c
index b99c68f1884e330427dec729a45916725a01d25b..db3a2b73e5a2e3a3fdc0092c96d73de0c5a4a7ef 100644 (file)
@@ -103,6 +103,8 @@ int main(int argc, char **argv)
        int datidx = 0;
        unsigned char bs = 0;
        unsigned char stmin = 0;
+       unsigned char brs = 0;
+       unsigned char ll_dl = 0;
        unsigned long fflen = 0;
        unsigned fflen_digits = 0;
        unsigned long rcvlen = 0;
@@ -218,7 +220,7 @@ int main(int argc, char **argv)
                        running = 0;
                        continue;
                } else if (nbytes != CAN_MTU && nbytes != CANFD_MTU) {
-                       fprintf(stderr, "read: incomplete CAN frame %lu %d\n", sizeof(frame), nbytes);
+                       fprintf(stderr, "read: incomplete CAN frame %zu %d\n", sizeof(frame), nbytes);
                        ret = nbytes;
                        running = 0;
                        continue;
@@ -273,6 +275,12 @@ int main(int argc, char **argv)
                                /* get number of digits for printing */
                                fflen_digits = getdigits(fflen);
 
+                               /* get CAN FD bitrate & LL_DL setting information */
+                               brs = frame.flags & CANFD_BRS;
+                               ll_dl = frame.len;
+                               if (ll_dl < 8)
+                                       ll_dl = 8;
+
                                ioctl(s, SIOCGSTAMP, &start_tv);
 
                                /* determine CAN frame mode for this PDU */
@@ -309,6 +317,10 @@ int main(int argc, char **argv)
                                /* get number of digits for printing */
                                fflen_digits = getdigits(fflen);
 
+                               /* get CAN FD bitrate & LL_DL setting information */
+                               brs = frame.flags & CANFD_BRS;
+                               ll_dl = frame.len;
+
                                ioctl(s, SIOCGSTAMP, &start_tv);
 
                                /* determine CAN frame mode for this PDU */
@@ -360,7 +372,7 @@ int main(int argc, char **argv)
                        /* PDU complete */
                        if (rcvlen && rcvlen >= fflen) {
 
-                               printf("\r%s (BS:%2hhu # ", canfd_on?"CAN-FD":"CAN2.0", bs);
+                               printf("\r%s %02d%c (BS:%2hhu # ", canfd_on?"CAN-FD":"CAN2.0", ll_dl, brs?'*':' ', bs);
                                if (stmin < 0x80)
                                        printf("STmin:%3hhu msec)", stmin);
                                else if (stmin > 0xF0 && stmin < 0xFA)