rename "pylcd" driver to "pyramid"; finish renaming of "sli" driver
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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,6 +1,6 @@
|
|||||||
/* if_demo.c
|
/* if_demo.c
|
||||||
|
|
||||||
interfacedemo for pylcd device.
|
interfacedemo for "pyramid" LCD device.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* lib-myconnect.c:
|
/* lib-myconnect.c:
|
||||||
|
|
||||||
used by interfacedemo for pylcd device.
|
used by interfacedemo for "pyramid" LCD device.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* lib-myconnect.h
|
/* lib-myconnect.h
|
||||||
|
|
||||||
used by interfacedemo for pylcd device.
|
used by interfacedemo for "pyramid" LCD device.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* lib-mylcd.h
|
/* lib-mylcd.h
|
||||||
|
|
||||||
used by interfacedemo for pylcd device.
|
used by interfacedemo for "pyramid" LCD device.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* lib-mylcd.h
|
/* lib-mylcd.h
|
||||||
|
|
||||||
used by interfacedemo for pylcd device.
|
used by interfacedemo for "pyramid" LCD device.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -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>
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -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>
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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;};
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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)$/
|
||||||
|
|||||||
Reference in New Issue
Block a user