]> rtime.felk.cvut.cz Git - sojka/can-utils.git/blobdiff - asc2log.c
can-utils: AOSP build clean up
[sojka/can-utils.git] / asc2log.c
index e6f82d3c13b7c6adca95ea978c5a9cd754609bd3..bb1baab8e480d325250d46c138d8d33c126e0f19 100644 (file)
--- a/asc2log.c
+++ b/asc2log.c
@@ -1,7 +1,3 @@
-/*
- *  $Id$
- */
-
 /*
  * asc2log.c - convert ASC logfile to compact CAN frame logfile
  *
@@ -41,7 +37,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
  * DAMAGE.
  *
- * Send feedback to <socketcan-users@lists.berlios.de>
+ * Send feedback to <linux-can@vger.kernel.org>
  *
  */
 
@@ -73,11 +69,14 @@ void print_usage(char *prg)
 void prframe(FILE *file, struct timeval *tv, int dev, struct can_frame *cf) {
 
        fprintf(file, "(%ld.%06ld) ", tv->tv_sec, tv->tv_usec);
+
        if (dev > 0)
                fprintf(file, "can%d ", dev-1);
        else
                fprintf(file, "canX ");
-       fprint_canframe(file, cf, "\n", 0);
+
+       /* no CAN FD support so far */
+       fprint_canframe(file, (struct canfd_frame *)cf, "\n", 0, CAN_MAX_DLEN);
 }
 
 void get_can_id(struct can_frame *cf, char *idstring, int base) {
@@ -97,6 +96,9 @@ void calc_tv(struct timeval *tv, struct timeval *read_tv,
        if (dplace == 4) /* shift values having only 4 decimal places */
                read_tv->tv_usec *= 100;                /* and need for 6 */
 
+       if (dplace == 5) /* shift values having only 5 decimal places */
+               read_tv->tv_usec *= 10;                /* and need for 6 */
+
        if (timestamps == 'a') { /* absolute */
 
                tv->tv_sec  = date_tv->tv_sec  + read_tv->tv_sec;
@@ -172,7 +174,7 @@ int main(int argc, char **argv)
        static struct timeval tv; /* current frame timestamp */
        static struct timeval read_tv; /* frame timestamp from ASC file */
        static struct timeval date_tv; /* date of the ASC file */
-       static int dplace; /* decimal place 4 or 6 or uninitialized */
+       static int dplace; /* decimal place 4, 5 or 6 or uninitialized */
        static char base; /* 'd'ec or 'h'ex */
        static char timestamps; /* 'a'bsolute or 'r'elative */
 
@@ -262,8 +264,8 @@ int main(int argc, char **argv)
                                dplace = strlen(tmp2);
                                if (verbose)
                                        printf("decimal place %d, e.g. '%s'\n", dplace, tmp2);
-                               if ((dplace != 4) && (dplace != 6)) {
-                                       printf("invalid dplace %d (must be 4 or 6)!\n", dplace);
+                               if (dplace < 4 || dplace > 6) {
+                                       printf("invalid dplace %d (must be 4, 5 or 6)!\n", dplace);
                                        return 1;
                                }
                        } else