aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreinelt <>2000-12-01 20:42:37 +0000
committerreinelt <>2000-12-01 20:42:37 +0000
commit3415bc0419bc2914534629d58317796dab3abc68 (patch)
treeb5129b166de0a009b7f65efd87091892157e7e22
parent40d0c5766608e8a65350fa33d9868171a7d69a25 (diff)
downloadlcd4linux-3415bc0419bc2914534629d58317796dab3abc68.tar.gz
[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)
-rw-r--r--SIN.c29
-rw-r--r--lcd4linux.conf.sample19
2 files changed, 37 insertions, 11 deletions
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 <stdlib.h>
#include <stdio.h>
+#include <ctype.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
@@ -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<Lcd.cols; col++) {
if (Txt[row][col]=='\t') continue;
- sprintf (buffer+4, "%2x", col);
+ sprintf (buffer+4, "%02x", col);
for (p=buffer+6; col<Lcd.cols; col++, p++) {
if (Txt[row][col]=='\t') break;
*p=Txt[row][col];
diff --git a/lcd4linux.conf.sample b/lcd4linux.conf.sample
index fc7f232..fd4d0ac 100644
--- a/lcd4linux.conf.sample
+++ b/lcd4linux.conf.sample
@@ -3,13 +3,10 @@
#Speed 19200
#Contrast 160
-Display HD44780
-Port 0x378
-Size 16x2
-Delay 398
-
-Row1 "Disk%dm $R10dr+dw"
-Row2 "Net %nm $R10nr+nw"
+#Display HD44780
+#Port 0x378
+#Size 16x2
+#Delay 398
#Display BLC100x
#Port /dev/ttyS2
@@ -44,6 +41,12 @@ Row2 "Net %nm $R10nr+nw"
#halfground \#90c000
#background \#a0d000
+Display SIN
+Port /dev/ttyS1
+
+Row1 "Disk%dm $R10dr+dw"
+Row2 "Net %nm $R10nr+nw"
+
#Row1 "*** %o %v ***"
#Row2 "%p CPU %r MB RAM"
#Row3 "Busy %cb%% $r10cs+cb"
@@ -78,5 +81,3 @@ Sensor2_max 50
Sensor3 /proc/sys/dev/sensors/w83781d-isa-0290/temp3
Sensor3_min 30
Sensor3_max 50
-
-Fifo /var/run/lcd4linux