update for the serialVFD-driver (Stefan Herdler):

- successfully tested with the* *Samsung 20S204DA2* *VFD
- Improvements in the support of displays without usercharacters
- Update of the documentation.
This commit is contained in:
marschap
2006-08-14 18:59:13 +00:00
parent 4f5aa4e451
commit ff8454632c
4 changed files with 71 additions and 22 deletions
+28 -11
View File
@@ -320,8 +320,13 @@ serialVFD_vbar (Driver *drvthis, int x, int y, int len, int promille, int option
{
PrivateData *p = drvthis->private_data;
serialVFD_init_vbar(drvthis);
lib_vbar_static(drvthis, x, y, len, promille, options, p->cellheight, p->vbar_cc_offset);
if (p->customchars >= p->cellheight || p->predefined_vbar == 1){
serialVFD_init_vbar(drvthis);
lib_vbar_static(drvthis, x, y, len, promille, options, p->cellheight, p->vbar_cc_offset);
}
else{
lib_vbar_static(drvthis, x, y, len, promille, options, 2, 0x5E);
}
}
/////////////////////////////////////////////////////////////////
@@ -333,9 +338,13 @@ serialVFD_hbar (Driver *drvthis, int x, int y, int len, int promille, int option
{
PrivateData *p = drvthis->private_data;
serialVFD_init_hbar(drvthis);
lib_hbar_static(drvthis, x, y, len, promille, options, p->cellwidth, p->hbar_cc_offset);
if (p->customchars >= p->cellwidth || p->predefined_hbar == 1){
serialVFD_init_hbar(drvthis);
lib_hbar_static(drvthis, x, y, len, promille, options, p->cellwidth, p->hbar_cc_offset);
}
else{
lib_hbar_static(drvthis, x, y, len, promille, options, 2, 0x2C);
}
}
@@ -534,14 +543,22 @@ serialVFD_icon (Driver *drvthis, int x, int y, int icon)
serialVFD_chr(drvthis, x, y, 127);
break;
case ICON_HEART_FILLED:
p->ccmode = CCMODE_STANDARD;
serialVFD_set_char(drvthis, 0, heart_filled);
serialVFD_chr(drvthis, x, y, 0);
if (p->customchars > 0){
p->ccmode = CCMODE_STANDARD;
serialVFD_set_char(drvthis, 0, heart_filled);
serialVFD_chr(drvthis, x, y, 0);
}
else
serialVFD_icon(drvthis, x, y, ICON_BLOCK_FILLED);
break;
case ICON_HEART_OPEN:
p->ccmode = CCMODE_STANDARD;
serialVFD_set_char(drvthis, 0, heart_open);
serialVFD_chr(drvthis, x, y, 0);
if (p->customchars > 0){
p->ccmode = CCMODE_STANDARD;
serialVFD_set_char(drvthis, 0, heart_open);
serialVFD_chr(drvthis, x, y, 0);
}
else
serialVFD_chr(drvthis, x, y, 0x23);
break;
default:
return -1; // Let the core do other icons
+2
View File
@@ -89,6 +89,8 @@ typedef struct driver_private_data {
int off_brightness;
int hw_brightness;
int customchars;
int predefined_hbar;
int predefined_vbar;
int ISO_8859_1;
unsigned int refresh_timer;
unsigned char charmap[128];
+11 -3
View File
@@ -70,6 +70,8 @@ serialVFD_load_NEC_FIPC (Driver *drvthis)
p->customchars=1; // number of custom characters the display provides
p->vbar_cc_offset=5; // character offset of the bars
p->hbar_cc_offset=12; // character offset of the bars
p->predefined_hbar=1; // the display has predefined hbar-characters
p->predefined_vbar=1; // the display has predefined vbar-characters
// hardwarespecific commands:
// hw_cmd[Command][data] = {{commandlength , command 1},
@@ -145,6 +147,8 @@ serialVFD_load_KD (Driver *drvthis)
p->customchars=31; // number of custom characters the display provides
p->vbar_cc_offset=0; // character offset of the bars
p->hbar_cc_offset=0; // character offset of the bars
p->predefined_hbar=0; // the display has predefined hbar-characters
p->predefined_vbar=0; // the display has predefined vbar-characters
// hardwarespecific commands:
// hw_cmd[Command][data] = {{commandlength , command 1},
@@ -220,6 +224,8 @@ serialVFD_load_Noritake (Driver *drvthis)
p->customchars=16; // number of custom characters the display provides
p->vbar_cc_offset=0; // character offset of the bars
p->hbar_cc_offset=0; // character offset of the bars
p->predefined_hbar=0; // the display has predefined hbar-characters
p->predefined_vbar=0; // the display has predefined vbar-characters
// hardwarespecific commands:
// hw_cmd[Command][data] = {{commandlength , command 1},
@@ -269,8 +275,10 @@ serialVFD_load_Futaba (Driver *drvthis)
if (p->customchars == -83)
p->customchars=3; // number of custom characters the display provides
p->vbar_cc_offset=0x30; // character offset of the bars
p->hbar_cc_offset=0x30; // character offset of the bars
p->vbar_cc_offset=0; // character offset of the bars
p->hbar_cc_offset=0; // character offset of the bars
p->predefined_hbar=0; // the display has predefined hbar-characters
p->predefined_vbar=0; // the display has predefined vbar-characters
// hardwarespecific commands:
// hw_cmd[Command][data] = {{commandlength , command 1},
@@ -283,7 +291,7 @@ serialVFD_load_Futaba (Driver *drvthis)
{2 ,0x10, 0x00}, // pos1
{1 ,0x10,}, // move cursor
{1 ,0x1F}, // reset
{1 ,0x11}, // init
{2 ,0x11,0x14}, // init
{1 ,0x03}, // set user char
{1 ,0x09}}; // tab
for (tmp=0;tmp < (10) ;tmp++)