diff --git a/cangen.c b/cangen.c index 907811a..fd9e9a5 100644 --- a/cangen.c +++ b/cangen.c @@ -194,9 +194,10 @@ int main(int argc, char **argv) data_mode = MODE_INCREMENT; } else { data_mode = MODE_FIX; - incdata = strtoull(optarg, NULL, 16); - for (i=0; i<8 ;i++) - frame.data[i] = (incdata >> (7-i)*8) & 0xFFULL; + if (hexstring2candata(optarg, &frame)) { + printf ("wrong fix data definition\n"); + return 1; + } } break; @@ -225,7 +226,6 @@ int main(int argc, char **argv) ts.tv_sec = gap / 1000; ts.tv_nsec = (gap % 1000) * 1000000; - if (id_mode == MODE_FIX) { /* recognize obviously missing commandline option */