Release Notes

92b - 23.03.2023
Release 92b - 23.03.2023
Version
• core version: 2.37.2.1924
• app.deRadio: 1.25.0
Allgemein
• Nach dem Setzen der Zeitzone wird synchronisiert und 1 Sekunde gewartet
92a - 14.03.2023
Release 92a - 14.03.2023
Version
• core version: 2.37.1.1923
• app.deRadio: 1.25.0
Text-To-Speech
• Die Ausgabelautst¨arke der Audio-Hardware der deZign.cape.rev00 wurde der der
deZign.base rev04 angepasst.
Allgemein
• W¨ahrend eines Firmware-Updates wird das Low-Power-Fallback-Bild angezeigt
app.deRadio
• Wenn als Art der Spannungsversorgung “12V (DC, Akku)“ gew¨ahlt ist, dann wird
das Signal vom PowerBackup-Modul ignoriert (weil deaktivierte PowerBackupModule permanent low power signalisieren).
92 - 01.03.2023
Release 92 - 01.03.2023
Version
• core version: 2.37.0.1922
• app.deRadio: 1.24.3
• lib.image: 1.5.1.119
Konfiguration
• Die Log-Collection enth¨alt nun die Datei device.history.
• Beim Speichern wird geloggt, warum gespeichert wurde
Mobilfunk
• Ausschaltzeit fur das Mobilfunk-Modem auf 15 Sekunden erh ¨ ¨oht.
System
• Fehler behoben: Timer-Thread wurde unter bestimmten Umst¨anden doppelt gestartet.
• Nach dem ublichen Sync-Aufruf, der auf das Speichern von Dateien folgt, wird ¨
zus¨atlich noch das Arbeitsverzeichnis und das Arbeits-Dateisystem gesynct.
• W¨ahrend des Firmware-Updates wird das DCDI-Ruckfallbild f ¨ ur Verbindungsaus- ¨
fall dargestellt.
DCDI
• Wenn kein Verbindungsziel angegeben ist, wird nicht mehr versucht eine Verbindung aufzubauen (bis sich die Verbindungseinstellungen ¨andern).
lib.image
• Fehler behoben: beim Laden besch¨adigter png-Dateien konnte ein Speicherleck
autreten.
• libPNG version 1.6.39 auch auf rev02-System (kernel 3.8.13) verwendbar.
91c - 21.12.2022
Release 91c - 21.12.2022
Version
• core version: 2.36.3.1921
• app.deRadio: 1.24.3
System
• Fehler behoben: Anwendung beendete sich zu schnell, wenn ein Firmware-Update
durchgefuhrt werden soll, dadurch wird u.U. kein R ¨ uckfallbild dargestellt ¨
• Ruckfallebene wird auch aktiviert, wenn neue Firmware ¨ uber DCDI ankommt.
91b - 21.12.2022
Release 91b - 21.12.2022
Version
• core version: 2.36.2.1920
• app.deRadio: 1.24.3
Inbetriebnahme
• Fehler behoben: Speicherung der Art der Spannungsversorgung schlug fehl.
System
• Fehler behoben: Datei-Synchronisation mit Dateisystem verbessert
• Beim Anwendungsstart wird bis zu 30 Sekunden auf die Verfugbarkeit erforderli- ¨
cher Dateien gewartet.
• Maximale Standard-Bildwartezeit auf 2 Stunden gesetzt.
app.deRadio
• Fehler behoben: Speicherfehler bei Datumsangaben, die im Dezember liegen.
• Anpassungen fur deZign.cape.rev00
91a - 14.12.2022
Release 91a - 14.12.2022
Version
• core version: 2.36.1.1919
• app.deRadio: 1.24.2
System
• Fehler behoben: unvorteilhaft gew¨ahlte Heizungs-Timeouts in der BeagleboneFirmware k¨onnen dazu fuhren, dass die Heizung nicht heizt. ¨
• Vor geplanten Beendigungen der Anwendung, die u.U. nicht mehr die Destruktoren
durchlaufen (z.B. beim reboot), werden Schreibvorg¨ange der Anwendung im Dateisystem durchgefuhrt/abgeschlossen und anschließend weitere Schreibvorg ¨ ¨ange verhindert.
91 - 08.11.2022
Release 91 - 08.11.2022
Version
• core version: 2.36.0.1918
• app.deRadio: 1.24.2
Allgemein
• W¨ahrend eines Firmware-Updates wird das Low-Power-Fallback-Bild angezeigt
• Nach einem Firmware-Update wird die Datei asound.conf neu angelegt.
• Das Ger¨at ist jetzt in der Lage selbstst¨andig Bilder aus dem Internet/Netzwerk
herunterzuladen.
Hilfs-Controller
• Im UART-Betrieb des Modems wird DCDI w¨ahrend des AVR-Firmware-Updates
pausiert.
Web-Bedienoberfl¨ache
• Der Abruf des Framebuffer-Inhalts ist nun fur alle Nutzer m ¨ ¨oglich
app.deRadio
• deZign.cape : Revisions-Erkennung
DCDI
• Die Art der Spannungsversorgung kann nun parametriert werden.
• Die DCDI-Funktionalit¨at entspricht DCDI-Spezifikation 1.20.

90f - 02.08.2022
Release 90f - 02.08.2022
Version
• core version: 2.35.6.1917
• app.deRadio: 1.23.0
System
• Fehler behoben: Uhrzeit wurde sofort nach Anwendungsstart gultig gesetzt. Jetzt ¨
wird darauf gewartet, dass die gultige Uhrzeit vom AVR geholt wird, bevor zeitabh ¨ ¨angige
Aktionen (z.B. Schlafen) starten.
90e - 30.06.2022
Release 90e - 30.06.2022
Version
• core version: 2.35.5.1916
• app.deRadio: 1.23.0
System
• Ermittlung der Lokalzeit uberarbeitet
90d - 03.06.2022
Release 90d - 03.06.2022
Version
• core version: 2.35.4.1915
• app.deRadio: 1.23.0
• lib.epdc: 3.9.2.196
lib.epdc
• Fehler behoben: Tiemeout-Zeit fur Bildupdate wurde wurde bei zu langen Durchl ¨ ¨aufen
wieder zuruckgesetzt. 
90c - 01.06.2022
Release 90c - 01.06.2022
Version
• core version: 2.35.3.1914
• app.deRadio: 1.23.0
• lib.epdc: 3.9.1.195
Text-To-Speech
• Ausgabehardware kann jetzt korrekt ausgew¨ahlt werden.
lib.epdc
• Fehler behoben: Tiemeout-Zeit fur Bildupdate wurde in Sekunden interpretiert ¨
(Millisekunden werden jedoch parametriert).
90b - 05.05.2022
Release 90b - 05.05.2022
Version
• core version: 2.35.2.1913
• app.deRadio: 1.23.0
Log-Daten
• Fehler behoben (seit Release 90): Log-Dateien wurden in ihrer Gr¨oße nicht mehr
begrenzt.
EPD-Steuerung
• Werden bei drei aufeinander folgenden Bildwechseln crc-Fehler festgestellt, dann
wird die EPD-Controller-Spannungsversorgung deaktiviert und beim n¨achsten Bildwechsel wieder aktivier
90a - 19.04.2022
Release 90a - 19.04.2022
Version
• core version: 2.35.1.1912
• app.deRadio: 1.23.0
Beleuchtung
• Nach Aktivierung des Sehbehinderten-Modus bleibt die Beleuchtung auch nur fur ¨
die Aktivit¨atsdauer des Sehbehinderten-Modus aktiv.
90 - 11.04.2022
Release 90 - 11.04.2022
Version
• core version: 2.35.0.1911
• app.deRadio: 1.23.0
DCDI
• CRC-Fehler bei der Ubermittlung der Bildinhalte an den EPD-Controller werden ¨
mit einer separaten imageUpdate-Notification und dem Fehler-Code 12 gesendet.
• Die DCDI-Funktionalit¨at entspricht DCDI-Spezifikation 1.19.
Web-Bedienoberfl¨ache
• Die Konfigurationsm¨oglichkeiten fur Nutzer und Admins wurden ¨ uberarbeitet. ¨
• Weniger blockierendes Verhalten der Web-Bedienoberfl¨ache w¨ahrend Bild-Updates.
Text-To-Speech
• Fehler behoben: die erste Audio-Ausgabe bei Verwendung des PWM-Audio-Treibers
schlug immer fehl
Bildpuffer
• Wenn sich Systembilder ¨andern, wird der Framebuffer-Inhalt von SVGs gel¨oscht.
Mobilfunk
• Im Uart-Betrieb wird der Wert fur die Feldst ¨ ¨arke ca. 3 Minuten nach Modem-Start
auf den invalid-Wert 99 gesetzt.
Inbetriebnahme
• Es gibt eine weitere Art Kategorie fur die Spannungsversorgung (12V DC, Netz- ¨
teil).
Power-Fail-Modus
• Das Alarm-Signal des PowerBackup-Moduls wird nur noch in den SpannungsversorgungsKategorien ’12V DC, Netzteil’ und ’230V AC’ berucksichtigt. ¨
• Die System-Spannung wird nur noch in der Spannungsversorgungs-Kategorie ’12V
DC, Akku’ berucksichtigt. ¨
• Die Aktivierungs-Spannung fur den Power-Fail-Modus ist nur noch in der Spannungsversorgungs- ¨
Kategorie ’12V DC, Akku’ in der Web-Bedienoberfl¨ache einstellbar.
Beleuchtung
• Es ist nun m¨oglich die Beleuchtung mit Hilfe eines beliebigen Tastendrucks zu
aktivieren.
89d - 22.02.2022
Release 89d - 22.02.2022
Version
• core version: 2.34.4.1910
• app.deRadio: 1.22.1
Mobilfunk
• Der Ping ckeck startet das Modem wieder neu, wenn er oft genug fehlgeschlagen
ist.
• Der Wertebereich des Wertes errTrials des Ping ckeck liegt jetzt zwischen 1 und
10.
Text-To-Speech
• Nuance-TTS-Ausgaben werden bei Verwendung der PWM-Ausgabe-Hardware vorsynthetisiert.
• Bei Verwendung der PWM-Audio-Ausgabe wird der Pegel der Ausgabe angepasst.
DCDI
• Antworten auf Requests enthalten optional nun auch die Seriennummer und den
Ger¨atenamen.
• Die DCDI-Funktionalit¨at entspricht DCDI-Spezifikation 1.18.
Katastrophen-Modus
• Beim Beenden des Katastrophen-Modus werden gepufferte Bildinhalte nocheinmal
gel¨oscht.
89c - 11.02.2022
Release 89c - 11.02.2022
Version
• core version: 2.34.3.1909
• app.deRadio: 1.22.1
Hilfs-Controller
• Nach einem erfolgreichen AVR-Firmware-Update wird das System neu gestartet.
Mobilfunk
• Es kann jetzt parametriert werden, dass der Ping-Check nur bei ausbleibender
bidirektionaler Kommunikation durchgefuhrt wird.
Text-To-Speech
• Das Script zum Synthetisieren von Aristech-Konserven gibt die Mutex zum Konvertieren von Konserven auch im Fehlerfall oder nach Ablauf von 2 Minuten wieder
frei.
Sehbehinderten-Modus
• Die TTS-Ausgaben erfolgen inhaltlich wieder synchron zu den Sehbehindertenbildern.
DCDI
• Bei Anderung von TTS-Zeichenketten erfolgt keine change notification mehr ¨
• Das state-Telegramm kann mit einem request angefordert werden
• Der Request configureDevice wurde erweitert (mobile/pingCheck/pauseIfTraffic).
• Die DCDI-Funktionalit¨at entspricht DCDI-Spezifikation 1.17.
89b - 18.01.2022
Release 89b - 18.01.2022
Version
• core version: 2.34.2.1908
• app.deRadio: 1.22.1
Mobilfunk
• Die Mobilfunkverbindung kann mit dem SMS-Befehl ’cmd.dezign.mobile.restart’
neu gestartet werden.
Bild-Update
• Die Reihenfolge der Abl¨aufe beim Bildupdate wurden ge¨andert. Erfolgreiche Bildwechsel werden nun eher gemeldet.
89a - 07.01.2022
Release 89a - 07.01.2022
Version
• core version: 2.34.1.1907
• app.deRadio: 1.22.1
• lib.image: 1.5.0.118
deZign.device
release notes Seite 10 von 66
• lib.epdc: 3.9.0.194
Low-Power-Modus
• Fur das Zusammenstellen der Log-Collection wird die CPU hochgetaktet. ¨
• Der Audio-Verst¨arker wird bereits zu Beginn des Bildwechsel aktiviert, wenn anschließend eine TTS-Ausgabe erfolgen soll.
Power-Fail-Modus
• Das Unterspannungssignal des Power-Backup-Moduls wird nur noch im 230VBetrieb fur den Power-Fail-Modus ber ¨ ucksichtigt. ¨
app.deRadio
• H¨aufigeres Auslesen des Unterspannungssignal des Power-Backup-Moduls.
89 - 21.12.2021
Release 89 - 21.12.2021
Version
• core version: 2.34.0.1906
• app.deRadio: 1.22.0
• lib.image: 1.5.0.118
• lib.epdc: 3.9.0.194
Sleep Mode
• Fehler behoben: Ger¨at schlief bei bestimmter Konfiguration zu lange.
Allgemein
• Segmentaion fault beim Beenden der Anwendung behoben.
• Der admin-User wird nicht mehr default m¨aßig angelegt falls er nicht existiert.
• Der Default-Wert fur die Stunde der t ¨ ¨aglichen Update-Zeit liegt jetzt bei 13 Uhr.
• Der CPU-Takt kann reduziert werden und wird nur fur betimmte Aufgaben erh ¨ ¨oht
(Bild-Rendering, TTS-Ausgabe, Bildupdate).
Statistic
• Das Erfassen des Datenaufkommens uber eth0 und ppp0 ist jetzt sehr pr ¨ ¨azise.
deZign.device
release notes Seite 11 von 66
Web-Bedienoberfl¨ache
• Im Reiter System der Web-Bedienoberfl¨ache kann der Verlauf der Leistungsaufnahme nachverfolgt werden.
Text-To-Speech
• Bei Verwendung der PWM-Hardware wird die Ausgabe der TTS um ca. 1000ms
verz¨ogert (Bedingt durch die Zeit, die der Verst¨arker ben¨otigt, um aus dem power
down heraus betriebsbereit zu sein).
DCDI
• Wenn TTS-Inhalte ge¨andert werden erfolgt keine image change notification
• Sofern m¨oglich versucht sich das Keep-Alive mit dem ubrigen Traffic zu synchro- ¨
nisieren.
Mobilfunk
• Die UART-Betriebsart fur den Modem-Betrieb wurde hinzugef ¨ ugt (erforderlich f ¨ ur ¨
LowPower-Mode, keine Aktualisierung der Verbindungsqualit¨at im UART-Modus).
app.deRadio
• Die Leistungsmessung kann jetzt kalibiert werden.
lib.image
• Dithering-Algorithmen optimiert und werweitert.
lib.epdc
• Unterstutzung f ¨ ur Wide-Temperature-Waveform hinzugef ¨ ugt. 
88b
Release 88b - 23.11.2021
Version
• core version: 2.33.2.1905
• app.deRadio: 1.21.0
DCDI
• Der Request getFileList enth¨alt nun auch Prufsummen f ¨ ur Fonts ¨
• Die DCDI-Funktionalit¨at entspricht DCDI-Spezifikation 1.16.
Text-To-Speech
• Das Script zum Abspielen von vorsynthetisierten Aristech-Konserven gibt die Mutex zum Abspielen von Konserven auch im Fehlerfall oder nach einer Wiedergabe
von 2 Minuten Dauer wieder frei
88a
Release 88a - 15.08.2021
Version
• core version: 2.33.1.1904
• app.deRadio: 1.21.0
• lib.epdc: 3.8.0.193
Mobilfunk
• Wenn beim SIM PIN eingeben ein Fehler auftritt, wird nur noch im Falle einer
erforderlichen PUK-Eingabe die Verbindung deaktiviert. Andernfalls wird neu gestartet und erneut versucht die PIN einzugeben.
• In der Web-Bedienoberfl¨ache gibt es nun die M¨oglichkeit, zu prufen, ob eine IP- ¨
Adresse erfolgreich angepingt werden kann.
DCDI
• Request getDeviceInfo wurde hinzugefugt (enth ¨ ¨alt bislang lediglich Informationen
zu den Speichermedien).
• Die DCDI-Funktionalit¨at entspricht DCDI-Spezifikation 1.15.
Synchronisation
• Die Synchronisierung blockiert das Display-Update des Masters nicht mehr, sondern wird parallel in einem anderen Thread vorgenommen.
• Verbindungsprobleme des Masters werden duch das Schließen von Zombie-Sockets,
die gelegentlich das binden auf den Sync-Port verhindern, reduziert.
Sleep Mode
• Fehler behoben: Ger¨at schlief zu lange
lib.epdc
• Nach dem Bildupdate wechselt der EPD-Controller in den Standby-Mode
88
Release 88 - 11.08.2021
Version
• core version: 2.33.0.1903
• app.deRadio: 1.21.0
• lib.epdc: 3.7.3.192
Power-Fail-Modus
• Fehler behoben: Beim Starten des Ger¨ates mit zu niedriger Spannung wurde PowerFailMode nicht aktiviert.
Katastrophen-Modus
• Beim Aktivieren des Katastrophen-Modus werden jetzt auch die gepufferten FramebufferInhalte gel¨oscht.
Sleep Mode
• Zu lange Schlafzeit kompensiert.
• Zus¨atzlich zu vielfachen von 5 Minuten kann auch die Auswahl 59 Minuten getroffen werden (fur fast nahtlose Tages ¨ uberg ¨ ¨ange).
deZign.device
release notes Seite 3 von 55
DCDI
• Die notification ’change’ wurde hinzugefugt und wird gesendet, wenn sich die ¨
Ger¨ate-Konfiguration oder die Bilder-Konfiguration ¨andert.
• Der Request ’configureDevice’ wurde erweitert und ie Optionen ’sendNotificationOnRtImgChange’ und ’sendNotificationOnConfigChanged’.
• Keine Keep-Alive-Deaktivierung mehr bei Ausbleiben der Antwort auf die erste
Anfrage.
• Das Status-Telegramm enth¨alt nun einen Wert fur die Mobilfunk-Feldst ¨ ¨arke.
lib.epdc
• Datenubertragung zum EPD-Controller ¨ uber SPI l ¨ ¨auft jetzt schneller.
• Der Bildvergleich fur partielle Updates kann f ¨ ur Bildwechsel, die durch Tasten- ¨
drucke angestoßen wurden, ¨ ubersprungen werden. ¨
app.deRadio
• Beleuchtungs-heartbeat kann unabh¨angig vom debug-Mode aktiviert werden (fur ¨
Katastrophenmodus).
Text-To-Speech
• Neue num.sqr fur Aristech TTS enthalten.
87a
Release 87a - 29.04.2021
Version
• core version: 2.32.3.1900
• lib.epdc: 3.7.2.191
lib.epdc
• Fehler-Signalisierung im Falle von Fehlern beim Clear Display verbessert.
DCDI
• Bei der Auswertung eines sendImagePart-Requests wird nur noch dem Bild namens
refName ein TTS-String zugewiesen (bisher wurde auch versucht dem Bild name
den gleichen TTS-String zuzuweisen).
87
Release 87 - 26.04.2021
Version
• core version: 2.32.2.1899
• app.deRadio: 1.20.0
• lib.epdc: 3.7.1.190
• lib.dab: 1.2.0.147
Tastenfunktion
• Unterstutzung f ¨ ur f ¨ unfte Taste hinzugef ¨ ugt. ¨
DCDI
• Fehler behoben: Audio Lautst¨arke bei verbauter Rev02 und kleiner konnte uber ¨
DCDI auf 100% geregelt werden. Jetzt wirklich nur noch auf 60%.
Betriebssystem
• Im Master-Slave-Betrieb routet der Master vom Slave eingehende Telegramme an
das Mobilfunk-Interface weiter und wieder zurück.
lib.epdc
• Unterstutzung f ¨ ur Wartebild eingef ¨ ugt. ¨
• Beim Bildvergleich wird kein Histogramm der Bilder mehr erzeugt (etwas schneller).
• Aktivierung nativer partieller Bild-Updates des EPD-Controllers Epson S1D13524
m¨oglich (Einstellungen, Grundkonfiguration).
lib.dab
• Support fur Journaline-Objekte hinzugef ¨ ugt.
86a
\section*{Release 86a - 25.02.2021}
    \subsection*{\sectVersion}
        \begin{itemize}
            \item core version: 2.32.1.1898
            \item app.deRadio: 1.20.0
            \item lib.image: 1.4.1.117
        \end{itemize}

    \subsection*{\sectDcdi}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Fehler behoben: Audio Lautstärke bei verbauter Rev02 und kleiner konnte über DCDI auf 100\% geregelt werden. Jetzt nur noch auf 60\%.}
                {bug fixed: audio volume in case of installed rev02 and smaller could be set to 100\% through dcdi. Now just to 60\%.}
        \end{itemize}

    \subsection*{\sectSync}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Im Störungsfall werden nicht mehr so häufig Log-Meldungen produziert wie bisher.}
                {in case of error there will be less often log messages generated}
        \end{itemize}

    \subsection*{sectWebIface}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Fehler behoben: Der EPDC-Power-State wurde nicht richtig auf der Startseite angezeigt.}
                {bug fixed: the epdc power state was not correct on start page}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Fehler behoben: Das Löschen von Frames im Reiter Einstellungen, Abschnitt Display-Konfiguration hat nicht funktioniert.}
                {bug fixed: removing frames in tab configuration, section display configuration did not work}
        \end{itemize}

    \subsection*{lib.image}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {SVG-Verarbeitung: Volle Alpha-Kanal-Unterstützung bei Bild-Overlays mit image-Attribut transeparency=\grqq{}1\grqq{}.}
                {SVG handling: full alpha blending support for image overlays by image attribute transparency=\grqq{}1\grqq{} }
        \end{itemize}
86
\section*{Release 86 - 28.01.2021}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.32.0.1897
        \item app.deRadio: 1.20.0
        \item lib.epdc: 3.7.0.189
        \end{itemize}

    \subsection*{\sectAuxCntrl}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Fehler behoben: bei fehlerhaften Anworten des AVR auf Anfragen zur Systemspannung wird die Spannung nicht mehr auf 0V gesetzt, sondern verbleibt bis zum nächsten gültigen Wert auf dem letzten Gültigen.}
                {bug fixed: on malformed responses of AVR to requests regarding system voltage the voltage won't be set to 0V any longer. It will remain on the last valid value until the next valid one will be received}
        \end{itemize}

    \subsection*{\sectMobile}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Wenn beim SIM PIN eingeben ein Fehler auftritt, wird nur noch im Falle von Fehler 16 (wrong pin) die Verbindung deaktiviert. Andernfalls wird erneut versucht die PIN einzugeben.}
                {if an error occurs on entering the sim pin the device will just deactivate mobile communication if error was 16 (wrong pin), otherwise it will try to enter the pin again.}
        \end{itemize}

    \subsection*{\sectWebIface}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Framebuffer-Inhalt des letzten erfolgreichen Display-Updates auch für Admins abrufbar.}
                {framebuffer content of last successful display update also retrieveable for admins}
        \end{itemize}

    \subsection*{\sectDcdi}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Request configureDevice erweitert (PWM Beleuchtung, Heizung, Sleepmode, Timeslots, PowerFail, DCDI).}
                {request configureDevice extended (pwm illumination, heating, sleep mode, timeslots, power fail, dcdi)}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Request getFileList erweitert (sysImages, checksums).}
                {request getFileList extended (sysImages, checksums)}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Die DCDI-Funktionalität entspricht DCDI-Spezifikation 1.13.}
                {functionality corresponding to dcdi specification 1.13}
        \end{itemize}

    \subsection*{app.deRadio}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {PWM-Unterstützung für die Beleuchtung hinzugefügt.}
                {PWM support for illumination added}
        \end{itemize}

    \subsection*{lib.epdc}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Fehler behoben: in der Initialisierungs-Sequenz für den EPSON EPD-Controller S1D13524 von PlasticLogic wurde der Schritt setPowerState( RUN ) unmittelbar nach dem Initialisieren der Clocks durchgeführt. Gemäß Datenblatt muss in unserer Hardware-Konfiguration auf das Initialisieren der Clocks das Senden des Instruction-Codes folgen. }
                {bug fixed: within the init sequence of EPSON EPD controller S1D13524 from PlaticLogic the step setPowerState( RUN ) was executed directly after initing clocks. Refering to the datasheet initing clocks has to be followed by sending the instruction code in our hardware configuration.}
        \end{itemize}
85d
\section*{Release 85d - 15.01.2021}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.31.4.1896
        \item app.deRadio: 1.19.0
        \end{itemize}

    \subsection*{\sectLog}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Die Temperatur-Werte aller Displays werden jetzt zyklisch geloggt}
                {the temperature values of all displays will be logged cyclic now}
        \end{itemize}

    \subsection*{\sectSystem}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Fehler behoben: Heizung wurde ganz oder teilweise deaktiviert, obwohl sie laufen sollte. Dies konnte zu hohen Temperaturen führen.}
                {Bug fixed: heating has been deactivated partially or complete when it should run. This may led to temperatures that where much too high.}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Wenn beim Heizen zu hohe Temperaturen (\textgreater 30°C) erreicht werden, wird die Heizung abgeschalten. Beim über- und unterschreiten der Grenz-Temperatur werden Ereignis meldungen auf dem Gerät erzeugt und abgelegt.}
                {if too hight temperatures (\textgreater 30°C) will be reaches the heating will be deactivated. When falling above and below this border value event messegaes will be generated and stored on device.}
        \end{itemize}
85c
\section*{Release 85c - 14.01.2021}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.31.3.1895
        \item app.deRadio: 1.19.0
        \end{itemize}

    \subsection*{\sectSystem}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Fehler behoben: 'Heizung deaktivieren' wurde zyklisch an den AVR gesendet. Dieser hat keinen neuen Heizvorgang zugelassen, weil die letzte Deaktivierung weniger als 20 Sekunden her war.}
                {Bug fixed: 'deactivate heating' send to often to AVR. AVR did not start new heating because last deactivation occured in less than 20 seconds}
        \end{itemize}
85b
\section*{Release 85b - 13.01.2021}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.31.2.1894
        \item app.deRadio: 1.19.0
        \end{itemize}

    \subsection*{\sectSystem}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
            {Fehler behoben: Heizung wurde unmittelbar nach der Aktivierung wieder deaktiviert.}
            {bug fixed: heating has been deactivated immediatly after acitvation}
        \end{itemize}

    \subsection*{\sectTest}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Der Reiter Test der Web-Bedienoberfläche wurde um eine Temperatur-Simulation erweitert.}
                {the tab test of the web interface has been extended by a temperature simulation}
        \end{itemize}
85a
\section*{Release 85a - 20.12.2020}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.31.1.1893
        \item app.deRadio: 1.19.0
        \end{itemize}

    \subsection*{\sectSleepMode}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Bei Aktivierung des Power-Fail-Modes wird mit dem Wechsel in den Sleep-Mode solange gewartet, bis alle anstehenden Update-Tasks und der Aktuelle (gültige) Update-Task beendet wurden.}
                {when activating power fail mode the device will hold transition to sleep mode untill al pending update tasks and the current (valid) update task has been handled}
        \end{itemize}
85
\section*{Release 85 - 15.12.2020}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.31.0.1892
        \item app.deRadio: 1.19.0
        \item lib.image: 1.4.0.116
        \end{itemize}

    \subsection*{\sectStatistics}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Leistungsaufnahme der Beleuchtung ab rev04 wieder berücksichtigt.}
                {power disspipation of illumination since rev04 included}
        \end{itemize}

    \subsection*{lib.image}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {SVG-Verarbeitung geschieht jetzt durch SVGlight.}
                {SVG handling is done by SVGlight}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {PNG-Transparenz und SVGlight auch im alten System nutzbar (Kernel 3.8.13).}
                {PNG transparency and SVGlight also for old system (kernel 3.8.13)}
        \end{itemize}
84a
\section*{Release 84a - 01.12.2020}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.30.1.1891
        \item app.deRadio: 1.19.0
        \item lib.image: 1.3.0.115
        \end{itemize}

    \subsection*{\sectSleepMode}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Nicht schlafen gehen, wenn das nächste Wachzeitfenster bereits in 180 Sekunden oder früher beginnt.}
                {don't go to sleep if next active timeslot begins within next 180 seconds}
        \end{itemize}

    \subsection*{\sectOS}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {SD-Karten-Kommunikation läuft schneller (sync deactivated).}
                {sd card communication runs faster (sync deactivated)}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Knacken in der Audio-Ausgabe eliminiert.}
                {eliminated crackling in audio playback}
        \end{itemize}

    \subsection*{\sectDcdi}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {sendImagePart kann auch ohne Inhalt gesendet werden und greift dann auf System-Bilder zurück}
                {sendImagePart may be send without content and in this case tries to access system images}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {sendImage und sendImagePart wurden um das Flag doNotShow (default: false) erweitert, welches einen Bildwechsel unterdrückt}
                {sendImage and sendImagePart contain flag doNotShow that suppresses a display update}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Die DCDI-Funktionalität entspricht DCDI-Spezifikation 1.12.}
                {functionality corresponding to dcdi specification 1.12}
        \end{itemize}

    \subsection*{lib.image}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {PNG-Transparency-Unterstützung hinzugefügt.}
                {added transparency support to both png loaders (file and memory)}
        \end{itemize}
84
\section*{Release 84 - 17.11.2020}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.30.0.1890
        \item app.deRadio: 1.19.0
        \item lib.vt: 1.3.3.505
        \end{itemize}

    \subsection*{\sectImgBuffer}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Beim Löschen eines Bildes vom Gerät werden auch gerenderte Framebuffer-Inhalte dieses Bildes gelöscht.}
                {when removing an image from device framebuffer content of this image will also be removed}
        \end{itemize}

    \subsection*{\sectDcdi}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Fehler behoben: wenn der Wert für die Standardbild Wartezeit 0 ist, sollte nie auf das Standardbild geschaltet werden, tat es aber.}
                {bug fixed: if the value for default image fallback time is zero, switching to default image should not happen, but it did}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Treffen sendImage- und sendImagePart-Requests ein wird geprüft, ob bereits eingereihte Requests ersetzt werden können}
                {if there are sendImage and sendImagePart requests incomming it will be chekced if allready enqueued requests can be replaced}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Request version enthält Revision der deZign.base}
                {request version contains deZign.base revision}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Die DCDI-Funktionalität entspricht DCDI-Spezifikation 1.11.}
                {functionality corresponding to dcdi specification 1.11}
        \end{itemize}

    \subsection*{\sectLog}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Die Zusammenstellung der Log-Daten enthält nun auch die Datei fileList.xml.}
                {the log collection now contains also the fileList.xml file}
        \end{itemize}
83
\section*{Release 83 - 10.11.2020}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.29.0.1889
        \item app.deRadio: 1.19.0
        \item lib.vt: 1.3.3.505
        \end{itemize}

    \subsection*{\sectWebIface}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Fehler behoben: Löschen von Systembildern ging nicht.}
                {bug fixed: removing system files was not possible}
        \end{itemize}

    \subsection*{\sectTTS}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Ab deZign.base.rev04 kann die Lautstärke auf 100\% eingestellt werden (bisher nur maximal 60\%).}
                {since deZign.base.rev04 audio volume may be configured up to 100 \% (until now just 60 \%)}
        \end{itemize}

    \subsection*{\sectSystem}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Test-Interface deaktiviert. Kollision mit UART für AVR behoben.}
                {deactivated test interface. Collision with uart for avr fixed}
        \end{itemize}

    \subsection*{\sectOS}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Kernel-Modul cpufreq-dt zu neuem System hinzugefügt. CPU-Frequenz kann jetzt richtig eingestellt werden.}
                {added kernel module cpufreq-dt to new system. cpu frequency can now be configured correctly}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {fstab angepasst (noatime für micro-SD-Karte, tmpfs nur 5\%).}
                {fstab adapted (noatime for micro SD card, tmpfs just 5\%)}
        \end{itemize}

    \subsection*{lib.vt}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Fehler behoben: Signal SIGABRT augetreten, wenn ungültiger Socket auf Schreibbarkeit geprüft wurde.}
                {bug fix: signal SIGABRT occured if invalid socket was checked for writability }
        \end{itemize}
82a
\section*{Release 82a - 23.10.2020}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.28.3.1888
        \item app.deRadio: 1.19.0
        \end{itemize}

    \subsection*{\sectDcdi}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Telegramme werden nicht mehr aus dem Socket-Thread heraus abgearbeitet, sondern in eine Queue eingereiht und durch den DCDI-Thread abgearbeitet.}
                {tlegrams won't be longer handled out of the socket thread, they will be enqueued and handled within dcdi thread}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Die DCDI-Funktionalität entspricht DCDI-Spezifikation 1.10.}
                {functionality corresponding to dcdi specification 1.10}
        \end{itemize}
82
\section*{Release 82 - 21.10.2020}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.28.2.1887
        \item app.deRadio: 1.19.0
        \end{itemize}

    \subsection*{\sectSystem}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Im Arbeitsverzeichnis existiert nun das Unterverzeichnis Images zur Ablage von Zusatzdateien, die in SVG-Dateien referenziert werden können (z.B. in einem image-Tag in svg: \textless image xlink:href=\grqq{} Images/file.png\grqq{} /\textgreater).}
                {there is a sub directory Images within work directory to store additional files that may be referenced by svg files (e.g. image tag in svg: \textless image xlink:href=\grqq{} Images/file.png\grqq{} /\textgreater) }
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Der SVG-Renderer kann nun auch für sendImagePart-Requests über dcdi verwendet werden.}
                {the svg renderer can now be used for sendImagePart-Requests over dcdi}
        \end{itemize}

    \subsection*{\sectWebIface}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Im Reiter Bilder der Web-Bedienoberfläche können auch System-Bilder angesehen werden.}
                {you can have a look at system images in tab images of the web interface}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Der Zugang zu System-Bildern kann über Nutzerrechte gewährt werden.}
                {access to system images can be granted by user rights}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Normale Bilder können mit einer Schaltfläche zu System-Bildern umgewidmet werden.}
                {ordinary images can be rededicated to system images by button}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Fonts können über Upload hinzugefügt werden.}
                {fonts may be added in tab upload}
        \end{itemize}

    \subsection*{\sectDcdi}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Telegramme werden nicht mehr aus dem Socket-Thread heraus abgearbeitet, sondern in eine Queue eingereiht und durch den DCDI-Thread abgearbeitet.}
                {tlegrams won't be longer handled out of the socket thread, they will be enqueued and handled within dcdi thread}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Die DCDI-Funktionalität entspricht DCDI-Spezifikation 1.9.}
                {functionality corresponding to dcdi specification 1.9}
        \end{itemize}

    \subsection*{\sectScheduling}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Die Betriebsart Slideshow kann nun einem Frame zugeordnet werden.}
                {operation mode slideshow can be assigned to a frame}
        \end{itemize}
81a
\section*{Release 81a - 09.10.2020}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.28.1.1886
        \item app.deRadio: 1.18.0
        \end{itemize}

    \subsection*{\sectKey}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Tastendruckerkennung auch für neuen IO-Expander PCF8574 (seit deZign.base Rev04).}
                {key stroke recognition also for new io expander PCF8574 (since deZign.base rev04)}
        \end{itemize}

    \subsection*{\sectAuxCntrl}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {keine Aktivierung des Debug-Mode beim Firmware-Update mehr, dafür längeres Timeout für AVR.}
                {no longer activation of debug mode while firmware update, but therefor longer timeout for AVR}
        \end{itemize}

    \subsection*{app.deRadio}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Host-CPU-Timeout auf 1200 Sekunden (20 Minuten) gesetzt.}
                {set host cpu timeout to 1200 seconds (20 minutes)}
        \end{itemize}
81
\section*{Release 81 - 29.09.2020}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.28.0.1885
        \item app.deRadio: 1.17.0
        \end{itemize}

    \subsection*{\sectMobile}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Bug fix: Beim Warten auf eine Antwort vom Mobilfunk-Modem auf den ATZ-Befehl konnte es zu Timeout-Problemen kommen.}
                {bug fix: on waiting for response on atz command a timeout error was possible}
        \end{itemize}

    \subsection*{sectWebIface}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Status der Beleuchtung wird auf der Startseite angezeigt.}
                {state of illumination will be shown on start screen}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Die Häufigkeit der Benutzung aller vier Tasten wird auf der Startseite angezeigt.}
                {the amount of key strokes of all four keys will be shown on start screen}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Der Verwendungszweck aller Tasten wird auf der Startseite angezeigt.}
                {the usage of all keys will be shown on start screen}
        \end{itemize}

    \subsection*{\sectDcdi}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Die DCDI-Funktionalität entspricht DCDI-Spezifikation 1.8.}
                {functionality corresponding to dcdi specification 1.8}
        \end{itemize}

    \subsection*{app.deRadio}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Status der Beleuchtung wird zur Host-CPU gesendet.}
                {state of illumination is send to host cpu}
        \end{itemize}
80c
\section*{Release 80c - 08.09.2020}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.27.3.1884
        \item app.deRadio: 1.16.0
        \end{itemize}

    \subsection*{\sectSystem}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
            {Polnische Zeichenketten wurden aktualisiert.}
            {Polish text strings have been updated}
        \end{itemize}
80b
\section*{Release 80b - 08.09.2020}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.27.2.1883
        \item app.deRadio: 1.16.0
        \end{itemize}

    \subsection*{\sectWebIface}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Bug fix: Beim Ändern von Bildeinstellungen kam es zu javascript-Fehlern}
                {bug fix: on changing image configuration javascript errors occured}
        \end{itemize}

    \subsection*{\sectImgBuffer}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Die Menge an Bilder, die gepuffert wird ist jetzt im Abschnitt EPD-Controller in der Web-Bedienoberfläche einstellbar (min:10, max:100, default:50)}
                {the amount of buffered images is no configurable in section epd controller of the web interface (min:10, max:100, default:50)}
        \end{itemize}

    \subsection*{\sectSystem}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
            {Polnische Zeichenketten wurden aktualisiert.}
            {Polish text strings have been updated}
        \end{itemize}

    \subsection*{app.deRadio}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Pull-up-Widerstände für IO-Expander SX1509 für die Eingänge 1 und 2 aktiviert.}
                {pull up resistors for inputs 1 and 2 of io expander SX1509 aktivated.}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Eingänge 1 und 2 des IO-Expander SX1509 werden AVR-intern invertiert gehandhabt.}
                {inputs 1 and 2 of io expander SX1509 operate inverted AVR internal.}
        \end{itemize}
80a
\section*{Release 80a - 04.09.2020}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.27.1.1882
        \item app.deRadio: 1.14.0
        \end{itemize}

    \subsection*{\sectImgChain}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Der Index für die Bilderkette wird bei jedem Anwendungsstart zurückgesetzt.}
                {the index for the image chain will be reset on every application start}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Der Index für die Bilderkette wird in der Statusleiste der Web-Bedienoberfläche angezeigt}
                {the index of the image chain is shown in state bar of the web interface}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Nach Bildwechseln außerhalb der Bilderketten-Funktion (kein Tastendruck) wird versucht, für das neue Bild einen gültigen Index aus der Bilderkette zu ermitteln. Wird keiner gefunden, so wird der Index zurückgesetzt.}
                {after display updates beyond image chain functionality (key pressing) finding a valid index for the new image will be tried. If no valid index can be retrieved, the index will be reset}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Ist der Index der Bilderkette ungültig (zurückgesetzt), so führt das Betätigen einer beliebigen Bilderketten-Taste dazu, dass das erste Bild der ersten Bilderkette angezeigt wird.}
                {is the index of the image chain invalid (resetted) a key press event of any image chain related key will lead to showing the first image of the the first image chain}
        \end{itemize}
80
\section*{Release 80 - 03.09.2020}
    \subsection*{\sectVersion}
        \begin{itemize}
        \item core version: 2.27.0.1881
        \item app.deRadio: 1.14.0
        \end{itemize}

    \subsection*{\sectImgChain}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Anlegen von Bilderketten ist nun möglich}
                {definition of image chains is now possible}
        \end{itemize}

    \subsection*{\sectSystem}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Puffergröße für Bilder auf 30 festgelegt}
                {buffer size for images set to 30}
        \end{itemize}

    \subsection*{\sectMobile}
        \begin{itemize}
            \item \ifthenelse{\equal{\rn_lang}{de}}
                {Zyklischer Abruf der Provider-Informationen im Hintergrund ist jetzt deaktiviert.}
                {cyclic refresh of provider information in background is no deactivated}
        \end{itemize}