All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oliver Hartkopp <socketcan@hartkopp.net>
To: linux-can@vger.kernel.org
Cc: Marc Kleine-Budde <mkl@pengutronix.de>,
	Felix Seitz <felix.seitz@thm-motorsport.de>
Subject: Re: [PATCH] cansniffer: increase resolution for timeout values
Date: Tue, 24 Jun 2014 21:39:36 +0200	[thread overview]
Message-ID: <53A9D3F8.7050504@hartkopp.net> (raw)
In-Reply-To: <1403638263-4019-1-git-send-email-socketcan@hartkopp.net>

Applied and pushed to master.

Tnx
Oliver

On 24.06.2014 21:31, Oliver Hartkopp wrote:
> From: Marc Kleine-Budde <mkl@pengutronix.de>
> 
> As requested by Felix Seitz the timeout for screen updates should be
> configurable to values smaller than 100ms. Marc Kleine-Budde provided the
> original patch to increase the resolution of the timing relevant variables.
> 
> The rotating animation was replaced by a rolling screen update counter.
> Additionally the CAN-ID is now printed in the same ASCII hex representation
> as the CAN data.
> 
> Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
> ---
>  cansniffer.c | 27 +++++++++++++--------------
>  1 file changed, 13 insertions(+), 14 deletions(-)
> 
> diff --git a/cansniffer.c b/cansniffer.c
> index c8ee58e..39b3e2b 100644
> --- a/cansniffer.c
> +++ b/cansniffer.c
> @@ -86,16 +86,13 @@
>  
>  /* time defaults */
>  
> -#define TIMEOUT 50 /* in 100ms */
> -#define HOLD    10 /* in 100ms */
> -#define LOOP     2 /* in 100ms */
> -
> -#define MAXANI 8
> -const char anichar[MAXANI] = {'|', '/', '-', '\\', '|', '/', '-', '\\'};
> +#define TIMEOUT 500 /* in 10ms */
> +#define HOLD    100 /* in 10ms */
> +#define LOOP     20 /* in 10ms */
>  
>  #define ATTCOLOR ATTBOLD FGRED
>  
> -#define STARTLINESTR "X  time    ID  data ... "
> +#define STARTLINESTR "XX delta   ID  data ... "
>  
>  struct snif {
>  	int flags;
> @@ -172,9 +169,9 @@ void print_usage(char *prg)
>  	fprintf(stderr, "         -B         (start with binary mode with gap - exceeds 80 chars!)\n");
>  	fprintf(stderr, "         -c         (color changes)\n");
>  	fprintf(stderr, "         -f         (filter on CAN-ID only)\n");
> -	fprintf(stderr, "         -t <time>  (timeout for ID display [x100ms] default: %d, 0 = OFF)\n", TIMEOUT);
> -	fprintf(stderr, "         -h <time>  (hold marker on changes [x100ms] default: %d)\n", HOLD);
> -	fprintf(stderr, "         -l <time>  (loop time (display) [x100ms] default: %d)\n", LOOP);
> +	fprintf(stderr, "         -t <time>  (timeout for ID display [x10ms] default: %d, 0 = OFF)\n", TIMEOUT);
> +	fprintf(stderr, "         -h <time>  (hold marker on changes [x10ms] default: %d)\n", HOLD);
> +	fprintf(stderr, "         -l <time>  (loop time (display) [x10ms] default: %d)\n", LOOP);
>  	fprintf(stderr, "Use interface name '%s' to receive from all can-interfaces\n", ANYDEV);
>  	fprintf(stderr, "\n");
>  	fprintf(stderr, "%s", manual);
> @@ -329,7 +326,7 @@ int main(int argc, char **argv)
>  		FD_SET(s, &rdfs);
>  
>  		timeo.tv_sec  = 0;
> -		timeo.tv_usec = 100000 * loop;
> +		timeo.tv_usec = 10000 * loop;
>  
>  		if ((ret = select(s+1, &rdfs, NULL, NULL, &timeo)) < 0) {
>  			//perror("select");
> @@ -338,7 +335,7 @@ int main(int argc, char **argv)
>  		}
>  
>  		gettimeofday(&tv, NULL);
> -		currcms = (tv.tv_sec - start_tv.tv_sec) * 10 + (tv.tv_usec / 100000);
> +		currcms = (tv.tv_sec - start_tv.tv_sec) * 100 + (tv.tv_usec / 10000);
>  
>  		if (FD_ISSET(0, &rdfs))
>  			running &= handle_keyb(s);
> @@ -538,6 +535,7 @@ int handle_timeo(int fd, long currcms){
>  
>  	int i;
>  	int force_redraw = 0;
> +	static unsigned int frame_count;
>  
>  	if (clearscreen) {
>  		char startline[80];
> @@ -555,7 +553,8 @@ int handle_timeo(int fd, long currcms){
>  	}
>  
>  	printf("%s", CSR_HOME);
> -	printf("%c\n", anichar[currcms % MAXANI]); /* funny animation */
> +	printf("%02d\n", frame_count++); /* rolling display update counter */
> +	frame_count %= 100;
>  
>  	for (i=0; i < 2048; i++) {
>  
> @@ -608,7 +607,7 @@ void print_snifline(int id){
>  	if (diffsec > 10)
>  		diffsec = 9, diffusec = 999999;
>  
> -	printf("%ld.%06ld  %3x  ", diffsec, diffusec, id);
> +	printf("%ld.%06ld  %3X  ", diffsec, diffusec, id);
>  
>  	if (binary) {
>  
> 

  reply	other threads:[~2014-06-24 19:39 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-24 19:31 [PATCH] cansniffer: increase resolution for timeout values Oliver Hartkopp
2014-06-24 19:39 ` Oliver Hartkopp [this message]
2014-06-24 21:20   ` Marc Kleine-Budde
2014-06-25  6:30     ` Oliver Hartkopp
2014-06-24 21:19 ` Marc Kleine-Budde

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53A9D3F8.7050504@hartkopp.net \
    --to=socketcan@hartkopp.net \
    --cc=felix.seitz@thm-motorsport.de \
    --cc=linux-can@vger.kernel.org \
    --cc=mkl@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.