Skip to content
Snippets Groups Projects
Commit edefc290 authored by Auke Klazema's avatar Auke Klazema
Browse files

SW-795: Merge branch 'SW-795' into 'master'

Resolve SW-795

Closes SW-795

See merge request !41

(cherry picked from commit 1b9ade5b)

323a88cd SW-795: Fix typo
2bf03ea8 SW-795: Change coordinates based on GPS location.
ecf85562 SW-795: Add default check hardware config file for LV614
fe8bd9bf SW-795: Adding/replacing files for LV614 license file addition
0ab9cbcd SW-795: Convert createPICfile to Python 3
726f916a SW-795: Merge branch 'SW-795' of ssh://git.astron.nl/ro/lofar into SW-795
parent 98baac7c
No related branches found
No related tags found
2 merge requests!47Merge Lofar release 4 0 back to master,!46SW-795: Merge branch 'SW-795' into 'master'
#
# configuration file for check_hardware.py
#
[configuration]
version= 00.01
station= LV614C
# checks to do if '-l=x' argument is given, all checks behind list.x are executed
# always checks will be done always
#
# S(rcumode) : signal check for rcumode (also down and flat-check in rcumode 1..4).
# O(rcumode) : oscillation check for rcumode.
# SP(rcumode) : spurious check for rcumode.
# N(rcumode)[= 300]: noise check for rcumode, optional data time in seconds
# default data time= 120 sec.
# E(rcumode)[= 60] : do all RCU5 element tests, optional data time in seconds.
# default data time= 10 sec.
# M(rcumode) : do modem
# SN(rcumode) : do summator noise
#
# RCU(mode) : do all rcu checks for given mode, no element tests done.
#
# RBC : RSP voltage/temperature check
# TBC : TBB voltage/temperature check
# SPU : SPU voltage
# TM : TBB memmory
[check]
always= RV, TV, RBC, TBC
list.0=
list.1= SPU,TM,RCU3,RCU5
list.2= SPU,TM,RCU3,M5,SN5,O5,N5,SP5,S7,E7
list.3= S3
[spu]
temperature.min= 10.0
temperature.max= 35.0
voltage.3_3.min= 3.1
voltage.3_3.max= 3.4
voltage.3_3.max-drop= 0.3
voltage.5_0.min= 4.5
voltage.5_0.max= 5.0
voltage.5_0.max-drop= 0.3
voltage.8_0.min= 7.4
voltage.8_0.max= 8.0
voltage.8_0.max-drop= 0.3
voltage.48_0.min= 43.0
voltage.48_0.max= 48.0
voltage.48_0.max-drop= 2.0
[tbb]
version.tp= 2.4
version.mp= 3.0
temperature.min= 10.0
temperature.max= 45.0
temperature.tp.min= 10.0
temperature.tp.max= 75.0
temperature.tp.max_delta= 10.0
temperature.mp.min= 10.0
temperature.mp.max= 75.0
temperature.mp.max_delta= 10.0
voltage.1_2.min= 1.1
voltage.1_2.max= 1.3
voltage.2_5.min= 2.4
voltage.2_5.max= 2.6
voltage.3_3.min= 3.1
voltage.3_3.max= 3.4
[rsp]
version.ap= 8.2
version.bp= 8.2
temperature.min= 10.0
temperature.max= 50.0
temperature.ap.min= 10.0
temperature.ap.max= 80.0
temperature.ap.max_delta= 10.0
temperature.bp.min= 10.0
temperature.bp.max= 80.0
temperature.bp.max_delta= 10.0
voltage.1_2.min= 1.1
voltage.1_2.max= 1.3
voltage.2_5.min= 2.4
voltage.2_5.max= 2.6
voltage.3_3.min= 3.1
voltage.3_3.max= 3.4
[rcumode.1-3]
short.mean-pwr.min= 55.0
short.mean-pwr.max= 61.0
flat.mean-pwr.min= 61.0
flat.mean-pwr.max= 64.5
rf.subbands= 301
rf.min-sb-pwr= 75.0
rf.negative-deviation= -3.0
rf.positive-deviation= 3.0
noise.negative-deviation= -2.5
noise.positive-deviation= 2.5
noise.max-difference= 1.5
noise.passband= 1:511
oscillation.min-peak-pwr= 6.0
oscillation.passband= 1:511
cable-reflection.min-peak-pwr= 0.8
cable-reflection.passband= 1:511
spurious.min-peak-pwr= 3.0
spurious.passband= 1:511
down.passband= 231:371
[rcumode.2-4]
short.mean-pwr.min= 55.0
short.mean-pwr.max= 61.0
flat.mean-pwr.min= 61.0
flat.mean-pwr.max= 64.5
rf.subbands= 301
rf.min-sb-pwr= 75.0
rf.negative-deviation= -3.0
rf.positive-deviation= 3.0
noise.negative-deviation= -2.5
noise.positive-deviation= 2.5
noise.max-difference= 1.5
noise.passband= 1:511
oscillation.min-peak-pwr= 6.0
oscillation.passband= 1:511
cable-reflection.min-peak-pwr= 0.8
cable-reflection.passband= 1:511
spurious.min-peak-pwr= 3.0
spurious.passband= 1:511
down.passband= 231:371
[rcumode.5.tile]
short.mean-pwr.min= 55.0
short.mean-pwr.max= 61.0
flat.mean-pwr.min= 61.0
flat.mean-pwr.max= 64.5
rf.subbands= 113
rf.min-sb-pwr= 80.0
rf.negative-deviation= -24.0
rf.positive-deviation= 12.0
noise.negative-deviation= -3.0
noise.positive-deviation= 1.5
noise.max-difference= 1.5
noise.passband= 1:511
summator-noise.min-peak-pwr= 1.2
summator-noise.passband= 45:135,200:270
cable-reflection.min-peak-pwr= 0.8
cable-reflection.passband= 1:511
oscillation.min-peak-pwr= 6.0
oscillation.passband= 1:511
cable-reflection.passband= 1:511
spurious.min-peak-pwr= 3.0
spurious.passband= 1:511
[rcumode.5.element]
rf.subbands= 113
rf.min-sb-pwr= 70.0
rf.negative-deviation= -24.0
rf.positive-deviation= 12.0
noise.negative-deviation= -3.0
noise.positive-deviation= 1.5
noise.max-difference= 1.5
noise.passband= 1:511
oscillation.min-peak-pwr= 6.0
oscillation.passband= 1:511
cable-reflection.passband= 1:511
spurious.min-peak-pwr= 3.0
spurious.passband= 1:511
[rcumode.6.tile]
short.mean-pwr.min= 55.0
short.mean-pwr.max= 61.0
flat.mean-pwr.min= 61.0
flat.mean-pwr.max= 64.5
rf.subbands= 113
rf.min-sb-pwr= 80.0
rf.negative-deviation= -24.0
rf.positive-deviation= 12.0
noise.negative-deviation= -3.0
noise.positive-deviation= 1.5
noise.max-difference= 1.5
noise.passband= 1:511
summator-noise.min-peak-pwr= 1.2
summator-noise.passband= 45:135
cable-reflection.min-peak-pwr= 0.8
cable-reflection.passband= 1:511
oscillation.min-peak-pwr= 6.0
oscillation.passband= 1:511
cable-reflection.passband= 1:511
spurious.min-peak-pwr= 3.0
spurious.passband= 1:511
[rcumode.6.element]
rf.subbands= 113
rf.min-sb-pwr= 70.0
rf.negative-deviation= -24.0
rf.positive-deviation= 12.0
noise.negative-deviation= -3.0
noise.positive-deviation= 1.5
noise.max-difference= 1.5
noise.passband= 1:511
oscillation.min-peak-pwr= 6.0
oscillation.passband= 1:511
cable-reflection.passband= 1:511
spurious.min-peak-pwr= 3.0
spurious.passband= 1:511
[rcumode.7.tile]
short.mean-pwr.min= 55.0
short.mean-pwr.max= 61.0
flat.mean-pwr.min= 61.0
flat.mean-pwr.max= 64.5
rf.subbands= 113
rf.min-sb-pwr= 80.0
rf.negative-deviation= -24.0
rf.positive-deviation= 12.0
noise.negative-deviation= -3.0
noise.positive-deviation= 1.5
noise.max-difference= 1.5
noise.passband= 1:511
summator-noise.min-peak-pwr= 1.2
summator-noise.passband= 45:135
cable-reflection.min-peak-pwr= 0.8
cable-reflection.passband= 1:511
oscillation.min-peak-pwr= 6.0
oscillation.passband= 1:511
cable-reflection.passband= 1:511
spurious.min-peak-pwr= 3.0
spurious.passband= 1:511
[rcumode.7.element]
rf.subbands= 113
rf.min-sb-pwr= 70.0
rf.negative-deviation= -24.0
rf.positive-deviation= 12.0
noise.negative-deviation= -3.0
noise.positive-deviation= 3.0
noise.max-difference= 1.5
noise.passband= 1:511
oscillation.min-peak-pwr= 6.0
oscillation.passband= 1:511
cable-reflection.passband= 1:511
spurious.min-peak-pwr= 3.0
spurious.passband= 1:511
# General settings
[paths]
global-data= /globalhome/log/stationtest
local-data= /opt/stationtest/data
local-report-dir= /localhome/stationtest/data
global-report-dir= /globalhome/log/stationtest
[files]
bad-antenna-list= /localhome/stationtest/data/bad_antenna_list.txt
......@@ -2,82 +2,91 @@
#
# $Id$
#
# Syntax: createPICFile ( -a | stationname [stationame ...])
# Syntax: createPICFile ( -a | station-name [statio-name ...])
#
# Makea a file with PVSS(!) datapoints that must be monitored in SAS.
# Make a a file with PVSS(!) data-points that must be monitored in SAS.
import re, sys
from optparse import OptionParser
def expandRCUMarker(dataPoint, nrRSP):
"""
Expands the lines that only contain markers up to @rcu@.
Expands the lines that only contain markers up to @rcu@.
"""
for rcu in range(0, nrRSP * 8):
rsp = rcu / 8
subrack = rsp / 4
cabinet = rsp / 8
print "21 "+dataPoint.replace("@cabinet@","Cabinet"+str(cabinet)) \
.replace("@subrack@","Subrack"+str(subrack)) \
.replace("@RSPBoard@", "RSPBoard"+str(rsp)) \
.replace("@rcu@", "RCU"+str(rcu))+".status.state"
rsp = rcu // 8
subrack = rsp // 4
cabinet = rsp // 8
print("21 " + dataPoint
.replace("@cabinet@", "Cabinet" + str(cabinet))
.replace("@subrack@", "Subrack" + str(subrack))
.replace("@RSPBoard@", "RSPBoard" + str(rsp))
.replace("@rcu@", "RCU" + str(rcu)) + ".status.state")
def expandRSPBoardMarker(dataPoint, nrRSP):
"""
Expands the lines that only contain markers up to @rcu@.
Expands the lines that only contain markers up to @rcu@.
"""
for rsp in range(0, nrRSP):
subrack = rsp / 4
cabinet = rsp / 8
print "21 "+dataPoint.replace("@cabinet@","Cabinet"+str(cabinet)) \
.replace("@subrack@","Subrack"+str(subrack)) \
.replace("@RSPBoard@", "RSPBoard"+str(rsp))+".status.state"
subrack = rsp // 4
cabinet = rsp // 8
print("21 " + dataPoint
.replace("@cabinet@", "Cabinet" + str(cabinet))
.replace("@subrack@", "Subrack" + str(subrack))
.replace("@RSPBoard@", "RSPBoard" + str(rsp)) + ".status.state")
def expandTBBoardMarker(dataPoint, nrTBB):
"""
Expands the lines that only contain markers up to @rcu@.
Expands the lines that only contain markers up to @rcu@.
"""
for tbb in range(0, nrTBB):
subrack = tbb / 2
cabinet = tbb / 4
print "21 "+dataPoint.replace("@cabinet@","Cabinet"+str(cabinet)) \
.replace("@subrack@","Subrack"+str(subrack)) \
.replace("@TBBoard@", "TBBoard"+str(tbb))+".status.state"
subrack = tbb // 2
cabinet = tbb // 4
print("21 " + dataPoint
.replace("@cabinet@", "Cabinet" + str(cabinet))
.replace("@subrack@", "Subrack" + str(subrack))
.replace("@TBBoard@", "TBBoard" + str(tbb)) + ".status.state")
def expandSubrackMarker(dataPoint, nrRSP):
"""
Expands the lines that only contain markers up to @rcu@.
Expands the lines that only contain markers up to @rcu@.
"""
nrSubracks = nrRSP / 4
nrSubracks = nrRSP // 4
if nrRSP % 4: nrSubracks += 1
for subrack in range(0, nrSubracks):
cabinet = subrack / 2
print "21 "+dataPoint.replace("@cabinet@","Cabinet"+str(cabinet)) \
.replace("@subrack@","Subrack"+str(subrack))+".status.state"
cabinet = subrack // 2
print("21 " + dataPoint
.replace("@cabinet@", "Cabinet" + str(cabinet))
.replace("@subrack@", "Subrack" + str(subrack)) + ".status.state")
def expandCabinetMarker(dataPoint, nrRSP):
"""
Expands the lines that only contain the @cabinet@ marker with all cabinet numbers
"""
nrCabinets = nrRSP / 8
if nrRSP % 8: nrCabinets += 1
for cabinet in range(0, nrCabinets):
print "21 "+dataPoint.replace("@cabinet@","Cabinet"+str(cabinet))+".status.state"
"""
Expands the lines that only contain the @cabinet@ marker with all cabinet numbers
"""
nrCabinets = nrRSP // 8
if nrRSP % 8: nrCabinets += 1
for cabinet in range(0, nrCabinets):
print("21 " + dataPoint.replace("@cabinet@", "Cabinet" + str(cabinet)) + ".status.state")
def expandLBAMarker(dataPoint, nrLBA):
"""
Expands the lines that only contain the @lbaantenna@ marker with all cabinet numbers
"""
for lba in range(0, nrLBA):
print "21 "+dataPoint.replace("@lbaantenna@","LBA%03d"%lba)+".status.state"
"""
Expands the lines that only contain the @lbaantenna@ marker with all cabinet numbers
"""
for lba in range(0, nrLBA):
print("21 " + dataPoint.replace("@lbaantenna@", "LBA%03d" % lba) + ".status.state")
def expandHBAMarker(dataPoint, nrHBA):
"""
Expands the lines that only contain the @hbaantenna@ marker with all cabinet numbers
"""
for lba in range(0, nrHBA):
print "21 "+dataPoint.replace("@hbaantenna@","HBA%02d"%lba)+".status.state"
def expandHBAMarker(dataPoint, nrHBA):
"""
Expands the lines that only contain the @hbaantenna@ marker with all cabinet numbers
"""
for lba in range(0, nrHBA):
print("21 " + dataPoint.replace("@hbaantenna@", "HBA%02d" % lba) + ".status.state")
# MAIN
......@@ -85,7 +94,6 @@ def expandHBAMarker(dataPoint, nrHBA):
# We can start this from a SVN tree, or from the install location (/opt/lofar)
# This is indicated by the "-l" command line option.
parser = OptionParser()
parser.add_option("-l", "--local", action="store_true", dest="isLocal", default=False,
help="Run createPICFile in situ (in a svn checkout tree, not an in install tree [default!]")
......@@ -93,16 +101,16 @@ parser.add_option("-l", "--local", action="store_true", dest="isLocal", default=
(options, args) = parser.parse_args()
if (options.isLocal):
PVSSbasefile= "../PVSS/data/PVSSDataPoints.base"
PVSSbasefile = "../PVSS/data/PVSSDataPoints.base"
StationFile = "../StaticMetaData/StationInfo.dat"
ControlFile = "../StaticMetaData/ControlInfo.dat"
RingFile = "../PVSS/data/Rings.list"
RingFile = "../PVSS/data/Rings.list"
ClusterFile = "../PVSS/data/Clusters.list"
else:
PVSSbasefile= "/opt/lofar/pvss/dpdef/PVSSDataPoints.base"
PVSSbasefile = "/opt/lofar/pvss/dpdef/PVSSDataPoints.base"
StationFile = "/opt/lofar/etc/StationInfo.dat"
ControlFile = "/opt/lofar/etc/ControlInfo.dat"
RingFile = "/opt/lofar/pvss/dpdef/Rings.list"
RingFile = "/opt/lofar/pvss/dpdef/Rings.list"
ClusterFile = "/opt/lofar/pvss/dpdef/Clusters.list"
filledLine = re.compile("^[^#].*", re.MULTILINE)
......@@ -112,57 +120,57 @@ filledLine = re.compile("^[^#].*", re.MULTILINE)
ringDict = {}
for line in filledLine.findall(open(RingFile).read()):
ringDict[line[0]] = line
#print "ringDict =", ringDict
# print "ringDict =", ringDict
# construct a list with all ring_station combinations
ringStations = []
stations = []
for line in filledLine.findall(open(StationFile).read()):
if (line.strip() and len(line.split()) == 14 and line.strip()[0] != "#"):
# print "line: =",line
# print "line: =",line
(name, stationID, stnType, long, lat, height, nrRSP, nrTBB, nrLBA, nrHBA, nrPowec, HBAsplit, LBAcal, AartFaac ) = line.split()
if (height != "0" and int(stationID) < 900):
ringStations.append(ringDict[stnType]+"_"+name)
stations.append(name)
#print "ringStations =", ringStations
#print "stations =", stations
# print "ringStations =", ringStations
# print "stations =", stations
# construct a dictionary for the clusters
clusterDict = {}
for line in filledLine.findall(open(ClusterFile).read()):
(mnemonic, prefix, count) = line.split()
clusterDict[mnemonic] = (prefix, count)
#print "clusterDict =", clusterDict
# print "clusterDict =", clusterDict
# construct a list for the control-machines
controlList = []
for line in filledLine.findall(open(ControlFile).read()):
(name, ipaddr, macaddr) = line.split()
controlList.append(name)
#print "controlList =", controlList
# print "controlList =", controlList
# open outputfile and write top-node of PIC
print "21 LOFAR.status.state"
print "21 LOFAR_PIC.status.state"
print "21 LOFAR_PermSW.status.state"
print("21 LOFAR.status.state")
print("21 LOFAR_PIC.status.state")
print("21 LOFAR_PermSW.status.state")
# construct the rings with stations and the clusters with their nodes
# ??? ??? C P ??? ???_PIC_@???@
ringStationMask=""
central=re.compile("^\w+[ \t]+[^ \t]+[ \t]+M[ \t]+[YN][ \t]+([A-Za-z_]+_(?:PIC|PermSW)_@.*)", \
re.IGNORECASE | re.MULTILINE)
central=re.compile("^\w+[ \t]+[^ \t]+[ \t]+M[ \t]+[YN][ \t]+([A-Za-z_]+_(?:PIC|PermSW)_@.*)",
re.IGNORECASE | re.MULTILINE)
for line in central.findall(open(PVSSbasefile).read()):
#print "line =",line
# print "line =",line
if line.find("@station@") >= 0:
ringStationMask=line.replace("LOFAR_","")
for RS in ringStations:
print "21 "+line.replace("@ring@_@station@", RS)+".status.state"
print("21 "+line.replace("@ring@_@station@", RS) + ".status.state")
# ---
elif line.find("@ring@") >= 0:
# for all rings
for ring in ringDict.keys():
print "21 "+line.replace("@ring@", ringDict[ring])+".status.state"
print("21 "+line.replace("@ring@", ringDict[ring]) + ".status.state")
# ---
elif line.find("@node@") >= 0:
# for all nodes in each cluster
......@@ -170,44 +178,44 @@ for line in central.findall(open(PVSSbasefile).read()):
(name, count) = clusterDict[cluster]
for nodeNr in range(1, int(count)+1):
nodename = "%s%03d" % (name, nodeNr)
print "21 "+line.replace("@cluster@_@node@", cluster+"_"+nodename)+".status.state"
print("21 " + line.replace("@cluster@_@node@", cluster + "_" + nodename) + ".status.state")
# for all nodes
# for all clusters
# also add= the control 'cluster' at this place
for node in controlList:
print "21 "+line.replace("@cluster@_@node@", "Control_"+node)+".status.state"
print("21 " + line.replace("@cluster@_@node@", "Control_" + node) + ".status.state")
# ---
elif line.find("@cluster@") >= 0:
# for all clusters
for cluster in clusterDict.keys():
print "21 "+line.replace("@cluster@", cluster)+".status.state"
print("21 " + line.replace("@cluster@", cluster) + ".status.state")
# and the control-section
print "21 "+line.replace("@cluster@", "Control")+".status.state"
print("21 " + line.replace("@cluster@", "Control") + ".status.state")
# ---
elif line.find("@") < 0:
print "21 "+line+".status.state"
print("21 " + line + ".status.state")
# for all expandable lines
# Permanent software on MCU
software=re.compile("^\w+[ \t]+[^ \t]+[ \t]+M[ \t]+[YN][ \t]+([A-Za-z_]+_PermSW_[^@].*)", \
re.IGNORECASE | re.MULTILINE)
software=re.compile("^\w+[ \t]+[^ \t]+[ \t]+M[ \t]+[YN][ \t]+([A-Za-z_]+_PermSW_[^@].*)",
re.IGNORECASE | re.MULTILINE)
for line in software.findall(open(PVSSbasefile).read()):
print "21 MCU001:%s.status.state" % line
print("21 MCU001:%s.status.state" % line)
# generate the hardware on each station
for line in filledLine.findall(open(StationFile).read()):
# print "line: =",line
# print "line: =",line
if (line.strip() and len(line.split()) == 14 and line.strip()[0] != "#"):
(name, stationID, stnType, long, lat, height, nrRSP, nrTBB, nrLBA, nrHBA, nrPowec, HBAsplit, LBAcal, AartFaac ) = line.split()
if ( height == "0" or int(stationID) >= 900):
if height == "0" or int(stationID) >= 900:
continue
# Find all expandable hardware elements on a station. The line syntax is:
# ??? ??? S P ??? ???_PIC_@...@
# we are only interested in the @...@ part.
station=re.compile("^\w+[ \t]+[^ \t]+[ \t]+S[ \t]+[YN][ \t]+[A-Za-z_]+_PIC_(@.*)", \
re.IGNORECASE | re.MULTILINE)
station=re.compile("^\w+[ \t]+[^ \t]+[ \t]+S[ \t]+[YN][ \t]+[A-Za-z_]+_PIC_(@.*)",
re.IGNORECASE | re.MULTILINE)
for line in station.findall(open(PVSSbasefile).read()):
prefix="@station@:LOFAR_PIC_".replace("@station@", name)
if line.find("@rcu@") >= 0:
......@@ -226,11 +234,10 @@ for line in filledLine.findall(open(StationFile).read()):
expandHBAMarker(prefix+line, int(nrHBA))
# for all expandable lines
# Permanent software on the stations
software=re.compile("^\w+[ \t]+[^ \t]+[ \t]+S[ \t]+[YN][ \t]+([A-Za-z_]+_PermSW_.*)", \
re.IGNORECASE | re.MULTILINE)
software=re.compile("^\w+[ \t]+[^ \t]+[ \t]+S[ \t]+[YN][ \t]+([A-Za-z_]+_PermSW_.*)",
re.IGNORECASE | re.MULTILINE)
for line in software.findall(open(PVSSbasefile).read()):
if line.find("@") < 0:
print "21 %s:%s.status.state" % (name, line)
print("21 %s:%s.status.state" % (name, line))
#for all stations
# for all stations
---------------------------------------------------
[license]
code = "LV614C 50455775608"
version = 31400002
sn = "471_3031_Astron_Station_5/1"
date = 2019.09.02;10:21:13,000
comment = "European Station LV614"
expire = 0000.00.00;00:00:00,000
redundancy = 0
ui = 1
para = 1
dde = 5
event = 1
ios = 4000
ssi = 0
api = 80
excelreport = 5
http = 0
infoserver = 1000
comcenter = 5
maintenance = 1
scheduler = 1
s7 = 1
recipe = 1
distributed = 255
ultralight = 1
mobile_app = 1
uifix = 0
parafix = 0
pararemote = 0
ctrlext = 1
update = 0
[license]
#hw = 12831493085
code = "dongleHost 00138422163"
version = 31600002
sn = "471_3031_Astron_Station_5"
expire = 0000.00.00;00:00:00,000
redundancy = 0
ui = 1
para = 1
dde = 5
event = 1
api = 80
excelreport = 5
http = 0
infoserver = 1000
ios = 4000
comcenter = 5
maintenance = 1
scheduler = 1
ssi = 0
s7 = 1
recipe = 1
distributed = 255
ultralight = 1
mobile_app = 1
s7plus = 8
uifix = 0
parafix = 0
pararemote = 0
ctrlext = 1
update = 0
licenseMax = 100
licenseLeft = 100
code = "dongleHost 40215168481"
version = 31600002
sn = "471_3031_Astron_Station_5"
expire = 0000.00.00;00:00:00,000
redundancy = 0
ui = 1
para = 1
dde = 5
event = 1
ios = 4000
ssi = 0
api = 80
excelreport = 5
http = 0
infoserver = 1000
comcenter = 5
maintenance = 1
scheduler = 1
s7 = 1
recipe = 1
distributed = 255
ultralight = 1
mobile_app = 1
s7plus = 8
uifix = 0
parafix = 0
pararemote = 0
ctrlext = 1
update = 0
licenseMax = 100
licenseLeft = 99
[license]
code = "LV614C 33179529551"
version = 31400002
comment = "European Station LV614"
sn = "471_3031_2_Astron_Gen_II_1_38"
expire = 0000.00.00;00:00:00,000
redundancy = 0
ui = 1
para = 1
dde = 5
event = 1
api = 80
excelreport = 5
http = 0
infoserver = 1000
ios = 4000
comcenter = 5
maintenance = 1
scheduler = 1
ssi = 0
s7 = 1
recipe = 1
distributed = 255
ultralight = 1
mobile_app = 1
uifix = 0
parafix = 0
pararemote = 0
ctrlext = 1
update = 0
[license]
code = "LV614C 50455775608"
version = 31400002
sn = "471_3031_Astron_Station_5/1"
date = 2019.09.02;10:21:13,000
comment = "European Station LV614"
expire = 0000.00.00;00:00:00,000
redundancy = 0
ui = 1
para = 1
dde = 5
event = 1
ios = 4000
ssi = 0
api = 80
excelreport = 5
http = 0
infoserver = 1000
comcenter = 5
maintenance = 1
scheduler = 1
s7 = 1
recipe = 1
distributed = 255
ultralight = 1
mobile_app = 1
uifix = 0
parafix = 0
pararemote = 0
ctrlext = 1
update = 0
......@@ -59,4 +59,4 @@ PL610 4
PL611 4
PL612 4
IE613 4
LV616 4
LV614 4
......@@ -129,7 +129,7 @@ PL612 213 E 20.5897506 53.5939042 178.38 24 12 96 96
# Birr
IE613 214 E -7.9213656 53.0951167 105.99 24 12 96 96 2 No No No
# Irbene
LV614 215 E 21.8549189 57.5568802 13.29 24 12 96 96 2 No No No
LV614 215 E 21.8558311 57.5570617 42.58 24 12 96 96 2 No No No
## Non-ILT international
## 900
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment