diff --git a/src/misc.c b/src/misc.c index fa310e502..6a576c338 100644 --- a/src/misc.c +++ b/src/misc.c @@ -1260,6 +1260,10 @@ int HAMLIB_API elapsed_ms(struct timespec *start, int option) struct timespec stop; double elapsed_msec; + if (option == ELAPSED_SET) { + start->tv_sec = start->tv_nsec = 0; + } + rig_debug(RIG_DEBUG_TRACE, "%s: start = %ld,%ld\n", __func__, (long)start->tv_sec, (long)start->tv_nsec); @@ -1286,7 +1290,7 @@ int HAMLIB_API elapsed_ms(struct timespec *start, int option) break; } elapsed_msec = ((stop.tv_sec - start->tv_sec) + (stop.tv_nsec/1e9 - - start->tv_nsec/1e9)) / 1e3; + start->tv_nsec/1e9)) * 1e3; rig_debug(RIG_DEBUG_TRACE, "%s: elapsed_secs=%g\n", __func__, elapsed_msec); diff --git a/tests/cachetest.c b/tests/cachetest.c index f2944296c..57f33a32a 100644 --- a/tests/cachetest.c +++ b/tests/cachetest.c @@ -101,7 +101,7 @@ int main(int argc, char *argv[]) printf("Rig_info: '%s'\n", info_buf); } - elapsed_ms(&startall, 1); + elapsed_ms(&startall, ELAPSED_SET); for (i = 0; i < loops; ++i) { @@ -111,47 +111,47 @@ int main(int argc, char *argv[]) ptt_t ptt; split_t split; - elapsed_ms(&start, 1); + elapsed_ms(&start, ELAPSED_SET); retcode = rig_get_vfo(my_rig, &vfo); if (retcode != RIG_OK) { printf("Get vfo failed?? Err=%s\n", rigerror(retcode)); } - printf("%4dms: VFO = %s\n", elapsed_ms(&start, 0), rig_strvfo(vfo)); + printf("%4dms: VFO = %s\n", elapsed_ms(&start, ELAPSED_GET), rig_strvfo(vfo)); - elapsed_ms(&start, 1); + elapsed_ms(&start, ELAPSED_SET); retcode = rig_get_freq(my_rig, RIG_VFO_CURR, &freq); if (retcode != RIG_OK) { printf("Get freq failed?? Err=%s\n", rigerror(retcode)); } - printf("%4dms: VFO freq. = %.1f Hz\n", elapsed_ms(&start, 0), freq); - elapsed_ms(&start, 1); + printf("%4dms: VFO freq. = %.1f Hz\n", elapsed_ms(&start, ELAPSED_GET), freq); + elapsed_ms(&start, ELAPSED_SET); retcode = rig_get_mode(my_rig, RIG_VFO_CURR, &mode, &width); if (retcode != RIG_OK) { printf("Get mode failed?? Err=%s\n", rigerror(retcode)); } - printf("%4dms: Current mode = %s, width = %ld\n", elapsed_ms(&start, 0), + printf("%4dms: Current mode = %s, width = %ld\n", elapsed_ms(&start, ELAPSED_GET), rig_strrmode(mode), width); - elapsed_ms(&start, 1); + elapsed_ms(&start, ELAPSED_SET); retcode = rig_get_ptt(my_rig, RIG_VFO_A, &ptt); if (retcode != RIG_OK) { printf("Get ptt failed?? Err=%s\n", rigerror(retcode)); } - printf("%4dms: ptt=%d\n", elapsed_ms(&start, 0), ptt); + printf("%4dms: ptt=%d\n", elapsed_ms(&start, ELAPSED_GET), ptt); #if 1 - elapsed_ms(&start, 1); + elapsed_ms(&start, ELAPSED_SET); retcode = rig_get_split_vfo(my_rig, RIG_VFO_A, &split, &vfo); if (retcode != RIG_OK) { printf("Get split_vfo failed?? Err=%s\n", rigerror(retcode)); } - printf("%4dms: split=%d, tx_vfo=%s\n", elapsed_ms(&start, 0), split, + printf("%4dms: split=%d, tx_vfo=%s\n", elapsed_ms(&start, ELAPSED_GET), split, rig_strvfo(vfo)); #endif } - printf("Elapsed %gsec\n", elapsed_ms(&startall, 0) / 1000.0); + printf("Elapsed %gsec\n", elapsed_ms(&startall, ELAPSED_GET) / 1000.0); rig_close(my_rig); return 0;