diff --git a/ChangeLog b/ChangeLog index 262e209..8a82de0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19,6 +19,7 @@ v0.5dev (ongoing development) + glcd driver: 'picolcdgfx' for picoLCD 256x64 from Mini-Box.com (S. Meharg) * picolcd: Improvements to IR processing (M. Jones) + hd44780: Added 'spi' connection type (S. Dawson) + * hd55780/serial: Change data escape handling (G. Smith) v0.5.6 - Remove deprecated CFontz633 driver. Use CFontzPacket with Model=633 instead! diff --git a/server/drivers/hd44780-serial.c b/server/drivers/hd44780-serial.c index 42704f1..9362efe 100644 --- a/server/drivers/hd44780-serial.c +++ b/server/drivers/hd44780-serial.c @@ -280,9 +280,10 @@ serial_HD44780_senddata(PrivateData *p, unsigned char displayID, unsigned char f /* Do we need a DATA indicator byte? */ if ((SERIAL_IF.data_escape != '\0') && (((ch >= SERIAL_IF.data_escape_min) && - (ch < SERIAL_IF.data_escape_max)) || + (ch <= SERIAL_IF.data_escape_max)) || (SERIAL_IF.multiple_displays && displayID != lastdisplayID))) { - write(p->fd, &SERIAL_IF.data_escape + displayID, 1); + unsigned char esc_ch = SERIAL_IF.data_escape + (SERIAL_IF.multiple_displays) ? displayID : 0; + write(p->fd, &esc_ch, 1); } write(p->fd, &ch, 1); } diff --git a/server/drivers/hd44780-serial.h b/server/drivers/hd44780-serial.h index 931fced..c0b48f9 100644 --- a/server/drivers/hd44780-serial.h +++ b/server/drivers/hd44780-serial.h @@ -23,7 +23,7 @@ struct hd44780_SerialInterface { unsigned char instruction_escape; /**< Instruction escape character. */ unsigned char data_escape; /**< Data escape character. */ unsigned char data_escape_min; /**< Escaped data lower limit (inclusive) */ - unsigned char data_escape_max; /**< Escaped data upper limit (exclusive) */ + unsigned char data_escape_max; /**< Escaped data upper limit (inclusive) */ /**@}*/ unsigned int default_bitrate; /**< Bitrate device is set to by default */ @@ -66,11 +66,11 @@ struct hd44780_SerialInterface { */ static const struct hd44780_SerialInterface serial_interfaces[] = { /* type instr data v ^ bitrate bits K esc B Besc Boff Bon Multi End */ - { HD44780_CT_PICANLCD, 0x11, 0x12, 0x00, 0x20, 9600, 8, 0, 0x00, 0, 0, 0, 0, 0, 0 }, + { HD44780_CT_PICANLCD, 0x11, 0x12, 0x00, 0x1F, 9600, 8, 0, 0x00, 0, 0, 0, 0, 0, 0 }, { HD44780_CT_LCDSERIALIZER, 0xFE, 0, 0x00, 0x00, 9600, 8, 0, 0x00, 0, 0, 0, 0, 0, 0 }, { HD44780_CT_LOS_PANEL, 0xFE, 0, 0x00, 0x00, 9600, 4, 1, 0xFE, 1, 0xFD, 0, 0xFF, 0, 0 }, { HD44780_CT_VDR_LCD, 0xFE, 0, 0x00, 0x00, 9600, 4, 0, 0x00, 0, 0, 0, 0, 0, 0 }, - { HD44780_CT_VDR_WAKEUP, 0xC0, 0xC4, 0xC0, 0xD0, 9600, 4, 0, 0x00, 1, 0, 0xC9, 0xC8, 1, 0xCF }, + { HD44780_CT_VDR_WAKEUP, 0xC0, 0xC4, 0xC0, 0xCF, 9600, 4, 0, 0x00, 1, 0, 0xC9, 0xC8, 1, 0xCF }, { HD44780_CT_PERTELIAN, 0xFE, 0, 0x00, 0x00, 9600, 8, 0, 0x00, 1, 0xFE, 0x02, 0x03, 0, 0 }, { HD44780_CT_UNKNOWN, 0x00, 0, 0x00, 0x00, 0, 0, 0, 0, 0, 0x00, 0x00, 0x00, 0, 0 } };