0206 /* * * * * * * * * * * * * * * * * * * * * * * * * * * Vers Date Who What 00.01 10.05.07 PK - initial revision 00.02 15.05.07 PK - on/off states swapped 00.03 16.05.07 PK - hardware detection added (BCL_IO_INIT call) - analog values: voltage+temp - PIC control 00.04 17.05.07 PK - save/restore PIO registers for the case when autodetection fails 00.05 12.09.07 PK - added support for the new PIC firmware for Ann1000 (9-bit voltage) 00.06 03.10.07 PK - hardware detection added, driver structure changed, separate driver for each hardware type - EX1000 driver added, I2C driver from song added 12.10.07 PK - structure rewritten to fit the new song driver architecture 24.10.07 PK - Ann1000 driver split into several modules to allow usage by song - PIC control register in Ann1000 driver moved into shared memory (int vector 26h) - fixed bug in restore PIO where the pins were set to "normal operation" which could cause a crash 00.07 31.10.07 PK - digital output and relay toggle added - digital output and relay pulse function added - generic IO driver for standard Annuncicom, Exstreamer, Instreamer 01.11.07 PK - RTS/CTS functions on all hardware 02.11.07 PK - corrected the default RTS value for LX hardware - added full control of the Annuncicom 1000 hardware - Bosch/Annuncicom 1000 detection 05.11.07 PK - fixed null-pointer dereference bug when no driver found 06.11.07 PK - voltage and temperature on Ann1000 in 0.01 units 07.11.07 PK - generic driver: added support for EX110 relay 08.11.07 PK - ann1000: fault relay inverted - ann1000: fixed reversed numbering of inputs 09.11.07 PK - generic driver: removed unnecessary code 00.08 09.11.07 PK - IPAM driver added - corrected inverted RTS on second serial 00.09 14.11.07 PK - display interface added - display driver for ST7036 (EX110) - backlight control 15.11.07 PK - 7-segment display driver added 21.11.07 PK - display scrolling - display clear block 22.11.07 PK - octal character notation (\123) support added into display driver 00.10 24.01.08 PK - Barionet V2 driver added 25.01.08 PK - hardware type in little-endian 00.11 03.02.08 PK - DS6 console driver added 04.02.08 PK - added support for ANSII escape sequencies to the print function 00.12 05.02.08 PK - keyboard support - keyboard driver for DS6 MTSD 11.02.08 PK - Digigram decoder driver added 12.02.08 PK - Digigram: PIO reassignment - Digigram driver: input bug fixed 05.03.08 PK - fixed bug in 7-segment display detection 00.13 25.03.08 PK - hardware detection based purely on ee_hw_type - WILL NOT WORK IF TYPE NOT SPECIFIED! 00.14 17.04.08 PK - stack size of the IO process increased from 200 to 300 18.04.08 PK - Digigram hardware type changed from the temporary type to a real value 21.04.08 PK - bugfix #018.04: Ann 1000 driver: LEDs should not blink 21.04.08 PK - temporary hardware type for Digigram put back in 08.05.08 PK - more secure LED control: noise in input shiftreg can not change the control pins 00.15 09.07.08 PK - added hardware descriptor from IO port 60000 (read using IOSTATE) 23.07.08 PK - intial version of Barionet LC driver 19.08.08 PK - fixed non-working LF in display print function 00.16 22.08.08 PK - initial support for PYKO IN/FD 27.08.08 PK - PYKO IN/FD driver: MUX control moved to song 19.09.08 PK - iostate(60007) returns the number of keys - Ann1000: inputs 1..8 can be scanned as keyboard events - Ex1000: inputs 1..4 can be scanned as keyboard events 20.09.08 PK - Ann100/200: inputs 1..2 can be scanned as keyboard events - Pyko: inputs 1..4 can be scanned as keyboard events 26.09.08 PK - DS6 driver: added hardware type detection - LED control via auxilliary control interface 27.09.08 PK - fixed IOCTL pulse bug on IO 200 29.10.08 PK - increased stack size to 500B 13.11.08 PK - assigned hardware type for Barionet 50 00.17 21.11.08 PK - harris display driver rewritten - separate driver for 7-segment displays - initial version of VSC display driver 00.18 22.11.08 PK - new interface to io_init - all parameters are in one structure 29.11.08 PK - initial support for VSC 00.19 02.01.09 PK - added DILL - display interpreted language library, a programmable display library 06.01.09 PK - driver reports to the application if the standard LEDs are used 20.01.09 PK - improved VSC communication for better data synchronisation 00.20 21.01.09 PK - interface simplification: removed display_gotoxy and display_clear calls use display_print with an appropriate ANSI sequence instead - removed display_message call- use DILL instead - removed display_print_flash_file_entry - use DILL instead 26.01.09 PK - second display support, so far can be used only with DILL 00.21 04.02.09 PK - enabled PIO17 on the IPAM carrier board 06.02.09 PK - feature request #018.16: enabled access to PIO11, PIO17, PIO29 and PIO30 on IPAM 200/Exstreamer 100 12.02.09 PK - PS16: increased the maximum number of extensions to 5, but only 2 will work with key events and only 1 can be used with IO map - Barionet 50: updated driver to the latest schematics 13.02.09 PK - Barionet 50: 1-wire temporarily mapped to IO 101 27.02.09 PK - PS16: the number of supported keys limited to 100 01.00 18.03.09 PK - IR handler moved from song to bclio - ignores hw_type from the init call and uses get_hw_type() call instead 19.03.09 PK - added IR_READ_HIGH_LEVEL call 20.03.09 PK - IR decoder: added various formats into the high level decoding routine 06.04.09 PK - Exstreamer 1000: LEDs were inverted (input inactive - LED was on), fixed 01.01 04.05.09 PK - started 1-wire driver implementation 02.06.09 PK - Barionet50: digital input logic changed to positive (negative before) 05.06.09 PK - added 1-wire RTC driver - Barionet 50: temperature sensor addresses mapped onto IO 651-700 - added 1-wire driver for DS18B20 temperature sensor family - Barionet 50: temperature sensor measurement on registers 601-650 01.02 08.06.09 PK - exported 1-wire interface 09.06.09 PK - 1-wire discovery algorithm rewritten - added 1-wire RTC interface - 1-wire support in Ex1000 and IPAM - built-in TS support on Ex1000 10.06.09 PK - 1-wire processing rewritten to asynchronous with request queueing - implemented calls for RTC read and set 12.06.09 PK - created another build target bcl_io_x with extended tables (for Barionet 50) 01.03 13.06.09 PK - implemented virtual bits 301..400 15.06.09 PK - Barionet 50: implemented virtual word registers 701..1000 - Barionet driver excluded from bclio.bin to save space - Barionet 50: implemented 32-bit counter registers - Barionet 50: RTS control on IO 9 rather than IO 200 16.06.09 PK - Barionet 50: virtual relays and digital outputs implemented 17.06.09 PK - Ex1000: non-working temperature measurement fixed 22.06.09 PK - DILL: get_int and 'I' rewritten to support signed - bugfix #065.01: output/relay pulse changed: sets immediately in ioctl, the pulse can be 10ms inaccurate 01.04 22.06.09 PK - feature #018.21: PS16 driver: supports up to 112 keys (2 complete extensions) 23.06.09 PK - LED control: show inputs, show outputs, map as digital outputs in the IO map - Ann1000: simplified driver, full LED control, LEDs mapped to IO 151-158 (if enabled) 24.06.09 PK - Ex1000: full LED control, LEDs mapped to IO 151-154 (if enabled) 27.06.09 PK - DILL: 'i' integer variables are signed; added variable type 'u' for unsigned integers - DILL: added % operator - DILL: nice called after every command 08.07.09 PK - PS16 driver: fixed wrong polarity of LEDs in iostate 09.07.09 PK - PS16: keyboard scan period increased from 3ms to 10ms 16.07.09 PK - Ex110 display driver: wait 4ms after clear screen instead of 2ms 28.07.09 PK - added RDI556 serial RTC driver - Barionet50: 1-wire RTC enabled only if no serial RTC attached 30.07.09 PK - added IO_AUX_SET_IO_MASK 01.05 03.08.09 PK - added IR_FORMAT_CMD into the high-level IR function, which returns directly the command to be executed this dramatically simplifies the IR process in the application 07.08.09 PK - external 1-wire enabled for Barionet 200 13.08.09 PK - 1-wire: fixed non-portable inline assembly use, which did not work with -k- option (bug #066.03) 01.06 27.08.09 PK - implemented virtual 16-bit registers 501..600 on Barionet 50 (feature #064.08) 01.09.09 PK - virtual 16-bit registers in bcl_io.bin (ABCL) (bug #047.23) 04.09.09 PK - special target for ABCL: bclio_a.bin; virtual 16-bit registers removed from the standard version bclio.bin 01.07 05.09.09 PK - added IO subscription mechanism in Barionet 50 driver WARNING: init incompatible with previous versions 11.09.09 PK - changed interface to IO subscriptions: multiple subscriptions possible 23.09.09 PK - fixed wrong number of relays and digital inputs on Barionet50 (bug #064.18) - fixed non-existent analog values on Barionet 50 (#064.19) 01.08 07.10.09 PK - output pulse and toggle slightly modified: - toggle only by ioctl x,999 (before it was any value >=999) - toggle, set or reset stops already running pulse timer - fixed bug in pulse function: total count was wrong if pulse repeated - added IO_PULSE_TOGGLES compile option for Barionet compatible behaviour of the pulse function (#064.24) 15.10.09 PK - 1-wire TS: measurement time increased from 760ms to 1s (as a precaution against bug #064.17) - 1-wire TS: fixed wrong timing of high-power in a "send, high power" sequence (bugfix #065.02) 16.10.09 PK - bugfix #064.17: 1-wire collision with the RS485 port (CTS) resulting in temp sensors always reading 0 01.09 10.11.09 PK - Ex1000 temperature sensor disabled because it was disturbing 44kHz PCM audio FDX (bugfix #048.09) 01.10 08.12.09 JP - bugfix #047.19: device resets if DHCP server responds too quickly caused by nice() within enable/disable chip select in Ex110 display driver (pin shared with the reset button) 01.11 17.12.09 PK - feature #047.33: added support for reset button as a digital input (IO address 296) 01.12 28.12.09 PK - initial version of the Ann155 driver 31.12.09 PK - Ann155: fixed wrong order of digital inputs - LED output mapped as a relay rather than digital output 06.01.10 PK - Annuncicom 1000 PIC driver: delay before data reception increased from 3us to 10us (for compatibility with Ann155) 12.01.10 PK - bugfix #064.43: 1-wire reports temp value 0 even if bus is shorted - bugfix #064.51: temperature sensors are not in subscriptions 05.02.10 PK - bugfix #064.43: 1-wire reports temp value 140.6 if bus is shorted 01.13 25.02.10 PK - #065.05: Annuncicom VME driver 01.14 21.04.10 PK - #065.06: Exstreamer 120 support 01.15 19.07.10 PK - #065.08: added support for Exstreamer 500 20.07.10 PK - Ex1000: LED update and input scanning frequency reduced from 100Hz to 20Hz to reduce system load (bug #61.10) 01.16 29.07.10 PK - #055.21: Annuncicom 155: negative temperature displayed improperly - #065.09: added speaker supervision support for Annuncicom 155 01.17 06.08.10 PK - #065.10: IP Speaker hardware supported - serial peripheral (VSC, IR-RTC) driver selects the protocol (RS232/RS485) according to the hardware type - VSC driver forces the serial port to half duplex and does not receive loopback (local echo) any more - IP Speaker: using PIO 11 for VSC infra-red (acts as built-in) - optimisation: serial and 1wire flags in io_driver->io_desc compacted to 1 byte "flags" allowing more flags to be addded 27.08.10 PK - #065.11: IR input on IP speaker works with both settings "built-in", "external" 01.18 10.11.10 PK - #065.12: Barionet 50: 1-wire addresses accessible via IO registers - #065.13: Add interface to 1-wire bus from the application - #065.14: wrong number of digital inputs on Ann155 (4 instead of 2) - #065.07: Add virtual bit registers 205-300 for Barionet 50 01.19 16.02.11 PK - IPAM101 support in Annuncicom 100/200 driver 01.19 06.06.11 PK - #065.15: Exstreamer 205 support in infra-red driver 07.06.11 PK - IPAM101 support in PS16 driver 26.09.11 KS - drv/ds6io.c PDATA_IPAM_100 (corrcted to 0xff7A from 0xff76) 29.09.11 PK - IPAM101 support in Exstreamer 500/1000 driver 03.10.11 PK - IPAM101 support in Annuncicom 1000 driver 07.10.11 PK - IPAM101 and 102 support in IPAM100 carrier board and IPAM100 driver 01.19 25.11.11 jp - #64.68: barionet-50 deriver. Allow writing to temperature sensors fro BCL. So they can be used to store temperature values from other ( not 1-wire ) sources. 28.11.11 jp - #64.74.1-wire sensors returns wrong value in case of negative temperature. This problem was due to type conversion from int to long. 01.20 11.01.12 PK - #65.17: Annuncicom 50 IO driver 01.20 07.02.12 PK - low level driver for PS1 01.21 17.02.12 PK - Ann155 driver fixed to work on IPAM 100 (broken due to a change in common Ann1000/155 driver for IPAM 101) 01.22 27.02.12 PK - #65.19: add IPAM module type to register 60008 19.03.12 PK - #65.20: wrong number of serial ports reported on Annuncicom PS1 01.23 29.03.12 PK - #65.21: Annuncicom 50 OEM detection 01.24 26.02.13 PK - #48.34: Ex110 HW 1.4 resets unexpectedly 01.25 11.02.14 PK - #65.25: support for IPAM 300 revision 1.5 02.00 14.02.14 AD - add support for new vsc model 95A03-1 - fixed autodetection for 62a03-1 now legacy - print question mark for undefined characters - fixed missing escaping of CRC - fixed IDLE message missing on reboot - fixed CRC message escaping length - add dirty set on vsc_clear (force clear screen) 21.07.14 PK - new VSC display disabled in Barionet 50 version of BCL_IO 02.01 22.07.14 PK - #65.24: PS16 LCD timing updated to work with new displays 02.02 08.08.14 AD - vsc95a03-1, add abcl 2 char 32x38 font / abcl mode - vsc95a03-1, add support for font selection, 16x20 8 cols (small) or 32x38 2 cols(big), default is 2 cols 32x38 02.03 04.11.14 PK - #27.51 fixed: DMA0 conflicting with V24ASM in IR send function, using DMA1 now 02.04 23.01.15 PK - #48.37: IPAM301/302 GPIO control added into bcl-io 02.05 21.05.15 PK - added support for OEM_362 hardware 02.06 28.10.15 PK - #64.92: IO init flags are now passed to the driver init function new flag IO_INIT_FLAG_DISABLE_1WIRE_TS to disable Barionet50 1-wire TS driver initialization */