Пример #1
0
 def __init__(self, uredjaj=None, dilucije=None, generatori=None, postaje=None, cfg=None):
     self.uredjaj = uredjaj
     self.dilucije = dilucije
     self.generatori = generatori
     self.postaje = postaje
     #config file
     if isinstance(cfg, MainKonfig):
         self.konfig = cfg
     else:
         config = configparser.ConfigParser()
         config.read(cfg, encoding='utf-8')
         self.konfig = MainKonfig(cfg=config)
     ###TAB POSTAVKE###
     self.izabraniOpseg = 0.0 #s tim se racuna
     self.checkUmjeravanje = True
     self.checkPonovljivost = False
     self.checkLinearnost = False
     self.checkOdaziv = False
     self.chekcKonverter = False
     self.isNOx = False
     self.izabranaPostaja = str(self.get_uredjaj().get_lokacija())
     self.izabranaDilucija = 'n/a'
     self.izabraniGenerator = 'n/a'
     self.izabranaVrstaCRM = 'n/a'
     self.koncentracijaCRM = 1.0
     self.sljedivostCRM = ''
     self.UCRM = 2.0
     self.izabranaTemperatura = 0.0
     self.izabranaVlaga = 0.0
     self.izabraniTlak = 0.0
     self.izabranaOznakaIzvjesca = 'n/a'
     self.izabranaRevizijaIzvjesca = 'n/a'
     self.izabraniBrojObrasca = 'n/a'
     self.izabranaNormaObrasca = 'n/a'
     self.izabraniOpisMetode = 'n/a'
     self.izabranaNapomena = ''
     self.izabraniDatum = ''
     self.izabranaMjernaJedinica = self.get_uredjaj().get_analitickaMetoda().get_jedinica()
     self.cNOx50 = float(self.konfig.get_konfig_element('KONVERTER_META', 'cNOX50'))
     self.cNOx95 = float(self.konfig.get_konfig_element('KONVERTER_META', 'cNOX95'))
     ###OSTALI TABOVI###
     self.tabData = {}
     try:
         opseg = self.get_uredjaj().get_analitickaMetoda().get_o()
         minlimit = opseg * 0.1
         maxlimit = opseg * 0.9
     except Exception:
         minlimit = 10.0
         maxlimit = 90.0
     komponente = list(self.get_uredjaj().get_komponente().keys())
     if 'NOx' in komponente:
         self.tabData['NO'] = RezultatTabData('NO', tocke=self.init_tockeUmjeravanja())
         self.tabData['NOx'] = RezultatTabData('NOx', tocke=self.init_tockeUmjeravanja())
         self.tabData['NO-odaziv'] = OdazivTabData('NO-odaziv', minlimit=minlimit, maxlimit=maxlimit)
         self.tabData['NOx-odaziv'] = OdazivTabData('NOx-odaziv', minlimit=minlimit, maxlimit=maxlimit)
         self.tabData['konverter'] = KonverterTabData(tocke=self.init_tockeKonverter(), cNOx50=self.cNOx50, cNOx95=self.cNOx95)
     else:
         for komponenta in komponente:
             tmp = "-".join([komponenta, 'odaziv'])
             self.tabData[komponenta] = RezultatTabData(komponenta, tocke=self.init_tockeUmjeravanja())
             self.tabData[tmp] = OdazivTabData(tmp, minlimit=minlimit, maxlimit=maxlimit)
     #inicijalni setup iz konfiga prodji kroz komponente i citaj konfig
     self.init_from_konfig()
Пример #2
0
class DataStore(object):
    """
    Ova klasa predstavlja interni dokument pojedinog prozora umjeravanja.
    Objekt cuva state pojedinih elemenata za jedno umjeravanje.
    """
    def __init__(self, uredjaj=None, dilucije=None, generatori=None, postaje=None, cfg=None):
        self.uredjaj = uredjaj
        self.dilucije = dilucije
        self.generatori = generatori
        self.postaje = postaje
        #config file
        if isinstance(cfg, MainKonfig):
            self.konfig = cfg
        else:
            config = configparser.ConfigParser()
            config.read(cfg, encoding='utf-8')
            self.konfig = MainKonfig(cfg=config)
        ###TAB POSTAVKE###
        self.izabraniOpseg = 0.0 #s tim se racuna
        self.checkUmjeravanje = True
        self.checkPonovljivost = False
        self.checkLinearnost = False
        self.checkOdaziv = False
        self.chekcKonverter = False
        self.isNOx = False
        self.izabranaPostaja = str(self.get_uredjaj().get_lokacija())
        self.izabranaDilucija = 'n/a'
        self.izabraniGenerator = 'n/a'
        self.izabranaVrstaCRM = 'n/a'
        self.koncentracijaCRM = 1.0
        self.sljedivostCRM = ''
        self.UCRM = 2.0
        self.izabranaTemperatura = 0.0
        self.izabranaVlaga = 0.0
        self.izabraniTlak = 0.0
        self.izabranaOznakaIzvjesca = 'n/a'
        self.izabranaRevizijaIzvjesca = 'n/a'
        self.izabraniBrojObrasca = 'n/a'
        self.izabranaNormaObrasca = 'n/a'
        self.izabraniOpisMetode = 'n/a'
        self.izabranaNapomena = ''
        self.izabraniDatum = ''
        self.izabranaMjernaJedinica = self.get_uredjaj().get_analitickaMetoda().get_jedinica()
        self.cNOx50 = float(self.konfig.get_konfig_element('KONVERTER_META', 'cNOX50'))
        self.cNOx95 = float(self.konfig.get_konfig_element('KONVERTER_META', 'cNOX95'))
        ###OSTALI TABOVI###
        self.tabData = {}
        try:
            opseg = self.get_uredjaj().get_analitickaMetoda().get_o()
            minlimit = opseg * 0.1
            maxlimit = opseg * 0.9
        except Exception:
            minlimit = 10.0
            maxlimit = 90.0
        komponente = list(self.get_uredjaj().get_komponente().keys())
        if 'NOx' in komponente:
            self.tabData['NO'] = RezultatTabData('NO', tocke=self.init_tockeUmjeravanja())
            self.tabData['NOx'] = RezultatTabData('NOx', tocke=self.init_tockeUmjeravanja())
            self.tabData['NO-odaziv'] = OdazivTabData('NO-odaziv', minlimit=minlimit, maxlimit=maxlimit)
            self.tabData['NOx-odaziv'] = OdazivTabData('NOx-odaziv', minlimit=minlimit, maxlimit=maxlimit)
            self.tabData['konverter'] = KonverterTabData(tocke=self.init_tockeKonverter(), cNOx50=self.cNOx50, cNOx95=self.cNOx95)
        else:
            for komponenta in komponente:
                tmp = "-".join([komponenta, 'odaziv'])
                self.tabData[komponenta] = RezultatTabData(komponenta, tocke=self.init_tockeUmjeravanja())
                self.tabData[tmp] = OdazivTabData(tmp, minlimit=minlimit, maxlimit=maxlimit)
        #inicijalni setup iz konfiga prodji kroz komponente i citaj konfig
        self.init_from_konfig()
################################################################################
    def init_tockeUmjeravanja(self):
        return self.konfig.get_tockeUmjeravanja()

    def init_tockeKonverter(self):
        return self.konfig.get_tockeKonverter()

    def get_tocke(self, naziv):
        return self.tabData[naziv].get_tocke()

    def set_tocke(self, naziv, tocke):
        self.tabData[naziv].set_tocke(tocke)

    def init_from_konfig(self):
        komponente = self.uredjaj.get_listu_komponenti()
        if 'NOx' in komponente:
            self.setup_konfig_elements('NOx')
            self.isNOx = True
        elif 'SO2' in komponente:
            self.setup_konfig_elements('SO2')
        elif 'CO' in komponente:
            self.setup_konfig_elements('CO')
        elif 'O3' in komponente:
            self.setup_konfig_elements('O3')
        elif 'C6H6' in komponente:
            self.setup_konfig_elements('BTX')

    def setup_konfig_elements(self, section):
        """Metoda postavlja elemente za report u membere koje pokusava ucitati iz
        konfiga."""
        #izvor
        try:
            izvor = self.konfig.get_konfig_element(section, 'izvor')
            self.set_izabranaVrstaCRM(izvor)
        except Exception as err:
            logging.warning(str(err))
        try:
            revizija = self.konfig.get_konfig_element(section, 'revizija')
            self.set_izabranaRevizijaIzvjesca(revizija)
        except Exception as err:
            logging.warning(str(err))
        try:
            brojObrasca = self.konfig.get_konfig_element(section, 'oznaka')
            self.set_izabraniBrojObrasca(brojObrasca)
        except Exception as err:
            logging.warning(str(err))
        try:
            norma = self.konfig.get_konfig_element(section, 'norma')
            self.set_izabranaNormaObrasca(norma)
        except Exception as err:
            logging.warning(str(err))
        try:
            opisMetode = self.konfig.get_konfig_element(section, 'naziv')
            self.set_izabraniOpisMetode(opisMetode)
        except Exception as err:
            logging.warning(str(err))

    def set_izabranaMjernaJedinica(self, x):
        """Setter izabrane mjerne jedinice"""
        x = str(x)
        if x != self.izabranaMjernaJedinica:
            self.izabranaMjernaJedinica = x

    def get_izabranaMjernaJedinica(self):
        """Getter izabrane mjerne jedinice"""
        return self.izabranaMjernaJedinica

    def set_checkKonverter(self, x):
        """setter provjere konvertera"""
        x = bool(x)
        if x != self.chekcKonverter:
            self.chekcKonverter = x

    def get_checkKonverter(self):
        """getter provjere konvertera"""
        return self.chekcKonverter

    def set_checkOdaziv(self, x):
        """setter provjere odaziva"""
        x = bool(x)
        if x != self.checkOdaziv:
            self.checkOdaziv = x

    def get_checkOdaziv(self):
        """getter provjere odaziva"""
        return self.checkOdaziv

    def set_checkLinearnost(self, x):
        """setter provjere linearnosti"""
        x = bool(x)
        if x != self.checkLinearnost:
            self.checkLinearnost = x

    def get_checkLinearnost(self):
        """getter provjere linearnosti"""
        return self.checkLinearnost

    def set_checkPonovljivost(self, x):
        """setter provjere ponovljivosti"""
        x = bool(x)
        if x != self.checkPonovljivost:
            self.checkPonovljivost = x

    def get_checkPonovljivost(self):
        """getter provjere ponovljivosti"""
        return self.checkPonovljivost

    def set_checkUmjeravanje(self, x):
        """setter provjere umjeravanja"""
        x = bool(x)
        if x != self.checkUmjeravanje:
            self.checkUmjeravanje = x

    def get_checkUmjeravanje(self):
        """getter provjere umjeravanja"""
        return self.checkUmjeravanje

    def set_izabraniDatum(self, x):
        """Setter izabranog datuma za report"""
        x = str(x)
        if x != self.izabraniDatum:
            self.izabraniDatum = x

    def get_izabraniDatum(self):
        """Getter izabranog datuma za report"""
        return self.izabraniDatum

    def set_izabranaNapomena(self, x):
        """Setter izabranog teksta napomene za report"""
        x = str(x)
        if x != self.izabranaNapomena:
            self.izabranaNapomena = x

    def get_izabranaNapomena(self):
        """Getter izabranog teksta napomene za report"""
        return self.izabranaNapomena

    def set_izabraniOpseg(self, x):
        """Setter opsega s kojim se racuna"""
        x = float(x)
        if x != self.izabraniOpseg:
            self.izabraniOpseg = x

    def get_izabraniOpseg(self):
        """Getter opsega s kojim se racuna"""
        return self.izabraniOpseg

    def set_izabraniOpisMetode(self, x):
        """Setter opisa metode za report"""
        x = str(x)
        if x != self.izabraniOpisMetode:
            self.izabraniOpisMetode = x

    def get_izabraniOpisMetode(self):
        """Getter opisa metode za report"""
        return self.izabraniOpisMetode

    def set_izabranaNormaObrasca(self, x):
        """Setter norme za report"""
        x = str(x)
        if x != self.izabranaNormaObrasca:
            self.izabranaNormaObrasca = x

    def get_izabranaNormaObrasca(self):
        """Getter norme za report"""
        return self.izabranaNormaObrasca

    def set_izabraniBrojObrasca(self, x):
        """Setter broja obrasca za report"""
        x = str(x)
        if x != self.izabraniBrojObrasca:
            self.izabraniBrojObrasca = x

    def get_izabraniBrojObrasca(self):
        """Getter broja obrasca za report"""
        return self.izabraniBrojObrasca

    def set_izabranaRevizijaIzvjesca(self, x):
        """Setter revizije izvjesca za report"""
        x = str(x)
        if x != self.izabranaRevizijaIzvjesca:
            self.izabranaRevizijaIzvjesca = x

    def get_izabranaRevizijaIzvjesca(self):
        """Getter revizije izvjesca za report"""
        return self.izabranaRevizijaIzvjesca

    def set_izabranaOznakaIzvjesca(self, x):
        """Setter oznake izvjesca za report"""
        x = str(x)
        if x != self.izabranaOznakaIzvjesca:
            self.izabranaOznakaIzvjesca = x

    def get_izabranaOznakaIzvjesca(self):
        """Getter oznake izvjesca za report"""
        return self.izabranaOznakaIzvjesca

    def set_izabranaTemperatura(self, x):
        """Setter izabrane temperature"""
        x = float(x)
        if x != self.izabranaTemperatura:
            self.izabranaTemperatura = x

    def get_izabranaTemperatura(self):
        """Getter izabrane temperature"""
        return self.izabranaTemperatura

    def set_izabranaVlaga(self, x):
        """Setter izabrane relativne vlage"""
        x = float(x)
        if x != self.izabranaVlaga:
            self.izabranaVlaga = x

    def get_izabranaVlaga(self):
        """Getter izabrane relativne vlage"""
        return self.izabranaVlaga

    def set_izabraniTlak(self, x):
        """Setter izabranog tlaka zraka"""
        x = float(x)
        if x != self.izabraniTlak:
            self.izabraniTlak = x

    def get_izabraniTlak(self):
        """Getter izabranog tlaka zraka"""
        return self.izabraniTlak

    def set_sljedivostCRM(self, x):
        """setter sljedivosti CRM"""
        if x != self.sljedivostCRM:
            self.sljedivostCRM = x

    def get_sljedivostCRM(self):
        """getter sljedivosti CRM"""
        return self.sljedivostCRM

    def set_UCRM(self, x):
        """Setter U CRM"""
        if x != self.UCRM:
            self.UCRM = x

    def get_UCRM(self):
        """Getter U CRM"""
        return self.UCRM

    def set_koncentracijaCRM(self, x):
        """Setter koncentracije CRM"""
        if x != self.koncentracijaCRM:
            self.koncentracijaCRM = x

    def get_koncentracijaCRM(self):
        """Getter koncentracije CRM"""
        return self.koncentracijaCRM

    def set_izabranaVrstaCRM(self, x):
        """Setter izabrane vrste CRM"""
        if x != self.izabranaVrstaCRM:
            self.izabranaVrstaCRM = x

    def get_izabranaVrstaCRM(self):
        """Getter izabrane vrste CRM"""
        return self.izabranaVrstaCRM

    def set_uredjaj(self, x):
        """Setter uredjaja"""
        if x != self.uredjaj and isinstance(x, Uredjaj):
            self.uredjaj = x

    def get_uredjaj(self):
        """Getter uredjaja"""
        return self.uredjaj

    def get_konfig(self):
        """setter konfig objekta"""
        return self.konfig

    def set_dilucije(self, x):
        """Setter kalibracijske jedinice"""
        if x != self.dilucije and isinstance(x, dict):
            self.dilucije = x

    def get_dilucije(self):
        """Getter kalibracijske jedinice"""
        return self.dilucije

    def get_listu_dilucija(self):
        """Getter liste dilucijskih jedinica"""
        return sorted(list(self.dilucije.keys()))

    def set_izabranaDilucija(self, x):
        """Setter izabrane dilucije (kljuca u mapi pod kojim je spremljen objekt)"""
        if x in self.dilucije.keys() and x != self.izabranaDilucija:
            self.izabranaDilucija = x

    def get_izabranaDilucija(self):
        """Getter izabrane dilucije (kljuca u mapi pod kojim je spremljen objekt)"""
        return self.izabranaDilucija

    def get_objekt_izabrane_dilucije(self, key):
        """Getter objekta iz mape dilucija. Ulazni parametar je kljuc pod kojim je
        objekt spremljen u mapi dilucija."""
        if key in self.dilucije.keys():
            return self.dilucije[key]

    def set_generatori(self, x):
        """Setter generatora cistog zraka"""
        if x != self.generatori and isinstance(x, dict):
            self.generatori = x

    def get_generatori(self):
        """Getter generatora cistog zraka"""
        return self.generatori

    def get_listu_generatora(self):
        """Getter liste generatora cistog zraka"""
        return sorted(list(self.generatori.keys()))

    def set_izabraniGenerator(self, key):
        """Setter izabranog generatora cistog zraka (kljuc u mapi pod kojim je spremljen objekt)"""
        if key in self.generatori.keys() and key != self.izabraniGenerator:
            self.izabraniGenerator = key

    def get_izabraniGenerator(self):
        """Getter izabranog generatora cistog zraka (kljuc u mapi pod kojim je spremljen objekt)"""
        return self.izabraniGenerator

    def get_objekt_izabranog_generatora(self, key):
        """Getter objekta iz mape generatora. Ulazni parametar je kljuc pod kojim je
        objekt spremljen u mapi generatora cistog zraka"""
        if key in self.generatori.keys():
            return self.generatori[key]

    def set_postaje(self, x):
        """Setter postaja"""
        if x != self.postaje and isinstance(x, list):
            self.postaje = x

    def get_postaje(self):
        """Getter postaja"""
        return self.postaje

    def set_izabranaPostaja(self, x):
        """setter izabrane postaje"""
        if x != self.izabranaPostaja:
            self.izabranaPostaja = x

    def get_izabranaPostaja(self):
        """getter izabrane postaje"""
        return self.izabranaPostaja

    def set_cNOx50(self, x):
        """setter metapodatka cNOx50 za provjeru konvertera"""
        if x != self.cNOx50:
            self.cNOx50 = x

    def get_cNOx50(self):
        """getter metapodatka cNOx50 za provjeru konvertera"""
        return self.cNOx50

    def set_cNOx95(self, x):
        """setter metapodatka cNOx95 za provjeru konvertera"""
        if x != self.cNOx95:
            self.cNOx95 = x

    def get_cNOx95(self):
        """getter metapodatka cNOx95 za provjeru konvertera"""
        return self.cNOx95
################################################################################
    def serialize(self):
        """
        metoda serijalizira cijeli datastore uz pomoc modula pickle. output
        """
        out = pickle.dumps(self)
        return out
################################################################################