Release Notes

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}