LCDproc development and user support list

Text archives Help


[Lcdproc] serialVFD update


Chronological Thread 
  • From: herdler AT gmx.de (Stefan Herdler)
  • Subject: [Lcdproc] serialVFD update
  • Date: Sun Aug 13 23:42:02 2006

Hallo,

here is the next update for the serialVFD-driver.

Changes since last version:
- The driver has been successfully tested with the* *Samsung 20S204DA2* *VFD.
- Improvements in the support of displays without usercharacters.
- Update of the documentation.

Regards,
Stefan

--- ../../../../cvs/lcdproc/docs/lcdproc-user/drivers/serialVFD.docbook
2006-06-18 19:28:57.000000000 +0200
+++ ./serialVFD.docbook 2006-08-13 23:15:49.000000000 +0200
@@ -82,7 +82,15 @@ The driver should operate most of NEC, F
<entry>No</entry>
<entry> </entry>
</row>
-
+ <row>
+ <entry>Samsung 20S204DA2</entry>
+ <entry>?</entry>
+ <entry>Ok</entry>
+ <entry>Ok</entry>
+ <entry>Yes</entry>
+ <entry>The display is FUTABA compatible (hard and software). Set
<command>Custom-Characters=0</command>
+ in <filename>LCDd.conf.</filename> </entry>
+ </row>

<row>
<entry>Noritake CU20026SCPB-T</entry>
@@ -197,14 +205,14 @@ optional

<para>CN1:</para>
<screen><![CDATA[
-Pin 33 &lt;--- RxD
+Pin 33 ------- RxD
(Testmode: connect pins 25 and 26, then power up)
]]></screen>

<para>CN2:</para>
<screen><![CDATA[
-Pin 1 &lt;--- +5V
-Pin 2 &lt;--- GND
+Pin 1 ------- +5V
+Pin 2 ------- GND
]]></screen>
</sect4>

@@ -241,6 +249,20 @@ You can activate two different testmodes
</screen>
</sect4>

+<sect4 id="serialVFD-serial-connections-FUTABA">
+<title>FUTABA Displays (M402SD06GJ):</title>
+<screen><![CDATA[Pin 2 ------ +5V
+Pin 4 ------ +5V
+Pin 6 ------ +5V
+
+Pin 10 ------ GND
+Pin 12 ------ GND
+Pin 14 ------ GND
+
+Pin 19 ------ RxD
+]]></screen>
+</sect4>
+

</sect3>

@@ -256,7 +278,7 @@ You can activate two different testmodes
parallel Port: Display (NEC):
Pin: Name: Name: Pin:

-1 /STROBE -------------- /WR 1
+1 /STROBE -------------- /WR 17
2 D0 -------------- D0 15
3 D1 -------------- D1 13
4 D2 -------------- D2 11
@@ -280,8 +302,8 @@ optional
]]></screen>
<para>CN2:</para>
<screen><![CDATA[
-Pin 1 &lt;--- +5V
-Pin 2 &lt;--- GND
+Pin 1 ------ +5V
+Pin 2 ------ GND
]]></screen>
</sect4>

@@ -291,7 +313,7 @@ Pin 2 &lt;--- GND
parallel Port: Display (FUTABA):
Pin: Name: Name: Pin:

-1 /STROBE -------------- /WR 1
+1 /STROBE -------------- /WR 17
2 D0 -------------- D0 15
3 D1 -------------- D1 13
4 D2 -------------- D2 11
--- ../cvs/lcdproc/server/drivers/serialVFD.c 2006-06-21 23:25:45.000000000
+0200
+++ ./server/drivers/serialVFD.c 2006-07-31 02:01:35.000000000 +0200
@@ -320,8 +320,13 @@ serialVFD_vbar (Driver *drvthis, int x,
{
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,
{
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,
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
--- ../cvs/lcdproc/server/drivers/serialVFD.h 2006-05-20 16:38:18.000000000
+0200
+++ ./server/drivers/serialVFD.h 2006-07-29 23:47:36.000000000 +0200
@@ -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];
--- ../cvs/lcdproc/server/drivers/serialVFD_displays.c 2006-06-21
23:25:45.000000000 +0200
+++ ./server/drivers/serialVFD_displays.c 2006-07-30 00:10:52.000000000
+0200
@@ -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++)



Archive powered by MHonArc 2.6.18.

Top of page