-/* $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
*
*
*
* $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
#include <stdlib.h>
#include <stdio.h>
+#include <ctype.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
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) {
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];
#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
#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"
Sensor3 /proc/sys/dev/sensors/w83781d-isa-0290/temp3
Sensor3_min 30
Sensor3_max 50
-
-Fifo /var/run/lcd4linux