From 3415bc0419bc2914534629d58317796dab3abc68 Mon Sep 17 00:00:00 2001 From: reinelt <> Date: Fri, 1 Dec 2000 20:42:37 +0000 Subject: [lcd4linux @ 2000-12-01 20:42:37 by reinelt] added debugging of SIN driver output, probably found the positioning bug (format %02x instead of %2x) --- SIN.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'SIN.c') diff --git a/SIN.c b/SIN.c index fc03047..d5c8e46 100644 --- a/SIN.c +++ b/SIN.c @@ -1,4 +1,4 @@ -/* $Id: SIN.c,v 1.3 2000/12/01 07:20:26 reinelt Exp $ +/* $Id: SIN.c,v 1.4 2000/12/01 20:42:37 reinelt Exp $ * * driver for SIN router displays * @@ -20,6 +20,10 @@ * * * $Log: SIN.c,v $ + * Revision 1.4 2000/12/01 20:42:37 reinelt + * + * added debugging of SIN driver output, probably found the positioning bug (format %02x instead of %2x) + * * Revision 1.3 2000/12/01 07:20:26 reinelt * * modified text positioning: row starts with 0, column is hexadecimal @@ -45,6 +49,7 @@ #include #include +#include #include #include #include @@ -99,8 +104,28 @@ static int SIN_open (void) return fd; } +static void SIN_debug (char *string, int len) +{ + char buffer[256]; + char *p, *c; + + p=buffer; + c=string; + while (len-->0) { + if (isprint(*c)) { + *p++=*c; + } else { + p+=sprintf(p, "\\%02x", *c); + } + c++; + } + *p='\0'; + debug ("sending '%s'", buffer); +} + static void SIN_write (char *string, int len) { + SIN_debug(string, len); if (Device==-1) return; if (write (Device, string, len)==-1) { if (errno==EAGAIN) { @@ -178,7 +203,7 @@ int SIN_flush (void) buffer[3]='0'+row; for (col=0; col