rename "pylcd" driver to "pyramid"; finish renaming of "sli" driver

This commit is contained in:
marschap
2006-04-12 16:04:06 +00:00
parent 8b5e6d6e72
commit cf5ac7797b
22 changed files with 257 additions and 206 deletions
+1 -1
View File
@@ -37,7 +37,7 @@ This version has split off from unstable-0.4.3. Includes major changes.
+ Added ms6931 driver for MSI-6931 displays in 1U rack servers by MSI + Added ms6931 driver for MSI-6931 displays in 1U rack servers by MSI
+ Added mtc_s16209x driver for MTC-S16209x by Microtips Technology Inc + Added mtc_s16209x driver for MTC-S16209x by Microtips Technology Inc
+ Added NoritakeVFD driver for Noritake VFD Device CU20045SCPB-T28A + Added NoritakeVFD driver for Noritake VFD Device CU20045SCPB-T28A
+ Added pylcd driver for Pyramid LC-Displays + Added pyramid driver for Pyramid LC-Displays
+ Added serialVFD driver for NEC FIPC8367 based serial VFDs + Added serialVFD driver for NEC FIPC8367 based serial VFDs
+ Added tyan driver for LCDs in Tyan Barebone GS series + Added tyan driver for LCDs in Tyan Barebone GS series
+ Added ula200 driver for the USB board ULA-200 from ELV + Added ula200 driver for the USB board ULA-200 from ELV
+3 -3
View File
@@ -613,8 +613,8 @@ Speed=9600
## Pyramid pylcd driver ## ## Pyramid LCD driver ##
[pylcd] [pyramid]
# device to connect to [default: /dev/lcd] # device to connect to [default: /dev/lcd]
Device=/dev/ttyUSB0 Device=/dev/ttyUSB0
@@ -764,7 +764,7 @@ Size=20x4
## Wirz SLI LCD driver ## ## Wirz SLI LCD driver ##
[Wirz_sli] [sli]
# Select the output device to use [default: /dev/lcd] # Select the output device to use [default: /dev/lcd]
Device=/dev/lcd Device=/dev/lcd
+7 -7
View File
@@ -8,14 +8,14 @@ AC_ARG_ENABLE(drivers,
[ bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,] [ bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,]
[ glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,] [ glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,]
[ joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,] [ joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,]
[ MtxOrb,NoritakeVFD,pylcd,sed1330,sed1520,serialVFD,] [ MtxOrb,NoritakeVFD,pyramid,sed1330,sed1520,serialVFD,]
[ sli,stv5730,svga,t6963,text,tyan,ula200,xosd] [ sli,stv5730,svga,t6963,text,tyan,ula200,xosd]
[ 'all' compiles all drivers;] [ 'all' compiles all drivers;]
[ 'all,!xxx,!yyy' de-selects previously selected drivers], [ 'all,!xxx,!yyy' de-selects previously selected drivers],
drivers="$enableval", drivers="$enableval",
drivers=[bayrad,CFontz,CFontz633,curses,CwLnx,glk,lb216,lcdm001,MtxOrb,pylcd,text]) drivers=[bayrad,CFontz,CFontz633,curses,CwLnx,glk,lb216,lcdm001,MtxOrb,pyramid,text])
allDrivers=[bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,MtxOrb,NoritakeVFD,pylcd,sed1330,sed1520,serialVFD,sli,stv5730,svga,t6963,text,tyan,ula200,xosd] allDrivers=[bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,MtxOrb,NoritakeVFD,pyramid,sed1330,sed1520,serialVFD,sli,stv5730,svga,t6963,text,tyan,ula200,xosd]
drivers=`echo $drivers | sed -e 's/,/ /g'` drivers=`echo $drivers | sed -e 's/,/ /g'`
@@ -232,9 +232,9 @@ dnl else
DRIVERS="$DRIVERS NoritakeVFD${SO}" DRIVERS="$DRIVERS NoritakeVFD${SO}"
actdrivers=["$actdrivers NoritakeVFD"] actdrivers=["$actdrivers NoritakeVFD"]
;; ;;
pylcd) pyramid)
DRIVERS="$DRIVERS pylcd${SO}" DRIVERS="$DRIVERS pyramid${SO}"
actdrivers=["$actdrivers pylcd"] actdrivers=["$actdrivers pyramid"]
;; ;;
sed1330) sed1330)
if test "$ac_cv_port_have_lpt" = yes if test "$ac_cv_port_have_lpt" = yes
@@ -259,7 +259,7 @@ dnl else
actdrivers=["$actdrivers serialVFD"] actdrivers=["$actdrivers serialVFD"]
;; ;;
sli) sli)
DRIVERS="$DRIVERS wirz_sli${SO}" DRIVERS="$DRIVERS sli${SO}"
actdrivers=["$actdrivers sli"] actdrivers=["$actdrivers sli"]
;; ;;
stv5730) stv5730)
+1 -1
View File
@@ -1,6 +1,6 @@
/* if_demo.c /* if_demo.c
interfacedemo for pylcd device. interfacedemo for "pyramid" LCD device.
*/ */
/* /*
+1 -1
View File
@@ -1,6 +1,6 @@
/* lib-myconnect.c: /* lib-myconnect.c:
used by interfacedemo for pylcd device. used by interfacedemo for "pyramid" LCD device.
*/ */
/* /*
+1 -1
View File
@@ -1,6 +1,6 @@
/* lib-myconnect.h /* lib-myconnect.h
used by interfacedemo for pylcd device. used by interfacedemo for "pyramid" LCD device.
*/ */
/* /*
+1 -1
View File
@@ -1,6 +1,6 @@
/* lib-mylcd.h /* lib-mylcd.h
used by interfacedemo for pylcd device. used by interfacedemo for "pyramid" LCD device.
*/ */
/* /*
+1 -1
View File
@@ -1,6 +1,6 @@
/* lib-mylcd.h /* lib-mylcd.h
used by interfacedemo for pylcd device. used by interfacedemo for "pyramid" LCD device.
*/ */
/* /*
+1 -1
View File
@@ -2,7 +2,7 @@
### MyHalt ### ### MyHalt ###
# #
# used by interfacedemo for pylcd device. # used by interfacedemo for "pyramid" LCD device.
# #
# Copyright (C) 2005 Silvan Marco Fin <silvan@kernelconcepts.de> # Copyright (C) 2005 Silvan Marco Fin <silvan@kernelconcepts.de>
# #
+1 -1
View File
@@ -2,7 +2,7 @@
### MyIpSet ### ### MyIpSet ###
# #
# used by interfacedemo for pylcd device. # used by interfacedemo for "pyramid" LCD device.
# #
# Copyright (C) 2005 Silvan Marco Fin <silvan@kernelconcepts.de> # Copyright (C) 2005 Silvan Marco Fin <silvan@kernelconcepts.de>
# #
+1 -1
View File
@@ -2,7 +2,7 @@
### MyReboot ### ### MyReboot ###
# #
# used by interfacedemo for pylcd device. # used by interfacedemo for "pyramid" LCD device.
# #
# Copyright (C) 2005 Silvan Marco Fin <silvan@kernelconcepts.de> # Copyright (C) 2005 Silvan Marco Fin <silvan@kernelconcepts.de>
# #
+1 -1
View File
@@ -159,7 +159,7 @@ Matrix Orbital displays (except Matrix Orbital GLK displays)
.B NoritakeVFD .B NoritakeVFD
Noritake VFD Device CU20045SCPB-T28A Noritake VFD Device CU20045SCPB-T28A
.TP .TP
.B pylcd .B pyramid
LCD displays from Pyramid (http://www.pyramid.de) LCD displays from Pyramid (http://www.pyramid.de)
.TP .TP
.B sed1330 .B sed1330
+1 -1
View File
@@ -1,7 +1,7 @@
Dear lcdproc community, Dear lcdproc community,
I've added support for the LEDs on the Pyramid LC-Display to the I've added support for the LEDs on the Pyramid LC-Display to the
pylcd driver of lcdproc. "pyramid" driver of lcdproc.
Since it seems that LEDs on an LCD are not directly supported by the Since it seems that LEDs on an LCD are not directly supported by the
lcdproc API I've used the "output" command of the server to trigger the lcdproc API I've used the "output" command of the server to trigger the
+3 -3
View File
@@ -49,7 +49,7 @@ AC_ARG_ENABLE(drivers,
[ bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,] [ bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,]
[ glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,] [ glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,]
[ joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,] [ joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,]
[ MtxOrb,NoritakeVFD,pylcd,sed1330,sed1520,serialVFD,] [ MtxOrb,NoritakeVFD,pyramid,sed1330,sed1520,serialVFD,]
[ sli,stv5730,svga,t6963,text,tyan,ula200,xosd] [ sli,stv5730,svga,t6963,text,tyan,ula200,xosd]
[ 'all' compiles all drivers;] [ 'all' compiles all drivers;]
[ 'all,!xxx,!yyy' de-selects previously selected drivers], [ 'all,!xxx,!yyy' de-selects previously selected drivers],
@@ -64,7 +64,7 @@ AC_ARG_ENABLE(drivers,
[ bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,] [ bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,]
[ glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,] [ glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,]
[ joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,] [ joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,]
[ MtxOrb,NoritakeVFD,pylcd,sed1330,sed1520,serialVFD,] [ MtxOrb,NoritakeVFD,pyramid,sed1330,sed1520,serialVFD,]
[ sli,stv5730,svga,t6963,text,tyan,ula200,xosd,<emphasis>myDriver</emphasis>] [ sli,stv5730,svga,t6963,text,tyan,ula200,xosd,<emphasis>myDriver</emphasis>]
[ 'all' compiles all drivers;] [ 'all' compiles all drivers;]
[ 'all,!xxx,!yyy' de-selects previously selected drivers], [ 'all,!xxx,!yyy' de-selects previously selected drivers],
@@ -241,7 +241,7 @@ Matrix Orbital displays (except Matrix Orbital GLK displays)
.B NoritakeVFD .B NoritakeVFD
Noritake VFD Device CU20045SCPB-T28A Noritake VFD Device CU20045SCPB-T28A
.TP .TP
.B pylcd .B pyramid
LCD displays from Pyramid (http://www.pyramid.de) LCD displays from Pyramid (http://www.pyramid.de)
.TP .TP
.B sed1330 .B sed1330
+1 -1
View File
@@ -41,7 +41,7 @@ Then simply run make.
</sect2> </sect2>
<sect2 id="lirc-config"> <sect2 id="lirc-configuration">
<title>Configure LCDd to Use the lirc Driver</title> <title>Configure LCDd to Use the lirc Driver</title>
<para> <para>
+26 -12
View File
@@ -1,23 +1,37 @@
<sect1 id="pylcd-howto"> <sect1 id="pyramid-howto">
<title>The pylcd Driver</title> <title>The pyramid Driver</title>
<para> <para>
This section talks about using LCDproc with LCD displays that use the This section talks about using LCDproc with programmable LC displays
pylcd chipset. sold by <ulink url="http://www.pyramid.de/">Pyramid Ccomputer</ulink>.
</para> </para>
<sect2 id="pylcd-connections"> <para>
<title>Connections</title> Pyramid Computer builds these LC displays into its thriving server products
to show system data, and to allow the user to change important parameters or
shut down the appliance in a controlled manner.
The LCD module, accessible via USB, can be integrated by Pyramid’s BTO server
and appliance manufacturing division at the customer's request or it can be
made available separately for self-integration, e.g. as a 5.25" module.
</para>
<sect2 id="pyramid-features">
<title>Features</title>
<para>
The displays are 16 characters wide and 2 lines high. They have 4 programmable
buttons as well as 3 (or 9) LEDs which can also be software controlled.
</para>
</sect2> </sect2>
<sect2 id="pylcd-ledoutput"> <sect2 id="pyramid-ledoutput">
<title>LED output</title> <title>LED output</title>
<para> <para>
I've added support for the LEDs on the Pyramid LC-Display to the I've added support for the LEDs on the Pyramid LC-Display to the
pylcd driver of lcdproc. "pyramid" driver of lcdproc.
</para> </para>
<para> <para>
@@ -50,7 +64,7 @@ is up to the software to do the right thing.
</para> </para>
<example> <example>
<title>How to use the LCED output from the lcient</title> <title>How to use the LED output from the client</title>
<programlisting> <programlisting>
telnet localhost 13666 telnet localhost 13666
hello hello
@@ -83,12 +97,12 @@ coresystems GmbH · Brahmsstr. 16 · D-79104 Freiburg i. Br.
Tel.: +49 761 7668825 · Fax: +49 761 7664613 Tel.: +49 761 7668825 · Fax: +49 761 7664613
Email: info@coresystems.de · http://www.coresystems.de/ Email: info@coresystems.de · http://www.coresystems.de/
<!-- ## Pyramid pylcd driver ## --> <!-- ## Pyramid LCD driver ## -->
<sect2 id="pylcd-config"> <sect2 id="pyramid-config">
<title>Configuration in LCDd.conf</title> <title>Configuration in LCDd.conf</title>
<sect3> <sect3>
<title>[pylcd]</title> <title>[pyramid]</title>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
+1 -1
View File
@@ -11,7 +11,7 @@ sli chipset.
<title>Configuration in LCDd.conf</title> <title>Configuration in LCDd.conf</title>
<sect3> <sect3>
<title>[Wirz-sli]</title> <title>[sli]</title>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
+1 -1
View File
@@ -18,7 +18,7 @@ lcdproc (0.4.99+cvs20050101) unstable; urgency=low
+ ms6931: for MSI-6931 displays in 1U rack servers by MSI + ms6931: for MSI-6931 displays in 1U rack servers by MSI
+ mtc_s16209x: for MTC-S16209x by Microtips Technology Inc + mtc_s16209x: for MTC-S16209x by Microtips Technology Inc
+ NoritakeVFD: for Noritake VFD Device CU20045SCPB-T28A + NoritakeVFD: for Noritake VFD Device CU20045SCPB-T28A
+ pylcd: for Pyramid LC-Displays + pyramid: for Pyramid LC-Displays
+ serialVFD: for NEC FIPC8367 based serial VFDs + serialVFD: for NEC FIPC8367 based serial VFDs
+ tyan: for LCDs in Tyan Barebone GS series + tyan: for LCDs in Tyan Barebone GS series
+ ula200: for the USB board ULA-200 from ELV + ula200: for the USB board ULA-200 from ELV
+4 -4
View File
@@ -19,7 +19,7 @@ AM_LDFLAGS = @LDSHARED@
LIBS = LIBS =
pkglib_PROGRAMS = @DRIVERS@ pkglib_PROGRAMS = @DRIVERS@
EXTRA_PROGRAMS = bayrad CFontz CFontz633 CFontzPacket curses CwLnx glcdlib glk hd44780 icp_a106 imon IOWarrior irman joy lb216 lcdm001 lcterm lirc ms6931 mtc_s16209x MtxOrb NoritakeVFD pylcd sed1330 sed1520 serialVFD stv5730 svga t6963 text tyan wirz_sli ula200 xosd EXTRA_PROGRAMS = bayrad CFontz CFontz633 CFontzPacket curses CwLnx glcdlib glk hd44780 icp_a106 imon IOWarrior irman joy lb216 lcdm001 lcterm lirc ms6931 mtc_s16209x MtxOrb NoritakeVFD pyramid sed1330 sed1520 serialVFD stv5730 svga t6963 text tyan sli ula200 xosd
noinst_LIBRARIES = libLCD.a libbignum.a noinst_LIBRARIES = libLCD.a libbignum.a
IOWarrior_CFLAGS = @libusb_cflags@ $(AM_CFLAGS) IOWarrior_CFLAGS = @libusb_cflags@ $(AM_CFLAGS)
@@ -46,7 +46,7 @@ svga_LDADD = @LIBSVGA@
t6963_LDADD = libLCD.a t6963_LDADD = libLCD.a
tyan_LDADD = libLCD.a tyan_LDADD = libLCD.a
ula200_LDADD = libLCD.a @LIBFTDI@ ula200_LDADD = libLCD.a @LIBFTDI@
wirz_sli_LDADD = libLCD.a sli_LDADD = libLCD.a
xosd_LDADD = @LIBXOSD@ xosd_LDADD = @LIBXOSD@
libLCD_a_SOURCES = lcd_lib.h lcd_lib.c libLCD_a_SOURCES = lcd_lib.h lcd_lib.c
@@ -76,7 +76,7 @@ ms6931_SOURCES = lcd.h lcd_lib.h ms6931.h ms6931.c report.h
mtc_s16209x_SOURCES = lcd.h lcd_lib.h mtc_s16209x.c mtc_s16209x.h report.h mtc_s16209x_SOURCES = lcd.h lcd_lib.h mtc_s16209x.c mtc_s16209x.h report.h
MtxOrb_SOURCES = lcd.h lcd_lib.h MtxOrb.c MtxOrb.h report.h bigfont.h MtxOrb_SOURCES = lcd.h lcd_lib.h MtxOrb.c MtxOrb.h report.h bigfont.h
NoritakeVFD_SOURCES = lcd.h lcd_lib.h NoritakeVFD.c NoritakeVFD.h report.h NoritakeVFD_SOURCES = lcd.h lcd_lib.h NoritakeVFD.c NoritakeVFD.h report.h
pylcd_SOURCES = lcd.h pylcd.c pylcd.h pyramid_SOURCES = lcd.h pylcd.c pylcd.h
sed1330_SOURCES = lcd.h sed1330.h sed1330.c port.h lpt-port.h timing.h report.h sed1330_SOURCES = lcd.h sed1330.h sed1330.c port.h lpt-port.h timing.h report.h
sed1520_SOURCES = lcd.h sed1520.c sed1520.h sed1520fm.c sed1520fm.h port.h report.h sed1520_SOURCES = lcd.h sed1520.c sed1520.h sed1520fm.c sed1520fm.h port.h report.h
serialVFD_SOURCES = lcd.h lcd_lib.h serialVFD.c serialVFD.h report.h adv_bignum.h serialVFD_SOURCES = lcd.h lcd_lib.h serialVFD.c serialVFD.h report.h adv_bignum.h
@@ -86,7 +86,7 @@ t6963_SOURCES = lcd.h lcd_lib.h t6963.c t6963.h t6963_font.h report.h
text_SOURCES = lcd.h text.h text.c report.h text_SOURCES = lcd.h text.h text.c report.h
tyan_SOURCES = lcd.h lcd_lib.h tyan_lcdm.h tyan_lcdm.c report.h tyan_SOURCES = lcd.h lcd_lib.h tyan_lcdm.h tyan_lcdm.c report.h
ula200_SOURCES = lcd.h lcd_lib.h ula200.h ula200.c report.h ula200_SOURCES = lcd.h lcd_lib.h ula200.h ula200.c report.h
wirz_sli_SOURCES = lcd.h lcd_lib.h wirz-sli.h wirz-sli.c report.h sli_SOURCES = lcd.h lcd_lib.h wirz-sli.h wirz-sli.c report.h
xosd_SOURCES = lcd.h xosdlib_drv.c xosdlib_drv.h report.h xosd_SOURCES = lcd.h xosdlib_drv.c xosdlib_drv.h report.h
AM_CPPFLAGS = -I$(top_srcdir) AM_CPPFLAGS = -I$(top_srcdir)
+179 -138
View File
@@ -1,7 +1,7 @@
/* pylcd.c */ /* pylcd.c */
/* /*
This is the LCDproc driver for the "pylcd" device from Pyramid. This is the LCDproc driver for the "pyramid" LCD device from Pyramid.
Copyright (C) 2005 Silvan Marco Fin <silvan@kernelconcepts.de> Copyright (C) 2005 Silvan Marco Fin <silvan@kernelconcepts.de>
Copyright (C) 2006 coresystems GmbH <info@coresystems.de> Copyright (C) 2006 coresystems GmbH <info@coresystems.de>
@@ -60,25 +60,33 @@
#define True 1 #define True 1
#define False 0 #define False 0
#define DEBUG 0
#define MICROTIMEOUT 50000 #define MICROTIMEOUT 50000
#define NOKEY "00000" #define NOKEY "00000"
/* variables for the server core */
MODULE_EXPORT char *api_version = API_VERSION;
MODULE_EXPORT int stay_in_foreground = 0;
MODULE_EXPORT int supports_multiple = 0;
MODULE_EXPORT char *symbol_prefix = "pyramid_";
/* Prototypes: */ /* Prototypes: */
int send_ACK(pylcd_private_data *); int send_ACK(PrivateData *);
/* local functions for pylcd.c */ /* local functions for pylcd.c */
/* Performs an select on the device used. Returns if no data is available at the /* Performs an select on the device used. Returns if no data is available at the
moment. Used to keep reading-operations from blocking the driver. moment. Used to keep reading-operations from blocking the driver.
*/ */
int data_ready(pylcd_private_data *status) int
data_ready(PrivateData *p)
{ {
FD_ZERO(&status->rdfs); FD_ZERO(&p->rdfs);
FD_SET(status->FD, &status->rdfs); FD_SET(p->FD, &p->rdfs);
return select(status->FD+1, &status->rdfs, NULL, NULL, &status->timeout)>0; return select(p->FD+1, &p->rdfs, NULL, NULL, &p->timeout)>0;
} }
/* Reads one telegramm, stores the telegramm without ETX/STX in buffer /* Reads one telegramm, stores the telegramm without ETX/STX in buffer
@@ -86,14 +94,15 @@ int data_ready(pylcd_private_data *status)
or the telegramm didn't match its CC or if MAXCOUNT was exeeded without or the telegramm didn't match its CC or if MAXCOUNT was exeeded without
reading a complete telegramm. reading a complete telegramm.
*/ */
int read_tele(pylcd_private_data *status, char *buffer) int
read_tele(PrivateData *p, char *buffer)
{ {
char zeichen=0; char zeichen=0;
int len=0; int len=0;
char cc=0x00; char cc=0x00;
while (data_ready(status) while (data_ready(p)
&& (read(status->FD, &zeichen, 1)>0) && (read(p->FD, &zeichen, 1)>0)
&& (zeichen!=0x02) && (zeichen!=0x02)
&& (len<MAXCOUNT)) && (len<MAXCOUNT))
len++; len++;
@@ -107,8 +116,8 @@ int read_tele(pylcd_private_data *status, char *buffer)
cc ^= zeichen; cc ^= zeichen;
len=0; len=0;
while (data_ready(status) while (data_ready(p)
&& (read(status->FD, &zeichen, 1)>0) && (read(p->FD, &zeichen, 1)>0)
&& (len<MAXCOUNT+1)) && (len<MAXCOUNT+1))
{ {
buffer[len]=zeichen; buffer[len]=zeichen;
@@ -117,8 +126,8 @@ int read_tele(pylcd_private_data *status, char *buffer)
len++; len++;
} }
if (data_ready(status) if (data_ready(p)
&& (read(status->FD, &zeichen, 1)>0) && (read(p->FD, &zeichen, 1)>0)
&& (buffer[len]==0x03) && (buffer[len]==0x03)
&& (zeichen==cc)) && (zeichen==cc))
{ {
@@ -135,10 +144,11 @@ int read_tele(pylcd_private_data *status, char *buffer)
/* Wrapper for reading an acknowledge telegramm. /* Wrapper for reading an acknowledge telegramm.
*/ */
int read_ACK(pylcd_private_data *status) int
read_ACK(PrivateData *p)
{ {
char buffer[6]; char buffer[6];
int retval=read_tele(status, buffer); int retval=read_tele(p, buffer);
return (retval && buffer[0]=='Q'); return (retval && buffer[0]=='Q');
} }
@@ -147,7 +157,8 @@ int read_ACK(pylcd_private_data *status)
this routine waits for an ACK and retransmitts till an ACK is received or this routine waits for an ACK and retransmitts till an ACK is received or
doesn't expect an ACK. doesn't expect an ACK.
*/ */
int send_tele(pylcd_private_data *status, char *buffer) int
send_tele(PrivateData *p, char *buffer)
{ {
char cc=0x00; char cc=0x00;
int i, len; int i, len;
@@ -160,8 +171,8 @@ int send_tele(pylcd_private_data *status, char *buffer)
buffer2[len]=cc; buffer2[len]=cc;
write(status->FD, buffer2, len+1); write(p->FD, buffer2, len+1);
/* tcflush (status->FD, TCIFLUSH); */ /* tcflush (p->FD, TCIFLUSH); */
debug(RPT_DEBUG, "%s: sent %s", __FUNCTION__, buffer); debug(RPT_DEBUG, "%s: sent %s", __FUNCTION__, buffer);
return 0; return 0;
@@ -169,12 +180,14 @@ int send_tele(pylcd_private_data *status, char *buffer)
/* Wrapper for sending ACKs via real_send_tele /* Wrapper for sending ACKs via real_send_tele
*/ */
int send_ACK(pylcd_private_data *status) int
send_ACK(PrivateData *p)
{ {
return send_tele(status, "Q"); return send_tele(p, "Q");
} }
unsigned long long timestamp(pylcd_private_data *status) unsigned long long
timestamp(PrivateData *p)
{ {
struct timeval tv; struct timeval tv;
@@ -185,7 +198,8 @@ unsigned long long timestamp(pylcd_private_data *status)
/* Sets the serial device, used for communication with the LCD, into raw mode /* Sets the serial device, used for communication with the LCD, into raw mode
*/ */
int initTTY(Driver *drvthis, int FD) int
initTTY(Driver *drvthis, int FD)
{ {
struct termios tty_mode; struct termios tty_mode;
@@ -213,15 +227,16 @@ int initTTY(Driver *drvthis, int FD)
/* This function sets all LEDs according to the private data structure */ /* This function sets all LEDs according to the private data structure */
int set_leds(pylcd_private_data *status) int
set_leds(PrivateData *p)
{ {
int i; int i;
char tele[3]="L00"; char tele[3]="L00";
for (i=0; i<7; i++) { for (i=0; i<7; i++) {
tele[1]=i+'1'; tele[1]=i+'1';
tele[2]=status->led[i]?'1':'0'; tele[2]=p->led[i]?'1':'0';
send_tele(status, tele); send_tele(p, tele);
} }
return 0; return 0;
@@ -231,14 +246,15 @@ int set_leds(pylcd_private_data *status)
/* Basic functions */ /* Basic functions */
MODULE_EXPORT int pylcd_init (Driver *drvthis, char *args) MODULE_EXPORT int
pyramid_init (Driver *drvthis, char *args)
{ {
char buffer[6]=""; char buffer[6]="";
int i; int i;
pylcd_private_data *status; PrivateData *p;
status = (pylcd_private_data *) malloc(sizeof(pylcd_private_data)); p = (PrivateData *) malloc(sizeof(PrivateData));
if ((status == NULL) || (drvthis->store_private_ptr(drvthis, status) < 0)) if ((p == NULL) || (drvthis->store_private_ptr(drvthis, p) < 0))
{ {
report(RPT_ERR, "%s: error allocating memory for modules private data", drvthis->name); report(RPT_ERR, "%s: error allocating memory for modules private data", drvthis->name);
return -1; return -1;
@@ -247,38 +263,38 @@ MODULE_EXPORT int pylcd_init (Driver *drvthis, char *args)
/* Read config file: */ /* Read config file: */
/* Which serial device should be used? */ /* Which serial device should be used? */
strncpy(status->devicename, drvthis->config_get_string(drvthis->name, "Device", 0, "/dev/lcd"), sizeof(status->devicename)); strncpy(p->device, drvthis->config_get_string(drvthis->name, "Device", 0, "/dev/lcd"), sizeof(p->device));
status->devicename[sizeof(status->devicename)-1] = '\0'; p->device[sizeof(p->device)-1] = '\0';
report(RPT_INFO, "%s: using Device %s", drvthis->name, status->devicename); report(RPT_INFO, "%s: using Device %s", drvthis->name, p->device);
/* open and initialize serial device */ /* open and initialize serial device */
status->FD = open(status->devicename, O_RDWR); p->FD = open(p->device, O_RDWR);
if (status->FD == -1) { if (p->FD == -1) {
report(RPT_ERR, "%s: opening device failed: %s", drvthis->name, strerror(errno)); report(RPT_ERR, "%s: open(%s) failed: %s", drvthis->name, p->device, strerror(errno));
return -1; return -1;
} }
if (initTTY(drvthis, status->FD) != 0) if (initTTY(drvthis, p->FD) != 0)
return -1; return -1;
status->timeout.tv_sec = 0; p->timeout.tv_sec = 0;
status->timeout.tv_usec = MICROTIMEOUT; p->timeout.tv_usec = MICROTIMEOUT;
status->width = WIDTH; p->width = WIDTH;
status->height = HEIGHT; p->height = HEIGHT;
status->LEDtoggle = 0; p->LEDtoggle = 0;
strcpy(status->last_key_pressed, NOKEY); strcpy(p->last_key_pressed, NOKEY);
status->last_key_time = timestamp(status); p->last_key_time = timestamp(p);
status->last_buf_time = timestamp(status); p->last_buf_time = timestamp(p);
/* Acknowledge all telegramms, the device may yet be sending. /* Acknowledge all telegramms, the device may yet be sending.
(Reset doesn't clear telegramms, darn protocol ... ) (Reset doesn't clear telegramms, darn protocol ... )
*/ */
tcflush(status->FD, TCIFLUSH); /* clear everything */ tcflush(p->FD, TCIFLUSH); /* clear everything */
while (1) { while (1) {
i = read_tele(status, buffer); i = read_tele(p, buffer);
if (i == True) if (i == True)
send_ACK(status); send_ACK(p);
else else
break; break;
usleep(600000); usleep(600000);
@@ -286,169 +302,193 @@ MODULE_EXPORT int pylcd_init (Driver *drvthis, char *args)
/* Now Reset and clear */ /* Now Reset and clear */
send_tele(status, "R"); send_tele(p, "R");
send_tele(status, "C0101"); send_tele(p, "C0101");
send_tele(status, "D "); send_tele(p, "D ");
send_tele(status, "C0101"); send_tele(p, "C0101");
send_tele(status, "M3"); send_tele(p, "M3");
strcpy(status->framebuffer, "D "); strcpy(p->framebuffer, "D ");
status->FB_modified = 1; p->FB_modified = 1;
for (i = 0; i < 7; i++) for (i = 0; i < 7; i++)
status->led[i] = 0; p->led[i] = 0;
set_leds(status); set_leds(p);
report(RPT_DEBUG, "%s: init() done", drvthis->name); report(RPT_DEBUG, "%s: init() done", drvthis->name);
return 0; return 0;
}; };
MODULE_EXPORT void pylcd_close (Driver *drvthis) MODULE_EXPORT void
pyramid_close (Driver *drvthis)
{ {
pylcd_private_data *status = (pylcd_private_data *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
close(status->FD); close(p->FD);
}; };
MODULE_EXPORT int pylcd_width (Driver *drvthis) MODULE_EXPORT int
pyramid_width (Driver *drvthis)
{ {
pylcd_private_data *status = (pylcd_private_data *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
return status->width; return p->width;
}; };
MODULE_EXPORT int pylcd_height (Driver *drvthis) MODULE_EXPORT int
pyramid_height (Driver *drvthis)
{ {
pylcd_private_data *status = (pylcd_private_data *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
return status->height; return p->height;
}; };
MODULE_EXPORT void pylcd_clear (Driver *drvthis) MODULE_EXPORT void
pyramid_clear (Driver *drvthis)
{ {
pylcd_private_data *status = (pylcd_private_data *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
status->FB_modified=1; p->FB_modified=1;
strcpy(status->framebuffer, "D "); strcpy(p->framebuffer, "D ");
}; };
/* flushed the content of the framebuffer to the display. /* flushed the content of the framebuffer to the display.
status->FB_modified tells if the content was modified. If not, p->FB_modified tells if the content was modified. If not,
that means, nothing has to be done that means, nothing has to be done
*/ */
MODULE_EXPORT void pylcd_flush (Driver *drvthis) MODULE_EXPORT void
pyramid_flush (Driver *drvthis)
{ {
static char mesg[16]; static char mesg[16];
pylcd_private_data *status = (pylcd_private_data *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
unsigned long long current_time=timestamp(status); unsigned long long current_time=timestamp(p);
if ((status->FB_modified==True) && (current_time>(status->last_buf_time+40000))) if ((p->FB_modified==True) && (current_time>(p->last_buf_time+40000)))
{ {
send_tele(status, "C0101"); send_tele(p, "C0101");
send_tele(status, status->framebuffer); /* We do not wait for the ACK here*/ send_tele(p, p->framebuffer); /* We do not wait for the ACK here*/
status->FB_modified=False; p->FB_modified=False;
status->last_buf_time=current_time; p->last_buf_time=current_time;
sprintf(mesg, "C%02d%02d", status->C_x, status->C_y); sprintf(mesg, "C%02d%02d", p->C_x, p->C_y);
send_tele(status, mesg); send_tele(p, mesg);
sprintf(mesg, "M%d", status->C_state); sprintf(mesg, "M%d", p->C_state);
send_tele(status, mesg); send_tele(p, mesg);
} }
} }
MODULE_EXPORT void pylcd_string (Driver *drvthis, int x, int y, char *args) MODULE_EXPORT void
pyramid_string (Driver *drvthis, int x, int y, char *args)
{ {
int offset; int offset;
int len; int len;
pylcd_private_data *status = (pylcd_private_data *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
status->FB_modified = True; p->FB_modified = True;
x = min(status->width, x); x = min(p->width, x);
y = min(status->height, y); y = min(p->height, y);
offset = (x)+status->width*(y-1); offset = (x)+p->width*(y-1);
len = min(strlen(args), status->width*status->height-offset+1); len = min(strlen(args), p->width*p->height-offset+1);
memcpy(&status->framebuffer[offset], args, len); memcpy(&p->framebuffer[offset], args, len);
}; };
MODULE_EXPORT void pylcd_chr (Driver *drvthis, int x, int y, char c) MODULE_EXPORT void
pyramid_chr (Driver *drvthis, int x, int y, char c)
{ {
pylcd_private_data *status = (pylcd_private_data *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
status->FB_modified = True; p->FB_modified = True;
x = min(status->width, x); x = min(p->width, x);
y = min(status->height, y); y = min(p->height, y);
status->framebuffer[x+status->width*(y-1)]=c; p->framebuffer[x+p->width*(y-1)]=c;
}; };
/* Extended functions */ /* Extended functions */
/* /*
MODULE_EXPORT void pylcd_vbar (Driver *drvthis, int x, int y, int len, int promille, int pattern){}; MODULE_EXPORT void
MODULE_EXPORT void pylcd_hbar (Driver *drvthis, int x, int y, int len, int promille, int pattern){}; pyramid_vbar (Driver *drvthis, int x, int y, int len, int promille, int pattern){};
MODULE_EXPORT void pylcd_num (Driver *drvthis, int x, int num){}; MODULE_EXPORT void
MODULE_EXPORT void pylcd_heartbeat (Driver *drvthis, int state){}; pyramid_hbar (Driver *drvthis, int x, int y, int len, int promille, int pattern){};
MODULE_EXPORT void pylcd_icon (Driver *drvthis, int x, int y, int icon){}; MODULE_EXPORT void
pyramid_num (Driver *drvthis, int x, int num){};
MODULE_EXPORT void
pyramid_heartbeat (Driver *drvthis, int state){};
MODULE_EXPORT void
pyramid_icon (Driver *drvthis, int x, int y, int icon){};
*/ */
MODULE_EXPORT void pylcd_cursor (Driver *drvthis, int x, int y, int state) MODULE_EXPORT void
pyramid_cursor (Driver *drvthis, int x, int y, int state)
{ {
pylcd_private_data *status = (pylcd_private_data *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
status->C_x = x; p->C_x = x;
status->C_y = y; p->C_y = y;
status->C_state = state; p->C_state = state;
}; };
/* Userdef characters, are those still supported ? */ /* Userdef characters, are those still supported ? */
/* /*
MODULE_EXPORT void pylcd_set_char (Driver *drvthis, int n, char *dat){}; MODULE_EXPORT void
MODULE_EXPORT int pylcd_get_free_chars (Driver *drvthis){return 0;}; pyramid_set_char (Driver *drvthis, int n, char *dat){};
MODULE_EXPORT int pylcd_cellwidth (Driver *drvthis){return 0;}; MODULE_EXPORT int
MODULE_EXPORT int pylcd_cellheight (Driver *drvthis){return 0;}; pyramid_get_free_chars (Driver *drvthis){return 0;};
MODULE_EXPORT int
pyramid_cellwidth (Driver *drvthis){return 0;};
MODULE_EXPORT int
pyramid_cellheight (Driver *drvthis){return 0;};
*/ */
/* Hardware functions */ /* Hardware functions */
/* /*
MODULE_EXPORT int pylcd_get_contrast (Driver *drvthis){return 0;}; MODULE_EXPORT int
MODULE_EXPORT void pylcd_set_contrast (Driver *drvthis, int promille){}; pyramid_get_contrast (Driver *drvthis){return 0;};
MODULE_EXPORT int pylcd_get_brightness (Driver *drvthis, int state){return 0;}; MODULE_EXPORT void
MODULE_EXPORT void pylcd_set_brightness (Driver *drvthis, int state, int promille){}; pyramid_set_contrast (Driver *drvthis, int promille){};
MODULE_EXPORT void pylcd_backlight (Driver *drvthis, int on) MODULE_EXPORT int
pyramid_get_brightness (Driver *drvthis, int state){return 0;};
MODULE_EXPORT void
pyramid_set_brightness (Driver *drvthis, int state, int promille){};
MODULE_EXPORT void
pyramid_backlight (Driver *drvthis, int on)
*/ */
MODULE_EXPORT void pylcd_output (Driver *drvthis, int state) MODULE_EXPORT void
pyramid_output (Driver *drvthis, int state)
{ {
pylcd_private_data *status = (pylcd_private_data *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
int i; int i;
for (i = 0; i < 7; i++) for (i = 0; i < 7; i++)
status->led[i] = state & (1 << i); p->led[i] = state & (1 << i);
set_leds(status); set_leds(p);
}; };
/* Key functions */ /* Key functions */
MODULE_EXPORT const char *pylcd_get_key (Driver *drvthis) MODULE_EXPORT const char *
pyramid_get_key (Driver *drvthis)
{ {
/* supports only one key at a time */ /* supports only one key at a time */
static char buffer[MAXCOUNT]; static char buffer[MAXCOUNT];
unsigned long long current_time; unsigned long long current_time;
int retval; int retval;
pylcd_private_data *status = (pylcd_private_data *) drvthis->private_data; PrivateData *p = (PrivateData *) drvthis->private_data;
/* Now we read everything from the display and as long as we got ACKs, we ignore them. */ /* Now we read everything from the display and as long as we got ACKs, we ignore them. */
while (1) { while (1) {
retval = read_tele(status, buffer); retval = read_tele(p, buffer);
if ((retval == False) || (buffer[0] != 'Q')) break; if ((retval == False) || (buffer[0] != 'Q')) break;
} }
if (retval == False) if (retval == False)
strcpy(buffer, status->last_key_pressed); strcpy(buffer, p->last_key_pressed);
else else
send_ACK(status); send_ACK(p);
/* If a key wasn't released yet it may be released now. */ /* If a key wasn't released yet it may be released now. */
if (buffer[0] == 'K') if (buffer[0] == 'K')
@@ -459,33 +499,33 @@ MODULE_EXPORT const char *pylcd_get_key (Driver *drvthis)
|| (strcmp(buffer, "K0300") == 0) || (strcmp(buffer, "K0300") == 0)
|| (strcmp(buffer, "K3000") == 0)) || (strcmp(buffer, "K3000") == 0))
{ {
debug(RPT_DEBUG, "%s: Key released: %s", __FUNCTION__, status->last_key_pressed); debug(RPT_DEBUG, "%s: Key released: %s", __FUNCTION__, p->last_key_pressed);
strcpy(status->last_key_pressed, NOKEY); strcpy(p->last_key_pressed, NOKEY);
return NULL; return NULL;
} }
else /* It must be a new key event */ else /* It must be a new key event */
{ {
strcpy(status->last_key_pressed, buffer); strcpy(p->last_key_pressed, buffer);
debug(RPT_DEBUG, "%s: Key pressed: %s", __FUNCTION__, status->last_key_pressed); debug(RPT_DEBUG, "%s: Key pressed: %s", __FUNCTION__, p->last_key_pressed);
} }
} }
/* If no keys are pressed at this time, we are done. */ /* If no keys are pressed at this time, we are done. */
if (status->last_key_pressed[0] == NOKEY[0]) if (p->last_key_pressed[0] == NOKEY[0])
return NULL; return NULL;
current_time = timestamp(status); current_time = timestamp(p);
if (current_time > status->last_key_time + 500000) /* (buffer[0]=='K' ? 500000 : 250000)) */ if (current_time > p->last_key_time + 500000) /* (buffer[0]=='K' ? 500000 : 250000)) */
status->last_key_time = current_time; p->last_key_time = current_time;
else else
return NULL; return NULL;
if (strcmp(status->last_key_pressed, "K0001") == 0) /* first from left */ if (strcmp(p->last_key_pressed, "K0001") == 0) /* first from left */
return "Up"; return "Up";
if (strcmp(status->last_key_pressed, "K0010") == 0) /* second from left */ if (strcmp(p->last_key_pressed, "K0010") == 0) /* second from left */
return "Down"; return "Down";
if (strcmp(status->last_key_pressed, "K0100") == 0) /* third from left */ if (strcmp(p->last_key_pressed, "K0100") == 0) /* third from left */
return "Enter"; return "Enter";
if (strcmp(status->last_key_pressed, "K1000") == 0) /* last from left */ if (strcmp(p->last_key_pressed, "K1000") == 0) /* last from left */
return "Escape"; return "Escape";
return NULL; return NULL;
@@ -495,7 +535,8 @@ MODULE_EXPORT const char *pylcd_get_key (Driver *drvthis)
/* Returns a string. Server cannot modify this string. */ /* Returns a string. Server cannot modify this string. */
/* /*
MODULE_EXPORT const char *pylcd_get_info (){return NULL;}; MODULE_EXPORT const char *
pyramid_get_info (){return NULL;};
*/ */
+3 -7
View File
@@ -2,7 +2,7 @@
/* /*
This is the header file of the LCDproc driver for This is the header file of the LCDproc driver for
the "pylcd" device from Pyramid. the "pyramid" LCD device from Pyramid.
Copyright (C) 2005 Silvan Marco Fin <silvan@kernelconcepts.de> Copyright (C) 2005 Silvan Marco Fin <silvan@kernelconcepts.de>
@@ -35,15 +35,11 @@
#define WIDTH 16 #define WIDTH 16
#define HEIGHT 2 #define HEIGHT 2
MODULE_EXPORT char *api_version = API_VERSION;
MODULE_EXPORT int stay_in_foreground = 0;
MODULE_EXPORT int supports_multiple = 0;
MODULE_EXPORT char *symbol_prefix = "pylcd_";
typedef struct typedef struct
{ {
int FD; int FD;
char devicename[255]; char device[255];
int width; int width;
int height; int height;
fd_set rdfs; fd_set rdfs;
@@ -58,7 +54,7 @@ typedef struct
int C_y; int C_y;
int C_state; int C_state;
char led[7]; char led[7];
} pylcd_private_data; } PrivateData;
#endif #endif
+18 -18
View File
@@ -216,7 +216,7 @@ CwLnx_string CwLnx.c /^CwLnx_string(Driver * drvthis, int x, int y, char /
CwLnx_vbar CwLnx.c /^CwLnx_vbar(Driver * drvthis, int x, int y, int len/ CwLnx_vbar CwLnx.c /^CwLnx_vbar(Driver * drvthis, int x, int y, int len/
CwLnx_width CwLnx.c /^CwLnx_width(Driver *drvthis)$/ CwLnx_width CwLnx.c /^CwLnx_width(Driver *drvthis)$/
daemonize main.c /^daemonize(void)$/ daemonize main.c /^daemonize(void)$/
data_ready pylcd.c /^int data_ready(pylcd_private_data *status)$/ data_ready pylcd.c /^int data_ready(PrivateData *p)$/
debug debug.h /^static inline void debug(const char *format, ...\/*/ debug debug.h /^static inline void debug(const char *format, ...\/*/
Disable_Backlight CwLnx.c /^void Disable_Backlight(int fd)$/ Disable_Backlight CwLnx.c /^void Disable_Backlight(int fd)$/
Disable_Cursor CwLnx.c /^void Disable_Cursor(int fd)$/ Disable_Cursor CwLnx.c /^void Disable_Cursor(int fd)$/
@@ -804,21 +804,21 @@ process_configfile lcdexec.c /^int process_configfile( char * configfile )$/
process_configfile main.c /^process_configfile(char *configfile)$/ process_configfile main.c /^process_configfile(char *configfile)$/
process_response lcdexec.c /^int process_response( char * str )$/ process_response lcdexec.c /^int process_response( char * str )$/
PROCSIZE machine_NetBSD.c /^#define PROCSIZE(pp) ((pp)->p_vm_tsize + (pp)->p_v/ PROCSIZE machine_NetBSD.c /^#define PROCSIZE(pp) ((pp)->p_vm_tsize + (pp)->p_v/
pylcd_chr pylcd.c /^MODULE_EXPORT void pylcd_chr (Driver *drvthis, int/ pyramid_chr pylcd.c /^MODULE_EXPORT void pyramid_chr (Driver *drvthis, int/
pylcd_clear pylcd.c /^MODULE_EXPORT void pylcd_clear (Driver *drvthis)$/ pyramid_clear pylcd.c /^MODULE_EXPORT void pyramid_clear (Driver *drvthis)$/
pylcd_close pylcd.c /^MODULE_EXPORT void pylcd_close (Driver *drvthis)$/ pyramid_close pylcd.c /^MODULE_EXPORT void pyramid_close (Driver *drvthis)$/
pylcd_cursor pylcd.c /^MODULE_EXPORT void pylcd_cursor (Driver *drvthis, / pyramid_cursor pylcd.c /^MODULE_EXPORT void pyramid_cursor (Driver *drvthis, /
pylcd_flush pylcd.c /^MODULE_EXPORT void pylcd_flush (Driver *drvthis)$/ pyramid_flush pylcd.c /^MODULE_EXPORT void pyramid_flush (Driver *drvthis)$/
pylcd_get_key pylcd.c /^MODULE_EXPORT const char *pylcd_get_key (Driver *d/ pyramid_get_key pylcd.c /^MODULE_EXPORT const char *pyramid_get_key (Driver *d/
pylcd_height pylcd.c /^MODULE_EXPORT int pylcd_height (Driver *drvthis)$/ pyramid_height pylcd.c /^MODULE_EXPORT int pyramid_height (Driver *drvthis)$/
pylcd_init pylcd.c /^MODULE_EXPORT int pylcd_init (Driver *drvthis, ch/ pyramid_init pylcd.c /^MODULE_EXPORT int pyramid_init (Driver *drvthis, ch/
pylcd_output pylcd.c /^MODULE_EXPORT void pylcd_output (Driver *drvthis, / pyramid_output pylcd.c /^MODULE_EXPORT void pyramid_output (Driver *drvthis, /
pylcd_string pylcd.c /^MODULE_EXPORT void pylcd_string (Driver *drvthis, / pyramid_string pylcd.c /^MODULE_EXPORT void pyramid_string (Driver *drvthis, /
pylcd_width pylcd.c /^MODULE_EXPORT int pylcd_width (Driver *drvthis)$/ pyramid_width pylcd.c /^MODULE_EXPORT int pyramid_width (Driver *drvthis)$/
rawshift hd44780-serialLpt.c /^rawshift (PrivateData *p, unsigned char r)$/ rawshift hd44780-serialLpt.c /^rawshift (PrivateData *p, unsigned char r)$/
read_ACK pylcd.c /^int read_ACK(pylcd_private_data *status)$/ read_ACK pylcd.c /^int read_ACK(PrivateData *p)$/
Read_LCD CwLnx.c /^int Read_LCD(int fd, char *c, int size)$/ Read_LCD CwLnx.c /^int Read_LCD(int fd, char *c, int size)$/
read_tele pylcd.c /^int read_tele(pylcd_private_data *status, char *bu/ read_tele pylcd.c /^int read_tele(PrivateData *p, char *bu/
render_frame render.c /^render_frame (LinkedList * list,$/ render_frame render.c /^render_frame (LinkedList * list,$/
render_screen render.c /^render_screen (Screen * s, long int timer)$/ render_screen render.c /^render_screen (Screen * s, long int timer)$/
report report.c /^void report( const int level, const char *format, / report report.c /^void report( const int level, const char *format, /
@@ -890,11 +890,11 @@ sem_get lcd_sem.c /^sem_get (void)$/
sem_remove lcd_sem.c /^sem_remove (int sid)$/ sem_remove lcd_sem.c /^sem_remove (int sid)$/
sem_signal lcd_sem.c /^sem_signal (int sid)$/ sem_signal lcd_sem.c /^sem_signal (int sid)$/
sem_wait lcd_sem.c /^sem_wait (int sid)$/ sem_wait lcd_sem.c /^sem_wait (int sid)$/
send_ACK pylcd.c /^int send_ACK(pylcd_private_data *status)$/ send_ACK pylcd.c /^int send_ACK(PrivateData *p)$/
send_bytes_message CFontz633io.c /^void send_bytes_message(int fd, unsigned char msg,/ send_bytes_message CFontz633io.c /^void send_bytes_message(int fd, unsigned char msg,/
send_onebyte_message CFontz633io.c /^void send_onebyte_message(int fd, unsigned char ms/ send_onebyte_message CFontz633io.c /^void send_onebyte_message(int fd, unsigned char ms/
send_packet CFontz633io.c /^send_packet(int fd, COMMAND_PACKET *out, COMMAND_P/ send_packet CFontz633io.c /^send_packet(int fd, COMMAND_PACKET *out, COMMAND_P/
send_tele pylcd.c /^int send_tele(pylcd_private_data *status, char *bu/ send_tele pylcd.c /^int send_tele(PrivateData *p, char *bu/
send_zerobyte_message CFontz633io.c /^void send_zerobyte_message(int fd, unsigned char m/ send_zerobyte_message CFontz633io.c /^void send_zerobyte_message(int fd, unsigned char m/
serialVFD_cellheight serialVFD.c /^serialVFD_cellheight (Driver *drvthis)$/ serialVFD_cellheight serialVFD.c /^serialVFD_cellheight (Driver *drvthis)$/
serialVFD_cellwidth serialVFD.c /^serialVFD_cellwidth (Driver *drvthis)$/ serialVFD_cellwidth serialVFD.c /^serialVFD_cellwidth (Driver *drvthis)$/
@@ -931,7 +931,7 @@ set_default_settings main.c /^set_default_settings(void)$/
SetFan hd44780-lis2.c /^void SetFan(int fd, int fan1, int fan2, int fan3, / SetFan hd44780-lis2.c /^void SetFan(int fd, int fan1, int fan2, int fan3, /
set_foreground_color curses_drv.c /^set_foreground_color (char * buf) {$/ set_foreground_color curses_drv.c /^set_foreground_color (char * buf) {$/
Set_Insert CwLnx.c /^void Set_Insert(int fd, int row, int col)$/ Set_Insert CwLnx.c /^void Set_Insert(int fd, int row, int col)$/
set_leds pylcd.c /^int set_leds(pylcd_private_data *status)$/ set_leds pylcd.c /^int set_leds(PrivateData *p)$/
SetMatrice hd44780-lis2.c /^void SetMatrice(PrivateData *p, int fd, int matric/ SetMatrice hd44780-lis2.c /^void SetMatrice(PrivateData *p, int fd, int matric/
set_predecessor menu_commands.c /^int set_predecessor(MenuItem *item, char *itemid, / set_predecessor menu_commands.c /^int set_predecessor(MenuItem *item, char *itemid, /
set_reporting report.c /^int set_reporting( char *application_name, int new/ set_reporting report.c /^int set_reporting( char *application_name, int new/
@@ -1067,7 +1067,7 @@ timercmp timing.h /^# define timercmp(a, b, CMP) /
timerisset timing.h /^# define timerisset(tvp) ((tvp)->tv_sec || / timerisset timing.h /^# define timerisset(tvp) ((tvp)->tv_sec || /
timersub timing.h /^# define timersub(a, b, result) / timersub timing.h /^# define timersub(a, b, result) /
time_screen chrono.c /^time_screen (int rep, int display, int *flags_ptr)/ time_screen chrono.c /^time_screen (int rep, int display, int *flags_ptr)/
timestamp pylcd.c /^unsigned long long timestamp(pylcd_private_data *s/ timestamp pylcd.c /^unsigned long long timestamp(PrivateData *s/
timing_init timing.h /^static inline int timing_init() {$/ timing_init timing.h /^static inline int timing_init() {$/
timing_uPause timing.h /^static inline void timing_uPause (int usecs) {$/ timing_uPause timing.h /^static inline void timing_uPause (int usecs) {$/
tyan_lcdm_backlight tyan_lcdm.c /^tyan_lcdm_backlight (Driver * drvthis, int on)$/ tyan_lcdm_backlight tyan_lcdm.c /^tyan_lcdm_backlight (Driver * drvthis, int on)$/