--- lcdproc-0.5.2/server/drivers/Makefile.am.roamer 2007-04-14 08:39:53.000000000 -0600 +++ lcdproc-0.5.2/server/drivers/Makefile.am 2008-04-12 14:49:28.000000000 -0600 @@ -19,7 +19,7 @@ #LIBS = pkglib_PROGRAMS = @DRIVERS@ -EXTRA_PROGRAMS = bayrad CFontz CFontz633 CFontzPacket curses CwLnx ea65 EyeboxOne g15 glcdlib glk hd44780 icp_a106 imon IOWarrior irman joy lb216 lcdm001 lcterm lirc MD8800 ms6931 mtc_s16209x MtxOrb NoritakeVFD picolcd pyramid sed1330 sed1520 serialPOS serialVFD stv5730 svga t6963 text tyan sli ula200 xosd +EXTRA_PROGRAMS = bayrad CFontz CFontz633 CFontzPacket curses CwLnx ea65 EyeboxOne g15 glcdlib glk hd44780 icp_a106 imon IOWarrior irman joy lb216 lcdm001 lcterm lirc MD8800 ms6931 mtc_s16209x MtxOrb NoritakeVFD picolcd pyramid roamer sed1330 sed1520 serialPOS serialVFD stv5730 svga t6963 text tyan sli ula200 xosd noinst_LIBRARIES = libLCD.a libbignum.a IOWarrior_CFLAGS = @libusb_cflags@ $(AM_CFLAGS) @@ -89,6 +89,7 @@ NoritakeVFD_SOURCES = lcd.h lcd_lib.h NoritakeVFD.c NoritakeVFD.h report.h picolcd_SOURCES = lcd.h picolcd.h picolcd.c report.h pyramid_SOURCES = lcd.h pylcd.c pylcd.h +roamer_SOURCES = lcd.h lcd_lib.h roamer.h roamer.c 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 serialPOS_SOURCES = lcd.h lcd_lib.h serialPOS.c serialPOS.h report.h adv_bignum.h --- lcdproc-0.5.2/server/drivers/Makefile.in.roamer 2007-04-27 04:40:28.000000000 -0600 +++ lcdproc-0.5.2/server/drivers/Makefile.in 2008-04-12 14:57:41.000000000 -0600 @@ -46,10 +46,10 @@ lcdm001$(EXEEXT) lcterm$(EXEEXT) lirc$(EXEEXT) MD8800$(EXEEXT) \ ms6931$(EXEEXT) mtc_s16209x$(EXEEXT) MtxOrb$(EXEEXT) \ NoritakeVFD$(EXEEXT) picolcd$(EXEEXT) pyramid$(EXEEXT) \ - sed1330$(EXEEXT) sed1520$(EXEEXT) serialPOS$(EXEEXT) \ - serialVFD$(EXEEXT) stv5730$(EXEEXT) svga$(EXEEXT) \ - t6963$(EXEEXT) text$(EXEEXT) tyan$(EXEEXT) sli$(EXEEXT) \ - ula200$(EXEEXT) xosd$(EXEEXT) + roamer$(EXEEXT) sed1330$(EXEEXT) sed1520$(EXEEXT) \ + serialPOS$(EXEEXT) serialVFD$(EXEEXT) stv5730$(EXEEXT) \ + svga$(EXEEXT) t6963$(EXEEXT) text$(EXEEXT) tyan$(EXEEXT) \ + sli$(EXEEXT) ula200$(EXEEXT) xosd$(EXEEXT) subdir = server/drivers DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -157,6 +157,9 @@ am_pyramid_OBJECTS = pylcd.$(OBJEXT) pyramid_OBJECTS = $(am_pyramid_OBJECTS) pyramid_DEPENDENCIES = libLCD.a +am_roamer_OBJECTS = roamer.$(OBJEXT) +roamer_OBJECTS = $(am_roamer_OBJECTS) +roamer_DEPENDENCIES = libLCD.a am_sed1330_OBJECTS = sed1330.$(OBJEXT) sed1330_OBJECTS = $(am_sed1330_OBJECTS) sed1330_LDADD = $(LDADD) @@ -211,11 +214,11 @@ $(irman_SOURCES) $(joy_SOURCES) $(lb216_SOURCES) \ $(lcdm001_SOURCES) $(lcterm_SOURCES) $(lirc_SOURCES) \ $(ms6931_SOURCES) $(mtc_s16209x_SOURCES) $(picolcd_SOURCES) \ - $(pyramid_SOURCES) $(sed1330_SOURCES) $(sed1520_SOURCES) \ - $(serialPOS_SOURCES) $(serialVFD_SOURCES) $(sli_SOURCES) \ - $(stv5730_SOURCES) $(svga_SOURCES) $(t6963_SOURCES) \ - $(text_SOURCES) $(tyan_SOURCES) $(ula200_SOURCES) \ - $(xosd_SOURCES) + $(pyramid_SOURCES) $(roamer_SOURCES) $(sed1330_SOURCES) \ + $(sed1520_SOURCES) $(serialPOS_SOURCES) $(serialVFD_SOURCES) \ + $(sli_SOURCES) $(stv5730_SOURCES) $(svga_SOURCES) \ + $(t6963_SOURCES) $(text_SOURCES) $(tyan_SOURCES) \ + $(ula200_SOURCES) $(xosd_SOURCES) DIST_SOURCES = $(libLCD_a_SOURCES) $(libbignum_a_SOURCES) \ $(CFontz_SOURCES) $(CFontz633_SOURCES) $(CFontzPacket_SOURCES) \ $(CwLnx_SOURCES) $(EyeboxOne_SOURCES) $(IOWarrior_SOURCES) \ @@ -227,10 +230,11 @@ $(joy_SOURCES) $(lb216_SOURCES) $(lcdm001_SOURCES) \ $(lcterm_SOURCES) $(lirc_SOURCES) $(ms6931_SOURCES) \ $(mtc_s16209x_SOURCES) $(picolcd_SOURCES) $(pyramid_SOURCES) \ - $(sed1330_SOURCES) $(sed1520_SOURCES) $(serialPOS_SOURCES) \ - $(serialVFD_SOURCES) $(sli_SOURCES) $(stv5730_SOURCES) \ - $(svga_SOURCES) $(t6963_SOURCES) $(text_SOURCES) \ - $(tyan_SOURCES) $(ula200_SOURCES) $(xosd_SOURCES) + $(roamer_SOURCES) $(sed1330_SOURCES) $(sed1520_SOURCES) \ + $(serialPOS_SOURCES) $(serialVFD_SOURCES) $(sli_SOURCES) \ + $(stv5730_SOURCES) $(svga_SOURCES) $(t6963_SOURCES) \ + $(text_SOURCES) $(tyan_SOURCES) $(ula200_SOURCES) \ + $(xosd_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -374,6 +378,7 @@ NoritakeVFD_LDADD = libLCD.a picolcd_LDADD = libLCD.a @LIBUSBLCD@ pyramid_LDADD = libLCD.a +roamer_LDADD = libLCD.a serialPOS_LDADD = libLCD.a libbignum.a serialVFD_LDADD = libLCD.a libbignum.a svga_LDADD = @LIBSVGA@ @@ -413,6 +418,7 @@ NoritakeVFD_SOURCES = lcd.h lcd_lib.h NoritakeVFD.c NoritakeVFD.h report.h picolcd_SOURCES = lcd.h picolcd.h picolcd.c report.h pyramid_SOURCES = lcd.h pylcd.c pylcd.h +roamer_SOURCES = lcd.h lcd_lib.h roamer.h roamer.c 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 serialPOS_SOURCES = lcd.h lcd_lib.h serialPOS.c serialPOS.h report.h adv_bignum.h @@ -577,6 +583,9 @@ pyramid$(EXEEXT): $(pyramid_OBJECTS) $(pyramid_DEPENDENCIES) @rm -f pyramid$(EXEEXT) $(LINK) $(pyramid_LDFLAGS) $(pyramid_OBJECTS) $(pyramid_LDADD) $(LIBS) +roamer$(EXEEXT): $(roamer_OBJECTS) $(roamer_DEPENDENCIES) + @rm -f roamer$(EXEEXT) + $(LINK) $(roamer_LDFLAGS) $(roamer_OBJECTS) $(roamer_LDADD) $(LIBS) sed1330$(EXEEXT): $(sed1330_OBJECTS) $(sed1330_DEPENDENCIES) @rm -f sed1330$(EXEEXT) $(LINK) $(sed1330_LDFLAGS) $(sed1330_OBJECTS) $(sed1330_LDADD) $(LIBS) --- lcdproc-0.5.2/server/drivers/roamer.c.roamer 2008-04-12 14:58:09.000000000 -0600 +++ lcdproc-0.5.2/server/drivers/roamer.c 2008-04-11 22:39:15.000000000 -0600 @@ -0,0 +1,387 @@ +/* This is the LCDproc driver for Rackable Systems Roamer LCD. + + Copyright (C) 2008 Shad L. Lords + + 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 + + + List of driver entry point: + + init Implemented. + close Implemented. + width Implemented. + height Implemented. + clear Implemented by space filling no custom char info. + flush Implemented. + string Implemented. + chr Implemented. + set_contrast Implemented. + backlight Implemented. + */ + +#include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "lcd.h" +#include "roamer.h" +#include "report.h" + +// Variables +typedef struct { + int fd; + char lcd_init[3]; + char lcd_close[4]; + int width; + int height; + char *framebuf; + char *backingstore; + char beat; +} PrivateData; + +// Vars for the server core +MODULE_EXPORT char *api_version = API_VERSION; +MODULE_EXPORT int stay_in_foreground = 0; +MODULE_EXPORT int supports_multiple = 1; +MODULE_EXPORT char *symbol_prefix = "roamer_"; + + +MODULE_EXPORT int +roamer_init (Driver *drvthis) +{ + struct termios portset; + + char device[256] = DEFAULT_DEVICE; + int speed = DEFAULT_SPEED; + char size[256] = DEFAULT_SIZE; + char buf[256] = ""; + int tmp, w, h; + + PrivateData *p; + + /* Alocate and store private data */ + p = (PrivateData *) malloc(sizeof(PrivateData)); + if (p == NULL) + return -1; + if (drvthis->store_private_ptr(drvthis, p)) + return -1; + + /* Initialise the PrivateData structure */ + p->fd = -1; + + p->width = LCD_DEFAULT_WIDTH; + p->height = LCD_DEFAULT_HEIGHT; + + p->framebuf = NULL; + p->backingstore = NULL; + + /* Control codes for display */ + snprintf(p->lcd_init, 3, "%c%c", 0x1e, 0x1d); + snprintf(p->lcd_close, 4, "%c%c%c", 0x1e, 0x1b, 0x1b); + + /* Get serial device to use */ + strncpy(device, drvthis->config_get_string(drvthis->name, "Device", 0, DEFAULT_DEVICE), sizeof(device)); + device[sizeof(device)-1] = '\0'; + report(RPT_INFO, "%s: using Device %s", drvthis->name, device); + + /* Get display size */ + strncpy(size, drvthis->config_get_string(drvthis->name, "Size", 0, DEFAULT_SIZE), sizeof(size)); + size[sizeof(size)-1] = '\0'; + if ((sscanf(size, "%dx%d", &w, &h) != 2) + || (w <= 0) || (w > LCD_MAX_WIDTH) + || (h <= 0) || (h > LCD_MAX_HEIGHT)) { + report(RPT_WARNING, "%s: cannot read Size: %s; using default %s", + drvthis->name, size, DEFAULT_SIZE); + sscanf(DEFAULT_SIZE , "%dx%d", &w, &h); + } + p->width = w; + p->height = h; + + /* Get speed */ + tmp = drvthis->config_get_int(drvthis->name, "Speed", 0, DEFAULT_SPEED); + switch (tmp) { + case 1200: + speed = B1200; + break; + case 2400: + speed = B2400; + break; + case 4800: + speed = B4800; + break; + case 9600: + speed = B9600; + break; + default: + speed = B9600; + report(RPT_WARNING, "%s: Speed must be 1200, 2400, 4800 or 9600; using default %d", + drvthis->name, tmp); + } + + /* Set up io port correctly, and open it... */ + p->fd = open(device, O_RDWR | O_NOCTTY); + if (p->fd == -1) { + report(RPT_ERR, "%s: open(%s) failed (%s)", drvthis->name, device, strerror(errno)); + if (errno == EACCES) + report(RPT_ERR, "%s: %s device could not be opened...", drvthis->name, device); + return -1; + } + report(RPT_INFO, "%s: opened display on %s", drvthis->name, device); + + tcgetattr(p->fd, &portset); + + // THIS ALL COMMENTED OUT BECAUSE WE NEED TO SET TIMEOUTS + /* We use RAW mode */ +#ifdef HAVE_CFMAKERAW_NOT + /* The easy way */ + cfmakeraw(&portset); +#else + /* The hard way */ + portset.c_iflag &= ~( IGNBRK | BRKINT | PARMRK | ISTRIP + | INLCR | IGNCR | ICRNL | IXON ); + portset.c_oflag &= ~OPOST; + portset.c_lflag &= ~( ECHO | ECHONL | ICANON | ISIG | IEXTEN ); + portset.c_cflag &= ~( CSIZE | PARENB | CRTSCTS ); + portset.c_cflag |= CS8 | CREAD | CLOCAL; + portset.c_cc[VMIN] = 1; + portset.c_cc[VTIME] = 3; +#endif + + /* Set port speed */ + cfsetospeed(&portset, speed); + cfsetispeed(&portset, B0); + + /* Do it... */ + tcsetattr(p->fd, TCSANOW, &portset); + + write(p->fd, p->lcd_init, sizeof(p->lcd_init)-1); + + /* Make sure the frame buffer is there... */ + p->framebuf = (unsigned char *) calloc(p->width * p->height, 1); + if (p->framebuf == NULL) { + report(RPT_ERR, "%s: unable to create framebuffer", drvthis->name); + return -1; + } + memset(p->framebuf, ' ', p->width * p->height); + + /* make sure the framebuffer backing store is there... */ + p->backingstore = (unsigned char *) malloc(p->width * p->height); + if (p->backingstore == NULL) { + report(RPT_ERR, "%s: unable to create framebuffer backing store", drvthis->name); + return -1; + } + memset(p->backingstore, ' ', p->width * p->height); + + /* set initial LCD configuration */ + roamer_clear(drvthis); + + report(RPT_DEBUG, "%s: init() done", drvthis->name); + + return 1; +} + +///////////////////////////////////////////////////////////////// +// Closes the device +// +MODULE_EXPORT void +roamer_close (Driver *drvthis) +{ + PrivateData *p = drvthis->private_data; + + if (p != NULL) { + write(p->fd, p->lcd_close, sizeof(p->lcd_close)-1); + + if (p->fd >= 0) + close(p->fd); + + if (p->framebuf) + free(p->framebuf); + p->framebuf = NULL; + + if (p->backingstore) + free(p->backingstore); + p->backingstore = NULL; + + free(p); + } + drvthis->store_private_ptr(drvthis, NULL); + report(RPT_DEBUG, "%s: closed", drvthis->name); +} + +///////////////////////////////////////////////////////////////// +// Returns the display width +// +MODULE_EXPORT int +roamer_width (Driver *drvthis) +{ + PrivateData *p = drvthis->private_data; + + return p->width; +} + +///////////////////////////////////////////////////////////////// +// Returns the display height +// +MODULE_EXPORT int +roamer_height (Driver *drvthis) +{ + PrivateData *p = drvthis->private_data; + + return p->height; +} + +///////////////////////////////////////////////////////////////// +// Clears the LCD screen +// +MODULE_EXPORT void +roamer_clear (Driver *drvthis) +{ + PrivateData *p = drvthis->private_data; + + /* replace all chars in framebuf with spaces */ + memset(p->framebuf, ' ', (p->width * p->height)); + + report(RPT_DEBUG, "%s: cleared framebuffer", drvthis->name); +} + +////////////////////////////////////////////////////////////////// +// Flushes all output to the lcd... +// +MODULE_EXPORT void +roamer_flush (Driver *drvthis) +{ + PrivateData *p = drvthis->private_data; + + char out[ (p->width*p->height) + 2 ]; + + report(RPT_DEBUG, "%s Framebuf: '%.*s'", drvthis->name, p->width*p->height, p->framebuf); + report(RPT_DEBUG, "%s Backingstore: '%.*s'", drvthis->name, p->width*p->height, p->backingstore); + + // skip over identical buffers + if ( memcmp(p->framebuf, p->backingstore, p->width*p->height) == 0) { + return; + } + + snprintf(out, p->width*p->height+2, "M%.*s", p->width*p->height, p->framebuf); + report(RPT_DEBUG, "%s writing: M%.*s", drvthis->name, p->width*p->height, p->framebuf); + + write(p->fd, out, sizeof(out)-1); + + memcpy(p->backingstore, p->framebuf, p->width * p->height); + report(RPT_DEBUG, "%s: frame buffer flushed", drvthis->name); +} + +///////////////////////////////////////////////////////////////// +// Prints a string on the lcd display, at position (x,y). The +// upper-left is (1,1), and the lower right should be (20,4). +// +MODULE_EXPORT void +roamer_string (Driver *drvthis, int x, int y, const char string[]) +{ + PrivateData *p = drvthis->private_data; + int i; + + x--; y--; // Convert 1-based coords to 0-based... + + if ((y < 0) || (y >= p->height)) + return; + + for (i = 0; (string[i] != '\0') && (x < p->width); i++, x++) { + if (x >= 0) // no write left of left border + p->framebuf[(y * p->width) + x] = string[i]; + } + report(RPT_DEBUG, "%s: printed string at (%d,%d)", drvthis->name, x, y); +} + +///////////////////////////////////////////////////////////////// +// Prints a character on the lcd display, at position (x,y). The +// upper-left is (1,1), and the lower right should be (20,4). +// +MODULE_EXPORT void +roamer_chr (Driver *drvthis, int x, int y, char c) +{ + PrivateData *p = drvthis->private_data; + + x--; y--; // Convert 1-based coords to 0-based... + + if (c == '#') + c = 0xFF; + + if ((x >= 0) && (y >= 0) && (x < p->width) && (y < p->height)) + p->framebuf[(y * p->width) + x] = c; + + report(RPT_DEBUG, "%s: writing character %02X to position (%d,%d)", drvthis->name, c, x, y); +} + +///////////////////////////////////////////////////////////// +// Does the heartbeat... +// +MODULE_EXPORT void +roamer_heartbeat (Driver *drvthis, int state) +{ + PrivateData *p = drvthis->private_data; + + static int timer = 0; + static int saved_state = HEARTBEAT_ON; + char out[3]; + char beat; + + if (state) + saved_state = state; + if (state == HEARTBEAT_ON) { + beat = ((timer + 4) & 4) ? '1' : '0'; +// if (p->beat != beat) { +// snprintf(out, 4, "L%c", beat); +// write(p->fd, out, sizeof(out)-1); +// } +// p->beat = beat; + + roamer_chr(drvthis, p->width, 1, (beat == '1') ? '#' : ' '); + roamer_flush(drvthis); + } + timer++; + timer &= 0x0F; +} + +///////////////////////////////////////////////////////////////// +// Sets the contrast +// +MODULE_EXPORT void +roamer_set_contrast (Driver *drvthis, int promille) +{ + //PrivateData *p = drvthis->private_data; + + report(RPT_DEBUG, "%s: contrast (%d)", drvthis->name, promille); +} + +///////////////////////////////////////////////////////////////// +// Sets the backlight brightness +// +MODULE_EXPORT void +roamer_backlight (Driver *drvthis, int on) +{ + //PrivateData *p = drvthis->private_data; + + report(RPT_DEBUG, "%s: backlight (%s)", drvthis->name, (on) ? "ON" : "OFF"); +} + --- lcdproc-0.5.2/server/drivers/roamer.h.roamer 2008-04-12 14:58:12.000000000 -0600 +++ lcdproc-0.5.2/server/drivers/roamer.h 2008-04-11 16:05:31.000000000 -0600 @@ -0,0 +1,23 @@ +#ifndef LCD_ROAMER_H +#define LCD_ROAMER_H + +#include "lcd.h" + +#define DEFAULT_DEVICE "/dev/ttyS0" +#define DEFAULT_SPEED 9600 +#define DEFAULT_SIZE "20x2" + + +MODULE_EXPORT int roamer_init (Driver *drvthis); +MODULE_EXPORT void roamer_close (Driver *drvthis); +MODULE_EXPORT int roamer_width (Driver *drvthis); +MODULE_EXPORT int roamer_height (Driver *drvthis); +MODULE_EXPORT void roamer_clear (Driver *drvthis); +MODULE_EXPORT void roamer_flush (Driver *drvthis); +MODULE_EXPORT void roamer_string (Driver *drvthis, int x, int y, const char string[]); +MODULE_EXPORT void roamer_chr (Driver *drvthis, int x, int y, char c); +MODULE_EXPORT void roamer_heartbeat (Driver *drvthis, int state); +MODULE_EXPORT void roamer_set_contrast (Driver *drvthis, int promille); +MODULE_EXPORT void roamer_backlight (Driver *drvthis, int on); + +#endif --- lcdproc-0.5.2/docs/lcdproc-user/drivers/roamer.docbook.roamer 2008-04-12 14:38:40.000000000 -0600 +++ lcdproc-0.5.2/docs/lcdproc-user/drivers/roamer.docbook 2008-04-12 14:41:53.000000000 -0600 @@ -0,0 +1,79 @@ + +The roamer Driver + + +This section talks about using LCDproc with a roamer controller from rackable systems. + + + +The roamer driver is currently working with the roamer 4.4.5 emulation protocol, +but can be extended to work with various other protocols. + + + +The driver should operate most roamer displays from 4.0 thru 4.4.5 with a serial (RS-232) input. +Because these displays use a standardized protocol, if the protocol is +supported by your display, it should work as expected. +Feedback is welcome. + + + + +Configuration in LCDd.conf + + +[roamer] + + + + + + Device= + DEVICE + + + Device to use in serial mode. Usual values are /dev/ttyS0 or + /dev/cu.usbserial. Default is /dev/lcd. + + + + + + Size= + + WIDTH + x + HEIGHT + + + + Specifies the size of the VFD in characters. + If not given, it defaults to 20x2. + + + + + + Speed= + + + 1200 + 2400 + 9600 + 19200 + 115200 + + + + + Set the the baud rate communication with the POS display. + If not given the default of 9600 is used. + + + + + + + + + --- lcdproc-0.5.2/docs/lcdproc-user/drivers/Makefile.am.roamer 2007-04-27 03:41:19.000000000 -0600 +++ lcdproc-0.5.2/docs/lcdproc-user/drivers/Makefile.am 2008-04-12 14:42:29.000000000 -0600 @@ -29,6 +29,7 @@ picolcd.docbook \ ppttrouble.docbook \ pylcd.docbook \ + roamer.docbook \ sed1330.docbook \ sed1520.docbook \ serialPOS.docbook \ --- lcdproc-0.5.2/docs/lcdproc-user/drivers/Makefile.in.roamer 2008-04-12 14:43:51.000000000 -0600 +++ lcdproc-0.5.2/docs/lcdproc-user/drivers/Makefile.in 2008-04-12 14:42:52.000000000 -0600 @@ -190,6 +190,7 @@ picolcd.docbook \ ppttrouble.docbook \ pylcd.docbook \ + roamer.docbook \ sed1330.docbook \ sed1520.docbook \ serialPOS.docbook \ --- lcdproc-0.5.2/docs/lcdproc-user/drivers.docbook.roamer 2007-04-14 08:38:34.000000000 -0600 +++ lcdproc-0.5.2/docs/lcdproc-user/drivers.docbook 2008-04-12 14:44:17.000000000 -0600 @@ -35,6 +35,7 @@ &NoritakeVFD; &picolcd; &pylcd; +&roamer; &sed1330; &sed1520; &serialPOS; --- lcdproc-0.5.2/docs/lcdproc-user/lcdproc-user.docbook.roamer 2007-04-14 08:38:34.000000000 -0600 +++ lcdproc-0.5.2/docs/lcdproc-user/lcdproc-user.docbook 2008-04-12 14:44:49.000000000 -0600 @@ -41,6 +41,7 @@ + --- lcdproc-0.5.2/configure.roamer 2007-04-27 04:40:29.000000000 -0600 +++ lcdproc-0.5.2/configure 2008-04-12 14:37:28.000000000 -0600 @@ -1329,9 +1329,9 @@ bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,ea65, EyeboxOne,g15,glcdlib,glk,hd44780,icp_a106,imon,IOWarrior, irman,joy,lb216,lcdm001,lcterm,lirc,MD8800,ms6931, - mtc_s16209x,MtxOrb,NoritakeVFD,picolcd,pyramid,sed1330 - sed1520,serialPOS,serialVFD,sli,stv5730,svga,t6963,text, - tyan,ula200,xosd + mtc_s16209x,MtxOrb,NoritakeVFD,picolcd,pyramid,roamer, + sed1330,sed1520,serialPOS,serialVFD,sli,stv5730,svga, + t6963,text,tyan,ula200,xosd 'all' compiles all drivers; 'all,!xxx,!yyy' de-selects previously selected drivers --enable-seamless-hbars no gaps in horizontal bar graphs (if HW supports it) @@ -9699,7 +9699,7 @@ fi -allDrivers=bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,ea65,EyeboxOne,g15,glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,joy,lb216,lcdm001,lcterm,lirc,MD8800,ms6931,mtc_s16209x,MtxOrb,NoritakeVFD,picolcd,pyramid,sed1330,sed1520,serialPOS,serialVFD,sli,stv5730,svga,t6963,text,tyan,ula200,xosd +allDrivers=bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,ea65,EyeboxOne,g15,glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,joy,lb216,lcdm001,lcterm,lirc,MD8800,ms6931,mtc_s16209x,MtxOrb,NoritakeVFD,picolcd,pyramid,roamer,sed1330,sed1520,serialPOS,serialVFD,sli,stv5730,svga,t6963,text,tyan,ula200,xosd drivers=`echo $drivers | sed -e 's/,/ /g'` @@ -12454,6 +12454,10 @@ DRIVERS="$DRIVERS pyramid${SO}" actdrivers="$actdrivers pyramid" ;; + roamer) + DRIVERS="$DRIVERS roamer${SO}" + actdrivers="$actdrivers roamer" + ;; sed1330) if test "$ac_cv_port_have_lpt" = yes then --- lcdproc-0.5.2/LCDd.conf.roamer 2007-04-25 13:56:43.000000000 -0600 +++ lcdproc-0.5.2/LCDd.conf 2008-04-12 14:46:45.000000000 -0600 @@ -39,8 +39,9 @@ # bayrad, CFontz, CFontz633, CFontzPacket, curses, CwLnx, ea65, # EyeboxOne, g15, glcdlib, glk, hd44780, icp_a106, imon, IOWarrior, # irman, joy, lb216, lcdm001, lcterm, lirc, MD8800, ms6931, mtc_s16209x, -# MtxOrb, NoritakeVFD, picolcd, pyramid, sed1330, sed1520, serialPOS, -# serialVFD, sli, stv5730, svga, t6963, text, tyan, ula200, xosd +# MtxOrb, NoritakeVFD, picolcd, pyramid, roamer, sed1330, sed1520, +# serialPOS, serialVFD, sli, stv5730, svga, t6963, text, tyan, ula200, +# xosd Driver=curses # Tells the driver to bind to the given interface @@ -754,6 +755,20 @@ +## roamer display driver ## +[roamer] + +# Device to use in serial modea [default: /dev/lcd] +Device=/dev/ttyS0 + +# Specifies the size of the display in characters. [default: 20x2] +Size=20x2 + +# communication baud rate with the display [default: 9600; legal: 1200, 2400, 19200, 115200] +Speed=9600 + + + ## Seiko Epson 1330 driver ## [sed1330]