It's all about documentation

Please do not forget to also add the required documentation, so that your driver can be used from others as well.

Within the source code

We use Doxygen to document functions and data types. The doxygen documentation can be created anytime by changing to the docs/ directory and running doxygen.

When documenting your driver's API functions you may use a short hand version and add 'API:' to the beginning of your comment and leave out the parameter and return value description (as we know what the API is doing). If you use some clever algorithm inside a function please add a few words about it.

Note

Always document functions internal to the driver! We do know what the API does (or is expected to do) but we don't know about what your driver does internally.

Read the section called “Comments” on how for format comments.

The configuration file, LCDd.conf

Extend the LCDproc server's configuration file with a section that holds a standard configuration for your driver together with short descriptions of the options used.


## MyDriver for MyDevice ##
[MyDriver]

# Select the output device to use [default: /dev/lcd]
Device=/dev/ttyS0

# Set the display size [default: 20x4]
Size=20x4

The daemon's manual page, LCDd.8

Append your driver to the list of drivers in docs/LCDd.8.in, the manual page of LCD, so that users can find your driver when doing man LCDd.

…
.TP
.B ms6931
MSI-6931 displays in 1U rack servers by MSI
.TP
.B mtc_s16209x
MTC_S16209x LCD displays by Microtips Technology Inc
.TP
.B MtxOrb
Matrix Orbital displays (except Matrix Orbital GLK displays)
.TP
.B MyDriver
displays connected using MyDevice
.TP
.B NoritakeVFD
Noritake VFD Device CU20045SCPB-T28A
.TP
.B pyramid
LCD displays from Pyramid (http://www.pyramid.de)
.TP
.B sed1330
SED1330/SED1335 (aka S1D13300/S1D13305) based graphical displays
…

The user guide

Step 1

Please add a file myDriver.docbook, that describes the configuration of your driver and the hard/software needed, to the directory docs/lcdproc-user/drivers/.

Step 2

Define a Docbook entity for your driver file in lcdproc-user.docbook.

…
<!ENTITY ms6931 SYSTEM "drivers/ms6931.docbook">
<!ENTITY mtc_s16209x SYSTEM "drivers/mtc_s16209x.docbook">
<!ENTITY MtxOrb SYSTEM "drivers/mtxorb.docbook">
<!ENTITY MyDriver SYSTEM "drivers/MyDriver.docbook">
<!ENTITY NoritakeVFD SYSTEM "drivers/NoritakeVFD.docbook">
<!ENTITY pylcd SYSTEM "drivers/pylcd.docbook">
<!ENTITY sed1330 SYSTEM "drivers/sed1330.docbook">
…

Step 3

Add the freshly defined entity to drivers.docbook to include the documentation of your driver into the LCDproc User's Guide.

…
&ms6931;
&mtc_s16209x;
&MtxOrb;
&MyDriver;
&NoritakeVFD;
&pylcd;
&sed1330;
…

Step 4

Add the newly defined file myDriver.docbook to the Makefile in the directory docs/lcdproc-user/drivers/.

## Process this file with automake to produce Makefile.in

EXTRA_DIST =	bayrad.docbook \
		CFontz.docbook \
		...
		MyDriver.docbook \
		...
## EOF