1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
/*-
* Copyright (C) 2006 Stefan Herdler
*
* This driver is based on wirz-sli.c, hd44780.c, drv_base.c and NoritakeVFD
* driver. It may contain parts of other drivers of this package too.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
*/
/*
* 2006-05-16 Version 0.3: everything should work (not all hardware tested!)
*/
#ifndef SERIALVFD_H
#define SERIALVFD_H
#define DEFAULT_CELL_WIDTH 5
#define DEFAULT_CELL_HEIGHT 7
#define DEFAULT_DEVICE "/dev/lcd"
#define DEFAULT_SPEED 9600
#define DEFAULT_BRIGHTNESS 140
#define DEFAULT_SIZE "20x2"
#define DEFAULT_DISPLAYTYPE 0
#define DEFAULT_PARA_WAIT 2
#define DEFAULT_OFF_BRIGHTNESS 300
#define DEFAULT_ON_BRIGHTNESS 1000
#define DEFAULT_LPTPORT 0x378
MODULE_EXPORT int serialVFD_init (Driver *drvthis);
MODULE_EXPORT void serialVFD_close (Driver *drvthis);
MODULE_EXPORT int serialVFD_width (Driver *drvthis);
MODULE_EXPORT int serialVFD_height (Driver *drvthis);
MODULE_EXPORT int serialVFD_cellwidth (Driver *drvthis);
MODULE_EXPORT int serialVFD_cellheight (Driver *drvthis);
MODULE_EXPORT void serialVFD_clear (Driver *drvthis);
MODULE_EXPORT void serialVFD_flush (Driver *drvthis);
MODULE_EXPORT void serialVFD_string (Driver *drvthis, int x, int y, const char string[]);
MODULE_EXPORT void serialVFD_chr (Driver *drvthis, int x, int y, char c);
MODULE_EXPORT void serialVFD_vbar (Driver *drvthis, int x, int y, int len, int promille, int options);
MODULE_EXPORT void serialVFD_hbar (Driver *drvthis, int x, int y, int len, int promille, int options);
MODULE_EXPORT void serialVFD_num (Driver *drvthis, int x, int num);
MODULE_EXPORT int serialVFD_icon(Driver *drvthis, int x, int y, int icon);
MODULE_EXPORT void serialVFD_set_char (Driver *drvthis, int n, unsigned char *dat);
MODULE_EXPORT int serialVFD_get_free_chars (Driver *drvthis);
MODULE_EXPORT int serialVFD_get_brightness (Driver *drvthis, int state);
MODULE_EXPORT void serialVFD_set_brightness (Driver *drvthis, int state, int promille);
MODULE_EXPORT void serialVFD_backlight (Driver *drvthis, int on);
MODULE_EXPORT const char * serialVFD_get_info( Driver *drvthis );
/** private data for the \c serialVFD driver */
typedef struct serialVFD_private_data {
int use_parallel; /**< use parallel port? */
unsigned short port; /**< port in parallel mode */
char device[200]; /**> device in serial mode */
int fd; /**< file descriptor in serial mode */
int speed; /**< Speed in serial mode */
/* dimensions */
int width, height;
int cellwidth, cellheight;
/* framebuffer and buffer for old LCD contents */
unsigned char *framebuf;
unsigned char *backingstore;
CGmode ccmode;
int on_brightness;
int off_brightness;
int hw_brightness;
int customchars;
int predefined_hbar; /**< display has predefined hbar-characters */
int predefined_vbar; /**< display has predefined vbar-characters */
int ISO_8859_1;
unsigned int refresh_timer;
unsigned int para_wait;
unsigned char charmap[129];
int display_type; /**< display type */
int last_custom; /**< last custom character written */
unsigned char custom_char[31][7]; /**< stored custom characters */
unsigned char custom_char_store[31][7]; /**< custom characters backingstore */
unsigned char hw_cmd[11][10]; /**< table of hardwarespecific commands */
int usr_chr_dot_assignment[57]; /**< how to setup usercharacters */
unsigned int usr_chr_mapping[31]; /**< where to place the usercharacters (0..30) in the asciicode */
unsigned int usr_chr_load_mapping[31]; /**< needed for displays with different read and write mapping */
int hbar_cc_offset; /**< character offset of the bars */
int vbar_cc_offset; /**< character offset of the bars */
char info[255];
} PrivateData;
#endif
|