Kildekode for valider_ini
# ====================================================================#
# Dette skriptet sjekker at data i .ini-fila er gyldig #
# Det må kontrolleres at dette skriptet gir mening! #
# ====================================================================#
[dokumentasjon]def sjekk_fh(i):
"""Kontrollerer FH: Høyde av kontakttråd."""
if i.fh > 6.5 or i.fh < 4.8:
print("Kontakttrådhøyden er ikke gyldig.")
return False
print("FH er OK.")
return True
[dokumentasjon]def sjekk_sh(i):
"""Kontrollerer SH: Systemhøyden."""
if i.sh > 2.0 or i.sh < 0.2:
print("Systemhøyden er ikke gyldig.")
return False
print("SH er OK.")
return True
[dokumentasjon]def sjekk_e(i):
"""Kontrollerer e: Avstanden SOK - toppmaal fundament."""
if i.e > 3.0 or i.e < -(i.FH - 0.6):
print("Ugyldig avstand til toppmaal fundament.")
return False
print("e er OK.")
return True
[dokumentasjon]def sjekk_sms(i):
"""Kontrollerer SMS: Avstanden s_mast - s_spor."""
if i.sms > 6.0 or i.sms < 2.0:
print("SMS avstanden er ugyldig.")
return False
print("SMS er OK.")
return True
[dokumentasjon]def valider_ledn(i):
"""Validerer gyldige kombinasjoner av ledninger."""
if i.at_ledn and i.matefjern_ledn:
print("Mate-/fjern- og AT-ledning kan ikke henges opp samtidig.")
return False
elif i.at_ledn and i.forbigang_ledn:
print("Forbigangs- og AT-ledning kan ikke henges opp samtidig.")
return False
elif i.at_ledn and i.retur_ledn:
print("Retur- og AT-ledning kan ikke henges opp samtidig.")
return False
elif i.forbigang_ledn and i.fiberoptisk_ledn:
print("Forbigangs- og fiberoptisk ledning kan ikke henges opp samtidig.")
return False
else:
print("Kombinasjonen av ledninger er OK.")
return True
[dokumentasjon]def hoyde_mast(i):
"""Høyde av KL-mast målt fra toppmaal fundament."""
# Dersom mate-/fjern, AT- eller jordledning henger i masten.
if i.matefjern_ledn or i.at_ledn or i.jord_ledn:
H = i.fh + i.sh + i.e + 2.5
if sjekk_h(H):
return H
# Dersom forbigangs- OG returledning henger i masten.
elif i.forbigang_ledn and i.retur_ledn:
H = i.fh + i.sh + i.e + 2.0
if sjekk_h(H):
return H
# Hvis, og bare hvis, returledning henger alene i masten.
elif i.retur_ledn and (not i.matefjern_ledn
and not i.at_ledn
and not i.forbigang_ledn
and not i.jord_ledn
and not i.fiberoptisk_ledn):
H = i.fh + i.sh + i.e + 0.7
if sjekk_h(H):
return H
# Mastehøyde dersom ingen fastavspente ledninger i masten.
else:
H = i.fh + i.sh + i.e + 0.7
if sjekk_h(H):
return H
[dokumentasjon]def sjekk_h(H):
"""Kontrollerer høyde av KL-mast."""
if (H - 1.5) < H < (H + 5.0):
return True
return False
[dokumentasjon]def hoyde_fjernledn(i):
"""Høyde av mate-/fjern- eller AT-ledning målt fra SOK."""
# Mate-/fjern- eller AT- og forbigangsledning i masten.
if i.matefjern_ledn or (i.at_ledn and i.forbigang_ledn):
return i.h - i.e + 0.5
# Mate-/fjern- eller AT-ledning alene i masten
elif (i.matefjern_ledn or i.at_ledn) and not i.forbigang_ledn:
return i.fh + i.sh + 3.0
else:
print("Jordledningen henger i toppen av masten.")
return False
[dokumentasjon]def sjekk_atledn(i):
"""AT-ledningen kan ikke henge lavere enn Hfj = FH + SH + 3.3m."""
if i.at_ledn:
if i.hfj < (i.fh + i.sh + 3.3):
print("Kritisk liten avstand mellom AT-ledning og KL-anlegget")
return False
[dokumentasjon]def sjekk_hfj(i):
"""Kontrollerer Hfj: Høyde av forbigangsledning."""
if i.hfj > (i.max_hoyde + 2.0):
print("Mate-/fjern- eller AT-ledningen henger for høyt.")
return False
elif i.hfj < (i.h - i.e):
print("Mate-/fjern- eller AT-ledningen henger for lavt.")
return False
else:
print("Hfj er OK.")
return True
[dokumentasjon]def hoyde_forbigangledn(i):
"""Høyde, samt kontroll av høyde, for forbigangsledning målt fra SOK."""
# Forbigangsledning alene i masten => Hf i toppen.
if i.forbigang_ledn and (not i.matefjern_ledn
and not i.at_ledn
and not i.jord_ledn):
print("Forbigangsledningen henger i toppen av masten.")
hf = i.fh + i.sh + 2.5
if hf > (i.max_hoyde + 2.0):
return False
elif hf < (i.h - i.e):
return False
else:
return i.fh + i.sh + 2.5
# Mate-/fjern- i tillegg til forbigangsledning i masten, Hf i topp.
elif i.forbigang_ledn and (i.matefjern_ledn or i.at_ledn):
hf = i.h - i.e + 0.5
if hf > (i.max_hoyde + 2.0):
return False
elif hf < (i.h - i.e):
return False
else:
return True
# Mate-/fjern, AT- eller jordledning i masten => Hf i bakkant.
else:
print("Forbigangsledningen henger 0.5 m over returledningen.")
hf = i.fh + i.sh + 0.5
if hf > (i.hfj - 2.0):
return False
elif hf < (hf - 1.0):
return False
else:
return i.fh + i.sh + 0.5
[dokumentasjon]def hoyde_returledn(i):
"""Høyde, samt kontroll av høyde, for returledning målt fra SOK."""
# Dersom mate-/fjern-, AT- eller jordledning i masten.
hr = i.fh + i.sh
if i.retur_ledn and (i.matefjern_ledn
or i.at_ledn
or i.jord_ledn):
if hr > (i.hfj - 0.5):
return False
elif hr < (hr - 1.0):
return False
# Dersom forbigangsledning er i masten.
if i.retur_ledn and i.forbigang_ledn:
if hr > (i.hf - 0.5):
return False
elif hr < (hr - 1.0):
return False
# Hvis, og bare hvis, returledningen henger alene i masten.
elif i.retur_ledn and (not i.matefjern_ledn
and not i.at_ledn
and not i.jord_ledn
and not i.fiberoptisk_ledn
and not i.forbigang_ledn):
if hr > (i.h - i.e - 0.1):
return False
elif hr < (hr - 1.0):
return False