"""
@ Stefanie Fiedler 2019
@ Alexander Teubert 2019
Version vom 02.12.2019

for Hochschule Anhalt, University of Applied Sciences
in coorperation with axxeo GmbH

This module converts the integer-coded responses of the Helios KWL to the error
requests, issued by the master
"""
def errortable(error_string):
    #check, if the error code correlates to a given error message

    table = {
    1 : 'Drehzahlfehler Lüfter \"Zuluft\" (Aussenluft)',
    2 : 'Drehzahlfehler Lüfter \"Abluft\" (Fortluft)',
    4 : 'SD-Karten Fehler beim Schreiben der E-Eprom-Daten bei \"FLASH-Ringpuffer VOLL\"',
    5 : "Bus Überstrom",
    7 : 'BASIS: 0-Xing Fehler VHZ EH  (0-Xing = Zero-Crossing, Null-Durchgangskennung)',
    8 : "Erw. Modul (VHZ): 0-Xing Fehler VHZ EH",
    9 : "Erw. Modul (NHZ): 0-Xing Fehler NHZ EH",
    10 : 'BASIS: Interner Temp-Sensorfehler - (T1) -Aussenluft- (fehlt od. Kabelbruch)',
    11 : "BASIS: Interner Temp-Sensorfehler - (T2) -Zuluft- (fehlt od. Kabelbruch)",
    12 : "BASIS: Interner Temp-Sensorfehler - (T3) -Abluft- (fehlt od. Kabelbruch)",
    13 : "BASIS: Interner Temp-Sensorfehler - (T4) -Fortluft- (fehlt od. Kabelbruch)",
    14 : "BASIS: Interner Temp-Sensorfehler - (T1) -Aussenluft- (Kurzschluss)",
    15 : "BASIS: Interner Temp-Sensorfehler - (T2) -Zuluft- (Kurzschluss)",
    16 : "BASIS: Interner Temp-Sensorfehler - (T3) -Abluft- (Kurzschluss)",
    17 : "BASIS: Interner Temp-Sensorfehler - (T4) -Fortluft- (Kurzschluss)",
    18 : "Erw. Modul als VHZ konfiguriert, aber nicht vorh. oder ausgefallen",
    19 : "Erw. Modul als NHZ konfiguriert, aber nicht vorh. oder ausgefallen",
    20 : "Erw. Modul (VHZ): Kanalfühler (T5) -Aussenluft- (fehlt od. Kabelbruch)",
    21 : "Erw. Modul (NHZ): Kanalfühler (T6) -Zuluft- (fehlt od. Kabelbruch)",
    22 : "Erw. Modul (NHZ): Kanalfühler (T7) -Rücklauf-WW-Register- (fehlt od. Kabelbruch)",
    23 : "Erw. Modul (VHZ): Kanalfühler (T5) -Aussenluft- (Kurzschluss)",
    24 : "Erw. Modul (NHZ): Kanalfühler (T6) -Zuluft- (Kurzschluss)",
    25 : "Erw. Modul (NHZ): Kanalfühler (T7) -Rücklauf-WW-Register- (Kurzschluss)",
    26 : "Erw. Modul (VHZ): Sicherheitsbegrenzer automatisch",
    27 : "Erw. Modul (VHZ): Sicherheitsbegrenzer manuell",
    28 : "Erw. Modul (NHZ): Sicherheitsbegrenzer automatisch",
    29 : "Erw. Modul (NHZ): Sicherheitsbegrenzer manuell",
    30 : "Erw. Modul (NHZ): Frostschutz WW-Reg. gemessen über WW-Rücklauf (T7) (Schaltschwelle per Variablenliste einstellbar z.B. < 7°C)",
    31 : "Erw. Modul (NHZ): Frostschutz WW-Reg. gemessen über Zuluft-Fühler (T6) (Schaltschwelle per Variablenliste einstellbar z.B. < 7°C)",
    32 : "Frostschutz externes WW Reg.: ( fest < 5°C nur PHI), gemessen entweder über (1.) Erw. Modul (NHZ): Zuluftkanal-Fühler (T6) oder (2.) BASIS: Zuluftkanal-Fühler (T2)"}

    return table[int(error_string)];

def warningtable(error_string):
    #check, if the warning code correlates to a given error message

    table = {1 : 'Interner Feuchtefuehler liefert keinen Wert',}

    return table[int(error_string)];

def infotable(error_string):
    #check, if the information code correlates to a given error message

    table = {
    1 : 'Filterwechsel',
    2 : 'Frostschutz WT',
    3 : 'SD-Karten Fehler',
    4 : 'Ausfallen des Externen Moduls (weitere Info in LOG-File)'}

    return table[int(error_string)];
