laatzen/Pruef2000/source/Settings.cls
2021-10-01 11:11:04 +02:00

1448 lines
48 KiB
OpenEdge ABL

VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "CSettings"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
'==============================================================================
'
' File : Settings.cls
' Date : 08.04.1999
' Version: 1.03
' Author : Reinhard Henning, Andreas Schmidt, lindner&partner
'
'==============================================================================
'
' Verwaltung der globalen Voreinstellungen der Anwendung
'
'==============================================================================
'
' History:
'
' Date : 08.04.1999
' Version: 1.03
' Author : Andreas Schmidt, lindner&partner
'
' 'getMaxPruefpunkte' neu.
'
' Date : 30.03.1999
' Version: 1.02
' Author : Andreas Schmidt, lindner&partner
'
' Behandlung der Einbauplätze, Stränge, Nennweiten, Waagen, Prüfzeiten und
' Behälter neu.
' Pumpen überarbeitet.
'
' TODO:
' Temperaturmeßstellen, Langmessung, Referenzzähler.
'
' Date : 22.03.1999
' Version: 1.01
' Author : Andreas Schmidt, lindner&partner
'
' set-/getServerDBPathname neu.
'
' Date : 22.03.1999
' Version: 1.00
' Author : Reinhard Henning, Andreas Schmidt, lindner&partner
'
' Erste dokumentierte Version.
'
'==============================================================================
Option Explicit
Const AES_PASSWORD = "38A80D3DF7FCBB81B005AE3DB00C5955EC82AB552B20796B2BE38104402DE7DC"
' Todo: überflüssig ?
' IDs der COM-Ports der einzelnen Geräte
' @see getComPort
' --------------------------------------
Public Enum DEVICEPORTS
DEVPORT_Reserve = 1
DEVPORT_SPS = 2
DEVPORT_FMBus = 3
DEVPORT_Waage = 4
DEVPORT_Display = 5
End Enum
' Private Member
' --------------
Private m_sINIFilename As String
' Generelle Vorgaben
' ------------------
Private Const SEC_GLOBAL = "Global"
'Private Const KEY_GL_DBSERVER = "ServerDBPath"
'Private Const KEY_GL_DBERSATZ = "ErsatzDBPath"
Private Const Key_GL_ADOCONNECTION = "ServerADOConnection"
Private Const KEY_UPDATEEXE = "UpdateExePath"
Private Const KEY_UPDATEPRG = "UpdateProgrammPath"
Private Const KEY_UPDATECHECK = "CheckAufUpdate"
Private Const KEY_GL_KENNLINIENGRAFIKEN = "KennlinienDir"
Private Const KEY_GL_SPRACHE = "Language"
'Private Const KEY_LOGFILE = "LogFile"
Private Const KEY_PRINTFILE = "PrintFile"
Private Const KEY_PRINTDIR = "PrintDir"
'Private Const KEY_GL_DBUSER = "DBUs"
'Private Const KEY_GL_DBPW = "DBPw"
Private Const KEY_AUSLIEFERUNG = "Auslieferung"
Private Const SEC_MSENTLUEFTEN = "Meistream_entlueften"
Private Const KEY_MSENTLUEFTEN_PUMPE = "Pumpe_"
Private Const KEY_MSENTLUEFTEN_MID = "MID_"
Private Const KEY_MSENTLUEFTEN_Q = "Q_"
' Vorbelegung
Private Const SEC_VORBELEGUNG = "Vorbelegung"
Private Const KEY_PRUEFUNG = "PruefungsArt"
Private Const KEY_USPRUEFUNG = "USPruefungsArt"
Private Const KEY_USVORPRUEFUNG = "USVorPruefungsArt"
Private Const KEY_FUNKTIONSPRUEFUNG = "USFunktionspruefung"
Private Const KEY_VORJUSTAGE = "USVorjustage"
Private Const KEY_PREUFUNG_MIT_WAAGE = "Waage"
Private Const KEY_PRUEFUNG_MIT_REFERENZZAEHLER = "Referenzazehler"
Private Const KEY_EICHPRUEFVORGABENIGNORIEREN = "EichpruefvorgabenIgnorieren"
Private Const KEY_PRUEFPUNKTE_NICHT_SORTIERT = "PruefpunkteNichtSortiert"
Private Const KEY_VERSUCH = "Versuch"
Private Const KEY_LICHTWELLENLEITER = "Lichtwellenleiter"
Private Const KEY_NACHLAUFZEIT_S = "Nachlaufzeit_s"
' Hardware der Prüfstation
' ------------------------
Private Const SEC_HARDWARE = "HardwarePruefstation"
Private Const KEY_HW_NR = "Nummer"
Private Const KEY_HW_BAUJAHR = "Baujahr"
Private Const KEY_HW_KUNDE = "Kunde"
Private Const KEY_HW_STANDORT = "Standort"
Private Const KEY_LETZTER_PRUEFER = "letzterPruefer"
Private Const KEY_GESPERRT = "gesperrt"
' Einbauplätze je Strang
Private Const KEY_HW_ANZAHL = "FM85"
' Anzahl der MID's je Strang : 1 oder 2
Private Const KEY_RZ_ANZAHLGR = "MID"
Private Const SEC_FUNKTIONSPRUEFUNG = "USFunktionspruefung"
Private Const KEY_FUNKTIONSPRUEFUNG_PRUEFZEIT = "Pruefzeit"
Private Const KEY_TOLERANZENERGIEABWEICHUNG = "EnergieAbweichung"
Private Const KEY_DELTAT = "DeltaT"
' Stränge
' -------
Private Const SEC_STRAENGE = "Straenge"
Private Const KEY_STRAENGE_ANZAHL = "Straenge"
' Nennweiten
' ----------
Private Const SEC_NENNWEITEN = "Nennweiten"
Private Const KEY_NW_NENNWEITE = "Nennweite"
' Waagen
' ------
Private Const SEC_WAAGEN = "Waagen"
Private Const KEY_WA_WAAGE = "Waage"
Private Const KEY_WA_UVOLUMEN = "UVolumen"
Private Const KEY_WA_OVOLUMEN = "OVolumen"
Private Const KEY_WA_RUHE_WDH = "RuheWdh"
Private Const KEY_WA_RUHE_GRENZWERT = "RuheGrenzwert"
Private Const KEY_WA_ANWAHL = "WaagenAnwahl"
Private Const KEY_WA_ABLASS = "AblassAnwahl"
Private Const KEY_WA_GENAUIGKEIT = "Genauigkeit"
Private Const KEY_WA_UEBERLAUFFAKTOR = "Ueberlauffaktor"
Private Const KEY_WA_BEHAELTERANWAHL = "BehaelterAnwahl"
Private Const KEY_WA_GRENZWERT = "Grenzwert"
Private Const KEY_WA_FUELLDURCHFLUSS = "Fuelldurchfluss"
Private Const KEY_WA_FUELLVOLUMEN = "Fuellvolumen"
Private Const KEY_WA_MINDESTMENGE = "Mindestmenge"
Private Const KEY_WA_LEEREN = "ImmerLeeren"
Private Const KEY_WA_LEERENALLEIN = "AlleinLeeren"
Private Const KEY_WA_COMPORT = "ComPort"
Private Const KEY_WA_COMSETTINGS = "ComSettings"
Private Const KEY_WA_OBERERGRENZWERT = "ObererGrenzwert"
Private Const KEY_WA_ART = "WaagenArt"
Private Const KEY_WA_TARA_STATT_NULLSTELLEN = "TaraStattNullstellen"
' neu 10.10.2011
Private Const KEY_WA_GETFUELLSTANDSTATTGEWICHT = "GetFuellstandStattGewicht"
' Fuellstandsensor
Private Const SEC_FUELLSTAND = "Fuellstand"
Private Const KEY_FUELLSTAND_USE = "StattWaage"
Private Const KEY_FUELLSTAND_WARTE1 = "Wartezeit1"
Private Const KEY_FUELLSTAND_WARTE2 = "Wartezeit2"
Private Const KEY_FUELLSTAND_MITTEL1 = "Mittelwert1"
Private Const KEY_FUELLSTAND_MITTEL2 = "Mittelwert2"
Private Const KEY_FUELLSTAND_ENTLEER1 = "Entleerzeit1"
Private Const KEY_FUELLSTAND_ENTLEER2 = "Entleerzeit2"
Private Const KEY_FUELLSTAND_ENTLEER = "Entleerzeit"
' Max. Anzahl eindeutiger Prüfpunkte
' ----------------------------------
Private Const SEC_PRUEFPUNKTE = "Pruefpunkte"
Private Const KEY_PP_PRUEFPUNKTE = "MaxPruefpunkte"
' Prüfzeiten in Minuten
' ---------------------
Private Const SEC_PRUEFZEITEN = "Pruefzeiten"
Private Const KEY_PZ_PRUEFZEIT = "Pruefzeit"
Private Const KEY_ZEROFLOWMESSZEIT = "ZeroflowZeit"
' Servo
' -----
Private Const SEC_SERVO = "Servo"
Private Const KEY_SE_SERVO = "Servo"
Private Const KEY_SE_NENNWEITE = ".Nennweite"
Private Const KEY_SE_STELLBEREICH = ".Stellbereich"
' COM-Ports
' ---------
Private Const SEC_COMPORTS = "Schnittstellen"
Private Const KEY_CP_RESERVE = "Reserve"
Private Const KEY_CP_SPS = "SPS"
Private Const KEY_CP_FMBUS = "FM85"
Private Const KEY_CP_WAAGE = "Waage"
Private Const KEY_USPORT = "US"
Private Const KEY_CP_DISPLAY = "DisplayBus"
Private Const KEY_DISPLAY_SETTINGS = "DisplaySettings"
' Pumpen
' ------
Private Const SEC_PUMPE = "Pumpen"
Private Const KEY_PU_PUMPE = "Pumpe"
Private Const KEY_PU_BEZEICHNUNG = ".Bezeichnung"
Private Const KEY_PU_NENNWEITE = ".Nennweite"
Private Const KEY_PU_DURCHFLUSSOBEN = ".ODurchfluss"
Private Const KEY_PU_DURCHFLUSSUNTEN = ".UDurchfluss"
Private Const KEY_PU_SPSVARNAME = ".SPSVarName"
Private Const KEY_PU_REGELART = ".Regelart"
Private Const SEC_SPS = "SPS"
Private Const KEY_PROTOOLSTART = "ProtoolStart"
Private Const KEY_PROTOOLAPPTITLE = "ProToolAppTitle"
Private Const KEY_TEMPFEUCHTEMESSEN = "TempFeuchteMessen"
' Prodave
Private Const KEY_SPS_PRODAVE_STATION = "ProdaveStation"
Private Const KEY_SPS_PRODAVE_SLOT = "ProdaveSlot"
Private Const KEY_SPS_PRODAVE_RACK = "ProdaveRack"
Private Const KEY_SPS_PRODAVE_BAUSTEIN = "ProdaveBaustein"
' opc
Private Const KEY_SPS_OPCSERVERURL = "OpcServerUrl"
Private Const KEY_SPS_OPCSERVERREGISTERWRITEPRE = "OpcServerRegisterWritePre"
Private Const KEY_SPS_OPCSERVERREGISTERREADPRE = "OpcServerRegisterReadPre"
Private Const KEY_SPS_OPCSERVERREGISTERWRITESUFFIX = "OpcServerRegisterWriteSuffix"
Private Const KEY_SPS_OPCSERVERREGISTERREADSUFFIX = "OpcServerRegisterReadSuffix"
' Referenzzaehler
' ---------------
Private Const SEC_REFZ = "Referenzzaehler"
Private Const KEY_RZ_MAXDIFF = "MaxDiff"
Private Const KEY_RZ_GRUPPE = "Gruppe"
Private Const KEY_RZ_WDHGENAUIGKEIT = "WdhGenauigkeit"
Private Const KEY_RZ_NACHPRUEFUNGBEHAELTERLEEREN = "nachPruefungBehaelterLeeren"
Private Const KEY_RZ_PRUEFZEITRAUM = "Schicht"
' Testzaehler
Private Const SEC_TESTZAEHLER = "Testzaehler"
Private Const KEY_NUMMERNBANDID = "Nummernband"
' Regulierung
Private Const SEC_REGULIERUNG = "Regulierung"
Private Const KEY_AUTOMATISCHE_REGULIERUNG = "Automatik"
Private Const KEY_REGULIERUNG_VERWENDEN = "Verwenden"
Private Const KEY_REGULIERUNG_DAEMPFUNG1 = "Daempfung1"
Private Const SEC_USJUSTAGE = "USJustage"
Private Const KEY_USVORJUSTAGEATOMATISCH = "VorjustageAutomatisch"
Private Const KEY_O_GEBER_AUS_DB = "O_Geber_aus_DB"
' Durchfluß Regelung
Private Const SEC_DURCHFLUSS = "DurchflussRegelung"
Private Const KEY_REGELART = "Regelart"
Private Const KEY_ANZAHLVOREINSTELL = "AnzahlZaehler"
' Langer Prüfgang
Private Const SEC_LANGER_PRUEFGANG = "Langer Pruefgang"
Private Const KEY_ABWEICHUNG = "Abweichung"
Private Const SEC_FM85 = "FM85"
Private Const KEY_FM85RefZ = "RefZAdresse"
Private Const KEY_FM85Settings = "Settings"
' Tabellen-Zellen Breiten
Const SEC_USER_SETTINGS = "UserSettings"
Const KEY_TABLECELLWIDTH = "Zellenbreite"
Const SEC_WETTERSTATION = "Wetterstation"
Const KEY_WETTERSTATION_URL = "url"
Const SEC_LABJACK = "Labjack"
Const KEY_LABJACK_ISP_ID = "Wasserdruck_ID"
Const KEY_LABJACK_ISP_CH = "Wasserdruck_Channel"
Const KEY_LABJACK_Faktor = "Wasserdruck_Faktor"
' eingefügt am 24.07.2002 Pfeiffer
' letzte genutzte Auftrag / Position
Private Const SEC_AufPos = "LetzteAufPos"
Private Const KEY_AuftragNr = "AuftragNr"
Private Const KEY_PositionNr = "PositionNr"
' eingefügt am 23.03.2004 Andreas Pfeiffer
' soll die Temperatur aus der Prüfstation übertragen werden gleich KEY_Lock = 1 (Locked)
' oder soll die Temperatur der Zähler sich selbst aus seinen Fühlern ermessen gleich Lock = 0 (Unlocked)
Private Const SEC_USTemperaturLock = "USTemperaturLock"
Private Const KEY_Lock = "VerwendungExternerFuehler"
Private Const SEC_US_FW2 = "USFirmware2"
Private Const FW2_PRUEFUNGSART = "Pruefungsart"
Private Const FW2_VORPRUEFUNGSART = "Vorpruefungsart"
Private Const FW2_PRUEFUNGSART_REFZ = "Referenzzaehler"
Private Const FW2_PRUEFUNGSART_WAAGE = "Waage"
'' eingefügt am 02.03.02005 Andreas Pfeiffer
'' Soll dem Bediener ermöglichen den Prüfprotokolldruck zu unterbinden
'Private Const SEC_Ausduck = "Ausdruck"
'Private Const Key_KeinPruefprotokoll = "KeinPruefprotokoll"
' RH 15.11.2005
Private Const SEC_TURBO = "Regulierung"
Private Const SEC_FERTIGMELDEN = "Fertigmelden"
Private Const KEY_FERTIGMELDEN_TO = "To"
Private Const SEC_SIRT = "SIRT"
' RD Fuzhoe Mode
Private Const SEC_DRUCK = "Druck"
Private Const KEY_PfadZuLabelVorlage = "PfadZuLabelVorlage"
' API-Calls
' ---------
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
' Constructor
'
Private Sub Class_Initialize()
End Sub
' @param sINIFilename Name des INI-Files, aus dem/in das die Settings gelesen
' und geschrieben werden
'
Public Property Let INIFilename(sINIFilename As String)
m_sINIFilename = sINIFilename
End Property
Public Property Get INIFilename() As String
INIFilename = m_sINIFilename
End Property
Public Property Get SIRT_COMPort(iNr As Integer) As String
SIRT_COMPort = readStringValue(SEC_SIRT, "SIRT" & iNr & ".COMPort", "")
End Property
Public Property Get druck_PfadZuLabelVorlade() As String
druck_PfadZuLabelVorlade = readStringValue(SEC_DRUCK, KEY_PfadZuLabelVorlage, "")
End Property
' Letzten genutzten Auftrag in INI-Datei speichern
' @param AuftragNr neu zu speichernde AuftragNr
'
Public Property Let LetzterAuftrag(AuftragNr As String)
Call saveStringValue(SEC_AufPos, KEY_AuftragNr, AuftragNr)
End Property
' @return letzte AuftragNr
'
Public Property Get LetzterAuftrag() As String
LetzterAuftrag = readStringValue(SEC_AufPos, KEY_AuftragNr, "99999")
End Property
' Letzte genutzte Auftragsposition in INI-Datei speichern
'
' @param PositionNr neu zu speichernde PositionNr
'
Public Property Let LetztePosition(PositionNr As Integer)
Call saveIntValue(SEC_AufPos, KEY_PositionNr, PositionNr)
End Property
' @return letzte PositionNr
'
Public Property Get LetztePosition() As Integer
LetztePosition = readIntValue(SEC_AufPos, KEY_PositionNr, 1)
End Property
' Neu am 23.03.2004 Andreas Pfeiffer
' @return USTemperaturlockverfahren
' Wenn die Sektion oder der Schlüssel nicht vorhanden ist, dann wird 0 vorbesetzt
' das bedeutet, dass der Zähler mit eigenen Fühlern die Temperatur misst
' nur bei VerwendungExternerFuehler=1 übernimmt die PS die Temperaturmessung
Public Property Get USTemperaturlock() As Integer
USTemperaturlock = readIntValue(SEC_USTemperaturLock, KEY_Lock, 0)
End Property
Public Property Get FW2_USTemperaturlock() As Integer
FW2_USTemperaturlock = readIntValue(SEC_US_FW2, KEY_Lock, 0)
End Property
' Neues SprachKZ in INI-Datei speichern
' @param sSprachKZ neu zu speicherndes Sprachkürzel
'
Public Property Let Sprache(sSprachKZ As String)
Call saveStringValue(SEC_GLOBAL, KEY_GL_SPRACHE, sSprachKZ)
End Property
' @return SprachKZ
'
Public Property Get Sprache() As String
Sprache = readStringValue(SEC_GLOBAL, KEY_GL_SPRACHE, "D")
End Property
Public Property Get Gesperrt() As Integer
' 0 ist default, nicht gesperrt
Gesperrt = readIntValue(SEC_HARDWARE, KEY_GESPERRT, 0)
End Property
Public Property Let Gesperrt(intGesperrt As Integer)
Call saveIntValue(SEC_HARDWARE, KEY_GESPERRT, intGesperrt)
End Property
Public Property Get LetzterPruefer() As Integer
LetzterPruefer = readIntValue(SEC_HARDWARE, KEY_LETZTER_PRUEFER, 0)
End Property
Public Property Let LetzterPruefer(PrueferNr As Integer)
Call saveIntValue(SEC_HARDWARE, KEY_LETZTER_PRUEFER, PrueferNr)
End Property
Public Property Get KennlinienGrafikenPathname() As String
KennlinienGrafikenPathname = readStringValue(SEC_GLOBAL, KEY_GL_KENNLINIENGRAFIKEN, "\\sla12file\Auftrag\Pruefstation 2000 EXE\Kennlinien")
End Property
'' @param sDBServerPathname Path und Namen der Server-Datenbank
''
'Public Property Let ServerDBPathname(sDBServerPathname As String)
' Call saveStringValue(SEC_GLOBAL, KEY_GL_DBSERVER, sDBServerPathname)
'End Property
' @return Path und Namen der Server-Datenbank
'
'Public Property Get ServerDBPathname() As String
' ServerDBPathname = readStringValue(SEC_GLOBAL, KEY_GL_DBSERVER, "")
'End Property
' @return AdoConnectionstring
'
Public Property Get ADOConnectionstring() As String
ADOConnectionstring = readStringValue(SEC_GLOBAL, Key_GL_ADOCONNECTION, "")
End Property
'' @return User für Datenbank
''
'Public Property Get GetDBUs() As String
' GetDBUs = readStringValue(SEC_GLOBAL, KEY_GL_DBUSER, "")
'End Property
'
'' @return Passwort für Datenbank
''
'Public Property Get GetDBPw() As String
' GetDBPw = readStringValue(SEC_GLOBAL, KEY_GL_DBPW, "")
'End Property
''' @param sDBServerPathname Path und Namen der Server-Datenbank
'''
''Public Property Let ErsatzDBPathname(sErsatzServerPathname As String)
'' Call saveStringValue(SEC_GLOBAL, KEY_GL_DBERSATZ, sErsatzServerPathname)
''End Property
'
'' @return Path und Namen der Server-Datenbank
''
'Public Property Get ErsatzDBPathname() As String
' ServerDBPathname = readStringValue(SEC_GLOBAL, KEY_GL_DBERSATZ, "")
'End Property
' @return Path und Namen des LogFiles
'
'Public Property Get LogFile() As String
' LogFile = readStringValue(SEC_GLOBAL, KEY_LOGFILE, "")
'End Property
' @return Path und Namen des Print Files
'
Public Property Get PrintFile() As String
PrintFile = readStringValue(SEC_GLOBAL, KEY_PRINTFILE, "")
End Property
' @return Path der Print Dirs
'
Public Property Get PrintDir() As String
PrintDir = readStringValue(SEC_GLOBAL, KEY_PRINTDIR, "")
End Property
Public Property Get EichpruefvorgabenIgnorieren() As String
EichpruefvorgabenIgnorieren = readStringValue(SEC_VORBELEGUNG, KEY_EICHPRUEFVORGABENIGNORIEREN, "")
End Property
Public Property Get PruefpunkteUnsortiert() As String
PruefpunkteUnsortiert = readStringValue(SEC_VORBELEGUNG, KEY_PRUEFPUNKTE_NICHT_SORTIERT, "")
End Property
Public Property Get LICHTWELLENLEITER() As String
LICHTWELLENLEITER = readStringValue(SEC_VORBELEGUNG, KEY_LICHTWELLENLEITER, "")
End Property
Public Property Let LICHTWELLENLEITER(strWert As String)
Call saveStringValue(SEC_VORBELEGUNG, KEY_LICHTWELLENLEITER, strWert)
End Property
Public Property Get PruefungsArt() As String
PruefungsArt = readStringValue(SEC_VORBELEGUNG, KEY_PRUEFUNG, "")
End Property
Public Property Get USPruefungsArt() As String
USPruefungsArt = readStringValue(SEC_VORBELEGUNG, KEY_USPRUEFUNG, "")
End Property
Public Property Get USVorPruefungsArt() As String
USVorPruefungsArt = readStringValue(SEC_VORBELEGUNG, KEY_USVORPRUEFUNG, "")
End Property
Public Property Get USFunktionspruefung() As String
USFunktionspruefung = readStringValue(SEC_VORBELEGUNG, KEY_FUNKTIONSPRUEFUNG, "")
End Property
Public Property Get Versuch() As String
Versuch = readStringValue(SEC_VORBELEGUNG, KEY_VERSUCH, "")
End Property
Public Property Get USVorjustageAutomatisch() As String
USVorjustageAutomatisch = readStringValue(SEC_USJUSTAGE, KEY_USVORJUSTAGEATOMATISCH, "0")
End Property
Public Property Get USOGeberAusDb() As Boolean
USOGeberAusDb = IIf(readIntValue(SEC_USJUSTAGE, KEY_O_GEBER_AUS_DB, "0") = 0, False, True)
End Property
Public Property Let USOGeberAusDb(blnWert As Boolean)
Call saveIntValue(SEC_USJUSTAGE, KEY_O_GEBER_AUS_DB, IIf(blnWert, 1, 0))
End Property
Public Property Get USVorjustage() As String
USVorjustage = readStringValue(SEC_VORBELEGUNG, KEY_VORJUSTAGE, "0")
End Property
' HARDWARE
'
' @param nNr eindeutige Kennung der Pruefstation
'
Public Property Let PruefstationNr(nNr As Integer)
Call saveIntValue(SEC_HARDWARE, KEY_HW_NR, nNr)
End Property
' @return eindeutige Nummer der Prüfstation
'
Public Property Get PruefstationNr() As Integer
PruefstationNr = readIntValue(SEC_HARDWARE, KEY_HW_NR, 0)
End Property
' @param Baujahr
'
Public Property Let PruefstationBaujahr(nBaujahr As Integer)
Call saveIntValue(SEC_HARDWARE, KEY_HW_BAUJAHR, nBaujahr)
End Property
' @return Baujahr der Prüfstation
'
Public Property Get PruefstationBaujahr() As Integer
PruefstationBaujahr = readIntValue(SEC_HARDWARE, KEY_HW_BAUJAHR, 0)
End Property
' @param Name des Kunden zu der Prüfstation
'
Public Property Let PruefstationKunde(sKunde As String)
Call saveStringValue(SEC_HARDWARE, KEY_HW_KUNDE, sKunde)
End Property
' @return Name des Kunden zu der Prüfstation
'
Public Property Get PruefstationKunde() As String
PruefstationKunde = readStringValue(SEC_HARDWARE, KEY_HW_KUNDE, "")
End Property
' @param Standort der Prüfstation
'
Public Property Let PruefstationStandort(sStandort As String)
Call saveStringValue(SEC_HARDWARE, KEY_HW_STANDORT, sStandort)
End Property
' @return Standort der Prüfstation
'
Public Property Get PruefstationStandort() As String
PruefstationStandort = readStringValue(SEC_HARDWARE, KEY_HW_STANDORT, "")
End Property
' STRÄNGE
'
' @param Anzahl der Stränge
'
Public Property Let Straenge(nStraenge As Integer)
Call saveIntValue(SEC_STRAENGE, KEY_STRAENGE_ANZAHL, nStraenge)
End Property
' @return Anzahl der Stränge
'
Public Property Get Straenge() As Integer
Straenge = readIntValue(SEC_STRAENGE, KEY_STRAENGE_ANZAHL, 0)
End Property
'
' EINBAUPLÄTZE JE STRANG
'
' @param Anzahl der Einbauplätze je Strang
'
Public Property Let EinbauplaetzeJeStrang(nPlaetze As Integer)
Call saveIntValue(SEC_HARDWARE, KEY_HW_ANZAHL, nPlaetze)
End Property
' @return Anzahl der Einbauplätze je Strang
'
Public Property Get EinbauplaetzeJeStrang() As Integer
EinbauplaetzeJeStrang = readIntValue(SEC_HARDWARE, KEY_HW_ANZAHL, 10)
End Property
' @return NummernbandID
'
Public Property Get NummernbandID() As Long
NummernbandID = readIntValue(SEC_TESTZAEHLER, KEY_NUMMERNBANDID, 99)
End Property
' @return Automatische Regulierung
'
Public Property Get AutomatischeRegulierung() As Integer
AutomatischeRegulierung = readIntValue(SEC_REGULIERUNG, KEY_AUTOMATISCHE_REGULIERUNG, 0)
End Property
Public Property Get AutomatischeVorjustage() As Integer
AutomatischeVorjustage = readIntValue(SEC_REGULIERUNG, KEY_AUTOMATISCHE_REGULIERUNG, 0)
End Property
'Private Const SEC_REGULIERUNG = "USJustage"
'Private Const KEY_USVORJUSTAGE = "VorjustageAutomatisch"
' @return Regulierung als Prüfpunkt verwenden
'
Public Property Get RegulierungVerwenden() As Integer
RegulierungVerwenden = readIntValue(SEC_REGULIERUNG, KEY_REGULIERUNG_VERWENDEN, 0)
End Property
Public Property Get RegulierungDaempfung1() As Integer
RegulierungDaempfung1 = readIntValue(SEC_REGULIERUNG, KEY_REGULIERUNG_DAEMPFUNG1, 0)
End Property
Public Property Let RegulierungDaempfung1(vData As Integer)
Call saveIntValue(SEC_REGULIERUNG, KEY_REGULIERUNG_DAEMPFUNG1, vData)
End Property
' @return Regulierung Übersprinen
'
'Public Property Get Ueberspringen() As Integer
' Ueberspringen = readIntValue(SEC_REGULIERUNG, KEY_UEBERSPRINGEN, 0)
'End Property
' @return Regelart
'
Public Property Get Regelart() As String
Regelart = readStringValue(SEC_DURCHFLUSS, KEY_REGELART, "FU")
End Property
' NENNWEITEN / WAAGEN / PRUEFZEITEN / SERVO
'
' @param Collection mit integer-Werten der Nennweiten
'
Public Property Let Nennweiten(colNennweiten As Collection)
Dim nIndex As Integer
Dim sKey As String
Dim vValue As Variant
' Ganze Section leeren
Call clearSection(SEC_NENNWEITEN)
For Each vValue In colNennweiten
nIndex = nIndex + 1
sKey = KEY_NW_NENNWEITE & nIndex
Call saveIntValue(SEC_NENNWEITEN, sKey, CInt(vValue))
Next
End Property
' @return Collection mit integer-Werten der Nennweiten
'
Public Property Get Nennweiten() As Collection
Dim nIndex As Integer
Dim sKey As String
Dim nValue As Integer
Dim colNennweiten As New Collection
Do While True
nIndex = nIndex + 1
sKey = KEY_NW_NENNWEITE & nIndex
nValue = readIntValue(SEC_NENNWEITEN, sKey, -1)
If nValue = -1 Then
Exit Do
End If
colNennweiten.Add nValue, Str$(nIndex)
Loop
Set Nennweiten = colNennweiten
End Property
Public Function GetWaageOVolumen(Waage As Integer)
GetWaageOVolumen = readIntValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(Waage) & "." & KEY_WA_OVOLUMEN, 0)
End Function
Public Function GetWaageUVolumen(Waage As Integer)
GetWaageUVolumen = readIntValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(Waage) & "." & KEY_WA_UVOLUMEN, 0)
End Function
'Public Function GetWaageCOMPort(Waage As Integer)
' GetWaageRuheWdh = readIntValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(Waage) & "." & KEY_WA_RUHE_WDH, 3)
'End Function
Public Function GetWaageRuheWdh(Waage As Integer)
GetWaageRuheWdh = readIntValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(Waage) & "." & KEY_WA_RUHE_WDH, 3)
End Function
Public Function GetWaageRuheGrenzwert(Waage As Integer) As Double
GetWaageRuheGrenzwert = Val(readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(Waage) & "." & KEY_WA_RUHE_GRENZWERT, 0))
End Function
Public Function GetWaageAnwahl(Waage As Integer)
GetWaageAnwahl = readIntValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(Waage) & "." & KEY_WA_ANWAHL, 0)
End Function
Public Function GetWaageGenauigkeit(Waage As Integer)
GetWaageGenauigkeit = readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(Waage) & "." & KEY_WA_GENAUIGKEIT, 0)
End Function
Public Function GetGrenzwert(Waage As Integer)
GetGrenzwert = readIntValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(Waage) & "." & KEY_WA_GRENZWERT, 0)
End Function
Public Function GetWaageCOMPort(Waage As Integer)
GetWaageCOMPort = readIntValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(Waage) & "." & KEY_WA_COMPORT, 0)
End Function
Public Function GetWaageCOMSettings(Waage As Integer)
GetWaageCOMSettings = readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(Waage) & "." & KEY_WA_COMSETTINGS, "")
End Function
Public Function GetWaageObererGrenzwert(Waage As Integer)
GetWaageObererGrenzwert = readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(Waage) & "." & KEY_WA_OBERERGRENZWERT, "")
End Function
Public Function GetWaageArt(Waage As Integer)
GetWaageArt = readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(Waage) & "." & KEY_WA_ART, "BIZERBA")
End Function
Public Function GetWaageTaraStattNullstellen(Waage As Integer) As Boolean
' wird für die P2020 benötigt, da Nullstellen dort nicht funktioniert
' an der 2009 geht Tara nicht immer aber Nullstellen (was noch zu beweisen ist)
If readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(Waage) & "." & KEY_WA_TARA_STATT_NULLSTELLEN, "0") = "1" Then
GetWaageTaraStattNullstellen = True
Else
GetWaageTaraStattNullstellen = False
End If
End Function
' @return Collection von integer-Werten mit den Prüfzeiten
'
Public Function getPruefzeiten() As Collection
Dim nIndex As Integer
Dim sKey As String
Dim nValue As Integer
Dim colPZ As New Collection
Do While True
nIndex = nIndex + 1
sKey = KEY_PZ_PRUEFZEIT & nIndex
nValue = readIntValue(SEC_PRUEFZEITEN, sKey, -1)
If nValue = -1 Then
Exit Do
End If
colPZ.Add nValue, Str$(nIndex)
Loop
Set getPruefzeiten = colPZ
End Function
' @return max. Anzahl der Prüfpunkte innerhalb eines Prüfganges
'
Public Function getMaxPruefpunkte() As Integer
getMaxPruefpunkte = readIntValue(SEC_PRUEFPUNKTE, KEY_PP_PRUEFPUNKTE, 12)
End Function
' @return Collection mit Objekten der Klasse CServo
'
Public Function getServos() As Collection
Dim colServos As New Collection
Dim Servo As CServo
Dim nIndex As Integer
Dim sPraefix As String
Dim nNennweite As Integer
Dim nStellbereich As Integer
Do While True
nIndex = nIndex + 1
sPraefix = KEY_SE_SERVO & nIndex
nNennweite = readStringValue(SEC_SERVO, sPraefix & KEY_SE_NENNWEITE, 0)
nStellbereich = readIntValue(SEC_SERVO, sPraefix & KEY_SE_STELLBEREICH, 0)
Set Servo = New CServo
Call Servo.setMember(nIndex, nNennweite, nStellbereich)
colServos.Add Servo, Str$(nIndex)
Loop
Set getServos = colServos
End Function
Public Function GetWaageUeberlauffaktor(nIndex) As Double
' -1 für Eintrag nicht vorhanden
GetWaageUeberlauffaktor = CDbl(readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(nIndex) & "." & KEY_WA_UEBERLAUFFAKTOR, -1))
End Function
Public Function GetMindestmenge(nIndex) As Double
' 0 für Eintrag nicht vorhanden
GetMindestmenge = CDbl(readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(nIndex) & "." & KEY_WA_MINDESTMENGE, 0))
End Function
Public Function GetBehaelterAnwahl(nIndex) As Integer
GetBehaelterAnwahl = CDbl(readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(nIndex) & "." & KEY_WA_BEHAELTERANWAHL, 0))
End Function
Public Function GetBehaelterAblassAnwahl(nIndex) As Integer
GetBehaelterAblassAnwahl = CInt(readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(nIndex) & "." & KEY_WA_ABLASS, 0))
End Function
Public Function GetFuelldurchfluss(nIndex) As Double
GetFuelldurchfluss = CDbl(readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(nIndex) & "." & KEY_WA_FUELLDURCHFLUSS, 0))
End Function
Public Function GetFuellvolumen(nIndex) As Double
GetFuellvolumen = CDbl(readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(nIndex) & "." & KEY_WA_FUELLVOLUMEN, 0))
End Function
Public Function GetBehaelterLeeren(nIndex) As Integer
GetBehaelterLeeren = CDbl(readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(nIndex) & "." & KEY_WA_LEEREN, 0))
End Function
Public Function GetBehaelterAlleinLeeren(nIndex) As Boolean
GetBehaelterAlleinLeeren = (readStringValue(SEC_WAAGEN, KEY_WA_WAAGE & CStr(nIndex) & "." & KEY_WA_LEERENALLEIN, "0") = "1")
End Function
Public Function GetParameterZumMeistreamEntlueften(ByVal iNennweite As Integer, ByRef iPumpeNr As Integer, ByRef iMID_Einbauplatz As Integer, ByRef dblQ As Double) As Boolean
Dim strTemp As String
iPumpeNr = Val(Me.readStringValue(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_PUMPE & CStr(iNennweite), ""))
Select Case iPumpeNr
Case 1, 2
Case Else
GetParameterZumMeistreamEntlueften = False
Exit Function
End Select
iMID_Einbauplatz = Val(Me.readStringValue(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_MID & CStr(iNennweite), ""))
Select Case iMID_Einbauplatz
Case 1, 2, 3, 4, 5, 6, 7, 8
Case Else
GetParameterZumMeistreamEntlueften = False
Exit Function
End Select
dblQ = Val(Me.readStringValue(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_Q & CStr(iNennweite), ""))
If dblQ <= 0 Then
GetParameterZumMeistreamEntlueften = False
Exit Function
End If
GetParameterZumMeistreamEntlueften = True
End Function
Public Sub WriteDefaultParameterZumMeistreamEntlueften()
Select Case g_App.PruefstationNr
Case 2000, 2001
Call g_App.Settings.GetOrSetIniWert(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_PUMPE & "50", "1")
Call g_App.Settings.GetOrSetIniWert(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_PUMPE & "80", "1")
Call g_App.Settings.GetOrSetIniWert(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_MID & "50", "125")
Call g_App.Settings.GetOrSetIniWert(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_MID & "80", "125")
Call g_App.Settings.GetOrSetIniWert(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_Q & "50", "65")
Call g_App.Settings.GetOrSetIniWert(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_Q & "80", "140")
Case 2015, 2016
Call g_App.Settings.GetOrSetIniWert(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_PUMPE & "50", "VB_Pumpe2")
Call g_App.Settings.GetOrSetIniWert(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_PUMPE & "80", "VB_Pumpe1")
Call g_App.Settings.GetOrSetIniWert(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_MID & "50", "125")
Call g_App.Settings.GetOrSetIniWert(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_MID & "80", "125")
Call g_App.Settings.GetOrSetIniWert(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_Q & "50", "65")
Call g_App.Settings.GetOrSetIniWert(SEC_MSENTLUEFTEN, KEY_MSENTLUEFTEN_Q & "80", "80")
End Select
End Sub
' @return Collection mit Objekten der Klasse CBehaelter
'
'Public Function getBehaelter() As Collection
' Dim colBehaelter As New Collection
' Dim Behaelter As CBehaelter
' Dim nIndex As Integer
' Dim sPraefix As String
' Dim nFuellmenge As Integer
' Dim nSkala As Integer
' Dim nUeberlauf As Integer
'
' Do While True
' nIndex = nIndex + 1
' sPraefix = KEY_BE_BEHAELTER & nIndex
'
' nFuellmenge = readStringValue(SEC_BEHAELTER, sPraefix & KEY_BE_FUELLMENGE, 0)
' nSkala = readIntValue(SEC_BEHAELTER, sPraefix & KEY_BE_SKALA, 0)
' nUeberlauf = readIntValue(SEC_BEHAELTER, sPraefix & KEY_BE_UEBERLAUF, 0)
'
' Set Behaelter = New CBehaelter
' Call Behaelter.setMember(nIndex, nFuellmenge, nSkala, nUeberlauf)
' colBehaelter.Add Behaelter, Str$(nIndex)
' Loop
'
' Set getBehaelter = colBehaelter
'End Function
' @param nDevice ID des Geraetes (DEVPORT_Reserve, DEVPORT_SPS, DEVPORT_FMBus, DEVPORT_WAAGE)
'
' @return Nr. der COM-Schnittstelle für das angegebene Gerät
'
'
Public Function getCOMPort(nDevice As Integer) As Integer
Dim nPort As Integer
Select Case nDevice
Case DEVPORT_Reserve
nPort = readIntValue(SEC_COMPORTS, KEY_CP_RESERVE, 0)
Case DEVPORT_SPS
nPort = readIntValue(SEC_COMPORTS, KEY_CP_SPS, 0)
Case DEVPORT_FMBus
nPort = readIntValue(SEC_COMPORTS, KEY_CP_FMBUS, 0)
Case DEVPORT_Waage
nPort = readIntValue(SEC_COMPORTS, KEY_CP_WAAGE, 0)
Case DEVPORT_Display
nPort = readIntValue(SEC_COMPORTS, KEY_CP_DISPLAY, 0)
End Select
getCOMPort = nPort
End Function
'
' @return Collection von Objekten der Klasse CPumpe
'
Public Function getPumpen() As Collection
Dim ColPumpen As New Collection
Dim Pumpe As CPumpe
Dim nIndex As Integer
Dim sPraefix As String
Dim sBezeichnung As String
Dim nNennweite As Integer
Dim nDurchflussOben As Double
Dim nDurchflussUnten As Double
Dim sSPSVarname As String
Dim sRegelart As String
Do While nIndex < 10 ' Pumpe1 ... Pumpe9
nIndex = nIndex + 1
sPraefix = KEY_PU_PUMPE & nIndex
sBezeichnung = readStringValue(SEC_PUMPE, sPraefix & KEY_PU_BEZEICHNUNG, "")
nNennweite = readIntValue(SEC_PUMPE, sPraefix & KEY_PU_NENNWEITE, -1)
nDurchflussOben = CDbl(readStringValue(SEC_PUMPE, sPraefix & KEY_PU_DURCHFLUSSOBEN, -1))
nDurchflussUnten = CDbl(readStringValue(SEC_PUMPE, sPraefix & KEY_PU_DURCHFLUSSUNTEN, -1))
sSPSVarname = readStringValue(SEC_PUMPE, sPraefix & KEY_PU_SPSVARNAME, "")
sRegelart = readStringValue(SEC_PUMPE, sPraefix & KEY_PU_REGELART, "")
If nNennweite <> -1 Then
Set Pumpe = New CPumpe
Call Pumpe.setMembers(sBezeichnung, nNennweite, nDurchflussOben, nDurchflussUnten, nIndex, sSPSVarname, sRegelart)
ColPumpen.Add Pumpe, Str$(nIndex)
End If
Loop
Set getPumpen = ColPumpen
End Function
' @return Adresse des FM85 für Referenzzähler Vergleich
'
Public Function FM85RefZAdresse() As Integer
FM85RefZAdresse = readIntValue(SEC_FM85, KEY_FM85RefZ, 7)
End Function
Public Function FM85Settings() As String
FM85Settings = readStringValue(SEC_FM85, KEY_FM85Settings, "")
End Function
' @return String zum verbinden des OPCServers der SPS
'
Public Function getOpcServerUrl() As String
getOpcServerUrl = readStringValue(SEC_SPS, KEY_SPS_OPCSERVERURL, "")
End Function
Public Function getOpcRegisterWritePre() As String
getOpcRegisterWritePre = readStringValue(SEC_SPS, KEY_SPS_OPCSERVERREGISTERWRITEPRE, "")
End Function
Public Function getOpcRegisterReadPre() As String
getOpcRegisterReadPre = readStringValue(SEC_SPS, KEY_SPS_OPCSERVERREGISTERREADPRE, "")
End Function
Public Function getOpcRegisterWriteSuffix() As String
getOpcRegisterWriteSuffix = readStringValue(SEC_SPS, KEY_SPS_OPCSERVERREGISTERWRITESUFFIX, "")
End Function
Public Function getOpcRegisterReadSuffix() As String
getOpcRegisterReadSuffix = readStringValue(SEC_SPS, KEY_SPS_OPCSERVERREGISTERREADSUFFIX, "")
End Function
' @return String zum Starten der ProtoolAnwendung der SPS
'
Public Function getProToolString() As String
getProToolString = readStringValue(SEC_SPS, KEY_PROTOOLSTART, "")
End Function
' @return String zum Starten der ProtoolAnwendung der SPS
'
Public Function getProToolAppTitle() As String
getProToolAppTitle = readStringValue(SEC_SPS, KEY_PROTOOLAPPTITLE, "")
End Function
' @return 1 wenn Temp und Feuchte von der SPS gemessen werden
'
Public Function getTempFeuchteMessen() As Integer
getTempFeuchteMessen = readIntValue(SEC_SPS, KEY_TEMPFEUCHTEMESSEN, 0)
End Function
Public Function getRZPruefzeitraum() As String
getRZPruefzeitraum = readStringValue(SEC_REFZ, KEY_RZ_PRUEFZEITRAUM, "21:30-06:00")
End Function
' @return Maximale Differenz der Fehler Der referenzzähler
' bis Warnung bei Hauptpruefung
'
Public Function getMaxDiffRZ() As Double
getMaxDiffRZ = CDbl(readStringValue(SEC_REFZ, KEY_RZ_MAXDIFF, "1"))
End Function
' @return ; Abweichung der Fehler in % bei der
' der kleinste PP ein zweites mal wiederholt wird
Public Function getPruefgangLangAbweichung() As Double
getPruefgangLangAbweichung = CDbl(readStringValue(SEC_LANGER_PRUEFGANG, KEY_ABWEICHUNG, 1))
End Function
' @return Aktive Referenzzähler Gruppe
' 1 = A (Default), 2 = B
Public Function getMIDGruppe() As Integer
getMIDGruppe = readIntValue(SEC_REFZ, KEY_RZ_GRUPPE, "1")
End Function
' @return Anzahl Referenzzähler Gruppe
' 1 = A , 2 = A+B (Default)
Public Function getAnzahlMIDGruppen() As Integer
getAnzahlMIDGruppen = readIntValue(SEC_HARDWARE, KEY_RZ_ANZAHLGR, "1")
End Function
Public Function get_RZP_BehaelterLeeren() As Integer
' Wartezeit in Sekunden um beide Behälter zu leeren
get_RZP_BehaelterLeeren = readIntValue(SEC_REFZ, KEY_RZ_NACHPRUEFUNGBEHAELTERLEEREN, 0)
End Function
Public Function get_RZ_Wiederholgenauigkeit() As Double
On Error Resume Next
get_RZ_Wiederholgenauigkeit = 0.2
If CDbl("0,2") = 0.2 Then
get_RZ_Wiederholgenauigkeit = CDbl(readStringValue(SEC_REFZ, KEY_RZ_WDHGENAUIGKEIT, CStr("0,2")))
ElseIf CDbl("0.2") = 0.2 Then
get_RZ_Wiederholgenauigkeit = CDbl(Replace(readStringValue(SEC_REFZ, KEY_RZ_WDHGENAUIGKEIT, CStr("0,2")), ",", "."))
Else
ErrorMsg "Fehler in get_RZ_Wiederholgenauigkeit(). Unbekannter Dezimaltrenner."
End If
End Function
Public Function getUSComPort(Einbauplatz As Integer) As String
getUSComPort = readStringValue(SEC_COMPORTS, KEY_USPORT & Einbauplatz, "")
End Function
Public Function GetDisplayCOMSettings() As String
GetDisplayCOMSettings = readStringValue(SEC_COMPORTS, KEY_DISPLAY_SETTINGS, "9600,n,8,1")
End Function
Public Function GetUSFunktionspruefung_Pruefzeit()
GetUSFunktionspruefung_Pruefzeit = readIntValue(SEC_FUNKTIONSPRUEFUNG, KEY_FUNKTIONSPRUEFUNG_PRUEFZEIT, 20)
End Function
Public Function GetUSFunktionspruefung_Toleranz()
GetUSFunktionspruefung_Toleranz = readIntValue(SEC_FUNKTIONSPRUEFUNG, KEY_TOLERANZENERGIEABWEICHUNG, 3)
End Function
Public Function GetUSFunktionspruefung_GetDelta_T()
GetUSFunktionspruefung_GetDelta_T = readIntValue(SEC_FUNKTIONSPRUEFUNG, KEY_DELTAT, 3)
End Function
Public Function GetBenutzeFuellstandStattWaage() As Boolean
GetBenutzeFuellstandStattWaage = CBool(readIntValue(SEC_FUELLSTAND, KEY_FUELLSTAND_USE, 0))
End Function
Public Function GetFuellstandWartezeit(BehaelterNr As Integer) As Integer
Select Case BehaelterNr
Case 1
GetFuellstandWartezeit = readIntValue(SEC_FUELLSTAND, KEY_FUELLSTAND_WARTE1, 5000)
Case 2
GetFuellstandWartezeit = readIntValue(SEC_FUELLSTAND, KEY_FUELLSTAND_WARTE2, 5000)
Case 3
GetFuellstandWartezeit = readIntValue(SEC_FUELLSTAND, KEY_FUELLSTAND_WARTE2, 5000)
Case Else
MsgBox "Falscher Wert BehaelterNr= " & BehaelterNr & " in Settings.GetFuellstandWartezeit"
End Select
End Function
Public Function GetFuellstandMittelwert(BehaelterNr As Integer) As Integer
Select Case BehaelterNr
Case 1
GetFuellstandMittelwert = readIntValue(SEC_FUELLSTAND, KEY_FUELLSTAND_MITTEL1, 10)
Case 2
GetFuellstandMittelwert = readIntValue(SEC_FUELLSTAND, KEY_FUELLSTAND_MITTEL2, 10)
Case Else
MsgBox "Falscher Wert BehaelterNr= " & BehaelterNr & " in Settings.GetFuellstandMittelwert"
End Select
End Function
Public Function GetFuellstandEntleerzeit(BehaelterNr As Integer) As Integer
Select Case BehaelterNr
Case 0
GetFuellstandEntleerzeit = readIntValue(SEC_FUELLSTAND, KEY_FUELLSTAND_ENTLEER, 10)
Case 1
GetFuellstandEntleerzeit = readIntValue(SEC_FUELLSTAND, KEY_FUELLSTAND_ENTLEER1, 10)
Case 2
GetFuellstandEntleerzeit = readIntValue(SEC_FUELLSTAND, KEY_FUELLSTAND_ENTLEER2, 10)
Case 3
GetFuellstandEntleerzeit = readIntValue(SEC_FUELLSTAND, KEY_FUELLSTAND_ENTLEER2, 10)
Case Else
MsgBox "Falscher Wert BehaelterNr= " & BehaelterNr & " in Settings.GetFuellstandEntleerzeit"
End Select
End Function
Public Function GETUSZeroflowMesszeit() As Integer
GETUSZeroflowMesszeit = readIntValue(SEC_PRUEFZEITEN, KEY_ZEROFLOWMESSZEIT, 60)
End Function
Public Function GetAnzahlFuerVoreinstellwert() As Integer
GetAnzahlFuerVoreinstellwert = CInt(readIntValue(SEC_DURCHFLUSS, KEY_ANZAHLVOREINSTELL, 6))
End Function
Public Sub SetAnzahlFuerVoreinstellwert(intWert As Integer)
Call saveStringValue(SEC_DURCHFLUSS, KEY_ANZAHLVOREINSTELL, CStr(intWert))
End Sub
Public Sub SetBreiteTabelle(strWert As String, strUser As String)
Call saveStringValue(SEC_USER_SETTINGS, KEY_TABLECELLWIDTH & "_" & strUser, strWert)
End Sub
Public Function GetBreiteTabelle(strUser As String) As String
GetBreiteTabelle = readStringValue(SEC_USER_SETTINGS, KEY_TABLECELLWIDTH & "_" & strUser, "")
End Function
Public Function SetRegulierWertTurbo2e(strKey As String, strWert As String)
Call saveStringValue(SEC_TURBO, strKey, strWert)
End Function
Public Function GetRegulierWertTurbo2e(strKey As String) As String
GetRegulierWertTurbo2e = readStringValue(SEC_TURBO, strKey, "0")
End Function
Public Function GetAuslieferung() As String
GetAuslieferung = readStringValue(SEC_GLOBAL, KEY_AUSLIEFERUNG, "")
End Function
Public Function GetUpdateExePath() As String
GetUpdateExePath = readStringValue(SEC_GLOBAL, KEY_UPDATEEXE, "")
End Function
Public Function GetUpdateCheck() As String
GetUpdateCheck = readStringValue(SEC_GLOBAL, KEY_UPDATECHECK, "1")
End Function
Public Function GetUpdateProgrammPath() As String
GetUpdateProgrammPath = readStringValue(SEC_GLOBAL, KEY_UPDATEPRG, "")
End Function
Public Function GetFertigmeldungEMailAdresse() As String
GetFertigmeldungEMailAdresse = readStringValue(SEC_FERTIGMELDEN, KEY_FERTIGMELDEN_TO, "")
End Function
Public Sub SetFertigmeldungEMailAdresse(strAdressen As String)
Call saveStringValue(SEC_FERTIGMELDEN, KEY_FERTIGMELDEN_TO, strAdressen)
End Sub
Public Function GetWetterstationURL() As String
GetWetterstationURL = readStringValue(SEC_WETTERSTATION, KEY_WETTERSTATION_URL, "")
End Function
Public Function GetWasserdruckLabjackSettings(ByRef intID As Integer, ByRef intChannel As Integer, ByRef dblFaktor As Double) As Boolean
Dim strTemp As String
strTemp = Trim(readStringValue(SEC_LABJACK, KEY_LABJACK_ISP_ID, ""))
If IsNumeric(strTemp) Then
intID = Val(strTemp)
strTemp = Trim(readStringValue(SEC_LABJACK, KEY_LABJACK_ISP_CH, ""))
If IsNumeric(strTemp) Then
intChannel = Val(strTemp)
strTemp = Trim(readStringValue(SEC_LABJACK, KEY_LABJACK_Faktor, "1"))
dblFaktor = Val(strTemp)
If dblFaktor <> 0 Then
GetWasserdruckLabjackSettings = True
End If
End If
End If
End Function
Public Function GetNachlaufzeit_s() As Long
GetNachlaufzeit_s = Val(g_App.Settings.readStringValue(SEC_VORBELEGUNG, KEY_NACHLAUFZEIT_S, "0"))
End Function
Public Sub SetProdaveSettings(ByVal Station As Long, ByVal Slot As Long, ByVal Rack As Long)
GetOrSetIniWert SEC_SPS, KEY_SPS_PRODAVE_STATION, CStr(Station)
GetOrSetIniWert SEC_SPS, KEY_SPS_PRODAVE_SLOT, CStr(Slot)
GetOrSetIniWert SEC_SPS, KEY_SPS_PRODAVE_RACK, CStr(Rack)
'GetOrSetIniWert SEC_SPS, KEY_SPS_PRODAVE_BAUSTEIN, CStr(Baustein)
End Sub
Public Function GetProdaveSettings(ByRef Station As Byte, ByRef Slot As Byte, ByRef Rack As Byte) As Boolean
On Error GoTo Errorhandler
Dim strTemp As String
GetProdaveSettings = True
strTemp = readStringValue(SEC_SPS, KEY_SPS_PRODAVE_STATION, "")
If IsNumeric(strTemp) Then
Station = CByte(strTemp)
Else
GetProdaveSettings = False
End If
strTemp = readStringValue(SEC_SPS, KEY_SPS_PRODAVE_SLOT, "")
If IsNumeric(strTemp) Then
Slot = CByte(strTemp)
Else
GetProdaveSettings = False
End If
strTemp = readStringValue(SEC_SPS, KEY_SPS_PRODAVE_RACK, "")
If IsNumeric(strTemp) Then
Rack = CByte(strTemp)
Else
GetProdaveSettings = False
End If
' strTemp = readStringValue(SEC_SPS, KEY_SPS_PRODAVE_BAUSTEIN, "")
' If IsNumeric(strTemp) Then
' Baustein = CByte(strTemp)
' Else
' GetProdaveSettings = False
' End If
Exit Function
Errorhandler:
MsgBox "Fehler " & Err.Number & " in GetProdaveSettings(): " & Err.Description
End Function
'------------------------------------------------------------------------------
' Private Funktionalität
'------------------------------------------------------------------------------
Private Sub clearSection(sSection As String)
Call WritePrivateProfileString(sSection, 0&, 0&, m_sINIFilename)
End Sub
' String-Value in INI-File schreiben
'
' @param sSection Sektion im INI-File
' @param sKey Schlüssel im INI-File
' @param sValue zu speichernder Wert
'
Public Sub saveStringValue(sSection As String, sKey As String, sValue As String)
Call WritePrivateProfileString(sSection, sKey, sValue, m_sINIFilename)
End Sub
' String-Value aus INI-File lesen
'
' @param sSection Sektion im INI-File
' @param sKey Schlüssel im INI-File
' @param sDefault Default-Wert
'
Public Function readStringValue(sSection As String, sKey As String, sDefault As String) As String
Dim lLen As Integer
Dim sBuffer As String
sBuffer = String(256, Chr$(0))
lLen = GetPrivateProfileString(sSection, sKey, sDefault, sBuffer, Len(sBuffer), m_sINIFilename)
readStringValue = Left$(sBuffer, lLen)
' DebugMsg "Lese GetPrivateProfileString [" & sSection & "] " & sKey & " = '" & readStringValue & "'"
End Function
' Integer-Value in INI-File schreiben
'
' @param sSection Sektion im INI-File
' @param sKey Schlüssel im INI-File
' @param nValue zu speichernder Wert
'
Private Sub saveIntValue(sSection As String, sKey As String, nValue As Integer)
Call saveStringValue(sSection, sKey, Trim(Str$(nValue)))
End Sub
' Integer-Value aus INI-File lesen
' @param sSection Sektion im INI-File
' @param sKey Schlüssel im INI-File
' @param nDefault Default-Wert
'
Private Function readIntValue(sSection As String, sKey As String, nDefault As Integer) As Integer
readIntValue = GetPrivateProfileInt(sSection, sKey, nDefault, m_sINIFilename)
End Function
Public Function GetOrSetIniWert(sSection As String, sKey As String, sDefault As String) As String
GetOrSetIniWert = readStringValue(sSection, sKey, "")
If (GetOrSetIniWert = "" Or GetOrSetIniWert = "?") And sDefault <> "" Then
WritePrivateProfileString sSection, sKey, sDefault, m_sINIFilename
GetOrSetIniWert = sDefault
LogIntoDB "Ini Wert gesetzt [" & sSection & "] " & sKey & "=" & sDefault, "Autoupdate"
End If
End Function
Public Function AESEncryptString(strMessage As String) As String
Dim bytIn() As Byte
Dim bytOut() As Byte
Dim bytPassword() As Byte
Dim mobj_Rijndael As CRijndael
On Error GoTo Erorhandler
Set mobj_Rijndael = New CRijndael
bytIn = strMessage
bytPassword = AES_PASSWORD
AESEncryptString = ToHex(mobj_Rijndael.EncryptData(bytIn, bytPassword))
Exit Function
Erorhandler:
MsgBox "Fehler " & Err.Number & " in AESEncryptString(): " & Err.Description
End Function
Public Function AESDecryptString(strAESEncrypted As String) As String
Dim bytIn() As Byte
Dim bytPassword() As Byte
Dim strIn As String
Dim mobj_Rijndael As CRijndael
On Error GoTo Erorhandler
Set mobj_Rijndael = New CRijndael
bytIn = FromHex(strAESEncrypted)
strIn = bytIn
bytPassword = AES_PASSWORD
AESDecryptString = mobj_Rijndael.DecryptData(bytIn, bytPassword)
Exit Function
Erorhandler:
MsgBox "Fehler " & Err.Number & " beim Entschlüsseln in AESDecryptString: " & Err.Description & vbCrLf & "Möglicherweise ist der zu entschlüsselnde Wert falsch."
End Function
Private Function FromHex(strHex As String)
Dim lLength As Long
Dim lCount As Long
Dim bytOut() As Byte
lLength = Len(strHex)
ReDim bytOut((lLength \ 2) - 1)
For lCount = 1 To lLength Step 2
bytOut(lCount \ 2) = CByte("&H" & Mid(strHex, lCount, 2))
Next
FromHex = bytOut
End Function
Private Function ToHex(bytOut() As Byte)
Dim lCount As Long
Dim sTemp As String
For lCount = 0 To UBound(bytOut)
sTemp = sTemp & Right("0" & Hex(bytOut(lCount)), 2)
Next
ToHex = sTemp
End Function