diff --git a/.gitattributes b/.gitattributes index 20b272ee0b68a98034b7045e46a7c949cd140fb9..06c6af5fec3955708871bac655e7574c3104f6f5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2580,6 +2580,8 @@ LCS/MessageDaemons/test/tMessageRouter.sh eol=lf LCS/MessageDaemons/webmonitor/QPIDWebserverJSON -text LCS/MessageDaemons/webmonitor/Schema.svg.ccu001 -text LCS/MessageDaemons/webmonitor/Schema.svg.ccu099 -text +LCS/MessageDaemons/webmonitor/start_QPIDWebMonitor -text svneol=unset#text/x-shellscript +LCS/MessageDaemons/webmonitor/stop_QPIDWebMonitor -text svneol=unset#text/x-shellscript LCS/Tools/src/checkcomp.py -text LCS/Tools/src/countalllines -text LCS/Tools/src/countlines -text @@ -3113,6 +3115,8 @@ MAC/Deployment/data/Coordinates/ETRF_FILES/DE605/de605-antenna-positions-etrs.cs MAC/Deployment/data/Coordinates/ETRF_FILES/DE609/de609-antenna-positions-etrs.csv -text MAC/Deployment/data/Coordinates/ETRF_FILES/FI609/FI609-antenna-positions-etrs.csv -text MAC/Deployment/data/Coordinates/ETRF_FILES/FR606/fr606-antenna-positions-etrs.csv -text +MAC/Deployment/data/Coordinates/ETRF_FILES/PL610/pl610-antenna-positions-etrs.csv -text +MAC/Deployment/data/Coordinates/ETRF_FILES/PL611/pl611-antenna-positions-etrs.csv -text MAC/Deployment/data/Coordinates/ETRF_FILES/PL612/pl612-antenna-positions-etrs.csv -text MAC/Deployment/data/Coordinates/ETRF_FILES/RS106/rs106-antenna-positions-etrs.csv -text MAC/Deployment/data/Coordinates/ETRF_FILES/RS205/rs205-antenna-positions-etrs.csv -text @@ -3217,6 +3221,10 @@ MAC/Deployment/data/Coordinates/vectors-and-matrices/FI609/FI609-hba-solution.li MAC/Deployment/data/Coordinates/vectors-and-matrices/FI609/FI609-lba-solution.lisp -text MAC/Deployment/data/Coordinates/vectors-and-matrices/FR606/fr606-hba-solution.lisp -text MAC/Deployment/data/Coordinates/vectors-and-matrices/FR606/fr606-lba-solution.lisp -text +MAC/Deployment/data/Coordinates/vectors-and-matrices/PL610/pl610-hba-solution.lisp -text +MAC/Deployment/data/Coordinates/vectors-and-matrices/PL610/pl610-lba-solution.lisp -text +MAC/Deployment/data/Coordinates/vectors-and-matrices/PL611/pl611-hba-solution.lisp -text +MAC/Deployment/data/Coordinates/vectors-and-matrices/PL611/pl611-lba-solution.lisp -text MAC/Deployment/data/Coordinates/vectors-and-matrices/PL612/pl612-hba-solution.lisp -text MAC/Deployment/data/Coordinates/vectors-and-matrices/PL612/pl612-lba-solution.lisp -text MAC/Deployment/data/Coordinates/vectors-and-matrices/RS106/rs106-core-solution-hba.lisp -text @@ -3508,6 +3516,7 @@ MAC/Deployment/data/StaticMetaData/RSPConnections_local.dat -text MAC/Deployment/data/StaticMetaData/RSPConnections_test.dat -text MAC/Deployment/data/StaticMetaData/RSPDriver.conf.test -text MAC/Deployment/data/StaticMetaData/RemoteStation.conf.test -text +MAC/Deployment/data/StaticMetaData/StationAttenuation.dat -text MAC/Deployment/data/StaticMetaData/StationInfo.dat -text MAC/Deployment/data/StaticMetaData/Storage+MAC.dat -text MAC/Deployment/data/StaticMetaData/TBBConnections.dat -text @@ -3534,6 +3543,8 @@ MAC/Deployment/data/StaticMetaData/iHBADeltas/DE604-iHBADeltas.conf -text MAC/Deployment/data/StaticMetaData/iHBADeltas/DE609-iHBADeltas.conf -text MAC/Deployment/data/StaticMetaData/iHBADeltas/FI609-iHBADeltas.conf -text MAC/Deployment/data/StaticMetaData/iHBADeltas/FR606-iHBADeltas.conf -text +MAC/Deployment/data/StaticMetaData/iHBADeltas/PL610-iHBADeltas.conf -text +MAC/Deployment/data/StaticMetaData/iHBADeltas/PL611-iHBADeltas.conf -text MAC/Deployment/data/StaticMetaData/iHBADeltas/PL612-iHBADeltas.conf -text MAC/Deployment/data/StaticMetaData/iHBADeltas/RS106-iHBADeltas.conf -text MAC/Deployment/data/StaticMetaData/iHBADeltas/RS205-iHBADeltas.conf -text diff --git a/LCS/MessageDaemons/webmonitor/CMakeLists.txt b/LCS/MessageDaemons/webmonitor/CMakeLists.txt index ba6ef9b83d1b7dc42a8a8d57cc53fda17cf27fe0..7ef17ee96a320971bd58d76dd1d7c72442648802 100644 --- a/LCS/MessageDaemons/webmonitor/CMakeLists.txt +++ b/LCS/MessageDaemons/webmonitor/CMakeLists.txt @@ -4,6 +4,11 @@ install(FILES QPIDWebserverJSON DESTINATION bin) +install(FILES + start_QPIDWebMonitor + stop_QPIDWebMonitor + DESTINATION sbin) + file(GLOB StaticFiles lib/* Schema.svg.* diff --git a/LCS/MessageDaemons/webmonitor/QPIDWebserverJSON b/LCS/MessageDaemons/webmonitor/QPIDWebserverJSON index b127d3fd656907470099fc309941d64d67a67097..45d1d4d0c4e9cebf0011b4b19564743b11f7a512 100644 --- a/LCS/MessageDaemons/webmonitor/QPIDWebserverJSON +++ b/LCS/MessageDaemons/webmonitor/QPIDWebserverJSON @@ -8,6 +8,7 @@ import urlparse from mimetypes import MimeTypes from threading import Timer,Thread,Event import platform +import datetime mime=MimeTypes() @@ -38,6 +39,9 @@ brokerlist= [] if MyHostname.lower() != 'ccu099' : brokerlist = [ "amqp://CCU001","amqp://sas001","amqp://lcs023","amqp://cbm001","amqp://cbm002","amqp://cbm003","amqp://cbm004","amqp://cbm005","amqp://cbm006","amqp://cbm007","amqp://cbm008","amqp://mcu001","amqp://lhn001.cep2.lofar","amqp://lhn002.cep2.lofar"] + for i in range(1,95): + nodename = 'amqp://locus%(#)03d.cep2.lofar' % {"#": i} + brokerlist.append(nodename) else: brokerlist = [ "amqp://ccu099","amqp://SAS099","amqp://lcs028","amqp://cbt009","amqp://locus098","amqp://locus099","amqp://locus102","amqp://mcu099"] @@ -135,7 +139,12 @@ def retrieve_status(): global sess queues = {} - queuestat = {} + queuestat = {} + + # get current local time + ts = time.time() + datestamp = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S') + queuestat['datestamp']=datestamp for brokername in brokerlist: queues[brokername] = sess[brokername].getObjects(_class="queue", _package="org.apache.qpid.broker") queuestat[brokername]={} @@ -146,13 +155,19 @@ def retrieve_status(): stest=str(queuestat).replace("'",'"',1000000).replace('(','[',10000000).replace(')',']',1000000).replace('L','',1000000) return stest +retrievebusy=False + def periodic_retrieve( ): global last_status + global retrievebusy if (last_status=="NOTCONNECTED"): - connect_to_brokers() + connect_to_brokers() last_status="CONNECTION setup" else: - last_status=retrieve_status() + if (retrievebusy==False): + retrievebusy=True + last_status=retrieve_status() + retrievebusy=False if __name__ == '__main__': from BaseHTTPServer import HTTPServer diff --git a/LCS/MessageDaemons/webmonitor/list.html b/LCS/MessageDaemons/webmonitor/list.html index b89b8204809059795640cce927feb13194e89d41..837c902fbbaccf8f8c095d59cbc166c265c284d3 100644 --- a/LCS/MessageDaemons/webmonitor/list.html +++ b/LCS/MessageDaemons/webmonitor/list.html @@ -10,7 +10,7 @@ table, th, td { </head> <body> -<div id="overview">LOFAR</div> +<div id="overview">LOFAR Message Queue Monitor. Waiting for data ...</div> <script type='text/javascript'> @@ -23,43 +23,63 @@ function asrow(text,style) return out; } -function To_QPID_State(qpidstate) +function Parse_QPID_State(qpidstate) { - //var replacement = schemasvg; - var outtext="<table><tr><td>BROKER</td><td>QUEUE NAME</td><td>WAITING</td><td>PROCESSED</td><td>CONNECTED</td></tr>"; + var today = new Date(); + var datestamp = "<p> Browser Time: "+today+"</p>"; + var result = ""; + var outtext=""; + var warntext=""; + var locustext=""; + var headertext="<table><tr><td>BROKER</td><td>QUEUE NAME</td><td>WAITING</td><td>PROCESSED</td><td>CONNECTED</td></tr>"; + var footertext="</table>"; console.log(qpidstate); + // simple check for validity of JSON input if ( qpidstate.search('amqp') != -1) { + // parse JSON to object var obj = eval('(' + qpidstate + ')'); for (var key in obj) { + // Retrieve datestamp if available + if (key == "datestamp") { + datestamp="<p>Sampled at UTC:"+obj[key]+"</p>"; + } else for (var subkey in obj[key]) { - //if(( subkey.indexOf("mom.") !=-1) || (subkey.indexOf("lofar")!=-1) || (subkey.indexOf("otdb")!=-1)||(subkey.indexOf("mac")!=-1)){ + // filter queue names for LOFAR defined queues if ( subkey.match(/(mom.|lofar|otdb|mac)/g) != null ) { var result = ""; var numwaiting=parseInt(obj[key][subkey]); result += obj[key][subkey]; + // use Red background if queue has messages color='style="color: #000000; background-color: #ffffff"'; if (numwaiting>0) { color='style="color: #000000; background-color: #ff0000"'; } - result=result.replace(",","</td><td " +color +" >"); - result=result.replace(",","</td><td " +color +">"); - color='style="color: #000000; background-color: #ffffff"'; - if (numwaiting>0) { - color='style="color: #000000; background-color: #ff0000"'; + // split all items in a table column + result=result.replace(",","</td><td " + color + " >"); + result=result.replace(",","</td><td " + color + ">"); + var statustext="<tr "+ color +">"+asrow(key,color) + asrow(subkey,color) + asrow(result,color) + "</tr>"; + // assure locusXXX nodes are filtered and only shown if queue has messages + var IsLocusNode=(key.indexOf("locus")!=-1); + if (IsLocusNode==true){ + if (numwaiting>0) { + locustext+=statustext; + } + } else { + if (numwaiting>0) { + warntext+=statustext; + } else { + outtext+=statustext; + } } - outtext+="<tr "+ color +">"; - outtext+=asrow(key,color) + asrow(subkey,color) + asrow(result,color); - outtext+="</tr>"; + } } - } } - outtext+="</table>"; - document.getElementById("overview").innerHTML=outtext; + result=datestamp+headertext+warntext+locustext+outtext+footertext; + document.getElementById("overview").innerHTML=result; } - function readtext_from_file(urlname) { var request = new XMLHttpRequest(); @@ -75,7 +95,7 @@ function doAnim() requestAnimationFrameID = requestAnimationFrame(doAnim); } -var myVar=setInterval(function () {myTimer()}, 1000); +var myVar=setInterval(function () {myTimer()}, 5000); function myTimer() { var request = new XMLHttpRequest(); @@ -84,7 +104,7 @@ function myTimer() { { if (request.readyState == 4) { - To_QPID_State(request.responseText); + Parse_QPID_State(request.responseText); } } request.send(null); @@ -116,8 +136,7 @@ function touchHandler(event) first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null); - - first.target.dispatchEvent(simulatedEvent); + first.target.dispatchEvent(simulatedEvent); event.preventDefault(); } diff --git a/LCS/MessageDaemons/webmonitor/start_QPIDWebMonitor b/LCS/MessageDaemons/webmonitor/start_QPIDWebMonitor new file mode 100755 index 0000000000000000000000000000000000000000..a56641c73039a0b4e2c5fff44fd8bf8093834fe2 --- /dev/null +++ b/LCS/MessageDaemons/webmonitor/start_QPIDWebMonitor @@ -0,0 +1,20 @@ +#!/bin/bash + +webserv=`ps -o pid -C QPIDWebserverJSON |wc | awk '{ print $1 }'` + +if [ "$webserv" == "1" ]; then + echo -n QPID status webserver not running, starting up... + sudo -u qpid sh -c "ulimit -s 1024; /opt/lofar/bin/QPIDWebserverJSON 1>> /opt/lofar/var/log//QPIDwebserverJSON.log 2>&1 &" +else + echo QPID status webserver already running + exit +fi + +sleep 1 +# Check if running +webserv=`ps -o pid -C QPIDWebserverJSON |wc | awk '{ print $1 }'` +if [ "$webserv" == "1" ]; then + echo " FAILED" +else + echo " OK" +fi diff --git a/LCS/MessageDaemons/webmonitor/stop_QPIDWebMonitor b/LCS/MessageDaemons/webmonitor/stop_QPIDWebMonitor new file mode 100755 index 0000000000000000000000000000000000000000..807b0e55cf2bb7a21cafc2dad95e413e560f3819 --- /dev/null +++ b/LCS/MessageDaemons/webmonitor/stop_QPIDWebMonitor @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Script to stop running instance of QPID Web Monitor +# + +webserv=`ps -o pid -C QPIDWebserverJSON |wc | awk '{ print $1 }'` + +if [ "$webserv" == "1" ] +then + echo QPID Monitor not running. +else + echo -n QPID status webserver is running, stopping now... + wspid=`ps -o pid -C QPIDWebserverJSON | sed "s/PID//g"` + sudo kill -KILL $wspid + sleep 1 + webserv=`ps -o pid -C QPIDWebserverJSON |wc | awk '{ print $1 }'` + if [ "$webserv" != "1" ]; then + echo " FAILED" + else + echo " OK" + fi +fi diff --git a/LCU/PPSTune/ppstune.py b/LCU/PPSTune/ppstune.py index adb25f07e912b603ed007006122732b777970daf..ecfe6013738b366456cd9606de28832746d815da 100755 --- a/LCU/PPSTune/ppstune.py +++ b/LCU/PPSTune/ppstune.py @@ -53,9 +53,9 @@ def version_string(): **Example** >>> version_string() - '1.4' + '1.5' ''' - return '1.4' + return '1.5' ####################### @@ -184,36 +184,36 @@ def check_output(args, stderr = None, execute = True, timeout_s = None): else: start_date = time.time() process = subprocess.Popen(args, - shell = False, - stdout = subprocess.PIPE, - stdin = subprocess.PIPE, - stderr = stderr) - stdout = [] - out = '' - while True: - out = process.stdout.read(1) - if out == '' and process.poll() != None: - break - if out != '': - stdout.append(out) + shell = False, + stdout = subprocess.PIPE, + stdin = subprocess.PIPE, + stderr = stderr) + + proc_ready = True + while process.poll() == None: # while poll() returns None, process is still running. if time.time() - start_date > timeout_s: + proc_ready = False logging.error('timeout after %6.3f s: terminating command %s ', timeout_s, ' '.join(args)) - os.kill(process.pid, signal.SIGTERM) - raise RuntimeError('%s killed with signal %d; output:\n%r' % - (' '.join(args), signal.SIGTERM, - ''.join(stdout))) + break + time.sleep(1.0) + logging.debug('process.poll(): %r', process.poll()) if process.poll() < 0: raise RuntimeError('%s killed with signal %d' % (' '.join(args), process.poll())) - return ''.join(stdout) + + if proc_ready: + return process.communicate()[0] + + os.kill(process.pid, signal.SIGTERM) + raise RuntimeError('%s killed with signal %d; output:\n%s' % + (' '.join(args), signal.SIGTERM, + ''.join(stdout))) + return '' else: return '' - - - def gmtime_tuple(date_s): r''' Return the ``date_s`` as a gmtime tuple containing (year, month, @@ -293,7 +293,7 @@ class BrokenRSPBoardsError(RuntimeError): class MalformedRemoteStationConfError(RuntimeError): pass -def swlevel(level, swlevel_cmd = '/opt/lofar/bin/swlevel', timeout_s = 80.0): +def swlevel(level, swlevel_cmd = '/opt/lofar/bin/swlevel', timeout_s = 180.0): r''' Set the swlevel at the station. @@ -309,8 +309,8 @@ def swlevel(level, swlevel_cmd = '/opt/lofar/bin/swlevel', timeout_s = 80.0): timeout_s : float If the swlevel command has not returned after ``timeout_s`` seconds, raise a RuntimeError. At international stations, - changing swlevel from 1 to 6 should typically take about 40 - seconds, hence the timeout at 80 seconds to catch seriously + changing swlevel from 1 to 6 should typically take about 100 + seconds, hence the timeout at 180 seconds to catch seriously anomalous cases. **Returns** @@ -682,21 +682,26 @@ def set_clock_frequency_mhz(clock_mhz, rspctl_cmd = '/opt/lofar/bin/rspctl', tim if clock_mhz not in [160, 200]: raise ValueError('clock_mhz (%d) neither 160 nor 200' % clock_mhz) + """ + PD: always switch clock, firmware is reloaded and RSPDriver cache is cleared + current_clock_mhz = wait_for_clocks_to_lock(rspctl_cmd = rspctl_cmd, timeout_s = timeout_s) if current_clock_mhz != clock_mhz: - logging.info('Switching clock to %d MHz', clock_mhz) - check_output([rspctl_cmd, '--clock=%d' % clock_mhz], timeout_s = 1.0) - time.sleep(10.0) # Clock switch takes ~ 45 s, but only starts - # after a couple sec. If one does not wait enough, one may - # still see the clock in the previous clock mode. - current_clock_mhz = wait_for_clocks_to_lock(rspctl_cmd = rspctl_cmd, - timeout_s = timeout_s) - if current_clock_mhz != clock_mhz: - raise RuntimeError('Clocks locked to %d MHz instead of %d MHz' % - (current_clock_mhz, clock_mhz)) - else: - logging.info('Clocks locked to %d MHz', current_clock_mhz) + """ + + logging.info('Switching clock to %d MHz', clock_mhz) + check_output([rspctl_cmd, '--clock=%d' % clock_mhz], timeout_s = 1.0) + time.sleep(10.0) # Clock switch takes ~ 45 s, but only starts + # after a couple sec. If one does not wait enough, one may + # still see the clock in the previous clock mode. + current_clock_mhz = wait_for_clocks_to_lock(rspctl_cmd = rspctl_cmd, + timeout_s = timeout_s) + if current_clock_mhz != clock_mhz: + raise RuntimeError('Clocks locked to %d MHz instead of %d MHz' % + (current_clock_mhz, clock_mhz)) + else: + logging.info('Clocks locked to %d MHz', current_clock_mhz) return current_clock_mhz @@ -712,10 +717,18 @@ def rspdriver_down(swlevel_cmd = '/opt/lofar/bin/swlevel'): return rsp_driver_pid_lines[0].split()[-1].strip() == 'DOWN' else: return True - - - + +def kill_rspctl(): + r""" + kill all running rspctl processes. + """ + logging.info('Killing all rspctl processes') + output = subprocess.Popen(['killall', 'rspctl'], + stdin = subprocess.PIPE, + stdout = subprocess.PIPE).communicate()[0] + logging.debug('%s' % output) + def restart_rsp_driver(lofar_log_dir, rspdriver_cmd = '/opt/lofar/bin/RSPDriver', @@ -776,7 +789,7 @@ def restart_rsp_driver(lofar_log_dir, if 'RSPDriver' in line and not 'Missing' in line] current_swlevel = get_swlevel(swlevel_cmd) if abs(current_swlevel) < 2: - logging.warning('swlevel (%r) < 2. Will not start RSPDriver now', + logging.warning('swlevel (%d) < 2. Will not start RSPDriver now', current_swlevel) return None if len(rsp_driver_pid_lines) == 1: @@ -1471,7 +1484,7 @@ def measure_diff_stability(clock_mhz, repeat = 10, -def measure_all_delays(station, clock_mhz, +def measure_all_delays(clock_mhz, edge = 'rising', repeat = 10, rspctl_cmd = '/opt/lofar/bin/rspctl', first_delay_step = 0, @@ -1491,9 +1504,6 @@ def measure_all_delays(station, clock_mhz, **Parameters** - station : string - Station name. - clock_mhz : int Clock frequency in MHz. Must be 160 or 200 MHz. @@ -1529,7 +1539,7 @@ def measure_all_delays(station, clock_mhz, **Examples** - >>> measure_all_delays('CS021', clock_mhz = 200, edge = 'rising', repeat = 3, + >>> measure_all_delays(clock_mhz = 200, edge = 'rising', repeat = 3, ... rspctl_cmd = 'test/rspctl-odd', first_delay_step = 5, ... one_past_last_delay_step = 7, ... remote_station_conf='test/CS021-RemoteStation.conf') @@ -1546,13 +1556,13 @@ def measure_all_delays(station, clock_mhz, Of course, one has to take care with the inputs: - >>> measure_all_delays('CS021', clock_mhz = 20, edge = 'rising', repeat = 3, + >>> measure_all_delays(clock_mhz = 20, edge = 'rising', repeat = 3, ... rspctl_cmd = 'test/rspctl-odd', one_past_last_delay_step = 2, ... remote_station_conf='test/CS021-RemoteStation.conf') Traceback (most recent call last): ... ValueError: clock_mhz (20) not in [160, 200] - >>> measure_all_delays('CS021', clock_mhz = 200, edge = 'rinsing', repeat = 3, + >>> measure_all_delays(clock_mhz = 200, edge = 'rinsing', repeat = 3, ... rspctl_cmd = 'test/rspctl-odd', one_past_last_delay_step = 2, ... remote_station_conf='test/CS021-RemoteStation.conf') Traceback (most recent call last): @@ -1898,7 +1908,7 @@ def find_optimal_delays(diff_error_counts): -def pps_delays_conf(station, start_date, pps_delays): +def pps_delays_conf(station, clock_mhz, start_date, pps_delays): r''' Format pps_delays in PPSdelays.conf format. @@ -1907,6 +1917,9 @@ def pps_delays_conf(station, start_date, pps_delays): station : string Station name. + clock_mhz : int + Clock frequency in MHz. + start_date : float seconds since 1970.0 @@ -1915,7 +1928,7 @@ def pps_delays_conf(station, start_date, pps_delays): **Returns** - A string with the contents of PPSdelays.conf. + A string with the contents of PPSdelaysNNN.conf. **Examples** @@ -1926,13 +1939,15 @@ def pps_delays_conf(station, start_date, pps_delays): ... # ... # 2012-03-20 12:32:46 ... # + ... # Clock: %3d MHz + ... # ... ... 48 [ ... 36 26 21 36 17 53 49 9 50 7 51 48 60 42 11 37 ... 47 57 33 47 49 22 2 51 61 44 14 63 61 3 37 19 ... 57 36 35 54 35 34 42 60 59 63 63 37 4 53 52 10 - ... ]""" % pwd.getpwuid(os.getuid()).pw_name - >>> expected == pps_delays_conf('CS030', 1332246766.307168, + ... ]""" % (pwd.getpwuid(os.getuid()).pw_name, 200) + >>> expected == pps_delays_conf('CS030', 200, 1332246766.307168, ... [36, 26, 21, 36, 17, 53, 49, 9, 50, 7, 51, 48, 60, 42, 11, 37, ... 47, 57, 33, 47, 49, 22, 2, 51, 61, 44, 14, 63, 61, 3, 37, 19, ... 57, 36, 35, 54, 35, 34, 42, 60, 59, 63, 63, 37, 4, 53, 52, 10]) @@ -1946,10 +1961,12 @@ def pps_delays_conf(station, start_date, pps_delays): # # %4d-%02d-%02d %02d:%02d:%02d # +# Clock: %3d MHz +# ''' user = pwd.getpwuid(os.getuid()).pw_name - header = header_format % ((station, user)+gmtime_tuple(start_date)) + header = header_format % ((station, user)+gmtime_tuple(start_date)+(clock_mhz,)) contents = header + str(len(pps_delays)) + ' [\n' for subrack in range(len(pps_delays) / 16): subrack_delays = pps_delays[subrack*16:(subrack+1)*16] @@ -2041,12 +2058,16 @@ def parse_command_line(argv): '"both". Default: %default']), metavar = 'EDGE', default = 'both') - + parser.add_option('--clock', type = 'int', + action = 'append', dest = 'clock_mhz', - help = 'Set clock to CLOCK MHz. Default: %default', + help = ' '.join(['Set clock to CLOCK MHz (160 or 200).', + 'This option can be provided multiple', + 'times if both clocks must be measured', + 'Default: 200.']), metavar = 'CLOCK', - default = 200) + default = None) parser.add_option('--log-dir', type = 'string', dest = 'log_dir', @@ -2092,10 +2113,12 @@ def parse_command_line(argv): if options.edge not in ['rising', 'falling', 'both']: raise ValueError('Edge (%r) not \'rising\', \'falling\', or \'both\'' % options.edge) - - if options.clock_mhz not in [160, 200]: - raise ValueError('Clock (%d) must be 160 or 200 MHz' % - options.clock_mhz) + if options.clock_mhz is None: + options.clock_mhz = [200] + for clock_mhz in options.clock_mhz: + if clock_mhz not in [160, 200]: + raise ValueError('Clock (%d) must be 160 or 200 MHz' % + clock_mhz) if not options.measure_delays: options.write_conf_file = False @@ -2273,21 +2296,35 @@ def prepare_for_tuning(conf_etc_name, start_date, clock_mhz, raise IOError('Failed to backup %s' % conf_etc_name) - swlevel(2, swlevel_cmd = swlevel_cmd, timeout_s = 80.0) + swlevel(2, swlevel_cmd = swlevel_cmd) + + # befor switching clock kill all running rspctl processes + kill_rspctl() + old_clock_mhz = wait_for_clocks_to_lock(rspctl_cmd = rspctl_cmd, timeout_s = timeout_s) logging.info('Clocks locked to %d MHz', old_clock_mhz) + """ + PD: do not restart driver to reset all, but always change clock, + kill_rspctl() is used to kill all running rspctl processes + restart_rsp_driver(swlevel_cmd = swlevel_cmd, sudo_cmd = sudo_cmd, rspdriver_cmd = rspdriver_cmd, lofar_log_dir = lofar_log_dir) old_clock_mhz = wait_for_clocks_to_lock(rspctl_cmd = rspctl_cmd, timeout_s = timeout_s) logging.info('Clocks locked to %d MHz', old_clock_mhz) - + if old_clock_mhz != clock_mhz: set_clock_frequency_mhz(clock_mhz, rspctl_cmd = rspctl_cmd, timeout_s = timeout_s) + + """ + # always switch clock to reset firmware and clear the cache + set_clock_frequency_mhz(clock_mhz, rspctl_cmd = rspctl_cmd, + timeout_s = timeout_s) + time.sleep(1.0) rspctl_status = check_output([rspctl_cmd, '--status'], timeout_s = 3.0) if 'ERROR' in rspctl_status: @@ -2350,7 +2387,10 @@ def install_sig_term_handler(start_date, initial_swlevel, lofar_log_dir): logging.error('Received signal %d; terminating', signal_number) logging.error('Stack frame:\n%s', str(inspect.getframeinfo(stack_frame))) - restart_rsp_driver(lofar_log_dir = lofar_log_dir) + + # restart_rsp_driver(lofar_log_dir = lofar_log_dir) + # PD: set default clock frequency + set_clock_frequency_mhz(200) clock_mhz = wait_for_clocks_to_lock() logging.info('Clocks locked to %d MHz', clock_mhz) try: @@ -2490,10 +2530,13 @@ def write_pps_delays_conf(etc_name, temp_name, pps_delays): Final name of config file. Most likely '/opt/lofar/etc/PPSdelays.conf' - temp_name :string + temp_name : string File to which ``pps_delays`` is written first. If this succeeds, this file is renamed to ``etc_name``. + pps_delays : string + The contents of the file, already formatted as a string. + **Raises** IOError or OSError @@ -2590,6 +2633,104 @@ def write_pps_delays_conf(etc_name, temp_name, pps_delays): +def pps_tune_for_clock(clock_mhz, station, start_date, options): + r''' + Perfrom full PPS tuning for one clock. + ''' + previous_pps_delays = None + conf_etc_name = os.path.join(options.output_dir, 'PPSdelays%d.conf' % clock_mhz) + conf_temp_name = os.path.join(options.output_dir, + '%s-%4d%02d%02d-%02d%02d%02d-PPSdelays%d.conf' % + ((station,) + gmtime_tuple(start_date) + (clock_mhz,))) + conf_etc_name_default = os.path.join( + options.output_dir, 'PPSdelays.conf') + conf_temp_name_default = os.path.join( + options.output_dir, + '%s-%4d%02d%02d-%02d%02d%02d-PPSdelays.conf' % + ((station,) + gmtime_tuple(start_date))) + + if options.write_conf_file: + logging.info('Writing temporary output to %s', conf_temp_name) + else: + logging.info('%s will not be overwritten', conf_etc_name) + backup_name = prepare_for_tuning(conf_etc_name = conf_etc_name, + start_date = start_date, + clock_mhz = clock_mhz, + lofar_log_dir = options.log_dir) + # Actual measurements + if options.measure_delays: + if options.edge == 'both': + diff_errors_rising = measure_all_delays( + clock_mhz = clock_mhz, + edge = 'rising', + repeat = options.repeat) + + diff_errors_falling = measure_all_delays( + clock_mhz = clock_mhz, + edge = 'falling', + repeat = options.repeat, + first_delay_step = 29, + one_past_last_delay_step = 33) + + diff_errors = diff_errors_rising + diff_errors_falling[1:] + + else: + diff_errors = measure_all_delays( + clock_mhz = clock_mhz, + edge = options.edge, + repeat = options.repeat) + diff_errors += [[0]*len(diff_errors[0])]*4 + diff_errors += diff_errors + + + + # Report + logging.info('*** Failure report %s***\n%s', + station, sync_failure_report(diff_errors)) + + # Determine new optimum + new_delays = find_optimal_delays(diff_errors) + + previous_pps_delays = read_pps_delays(conf_etc_name) + if previous_pps_delays is None and clock_mhz == 200: + previous_pps_delays = read_pps_delays(conf_etc_name_default) + if previous_pps_delays: + logging.info('Old delays:\n%s', previous_pps_delays) + old_delays = parse_pps_delays(previous_pps_delays) + else: + old_delays = None + + pps_delays = pps_delays_conf(station, clock_mhz, start_date, new_delays) + logging.info('New delays:\n%s', pps_delays) + + if old_delays: + logging.info('Difference new - old:\n%r', + [p_new - p_old + for p_new, p_old + in zip(new_delays, old_delays)]) + + if options.write_conf_file: + # Throws IOError or OSError if writing failed + write_pps_delays_conf(conf_etc_name, conf_temp_name, pps_delays) + if clock_mhz == 200: # ALSO write the old default file + write_pps_delays_conf(conf_etc_name_default, + conf_temp_name_default, + pps_delays) + else: + logging.info('New delays will NOT be written to %s', conf_etc_name) + else: + logging.info(' *** Skipping measurements! ***') + # We do not get here in case of exceptions. It is safe to + # remove the backup now. + if os.path.exists(backup_name): + logging.info('Removing backup %s', backup_name) + os.remove(backup_name) + + + + + + def pps_tune_main(argv): r''' Main routine for pps tuning. @@ -2606,7 +2747,6 @@ def pps_tune_main(argv): ''' start_date = time.time() - previous_pps_delays = None exit_status = 0 initial_swlevel = None try: @@ -2618,17 +2758,7 @@ def pps_tune_main(argv): logging.info('Beginning PPS tuning with %s version %s', argv[0], version_string()) logging.info('Command: %r', ' '.join(argv)) - conf_etc_name = os.path.join(options.output_dir, 'PPSdelays.conf') - conf_temp_name = os.path.join(options.output_dir, - '%s-%4d%02d%02d-%02d%02d%02d-PPSdelays.conf' % - ((station,) + gmtime_tuple(start_date))) - - if options.write_conf_file: - logging.info('Writing temporary output to %s', conf_temp_name) - else: - logging.info('%s will not be overwritten', conf_etc_name) - previous_pps_delays = read_pps_delays(conf_etc_name) initial_swlevel = get_swlevel() logging.info('Initial swlevel is %d', initial_swlevel) if abs(initial_swlevel) < 2: @@ -2639,75 +2769,10 @@ def pps_tune_main(argv): install_sig_term_handler(start_date, initial_swlevel, lofar_log_dir = options.log_dir) log_cabinet_climate(station) - - backup_name = prepare_for_tuning(conf_etc_name = conf_etc_name, - start_date = start_date, - clock_mhz = options.clock_mhz, - lofar_log_dir = options.log_dir) - - # Actual measurements - if options.measure_delays: - if options.edge == 'both': - diff_errors_rising = measure_all_delays(station, - clock_mhz = options.clock_mhz, - edge = 'rising', - repeat = options.repeat) - - diff_errors_falling = measure_all_delays(station, - clock_mhz = options.clock_mhz, - edge = 'falling', - repeat = options.repeat, - first_delay_step = 29, - one_past_last_delay_step = 33) - - diff_errors = diff_errors_rising + diff_errors_falling[1:] - - else: - diff_errors = measure_all_delays(station, - clock_mhz = options.clock_mhz, - edge = options.edge, - repeat = options.repeat) - diff_errors += [[0]*len(diff_errors[0])]*4 - diff_errors += diff_errors - - - - # Report - logging.info('*** Failure report %s***\n%s', - station, sync_failure_report(diff_errors)) - - # Determine new optimum - new_delays = find_optimal_delays(diff_errors) - if previous_pps_delays: - logging.info('Old delays:\n%s', previous_pps_delays) - old_delays = parse_pps_delays(previous_pps_delays) - else: - old_delays = None - - pps_delays = pps_delays_conf(station, start_date, new_delays) - logging.info('New delays:\n%s', pps_delays) - - if old_delays: - logging.info('Difference new - old:\n%r', - [p_new - p_old - for p_new, p_old - in zip(new_delays, old_delays)]) - - if options.write_conf_file: - # Throws IOError or OSError if writing failed - write_pps_delays_conf(conf_etc_name, conf_temp_name, pps_delays) - else: - logging.info('New delays will NOT be written to %s', conf_etc_name) - else: - logging.info(' *** Skipping measurements! ***') - + for clock_mhz in sorted(options.clock_mhz): + pps_tune_for_clock(clock_mhz, station, start_date, options) log_cabinet_climate(station) - # We do not get here in case of exceptions. It is safe to - # remove the backup now. - if os.path.exists(backup_name): - logging.info('Removing backup %s', backup_name) - os.remove(backup_name) except SystemExit: logging.error('Caught SystemExit: Aborting NOW') @@ -2735,12 +2800,14 @@ def pps_tune_main(argv): if initial_swlevel != None: if initial_swlevel >= 2: - restart_rsp_driver(lofar_log_dir = options.log_dir) + # restart_rsp_driver(lofar_log_dir = options.log_dir) + # set clock to default value + set_clock_frequency_mhz(200) clock_mhz = wait_for_clocks_to_lock() logging.info('Clocks locked to %d MHz', clock_mhz) for swlevel_step in range(2, initial_swlevel+1): swlevel(swlevel_step) - start_tbb_sh = os.path.join('/home', 'lofarsys', 'startTBB.sh') + start_tbb_sh = os.path.join('/opt', 'lofar', 'sbin', 'startTBB.sh') if os.path.exists(start_tbb_sh): logging.info('Starting TBBs...') start_tbb_output = check_output(start_tbb_sh, timeout_s=60.0) @@ -2761,12 +2828,12 @@ WARNING: ==============================================================''', remove_sig_term_handlers() logging.info('Execution time %8.3f seconds', end_date - start_date) return exit_status - - + + ######################## # M A I N # ######################## diff --git a/LCU/checkhardware/lib/data_lib.py b/LCU/checkhardware/lib/data_lib.py index e70e3f7ee07f8ce9945bd1b20836fe550e26341a..9a802045a634b0576165b8d6e62e31bc3cc744e1 100644 --- a/LCU/checkhardware/lib/data_lib.py +++ b/LCU/checkhardware/lib/data_lib.py @@ -173,11 +173,15 @@ class cRCUdata: def getSubbands(self, rcu): return (self.getMaskedData()[int(rcu),:,:].mean(axis=0)) - def getSubbandX(self): - return (self.getMaskedData()[0::2,:,self.testSubband_Y].mean(axis=1)) + def getSubbandX(self, subband=None): + if subband is None: + return (self.getMaskedData()[0::2,:,self.testSubband_Y].mean(axis=1)) + return (self.getMaskedData()[0::2,:,subband].mean(axis=1)) - def getSubbandY(self): - return (self.getMaskedData()[1::2,:,self.testSubband_Y].mean(axis=1)) + def getSubbandY(self, subband=None): + if subband is None: + return (self.getMaskedData()[1::2,:,self.testSubband_Y].mean(axis=1)) + return (self.getMaskedData()[1::2,:,subband].mean(axis=1)) def getAll(self, pol='XY'): if pol in ('XY', 'xy'): diff --git a/LCU/checkhardware/lib/lofar_lib.py b/LCU/checkhardware/lib/lofar_lib.py index 23c2061d11e2e2c565c1c9096333a90dd3f98e67..28f503c8cc933bb091b9ca6e5ee2ae137dc2e60e 100644 --- a/LCU/checkhardware/lib/lofar_lib.py +++ b/LCU/checkhardware/lib/lofar_lib.py @@ -26,7 +26,7 @@ StationType = dict( CS=1, RS=2, IS=3 ) logger = None rcumode = -1 -active_delay_str = ('2,'*16)[:-1] +active_delay_str = ('555,'*16)[:-1] def init_lofar_lib(): diff --git a/LCU/checkhardware/lib/test_db.py b/LCU/checkhardware/lib/test_db.py index 50b50b87a182baaec1c461d00d87e63abb59cb10..ec2ee679766728e2701ba7fd0e72e44253261b56 100644 --- a/LCU/checkhardware/lib/test_db.py +++ b/LCU/checkhardware/lib/test_db.py @@ -210,7 +210,7 @@ class cDB: log.addLine("%s,SPU,%03d,VOLTAGE%s" %(date, spu.nr, valstr)) if not spu.temp_ok: - log.addLine("%s,SPU,%03d,TEMPERATURE,PCB=%3.1f" %\ + log.addLine("%s,SPU,%03d,TEMPERATURE,PCB=%2.0f" %\ (date, spu.nr, spu.temp)) for rsp in self.rsp: @@ -219,10 +219,10 @@ class cDB: log.addLine("%s,RSP,%03d,VERSION,BP=%s,AP=%s" %\ (date, rsp.nr, rsp.bp_version, rsp.ap_version)) if not rsp.voltage_ok: - log.addLine("%s,RSP,%03d,VOLTAGE,1.2V=%3.1f,2.5V=%3.1f,3.3V=%3.1f" %\ + log.addLine("%s,RSP,%03d,VOLTAGE,1.2V=%3.2f,2.5V=%3.2f,3.3V=%3.2f" %\ (date,rsp.nr, rsp.voltage1_2, rsp.voltage2_5, rsp.voltage3_3)) if not rsp.temp_ok: - log.addLine("%s,RSP,%03d,TEMPERATURE,PCB=%3.1f,BP=%3.1f,AP0=%3.1f,AP1=%3.1f,AP2=%3.1f,AP3=%3.1f" %\ + log.addLine("%s,RSP,%03d,TEMPERATURE,PCB=%2.0f,BP=%2.0f,AP0=%2.0f,AP1=%2.0f,AP2=%2.0f,AP3=%2.0f" %\ (date,rsp.nr, rsp.pcb_temp, rsp.bp_temp, rsp.ap0_temp, rsp.ap1_temp, rsp.ap2_temp, rsp.ap3_temp)) if self.tbbdriver_version != "ok" or self.tbbctl_version != "ok": diff --git a/LCU/checkhardware/lib/test_lib.py b/LCU/checkhardware/lib/test_lib.py index ded5dc03e044bf1bc8cf6ae70d4917f9c1cedd86..7a953b02802adbdcc6b3744e78257bd22c612742 100644 --- a/LCU/checkhardware/lib/test_lib.py +++ b/LCU/checkhardware/lib/test_lib.py @@ -25,16 +25,59 @@ def init_test_lib(): class cSPU: def __init__(self, db): self.db = db + self.board_info_str = [] + self.board_info_val = [-1, 0.0, 0.0, 0.0, 0.0, 0] + + def extract_board_info(self, line): + li = line.split("|") + if not li[0].strip().isdigit(): + return False + + self.board_info_str = [i.strip() for i in li] + + if li[0].strip().isdigit(): + self.board_info_val[0] = int(li[0].strip()) + else: + self.board_info_val[0] = -1 + + for i in xrange(1, 5, 1): + if li[i].strip().replace('.','').isdigit(): + self.board_info_val[i] = float(li[i].strip()) + else: + self.board_info_val[i] = 0.0 + + if li[5].strip().isdigit(): + self.board_info_val[5] = int(li[5].strip()) + else: + self.board_info_val[5] = 0 + return True + def checkStatus(self): """ check PSU if boards idle and fully loaded - """ + """ + # in future get all settings from configuration file + max_3_3 = 3.4 + min_3_3 = 3.1 + max_drop_3_3 = 0.3 + + max_5_0 = 5.0 + min_5_0 = 4.5 + max_drop_5_0 = 0.3 + + max_8_0 = 8.0 + min_8_0 = 7.4 + max_drop_8_0 = 0.3 + + max_48 = 48.0 + min_48 = 43.0 + max_drop_48 = 2.0 + logger.info("=== SPU status check ===") if not checkActiveRSPDriver(): logger.warn("RSPDriver down, skip test") return - # [0] = no-load, [1] = full-load noload = [] fullload_3 = [] @@ -49,13 +92,13 @@ class cSPU: else: infolines = answer.splitlines() for line in infolines: - li = line.split("|") - if li[0].strip().isdigit(): - sr = int(li[0].strip()) - noload.append([sr, float(li[1]), float(li[2]), float(li[3]), float(li[4])]) - self.db.spu[sr].temp = float(li[5]) - logger.debug("Subrack %d voltages: rcu=%3.1f lba=%3.1f hba=%3.1f spu=%3.1f temp: %3.1f" %\ - (sr, float(li[1]), float(li[2]), float(li[3]), float(li[4]), self.db.spu[sr].temp)) + if self.extract_board_info(line): + bi = self.board_info_val + noload.append([bi[0], bi[1], bi[2], bi[3], bi[4]]) + self.db.spu[bi[0]].temp = bi[5] + bi = self.board_info_str + logger.debug("Subrack %s voltages: rcu=%s lba=%s hba=%s spu=%s temp: %s" % ( + bi[0], bi[1], bi[2], bi[3], bi[4], bi[5])) # turn on all hbas logger.debug("check spu full load mode 3") @@ -63,12 +106,12 @@ class cSPU: answer = rspctl('--spustatus') infolines = answer.splitlines() for line in infolines: - li = line.split("|") - if li[0].strip().isdigit(): - sr = int(li[0].strip()) - fullload_3.append([sr, float(li[1]), float(li[2]), float(li[3]), float(li[4])]) - logger.debug("Subrack %d voltages: rcu=%3.1f lba=%3.1f hba=%3.1f spu=%3.1f temp: %3.1f" %\ - (sr, float(li[1]), float(li[2]), float(li[3]), float(li[4]), self.db.spu[sr].temp)) + if self.extract_board_info(line): + bi = self.board_info_val + fullload_3.append([bi[0], bi[1], bi[2], bi[3], bi[4]]) + bi = self.board_info_str + logger.debug("Subrack %s voltages: rcu=%s lba=%s hba=%s spu=%s temp: %s" % ( + bi[0], bi[1], bi[2], bi[3], bi[4], bi[5])) # turn on all hbas logger.debug("check spu full load mode 5") @@ -76,32 +119,49 @@ class cSPU: answer = rspctl('--spustatus') infolines = answer.splitlines() for line in infolines: - li = line.split("|") - if li[0].strip().isdigit(): - sr = int(li[0].strip()) - fullload_5.append([sr, float(li[1]), float(li[2]), float(li[3]), float(li[4])]) - logger.debug("Subrack %d voltages: rcu=%3.1f lba=%3.1f hba=%3.1f spu=%3.1f temp: %3.1f" %\ - (sr, float(li[1]), float(li[2]), float(li[3]), float(li[4]), self.db.spu[sr].temp)) + if self.extract_board_info(line): + bi = self.board_info_val + fullload_5.append([bi[0], bi[1], bi[2], bi[3], bi[4]]) + bi = self.board_info_str + logger.debug("Subrack %s voltages: rcu=%s lba=%s hba=%s spu=%s temp: %s" % ( + bi[0], bi[1], bi[2], bi[3], bi[4], bi[5])) for sr in range(self.db.nr_spu): # calculate mean of noload, fullload_3, fullload_5 self.db.spu[sr].rcu_5_0V = (noload[sr][1] + fullload_3[sr][1] + fullload_5[sr][1]) / 3.0 - self.db.spu[sr].lba_8_0V = (noload[sr][2] + fullload_3[sr][2] + fullload_5[sr][2]) / 3.0 - self.db.spu[sr].hba_48V = (noload[sr][3] + fullload_3[sr][3] + fullload_5[sr][3]) / 3.0 + self.db.spu[sr].lba_8_0V = fullload_3[sr][2] + self.db.spu[sr].hba_48V = fullload_5[sr][3] self.db.spu[sr].spu_3_3V = (noload[sr][4] + fullload_3[sr][4] + fullload_5[sr][4]) / 3.0 - if (abs(4.7 - self.db.spu[sr].rcu_5_0V) > 0.2) or ((noload[sr][1] - fullload_3[sr][1]) > 0.3): - self.db.spu[sr].rcu_ok = 0 + if (self.db.spu[sr].temp > 35.0): + self.db.spu[sr].temp_ok = 0 - if (abs(7.6 - self.db.spu[sr].lba_8_0V) > 0.2) or ((noload[sr][2] - fullload_3[sr][2]) > 0.3): - self.db.spu[sr].lba_ok = 0 - # if voltage drop is too high - if (abs(45.75 - self.db.spu[sr].hba_48V) > 0.75) or ((noload[sr][3] - fullload_5[sr][3]) > 1.0): - self.db.spu[sr].hba_ok = 0 + if (not (min_5_0 <= noload[sr][1] <= max_5_0) + or not (min_5_0 < fullload_3[sr][1] <= max_5_0) + or not (min_5_0 <= fullload_5[sr][1] <= max_5_0) + or (noload[sr][1] - fullload_3[sr][1]) > max_drop_5_0): + self.db.spu[sr].rcu_ok = 0 + logger.info("SPU voltage 5.0V out of range") + + if (not (min_8_0 <= noload[sr][2] <= max_8_0) + or not (min_8_0 <= fullload_3[sr][2] <= max_8_0) + or (noload[sr][2] - fullload_3[sr][2]) > max_drop_8_0): + self.db.spu[sr].lba_ok = 0 + logger.info("SPU voltage 8.0V out of range") - if (abs(3.3 - self.db.spu[sr].spu_3_3V) > 0.2) or ((noload[sr][3] - fullload_3[sr][3]) > 0.3): - self.db.spu[sr].spu_ok = 0 + if (not (min_48 <= noload[sr][3] <= max_48) + or not (min_48 <= fullload_5[sr][3] <= max_48) + or (noload[sr][3] - fullload_5[sr][3]) > max_drop_48): + self.db.spu[sr].hba_ok = 0 + logger.info("SPU voltage 48V out of range") + if (not (min_3_3 <= noload[sr][4] <= max_3_3) + or not (min_3_3 <= fullload_3[sr][4] <= max_3_3) + or not (min_3_3 <= fullload_5[sr][4] <= max_3_3) + or (noload[sr][4] - fullload_5[sr][4]) > max_drop_3_3): + self.db.spu[sr].spu_ok = 0 + logger.info("SPU voltage 3.3V out of range") + logger.info("=== Done SPU check ===") self.db.addTestDone('SPU') return @@ -235,6 +295,15 @@ class cRSP: return (images_ok) def checkBoard(self): + max_1_2 = 1.3 + min_1_2 = 1.1 + + max_2_5 = 2.6 + min_2_5 = 2.4 + + max_3_3 = 3.4 + min_3_3 = 3.1 + ok = True logger.info("=== RSP Board check ===") if not checkActiveRSPDriver(): @@ -247,19 +316,19 @@ class cRSP: p2 = answer.find("\n", p1) d = [float(i.split(":")[1].strip()) for i in answer[p1+7:p2].split(',')] if len(d) == 3: - logger.debug("RSP board %d: [1.2V]=%3.1fV, [2.5V]=%3.1fV, [3.3V]=%3.1fV" %(rsp.nr, d[0], d[1], d[2])) + logger.debug("RSP board %d: [1.2V]=%3.2fV, [2.5V]=%3.2fV, [3.3V]=%3.2fV" %(rsp.nr, d[0], d[1], d[2])) rsp.voltage1_2 = d[0] - if d[0] < 1.1 or d[0] > 1.3: + if not (min_1_2 <= d[0] <= max_1_2): rsp.voltage_ok = 0 - logger.info("RSP board %d [1.2V]=%3.1fV" %(rsp.nr, d[0])) + logger.info("RSP board %d [1.2V]=%3.2fV" %(rsp.nr, d[0])) rsp.voltage2_5 = d[1] - if d[1] < 2.4 or d[1] > 2.6: + if not (min_2_5 <= d[1] <= max_2_5): rsp.voltage_ok = 0 - logger.info("RSP board %d [2.5V]=%3.1fV" %(rsp.nr, d[1])) + logger.info("RSP board %d [2.5V]=%3.2fV" %(rsp.nr, d[1])) rsp.voltage3_3 = d[2] - if d[2] < 3.2 or d[2] > 3.4: + if not (min_3_3 <= d[2] <= max_3_3): rsp.voltage_ok = 0 - logger.info("RSP board %d [3.3V]=%3.1fV" %(rsp.nr, d[2])) + logger.info("RSP board %d [3.3V]=%3.2fV" %(rsp.nr, d[2])) for rsp in self.db.rsp: p1 = answer.find("RSP[%2d]" %(rsp.nr), p2) @@ -272,29 +341,29 @@ class cRSP: rsp.pcb_temp = d[0] if d[0] > 45.0: rsp.temp_ok = 0 - logger.info("RSP board %d [pcb_temp]=%3.1f" %(rsp.nr, d[0])) + logger.info("RSP board %d [pcb_temp]=%2.0f" %(rsp.nr, d[0])) rsp.bp_temp = d[1] if d[1] > 75.0: rsp.temp_ok = 0 - logger.info("RSP board %d [bp_temp]=%3.1f" %(rsp.nr, d[1])) + logger.info("RSP board %d [bp_temp]=%2.0f" %(rsp.nr, d[1])) rsp.ap0_temp = d[2] if d[2] > 75.0: rsp.temp_ok = 0 - logger.info("RSP board %d [ap0_temp]=%3.1f" %(rsp.nr, d[2])) + logger.info("RSP board %d [ap0_temp]=%2.0f" %(rsp.nr, d[2])) rsp.ap1_temp = d[3] if d[3] > 75.0: rsp.temp_ok = 0 - logger.info("RSP board %d [ap1_temp]=%3.1f" %(rsp.nr, d[3])) + logger.info("RSP board %d [ap1_temp]=%2.0f" %(rsp.nr, d[3])) rsp.ap2_temp = d[4] if d[4] > 75.0: rsp.temp_ok = 0 - logger.info("RSP board %d [ap2_temp]=%3.1f" %(rsp.nr, d[4])) + logger.info("RSP board %d [ap2_temp]=%2.0f" %(rsp.nr, d[4])) rsp.ap3_temp = d[5] if d[5] > 75.0: rsp.temp_ok = 0 - logger.info("RSP board %d [ap3_temp]=%3.1f" %(rsp.nr, d[5])) + logger.info("RSP board %d [ap3_temp]=%2.0f" %(rsp.nr, d[5])) logger.info("=== Done RSP Board check ===") - self.db.addTestDone('RBV') + self.db.addTestDone('RBC') return (ok) #### end of cRSP class #### @@ -896,7 +965,7 @@ class cHBA: if n_tile_err < (self.db.nr_hba / 2): for tile_nr in range(self.db.nr_hba): for elem_nr in range(n_elements): - if no_modem[tile_nr][elem_nr] > 3: # more than 3 ctrl values went wrong + if no_modem[tile_nr][elem_nr] >= 2: # 2 or more ctrl values went wrong self.db.hba.tile[tile_nr].element[elem_nr].no_modem = 1 n_tile_err = 0 @@ -911,7 +980,7 @@ class cHBA: if n_tile_err < (self.db.nr_hba / 2): for tile_nr in range(self.db.nr_hba): for elem_nr in range(n_elements): - if no_modem[tile_nr][elem_nr] > 3: # more than 3 ctrl values went wrong + if no_modem[tile_nr][elem_nr] >= 2: # 2 or more ctrl values went wrong self.db.hba.tile[tile_nr].element[elem_nr].modem_error = 1 self.hba.modem_check_done = 1 @@ -1173,6 +1242,7 @@ class cHBA: self.set_mode(mode) # check twice + # 2 ... check if all elements are turned off, normal value between 60.0 and 62.0 # 128 ... # 253 ... for tile in self.hba.tile: @@ -1180,7 +1250,7 @@ class cHBA: logger.info("skip signal test for tile %d, RCUs turned off" %(tile.nr)) logger.info("start test") - for ctrl in ('128,', '253,'): + for ctrl in ('2,', '128,', '253,'): if self.db.checkEndTime(duration=20.0) == False: logger.warn("check stopped, end time reached") return @@ -1197,16 +1267,29 @@ class cHBA: self.rcudata.searchTestSignal(subband=subband, minsignal=min_signal, maxsignal=150.0) logger.info("HBA, X used test subband=%d avg_signal=%3.1f" %(self.rcudata.testSubband_X, self.rcudata.testSignal_X)) logger.info("HBA, Y used test subband=%d avg_signal=%3.1f" %(self.rcudata.testSubband_Y, self.rcudata.testSignal_Y)) - + + if ctrl == '2,': + ssdataX = self.rcudata.getSubbandX(subband=subband) + ssdataY = self.rcudata.getSubbandY(subband=subband) + else: + ssdataX = self.rcudata.getSubbandX() + ssdataY = self.rcudata.getSubbandY() + + for tile in self.hba.tile: + if tile.x.rcu_off or tile.y.rcu_off: + continue + logger.debug("HBA Tile=%d : X=%3.1fdB Y=%3.1fdB" %\ + (tile.nr, ssdataX[tile.nr], ssdataY[tile.nr])) + if ctrl == '2,': + continue + if (self.rcudata.testSignal_X != -1) and (self.rcudata.testSignal_Y != -1): self.hba.ref_signal_x[ctrl_nr] = self.rcudata.testSignal_X self.hba.ref_signal_y[ctrl_nr] = self.rcudata.testSignal_Y self.hba.test_subband_x[ctrl_nr] = self.rcudata.testSubband_X self.hba.test_subband_y[ctrl_nr] = self.rcudata.testSubband_Y - - ssdataX = self.rcudata.getSubbandX() - ssdataY = self.rcudata.getSubbandY() + avgX = self.rcudata.testSignal_X avgY = self.rcudata.testSignal_Y minX = ssdataX.min() @@ -1223,9 +1306,6 @@ class cHBA: if tile.x.rcu_off or tile.y.rcu_off: continue - logger.debug("HBA Tile=%d : X=%3.1fdB Y=%3.1fdB" %\ - (tile.nr, ssdataX[tile.nr], ssdataY[tile.nr])) - tile.x.test_signal[ctrl_nr] = ssdataX[tile.nr] tile.y.test_signal[ctrl_nr] = ssdataY[tile.nr] diff --git a/LCU/checkhardware/showTestResult.py b/LCU/checkhardware/showTestResult.py index 02430b131a111f08864e8e5b373a8a849e80a11b..5687e12fe428379adde6efe56defa67a0fc1aaed 100755 --- a/LCU/checkhardware/showTestResult.py +++ b/LCU/checkhardware/showTestResult.py @@ -327,10 +327,10 @@ def print_rsp(partnumber, msg, keyvalue): print " Board %2d wrong firmware version: AP=%s BP=%s" % ( partnumber, keyvalue.get('AP'), keyvalue.get('BP')) if msg == 'VOLTAGE': - print " Board %2d wrong voltage: 1.2V=%3.1f 2.5V=%3.1f 3.3V=%3.1f" % ( + print " Board %2d wrong voltage: 1.2V=%s 2.5V=%s 3.3V=%s" % ( partnumber, keyvalue.get('1.2V'), keyvalue.get('2.5V'), keyvalue.get('3.3V')) if msg == 'TEMPERATURE': - print " Board %2d high temperature: PCB=%3.1f BP=%3.1f AP0=%3.1f AP1=%3.1f AP2=%3.1f AP3=%3.1f" % ( + print " Board %2d high temperature: PCB=%s BP=%s AP0=%s AP1=%s AP2=%s AP3=%s" % ( partnumber, keyvalue.get('PCB'), keyvalue.get('BP'), keyvalue.get('AP0'), keyvalue.get('AP1'), keyvalue.get('AP2'), keyvalue.get('AP3')) return diff --git a/LTA/LTAIngest/ingest_config.py.in b/LTA/LTAIngest/ingest_config.py.in index 1388c7d2d957169834a345b646b846323b26c41c..e39b43b8a6ed4822dda4f8a9e8aad20c0a8b9bef 100644 --- a/LTA/LTAIngest/ingest_config.py.in +++ b/LTA/LTAIngest/ingest_config.py.in @@ -150,8 +150,8 @@ if master: raise # Used by Master to send error and (re) start messages -mailCommand = '-c schaap@astron.nl,holties@astron.nl,wjvriend@astro.rug.nl,observer@astron.nl sciencesupport@astron.nl' +mailCommand = '-c schaap@astron.nl,holties@astron.nl,wjvriend@astro.rug.nl,observer@astron.nl,sciencesupport@astron.nl softwaresupport@astron.nl' # Used by Slave to send SendStatus warnings -mailSlCommand = '-c holties@astron.nl,wjvriend@astro.rug.nl schaap@astron.nl' +mailSlCommand = '-c holties@astron.nl,wjvriend@astro.rug.nl,schaap@astron.nl softwaresupport@astron.nl' logger.info("Configuration complete") diff --git a/LTA/LTAIngest/job_group.py.in b/LTA/LTAIngest/job_group.py.in index 1a04c4f8cffe9330e2d960b36f6af23d6bb386f9..3bf0b6d4fe2c9c295c1271ffe9107dcd5ece7d45 100755 --- a/LTA/LTAIngest/job_group.py.in +++ b/LTA/LTAIngest/job_group.py.in @@ -153,11 +153,14 @@ class job_group(): c = db.cursor() c.execute("SELECT * from export_jobs_advanced2 where export_mom2id = %i;" % (self.Id)) db_job = c.fetchone() - ## id, export_mom2id, exportname, starter, starttime, description, status, updatetime, projectname, location - #'561859', '577442', 'LOTAAS-2015-08-18', 'schaap', '2015-08-25 08:02:44', 'Export to LTA', 'finished', '2015-08-25 12:21:36', 'LC4_030', 'Lofar Storage (SARA)' - self.job_info = {'id': db_job[1], 'start_time': db_job[4], 'update_time': db_job[7], - 'user': db_job[3].rjust(8), 'status': db_job[6], 'name': db_job[2].rjust(9), - 'project': db_job[8], 'ltalocation': db_job[9]} + + if db_job: + self.job_info = {'id': db_job[1], 'start_time': db_job[4], 'update_time': db_job[7], + 'user': db_job[3].rjust(8), 'status': db_job[6], 'name': db_job[2].rjust(9), + 'project': db_job[8], 'ltalocation': db_job[9]} + else: + self.logger.warning('Could not find result for exportjob %i in momdb' % str(self.Id)) + except Exception as e: self.logger.warning('Caught an exception trying to talk to the Mom database: %s' % str(e)) else: diff --git a/LTA/LTAIngest/master.py b/LTA/LTAIngest/master.py index 8682deea9aa21c01dd38bcca53aeacf38d660835..4790a96853bf7d3c54b57798263356bf77a9dfd9 100755 --- a/LTA/LTAIngest/master.py +++ b/LTA/LTAIngest/master.py @@ -300,7 +300,8 @@ class startup(Process): def run(self): existingJobs = os.listdir(self.jobsdir) - existingJobs.sort() + #sort jobs by creation time to keep the order of the queue more or less intact + existingJobs.sort(key=lambda s: os.path.getmtime(os.path.join(self.jobsdir, s))) self.logger.info('Found %d existing jobs' % len(existingJobs)) for e in existingJobs: self.jobs.put(e) diff --git a/MAC/APL/APLCommon/src/swlevel b/MAC/APL/APLCommon/src/swlevel index ac386a20a0d277b954d47e38ca42f48da2de0e7c..6ec96f8081ef0e2577355bb481e374f08c0f253d 100755 --- a/MAC/APL/APLCommon/src/swlevel +++ b/MAC/APL/APLCommon/src/swlevel @@ -184,6 +184,7 @@ if [ -e $BINDIR/tbbctl ]; then # Introduce a timeout of 60 sec for images to initialize echo "Waiting for TBB images to be initialized" timeout=60 + sleep 10 for (( s=0 ; s<timeout; s++ )) do tbb_respons=`tbbctl --version` diff --git a/MAC/APL/APLCommon/src/swlevel.conf b/MAC/APL/APLCommon/src/swlevel.conf index beebd757a9c254fde3629565dd710171fcbd948c..7759848268e3298ea1705f847e689c86d1709ec6 100644 --- a/MAC/APL/APLCommon/src/swlevel.conf +++ b/MAC/APL/APLCommon/src/swlevel.conf @@ -13,6 +13,7 @@ 1:u:d:::SASGateway 1:u:d:::PVSSGateway 1:u:d:::FeedbackService +1:u:d:::QPIDWebserverJSON # 2:u:d:r::_EPAStub 2:u:d:r::RSPDriver diff --git a/MAC/APL/CURTDBDaemons/src/SoftwareMonitor/SoftwareMonitor.conf b/MAC/APL/CURTDBDaemons/src/SoftwareMonitor/SoftwareMonitor.conf index 65a5a4d8e2c5541c5b55073423bb131f02c6014b..ec4c6b2491cdccdbc6522874ef7d37b70c4ad523 100644 --- a/MAC/APL/CURTDBDaemons/src/SoftwareMonitor/SoftwareMonitor.conf +++ b/MAC/APL/CURTDBDaemons/src/SoftwareMonitor/SoftwareMonitor.conf @@ -14,7 +14,7 @@ suspisciousThreshold = 2 brokenThreshold = 4 # List of programs that the SoftwareMonitor may restart (by calling swlevel) -restartablePrograms = [MACScheduler,ServiceBroker,SASGateway,MessageRouter,FeedbackService,PVSSGateway,CTStartDaemon,StationControl] +restartablePrograms = [MACScheduler,ServiceBroker,SASGateway,MessageRouter,FeedbackService,PVSSGateway,CTStartDaemon,StationControl,BeamServer,CalServer] # Restart of programs are done every poll during suspicious-mode. When program # reaches the broken state restarting is done less often. diff --git a/MAC/APL/PIC/RSP_Driver/src/BMRead.cc b/MAC/APL/PIC/RSP_Driver/src/BMRead.cc index 1791a1642aa35e69d119781ec32676c11a16d5c3..13873be62d52026340a78db5f94aa459f405389e 100644 --- a/MAC/APL/PIC/RSP_Driver/src/BMRead.cc +++ b/MAC/APL/PIC/RSP_Driver/src/BMRead.cc @@ -43,6 +43,7 @@ BMRead::BMRead(GCFPortInterface& board_port, int board_id) : SyncAction(board_port, board_id, 1) { memset(&itsHdr, 0, sizeof(MEPHeader)); + //doAtInit(); } BMRead::~BMRead() @@ -86,8 +87,7 @@ GCFEvent::TResult BMRead::handleack(GCFEvent& event, GCFPortInterface& /*port*/) // unpack bm message EPARsrBeammodeEvent bm(event); - LOG_DEBUG_STR(formatString("BM supported = %d", bm.beammode.bm_max)); - LOG_DEBUG_STR(formatString("BM selected = %d", bm.beammode.bm_select)); + LOG_DEBUG_STR(formatString("BM supported = %d, selected = %d", bm.beammode.bm_max, bm.beammode.bm_select)); if (!bm.hdr.isValidAck(itsHdr)) { diff --git a/MAC/APL/PIC/RSP_Driver/src/CableAttenuation.cc b/MAC/APL/PIC/RSP_Driver/src/CableAttenuation.cc index b66c946501821634ac661bc03cd699abaa8262dc..81feb921d12f9677372609b5142b5023fc5b59d4 100644 --- a/MAC/APL/PIC/RSP_Driver/src/CableAttenuation.cc +++ b/MAC/APL/PIC/RSP_Driver/src/CableAttenuation.cc @@ -59,8 +59,7 @@ CableAttenuation::CableAttenuation(const string& filename) // syntax: rcumode <serie of cable-lengths vector<string> column; boost::replace_all(line, "\t", " "); - boost::replace_all(line, " ", " "); - boost::split(column, line, boost::is_any_of(" ")); + boost::split(column, line, boost::is_any_of(" "),boost::token_compress_on); // First line (with rcumode 0) contains the cable lengths if (prevRcuMode == -1) { @@ -82,13 +81,13 @@ CableAttenuation::CableAttenuation(const string& filename) else { // not the first line, do some sanity checks before storing the atts. int rcuMode = strToInt(column[0]); - ASSERTSTR(rcuMode == prevRcuMode + 1, "Expected line with rcumode " << prevRcuMode + 1); - ASSERTSTR((int)column.size() == nrOfColumns, "Expected " << nrOfColumns << " fields on line: " << line); + ASSERTSTR(rcuMode == prevRcuMode + 1, "Expected line with rcumode " << prevRcuMode + 1 << " instead of " << rcuMode); + ASSERTSTR((int)column.size() == nrOfColumns, "Expected " << nrOfColumns << " fields on line: " << line << " ; found " << (int)column.size() << " fields"); ASSERTSTR(rcuMode <= MAX_RCU_MODE, "RCUmode " << rcuMode << " not in range [0.." << MAX_RCU_MODE << "]"); // copy values to internal array. - for (int colNr = 1; colNr < nrOfColumns; colNr++) { + for (int colNr = 1; colNr < nrOfColumns; colNr++) { itsAtts(prevRcuMode + 1, colNr - 1) = strToFloat(column[colNr]); } } @@ -140,7 +139,13 @@ float CableAttenuation::getAttenuation(int cableLength, int rcuMode) const { ASSERTSTR(rcuMode >= 0 && rcuMode <= MAX_RCU_MODE, "RCUmode " << rcuMode << " not in range [0.." << MAX_RCU_MODE << "]"); - return (itsAtts(rcuMode, cableLen2Index(cableLength))); + float Attenuation; + if (cableLength == 0){ + Attenuation = 0; + } else { + Attenuation = itsAtts(rcuMode, cableLen2Index(cableLength)); + } + return Attenuation; } } // namespace LOFAR diff --git a/MAC/APL/PIC/RSP_Driver/src/CableAttenuation.h b/MAC/APL/PIC/RSP_Driver/src/CableAttenuation.h index ba0da668399699505451a2e7a0bd50e7b0e78910..f59f489a5e960a30beccc9d73bc49c0e28795d55 100644 --- a/MAC/APL/PIC/RSP_Driver/src/CableAttenuation.h +++ b/MAC/APL/PIC/RSP_Driver/src/CableAttenuation.h @@ -1,4 +1,4 @@ -//# CableAttenuation.h: Interface class for the Attenuation.conf file +//# CableAttenuation.h: Interface class for the CableAttenuation.conf file //# //# Copyright (C) 2009 //# ASTRON (Netherlands Foundation for Research in Astronomy) @@ -24,7 +24,7 @@ #define LOFAR_APPLCOMMON_CABLEATTENUATION_H // \file -// Interface class for the Attenuation.conf file. +// Interface class for the CableAttenuation.conf file. //# Never #include <config.h> or #include <lofar_config.h> in a header file! @@ -45,7 +45,7 @@ namespace LOFAR { //# Forward Declarations //class forward; -// The CableAttenuation class is an interface for the Attenuation.conf file. +// The CableAttenuation class is an interface for CableAttenuation.conf file. //It reads in the file and stores the values in its datamembers. Defines some //useful functions for accessing the data. @@ -54,7 +54,7 @@ class CableAttenuation public: CableAttenuation(const string& filename); ~CableAttenuation(); - + // Returns the attenuation in dB for the given cable length and rcumode. float getAttenuation(int cableLength, int rcuMode) const; diff --git a/MAC/APL/PIC/RSP_Driver/src/Cache.cc b/MAC/APL/PIC/RSP_Driver/src/Cache.cc index 4f3bb489a8447b2f832dc8ef1f7b11f7737b708c..41f457b0e99f5adb322c582d319bddb067c9b1f1 100644 --- a/MAC/APL/PIC/RSP_Driver/src/Cache.cc +++ b/MAC/APL/PIC/RSP_Driver/src/Cache.cc @@ -42,6 +42,8 @@ using namespace RSP; using namespace RSP_Protocol; using namespace RTC; +#define MAX_RCU_MODE 7 + // default settings // sdo_ss=295:330,331:366,367:402,403:438 blitz::Array<uint16, 2> str2blitz(const char* str, int max) @@ -170,6 +172,8 @@ CacheBuffer::CacheBuffer(Cache* cache) : m_cache(cache) LOG_DEBUG_STR("itsSDOSelection.size() =" << itsSDOSelection.subbands().size() * sizeof(uint16)); LOG_DEBUG_STR("itsSDOBitsPerSample.size() =" << sizeof(itsSDOBitsPerSample)); LOG_DEBUG_STR("itsPPSsyncDelays.size() =" << sizeof(itsPPSsyncDelays)); + LOG_DEBUG_STR("itsFixedAttenuations.size() =" << sizeof(itsFixedAttenuations)); + LOG_DEBUG_STR("itsAttenuationStepSize.size() =" << sizeof(itsAttenuationStepSize)); LOG_INFO_STR(formatString("CacheBuffer size = %d bytes", m_beamletweights().size() + m_subbandselection.crosslets().size() @@ -199,7 +203,9 @@ CacheBuffer::CacheBuffer(Cache* cache) : m_cache(cache) + itsSDOModeInfo().size() + itsSDOSelection.subbands().size() + sizeof(itsBitsPerSample) - + sizeof(itsPPSsyncDelays))); + + sizeof(itsPPSsyncDelays) + + sizeof(itsFixedAttenuations) + + sizeof(itsAttenuationStepSize))); } CacheBuffer::~CacheBuffer() @@ -442,6 +448,19 @@ void CacheBuffer::reset(void) } // for each bank } readPPSdelaySettings(); + + itsAttenuationStepSize = 0.25; + try { itsAttenuationStepSize = GET_CONFIG("RSPDriver.ATT_STEP_SIZE", f); } + catch (APSException&) { LOG_INFO_STR("RSPDriver.ATT_STEP_SIZE not found"); } + char key[40]; + itsFixedAttenuations.resize(MAX_RCU_MODE + 1); + itsFixedAttenuations = 0.0; + for (int rcumode = 1; rcumode <= MAX_RCU_MODE; rcumode++) { + snprintf(key, 40, "RSPDriver.FIXED_ATT_MODE_%d", rcumode); + itsFixedAttenuations(rcumode) = 0.0; + try { itsFixedAttenuations(rcumode) = GET_CONFIG(key, f); } + catch (APSException&) { LOG_INFO_STR(formatString("RSPDriver.FIXED_ATT_MODE_%d not found", rcumode)); } + } } diff --git a/MAC/APL/PIC/RSP_Driver/src/Cache.h b/MAC/APL/PIC/RSP_Driver/src/Cache.h index aabde1c9c79afcf304ec13458ff3bf7b8e55bec1..a2242f44189b893e3ac216ad50f196262571c1ad 100644 --- a/MAC/APL/PIC/RSP_Driver/src/Cache.h +++ b/MAC/APL/PIC/RSP_Driver/src/Cache.h @@ -121,6 +121,9 @@ public: bool getSequencerRequest() { return itsSequencerRequest; } void setSequencerRequest(bool state) { itsSequencerRequest = state; } + float getFixedAttenuation(int mode) { return itsFixedAttenuations(mode); } + float getAttenuationStepSize() { return itsAttenuationStepSize; } + // update timestamp void setTimestamp(const RTC::Timestamp& timestamp); @@ -179,6 +182,8 @@ private: int itsSDOBitsPerSample; blitz::Array<int, 1> itsPPSsyncDelays; // one delay for each AP bool itsSequencerRequest; + blitz::Array<float, 1> itsFixedAttenuations; + float itsAttenuationStepSize; Cache* m_cache; // pointer to container }; diff --git a/MAC/APL/PIC/RSP_Driver/src/RCUCables.cc b/MAC/APL/PIC/RSP_Driver/src/RCUCables.cc index 18344ea22a1d25ddcfa3223bb8a83981bb5de2fe..5fb8c2602225927ebdc583f7946361d4f84d92a0 100644 --- a/MAC/APL/PIC/RSP_Driver/src/RCUCables.cc +++ b/MAC/APL/PIC/RSP_Driver/src/RCUCables.cc @@ -78,10 +78,15 @@ RCUCables::RCUCables(const string& attFilename, const string& delayFilename) : ASSERTSTR(rcuNr >= 0 && rcuNr < MAX_RCUS, "RCUNumber " << rcuNr << " not in range [0.." << MAX_RCUS-1 << "]"); ASSERTSTR(nrArgs == EXPECTED_NR_COLUMNS, "Expected " << EXPECTED_NR_COLUMNS << " fields on line: " << line); + if (LBLlen > 0) { ASSERTSTR(itsCableAtts.isLegalLength(LBLlen), "LBL cablelength " << LBLlen << " is not allowed"); + } + if (LBHlen > 0) { ASSERTSTR(itsCableAtts.isLegalLength(LBHlen), "LBH cablelength " << LBHlen << " is not allowed"); + } + if (HBAlen > 0) { ASSERTSTR(itsCableAtts.isLegalLength(HBAlen), "HBA cablelength " << HBAlen << " is not allowed"); - + } // copy values to internal arrays. itsCableLengths(rcuNr, 0) = LBLlen; itsCableLengths(rcuNr, 1) = LBHlen; diff --git a/MAC/APL/PIC/RSP_Driver/src/RCUCables.h b/MAC/APL/PIC/RSP_Driver/src/RCUCables.h index 48faeeb4c036adb3c83f5f131c7fabc38e7a436e..8229e80426ba5d25fc4c6a43100fed9abf3ad76f 100644 --- a/MAC/APL/PIC/RSP_Driver/src/RCUCables.h +++ b/MAC/APL/PIC/RSP_Driver/src/RCUCables.h @@ -45,7 +45,7 @@ namespace LOFAR { //# Forward Declarations //class forward; -// The RCUCables class is an interface for the Attenuation.conf file. +// The RCUCables class is an interface for the CableAttenuation.conf file. //It reads in the file and stores the values in its datamembers. Defines some //useful functions for accessing the data. diff --git a/MAC/APL/PIC/RSP_Driver/src/RSPDriver.cc b/MAC/APL/PIC/RSP_Driver/src/RSPDriver.cc index 33457b73e661289188c5b254ec7201a458488f71..982c0351cb7911a2d8b379964e45647109486fba 100644 --- a/MAC/APL/PIC/RSP_Driver/src/RSPDriver.cc +++ b/MAC/APL/PIC/RSP_Driver/src/RSPDriver.cc @@ -216,8 +216,8 @@ RSPDriver::RSPDriver(string name) : ssp->setAartfaac (sc.hasAartfaac); LOG_DEBUG_STR (*ssp); - LOG_DEBUG("Setting up cable characteristics from Attenuation.conf and CableDelays.conf"); - RCUCables cables("Attenuation.conf", "CableDelays.conf"); + LOG_DEBUG("Setting up cable characteristics from CableAttenuation.conf and CableDelays.conf"); + RCUCables cables("CableAttenuation.conf", "CableDelays.conf"); CableSettings::createInstance(cables); int mode = GET_CONFIG("RSPDriver.SYNC_MODE", i); @@ -1979,7 +1979,17 @@ void RSPDriver::rsp_getclock(GCFEvent& event, GCFPortInterface& port) { Ptr<GetClocksCmd> command = new GetClocksCmd(event, port, Command::READ); - if (!command->validate()) { + if (Sequencer::getInstance().isActive()) { + LOG_INFO("GETCLOCK: sequencer busy"); + + RSPGetclockackEvent ack; + ack.timestamp = Timestamp(0,0); + ack.status = RSP_BUSY; + port.send(ack); + return; + } + + if (!command->validate()) { LOG_ERROR("GETCLOCK: invalid parameter"); RSPGetclockackEvent ack; diff --git a/MAC/APL/PIC/RSP_Driver/src/Sequencer.cc b/MAC/APL/PIC/RSP_Driver/src/Sequencer.cc index 701410f757380b0ebd9b2ca3003ec1b29b231d3a..58a8880bca20b4bdf8437a951c71364298a62714 100644 --- a/MAC/APL/PIC/RSP_Driver/src/Sequencer.cc +++ b/MAC/APL/PIC/RSP_Driver/src/Sequencer.cc @@ -38,6 +38,7 @@ namespace LOFAR { namespace RSP { #define STARTUP_WAIT 10 +#define CLOCK_WAIT 5 #define TDWRITE_WAIT 1 #define TDREAD_TIMEOUT 3 #define RSUCLEAR_WAIT 5 @@ -59,7 +60,7 @@ namespace LOFAR { * | | writePLL_state <--------------------------. | WRITE_TIMEOUT * | | readPLL_state ---------> readError ------' | TDREAD_TIMEOUT * | | | - * | '----> writeClock_state <------------------------. | STARTUP_WAIT + * | '----> writeClock_state <------------------------. | CLOCK_WAIT * | readClock_state --------> readError ------' | TDREAD_TIMEOUT * | .------- ok <----------' | * | | | @@ -142,6 +143,7 @@ GCFEvent::TResult Sequencer::idle_state(GCFEvent& event, GCFPortInterface& /*por } else if (itsCurSeq == SEQ_RSPCLEAR) { LOG_DEBUG(">> Start sequencer *rspclear*"); + Cache::getInstance().reset(); TRAN(Sequencer::RSUclear_state); } } @@ -388,7 +390,7 @@ GCFEvent::TResult Sequencer::writeClock_state(GCFEvent& event, GCFPortInterface& break; case F_TIMER: - if (itsTimer++ > STARTUP_WAIT && Cache::getInstance().getState().tdwrite().isMatchAll(RegisterState::IDLE)) { + if (itsTimer++ > CLOCK_WAIT && Cache::getInstance().getState().tdwrite().isMatchAll(RegisterState::IDLE)) { TRAN(Sequencer::readClock_state); } break; @@ -544,6 +546,9 @@ GCFEvent::TResult Sequencer::setAll_state(GCFEvent& event, GCFPortInterface& /*p // the repeated writes till all APs have the right delay. Cache::getInstance().getState().cdo().reset(); Cache::getInstance().getState().cdo().write(); + + // next settings will be written after sequencer is ready + if (StationSettings::instance()->hasAartfaac()) { Cache::getInstance().getState().sdoState().reset(); Cache::getInstance().getState().sdoState().write(); diff --git a/MAC/APL/PIC/RSP_Driver/src/SetRCUCmd.cc b/MAC/APL/PIC/RSP_Driver/src/SetRCUCmd.cc index 6477fe8a3282471494ca40d3c9a69d22ac832e99..4726572197b586287ee537cd0edf778507bea947 100644 --- a/MAC/APL/PIC/RSP_Driver/src/SetRCUCmd.cc +++ b/MAC/APL/PIC/RSP_Driver/src/SetRCUCmd.cc @@ -76,7 +76,9 @@ void SetRCUCmd::apply(CacheBuffer& cache, bool setModFlag) uint32 mode = m_event->settings()(0).getMode(); CableSettings* cableSettings = CableSettings::instance(); float delayStep = 1000.0 / cache.getClock(); - + float attenuationStep = cache.getAttenuationStepSize(); + uint8 attenuation = 0; + // LOG_INFO("SetRCUCmd::apply"); for (int cache_rcu = 0; cache_rcu < StationSettings::instance()->nrRcus(); cache_rcu++) { if (m_event->rcumask[cache_rcu]) { @@ -96,14 +98,21 @@ void SetRCUCmd::apply(CacheBuffer& cache, bool setModFlag) */ cache.getRCUSettings()()(cache_rcu).setDelay( (uint8) ((delayStep/2.0 + cableSettings->getDelay(cache_rcu, mode)) / delayStep)); - cache.getRCUSettings()()(cache_rcu).setAttenuation( - (uint8) ((-0.125 + cableSettings->getAtt(cache_rcu, mode)) / -0.25)); - if (cache_rcu == 0) { + + attenuation = (uint8) (((attenuationStep/2.0) + cableSettings->getAtt(cache_rcu, mode) + cache.getFixedAttenuation(mode)) / attenuationStep); + if (attenuation > 31) { attenuation = 31; } + + cache.getRCUSettings()()(cache_rcu).setAttenuation(attenuation); + if (cache_rcu == 0) { LOG_DEBUG(formatString("RCU 0 new Delay : %f/2.0 + %f / %f = %d", delayStep, cableSettings->getDelay(0, mode), delayStep, (uint8) ((delayStep/2.0 + cableSettings->getDelay(cache_rcu, mode)) / delayStep))); - LOG_DEBUG(formatString("RCU 0 new Atten : -0.125 + %f / -0.25 = %d", cableSettings->getAtt(0, mode), - (uint8) ((-0.125 + cableSettings->getAtt(cache_rcu, mode)) / -0.25))); + LOG_DEBUG(formatString("RCU 0 new Atten : (%f + %f + %f) / %f = %d", + (attenuationStep/2.0), + cableSettings->getAtt(0, mode), + cache.getFixedAttenuation(mode), + attenuationStep, + attenuation)); LOG_DEBUG(formatString("RCU 0 new RawMode : %08lX", cache.getRCUSettings()()(0).getRaw())); } } diff --git a/MAC/APL/PIC/RSP_Driver/src/VersionsRead.cc b/MAC/APL/PIC/RSP_Driver/src/VersionsRead.cc index 438732b38437a923513b46f8416a4fc0e4a2e2b3..8d873314acc49feb7ef71e8d15f341af6e1d1e32 100644 --- a/MAC/APL/PIC/RSP_Driver/src/VersionsRead.cc +++ b/MAC/APL/PIC/RSP_Driver/src/VersionsRead.cc @@ -37,6 +37,7 @@ VersionsRead::VersionsRead(GCFPortInterface& board_port, int board_id) : SyncAction(board_port, board_id, NR_BLPS_PER_RSPBOARD + 1 /* BP */) { memset(&m_hdr, 0, sizeof(MEPHeader)); + //doAtInit(); } VersionsRead::~VersionsRead() diff --git a/MAC/APL/PIC/RSP_Driver/src/rspctl.cc b/MAC/APL/PIC/RSP_Driver/src/rspctl.cc index d0f78a7b1df6ed6dc69aec048727091b3a3ed814..7a98476cbe4310fccd8e1073824ff00f7ff2b202 100644 --- a/MAC/APL/PIC/RSP_Driver/src/rspctl.cc +++ b/MAC/APL/PIC/RSP_Driver/src/rspctl.cc @@ -1196,8 +1196,14 @@ GCFEvent::TResult ClockCommand::ack(GCFEvent& e) if (e.signal == RSP_GETCLOCKACK) { RSPGetclockackEvent ack(e); if (RSP_SUCCESS != ack.status) { - logMessage(cerr,"Error: RSP_GETCLOCK command failed."); - rspctl_exit_code = EXIT_FAILURE; + if (ack.status == RSP_BUSY) { + logMessage(cerr,"Error: driver busy."); + rspctl_exit_code = EXIT_FAILURE; + } + else { + logMessage(cerr,"Error: RSP_GETCLOCK command failed."); + rspctl_exit_code = EXIT_FAILURE; + } } else { gSampleFrequency = 1.0e6 * ack.clock; diff --git a/MAC/APL/PIC/RSP_Protocol/include/APL/RSP_Protocol/AllRegisterState.h b/MAC/APL/PIC/RSP_Protocol/include/APL/RSP_Protocol/AllRegisterState.h index 0e673274120a597de3227dd3963c69dffe38e62e..f65257033c2a2d06d61565db3f0d506beeb98dc5 100644 --- a/MAC/APL/PIC/RSP_Protocol/include/APL/RSP_Protocol/AllRegisterState.h +++ b/MAC/APL/PIC/RSP_Protocol/include/APL/RSP_Protocol/AllRegisterState.h @@ -159,7 +159,7 @@ public: rawdataread_state.check(); itsSerdesWriteState.check(); itsSerdesReadState.check(); - itsBitModeWriteState.check(); + itsBitModeWriteState.write(); itsSDOModeWriteState.check(); itsSDOSelectWriteState.check(); ts_state.write(); diff --git a/MAC/APL/StationCU/src/ClockControl/ClockControl.cc b/MAC/APL/StationCU/src/ClockControl/ClockControl.cc index 1d2b38062574eb09efd30b29f104542aa48e182a..06d0a12c270923983646c36c32a32a2c89508abf 100644 --- a/MAC/APL/StationCU/src/ClockControl/ClockControl.cc +++ b/MAC/APL/StationCU/src/ClockControl/ClockControl.cc @@ -825,6 +825,9 @@ GCFEvent::TResult ClockControl::setBitmode_state(GCFEvent& event, switch (event.signal) { case F_ENTRY: + itsTimerPort->setTimer(1.0); + break; + case F_TIMER: itsOwnPropertySet->setValue(PN_FSM_CURRENT_ACTION,GCFPVString("Set bitmode")); sendBitmodeSetting(); // will result in RSP_SETBITMODEACK; @@ -841,20 +844,20 @@ GCFEvent::TResult ClockControl::setBitmode_state(GCFEvent& event, case RSP_SETBITMODEACK: { RSPSetbitmodeackEvent ack(event); if (ack.status != RSP_SUCCESS) { - LOG_ERROR_STR ("Bitmode could not be set to " << itsBitmode << ", retry in 5 seconds."); + LOG_ERROR_STR ("Bitmode could not be set to " << itsBitmode << ", retry in 2 seconds."); itsOwnPropertySet->setValue(PN_FSM_ERROR,GCFPVString("bitmodeset error")); - itsTimerPort->setTimer(5.0); + itsTimerPort->setTimer(2.0); break; } LOG_INFO_STR ("StationBitmode is set to " << itsBitmode << ", going to operational state"); itsOwnPropertySet->setValue(PN_FSM_ERROR,GCFPVString("")); itsOwnPropertySet->setValue(PN_CLC_ACTUAL_BITMODE,GCFPVInteger(itsBitmode)); - break; - } - case RSP_UPDBITMODE: - { + // Do NOT wait for RSP_UPDBITMODE: Updating the bit mode is instantaneous, + // and does not trigger RSP_UPDBITMODE if the bit mode happened to be in the + // right state already. + if (itsLastCommandClient) { CLKCTRLSetBitmodeAckEvent response; response.status = CLKCTRL_NO_ERR; @@ -867,7 +870,7 @@ GCFEvent::TResult ClockControl::setBitmode_state(GCFEvent& event, TRAN(ClockControl::active_state); // go to next state. return (GCFEvent::NEXT_STATE); - } + } case DP_CHANGED: case CLKCTRL_GET_CLOCK: @@ -876,6 +879,7 @@ GCFEvent::TResult ClockControl::setBitmode_state(GCFEvent& event, case CLKCTRL_SET_BITMODE: case CLKCTRL_GET_SPLITTERS: case CLKCTRL_SET_SPLITTERS: + case RSP_UPDBITMODE: case RSP_UPDCLOCK: case RSP_UPDSPLITTER: LOG_INFO_STR("Postponing event " << eventName(event) << " till next state"); @@ -926,9 +930,9 @@ GCFEvent::TResult ClockControl::setSplitters_state(GCFEvent& event, RSPSetsplitterackEvent ack(event); if (ack.status != RSP_SUCCESS) { LOG_ERROR_STR ("Splitters could not be set to " << (itsSplitterRequest ? "ON" : "OFF") << - ", retry in 5 seconds."); + ", retry in 2 seconds."); itsOwnPropertySet->setValue(PN_FSM_ERROR,GCFPVString("splitter set error")); - itsTimerPort->setTimer(5.0); + itsTimerPort->setTimer(2.0); break; } @@ -941,10 +945,11 @@ GCFEvent::TResult ClockControl::setSplitters_state(GCFEvent& event, itsSplitters.set(i); } } - break; - } - case RSP_UPDSPLITTER: + // Do NOT wait for RSP_UDPSPLITTER: Updating the splitter is instantaneous, + // and does not trigger RSP_UDPSPLITTER if the splitters happened to be in the + // right state already. + if (itsLastCommandClient) { CLKCTRLSetSplittersAckEvent response; response.status = CLKCTRL_NO_ERR; @@ -955,8 +960,9 @@ GCFEvent::TResult ClockControl::setSplitters_state(GCFEvent& event, LOG_INFO_STR ("Received splitter update, going to operational state"); - TRAN(ClockControl::active_state); // handle RSP_UPDSPLITTER in next state. - return (GCFEvent::NEXT_STATE); + TRAN(ClockControl::active_state); + break; + } case DP_CHANGED: case CLKCTRL_GET_CLOCK: @@ -967,6 +973,7 @@ GCFEvent::TResult ClockControl::setSplitters_state(GCFEvent& event, case CLKCTRL_SET_SPLITTERS: case RSP_UPDCLOCK: case RSP_UPDBITMODE: + case RSP_UPDSPLITTER: LOG_INFO_STR("Postponing event " << eventName(event) << " till next state"); return (GCFEvent::NEXT_STATE); diff --git a/MAC/APL/StationCU/src/StationControl/StationControl.cc b/MAC/APL/StationCU/src/StationControl/StationControl.cc index d2b4141d0494e67b7af7328b0bee8e5ad1df9f76..27f8a4bd698a80012a93f866d0b05c834b5622e5 100644 --- a/MAC/APL/StationCU/src/StationControl/StationControl.cc +++ b/MAC/APL/StationCU/src/StationControl/StationControl.cc @@ -634,6 +634,7 @@ GCFEvent::TResult StationControl::operational_state(GCFEvent& event, GCFPortInte LOG_DEBUG_STR("Removing " << theObs->second->getName() << " from the administration due to premature quit"); delete theObs->second; itsObsMap.erase(theObs); + itsClaimedMap.erase(port.getName()); } } break; @@ -700,15 +701,15 @@ GCFEvent::TResult StationControl::operational_state(GCFEvent& event, GCFPortInte // In the claim state station-wide changes are activated. if (event.signal == CONTROL_CLAIM) { - if (itsClaimSequence == 0) { + if (!itsClaimedMap[cntlrName]) { + LOG_INFO("Claiming resources."); + itsClaimedMap[cntlrName] = true; // mark as claiming/claimed itsStartingObs = theObs; TRAN(StationControl::startObservation_state); - queueTaskEvent(event, port); } else { - LOG_WARN("Already went through CLAIM phase -- ignoring CONTROL_CLAIM event"); + LOG_INFO("Already claimed resources."); } - return (GCFEvent::HANDLED); -// return (GCFEvent::NEXT_STATE); + return (GCFEvent::HANDLED); } // pass event to observation FSM @@ -722,6 +723,7 @@ GCFEvent::TResult StationControl::operational_state(GCFEvent& event, GCFPortInte // itsTimerPort->cancelTimer(theObs->second->itsStopTimerID); delete theObs->second; itsObsMap.erase(theObs); + itsClaimedMap.erase(cntlrName); return (GCFEvent::HANDLED); } @@ -788,17 +790,9 @@ GCFEvent::TResult StationControl::startObservation_state(GCFEvent& event, GCFPor */ switch (event.signal) { - case CONTROL_CLAIM: { - // defer the setup to the timer eventa - // NOTE: StationControl can receive multiple CLAIM requests. Example: - // * We're in CLAIMED - // * Station receives PREPARE (due to state sync errors?) - // * Station will replay PREPARE -> CLAIM - // So we ONLY start the ClaimTimer if the ClaimSequence was not yet started - if (itsClaimSequence == 0) { - itsClaimSequence++; - itsClaimTimerPort->setTimer(0.0); - } + case F_ENTRY: { + itsClaimSequence = 1; + itsClaimTimerPort->setTimer(0.0); } break; @@ -952,7 +946,6 @@ GCFEvent::TResult StationControl::startObservation_state(GCFEvent& event, GCFPor } break; - case F_ENTRY: case F_EXIT: break; @@ -1380,6 +1373,7 @@ LOG_DEBUG_STR("final receivers =" << realReceivers); LOG_DEBUG_STR("Adding " << name << " to administration"); itsObsMap[name] = theNewObs; + itsClaimedMap[name] = false; LOG_DEBUG_STR(*theNewObs); theNewObs->start(); // call initial state. diff --git a/MAC/APL/StationCU/src/StationControl/StationControl.h b/MAC/APL/StationCU/src/StationControl/StationControl.h index 91335f02ce91497bda4503b0a53ae88d0e940795..4edc6fa5de8d803a7007364fcf6cd3510fbd03be 100644 --- a/MAC/APL/StationCU/src/StationControl/StationControl.h +++ b/MAC/APL/StationCU/src/StationControl/StationControl.h @@ -141,6 +141,7 @@ private: int32 itsBitmode; map<string, ActiveObs*> itsObsMap; // current running observations + map<string, bool> itsClaimedMap; // whether resources for the Obs are being or have been claimed ObsIter itsStartingObs; // the Obs that is being started is this moment. // Availability information of Antenna's and circuit boards. diff --git a/MAC/Deployment/data/Coordinates/ETRF_FILES/PL610/pl610-antenna-positions-etrs.csv b/MAC/Deployment/data/Coordinates/ETRF_FILES/PL610/pl610-antenna-positions-etrs.csv new file mode 100644 index 0000000000000000000000000000000000000000..2ab52576f1aca2d5fc0bac30bd97bd2a40942ded --- /dev/null +++ b/MAC/Deployment/data/Coordinates/ETRF_FILES/PL610/pl610-antenna-positions-etrs.csv @@ -0,0 +1,195 @@ +NAME,ETRS-X,ETRS-Y,ETRS-Z,STATION-P,STATION-Q,STATION-R,RCU-X,RCU-Y +L0,3738425.901,1148173.139,5021753.822,-13.593,3.846,0.000,0,1 +L1,3738419.860,1148177.474,5021757.299,-8.537,10.312,0.000,2,3 +L2,3738423.080,1148171.933,5021756.179,-14.458,7.617,0.000,4,5 +L3,3738417.862,1148175.495,5021759.224,-10.273,13.245,0.000,6,7 +L4,3738423.568,1148207.393,5021747.763,20.898,-1.239,0.000,8,9 +L5,3738418.668,1148210.136,5021750.759,24.227,4.185,0.000,10,11 +L6,3738428.291,1148212.433,5021743.130,25.363,-8.256,0.000,12,13 +L7,3738424.852,1148215.499,5021744.973,28.839,-4.715,0.000,14,15 +L8,3738425.438,1148167.207,5021755.512,-19.462,5.800,0.000,16,17 +L9,3738429.757,1148162.073,5021753.487,-25.109,1.650,0.000,18,19 +L10,3738428.320,1148158.774,5021755.298,-28.231,4.196,0.000,20,21 +L11,3738424.955,1148159.078,5021757.715,-27.522,8.289,0.000,22,23 +L12,3738425.691,1148191.834,5021749.730,5.103,-0.245,0.000,24,25 +L13,3738422.716,1148188.017,5021752.794,1.649,4.324,0.000,26,27 +L14,3738420.270,1148189.976,5021754.156,3.900,6.895,0.000,28,29 +L15,3738420.763,1148194.547,5021752.753,8.406,5.221,0.000,30,31 +L16,3738417.627,1148189.034,5021756.322,3.277,10.385,0.000,32,33 +L17,3738416.915,1148184.313,5021757.920,-1.352,12.364,0.000,34,35 +L18,3738411.777,1148190.911,5021760.217,5.856,17.187,0.000,36,37 +L19,3738410.533,1148186.791,5021762.071,1.891,19.684,0.000,38,39 +L20,3738443.569,1148185.712,5021737.915,-3.162,-20.942,0.000,40,41 +L21,3738445.156,1148176.882,5021738.749,-12.172,-20.851,0.000,42,43 +L22,3738451.106,1148185.003,5021732.509,-4.777,-30.104,0.000,44,45 +L23,3738449.332,1148173.676,5021736.393,-15.876,-25.272,0.000,46,47 +L24,3738431.765,1148174.896,5021749.091,-12.544,-3.819,0.000,48,49 +L25,3738430.659,1148171.252,5021750.736,-16.050,-1.602,0.000,50,51 +L26,3738435.148,1148173.425,5021746.926,-14.420,-7.663,0.000,52,53 +L27,3738437.642,1148170.426,5021745.765,-17.715,-10.051,0.000,54,55 +L28,3738437.503,1148200.141,5021739.117,11.978,-16.795,0.000,56,57 +L29,3738438.479,1148203.623,5021737.605,15.338,-18.813,0.000,58,59 +L30,3738444.446,1148196.138,5021734.899,7.145,-24.454,0.000,60,61 +L31,3738445.846,1148201.522,5021732.641,12.354,-27.440,0.000,62,63 +L32,3738409.707,1148194.130,5021761.014,9.320,18.998,0.000,64,65 +L33,3738409.547,1148200.565,5021759.671,15.766,17.699,0.000,66,67 +L34,3738402.034,1148205.224,5021764.161,21.323,25.911,0.000,68,69 +L35,3738401.604,1148198.979,5021765.898,15.138,27.897,0.000,70,71 +L36,3738429.572,1148192.279,5021746.762,5.081,-5.151,0.000,72,73 +L37,3738426.194,1148196.674,5021748.259,9.877,-1.994,0.000,74,75 +L38,3738431.736,1148194.849,5021744.580,7.387,-8.427,0.000,76,77 +L39,3738430.050,1148198.115,5021745.083,10.852,-7.101,0.000,78,79 +L40,3738415.352,1148167.657,5021762.859,-17.799,18.175,0.000,80,81 +L41,3738410.114,1148176.034,5021764.824,-8.802,22.706,0.000,82,83 +L42,3738408.949,1148167.449,5021767.636,-17.236,26.146,0.000,84,85 +L43,3738404.409,1148176.878,5021768.847,-7.273,29.570,0.000,86,87 +L44,3738432.415,1148186.443,5021745.988,-1.090,-7.311,0.000,88,89 +L45,3738434.844,1148188.670,5021743.687,0.842,-10.835,0.000,90,91 +L46,3738434.433,1148182.116,5021745.480,-5.654,-8.801,0.000,92,93 +L47,3738437.296,1148185.463,5021742.605,-2.656,-13.122,0.000,94,95 +L48,3738419.485,1148203.424,5021751.680,17.425,4.736,0.000,96,97 +L49,3738441.654,1148192.221,5021737.851,3.569,-20.087,0.000,98,99 +L50,3738415.499,1148213.650,5021752.302,28.118,7.289,0.000,100,101 +L51,3738411.919,1148202.050,5021757.581,16.963,14.418,0.000,102,103 +L52,3738442.270,1148168.986,5021742.674,-19.710,-15.442,0.000,104,105 +L53,3738450.727,1148192.542,5021731.076,2.798,-31.389,0.000,106,107 +L54,3738408.690,1148208.860,5021758.419,24.153,16.829,0.000,108,109 +L55,3738424.065,1148194.785,5021750.260,8.246,1.080,0.000,110,111 +L56,3738418.073,1148161.321,5021762.288,-24.454,16.282,0.000,112,113 +L57,3738440.922,1148175.742,5021742.135,-12.801,-15.347,0.000,114,115 +L58,3738431.020,1148167.376,5021751.350,-19.965,-1.147,0.000,116,117 +L59,3738440.553,1148209.493,5021734.740,20.951,-22.745,0.000,118,119 +L60,3738438.345,1148193.147,5021740.085,4.892,-16.208,0.000,120,121 +L61,3738439.685,1148179.389,5021742.220,-9.010,-14.665,0.000,122,123 +L62,3738413.016,1148177.919,5021762.253,-7.269,18.677,0.000,124,125 +L63,3738421.723,1148184.045,5021754.430,-2.198,6.478,0.000,126,127 +L64,3738424.263,1148201.872,5021748.504,15.300,-0.815,0.000,128,129 +L65,3738426.331,1148179.385,5021752.085,-7.407,1.860,0.000,130,131 +L66,3738434.140,1148206.441,5021740.171,18.675,-14.099,0.000,132,133 +L67,3738433.205,1148199.219,5021742.502,11.575,-11.262,0.000,134,135 +L68,3738436.392,1148165.493,5021747.810,-22.492,-7.356,0.000,136,137 +L69,3738435.102,1148162.818,5021749.370,-25.008,-5.137,0.000,138,139 +L70,3738429.052,1148183.099,5021749.232,-4.025,-2.371,0.000,140,141 +L71,3738417.823,1148170.806,5021760.319,-14.951,14.385,0.000,142,143 +L72,3738435.274,1148192.171,5021742.575,4.287,-12.181,0.000,144,145 +L73,3738415.155,1148198.379,5021756.025,12.908,11.269,0.000,146,147 +L74,3738426.841,1148202.972,5021746.350,16.089,-4.260,0.000,148,149 +L75,3738411.169,1148210.333,5021756.254,25.326,13.419,0.000,150,151 +L76,3738430.015,1148178.013,5021749.676,-9.220,-2.379,0.000,152,153 +L77,3738439.528,1148188.139,5021740.348,-0.252,-16.507,0.000,154,155 +L78,3738422.878,1148165.534,5021757.783,-20.825,9.357,0.000,156,157 +L79,3738406.784,1148183.695,5021765.544,-0.750,25.044,0.000,158,159 +L80,3738413.339,1148183.111,5021760.835,-2.122,17.069,0.000,160,161 +L81,3738416.823,1148206.617,5021752.921,20.935,7.287,0.000,162,163 +L82,3738414.647,1148191.973,5021757.855,6.571,13.388,0.000,164,165 +L83,3738425.027,1148182.771,5021752.279,-3.868,2.686,0.000,166,167 +L84,3738447.386,1148187.936,5021734.590,-1.400,-26.183,0.000,168,169 +L85,3738430.048,1148188.814,5021747.197,1.563,-4.934,0.000,170,171 +L86,3738432.915,1148215.999,5021738.904,28.368,-14.808,0.000,172,173 +L87,3738431.387,1148207.295,5021742.010,19.859,-10.891,0.000,174,175 +L88,3738419.459,1148182.493,5021756.455,-3.476,9.640,0.000,176,177 +L89,3738400.856,1148187.175,5021769.132,3.439,31.569,0.000,178,179 +L90,3738425.039,1148176.579,5021753.677,-10.054,4.112,0.000,180,181 +L91,3738444.839,1148169.272,5021740.712,-19.734,-18.688,0.000,182,183 +L92,3738406.642,1148191.502,5021763.875,7.064,23.403,0.000,184,185 +L93,3738431.385,1148180.825,5021748.025,-6.577,-4.729,0.000,186,187 +L94,3738435.981,1148179.005,5021745.044,-8.947,-9.992,0.000,188,189 +L95,3738418.633,1148197.033,5021753.762,11.145,7.278,0.000,190,191 +H0,3738440.449,1148248.993,5021725.833,7.737,26.633,0.000,0,1 +H1,3738442.208,1148253.268,5021723.563,11.795,23.462,0.000,2,3 +H2,3738443.967,1148257.544,5021721.293,15.853,20.291,0.000,4,5 +H3,3738445.724,1148261.820,5021719.023,19.912,17.121,0.000,6,7 +H4,3738447.483,1148266.095,5021716.753,23.970,13.950,0.000,8,9 +H5,3738442.482,1148242.000,5021725.921,0.508,25.745,0.000,10,11 +H6,3738444.241,1148246.275,5021723.650,4.566,22.574,0.000,12,13 +H7,3738445.999,1148250.550,5021721.381,8.624,19.404,0.000,14,15 +H8,3738447.757,1148254.826,5021719.111,12.683,16.233,0.000,16,17 +H9,3738449.516,1148259.101,5021716.840,16.741,13.062,0.000,18,19 +H10,3738451.274,1148263.376,5021714.571,20.799,9.892,0.000,20,21 +H11,3738453.032,1148267.651,5021712.301,24.857,6.721,0.000,22,23 +H12,3738444.515,1148235.007,5021726.008,-6.721,24.857,0.000,24,25 +H13,3738446.273,1148239.282,5021723.738,-2.663,21.687,0.000,26,27 +H14,3738448.032,1148243.557,5021721.468,1.395,18.516,0.000,28,29 +H15,3738449.790,1148247.833,5021719.198,5.454,15.345,0.000,30,31 +H16,3738451.548,1148252.108,5021716.928,9.512,12.175,0.000,32,33 +H17,3738453.307,1148256.383,5021714.658,13.570,9.004,0.000,34,35 +H18,3738455.065,1148260.658,5021712.388,17.628,5.833,0.000,36,37 +H19,3738456.823,1148264.934,5021710.118,21.687,2.663,0.000,38,39 +H20,3738458.581,1148269.209,5021707.848,25.745,-0.508,0.000,40,41 +H21,3738446.548,1148228.013,5021726.095,-13.950,23.970,0.000,42,43 +H22,3738448.306,1148232.288,5021723.825,-9.892,20.799,0.000,44,45 +H23,3738450.065,1148236.565,5021721.555,-5.833,17.628,0.000,46,47 +H24,3738451.822,1148240.840,5021719.285,-1.775,14.458,0.000,48,49 +H25,3738453.581,1148245.115,5021717.015,2.283,11.287,0.000,50,51 +H26,3738455.339,1148249.390,5021714.746,6.341,8.117,0.000,52,53 +H27,3738457.097,1148253.666,5021712.475,10.400,4.946,0.000,54,55 +H28,3738458.856,1148257.941,5021710.205,14.458,1.775,0.000,56,57 +H29,3738460.614,1148262.216,5021707.936,18.516,-1.395,0.000,58,59 +H30,3738462.372,1148266.491,5021705.665,22.574,-4.566,0.000,60,61 +H31,3738464.131,1148270.767,5021703.395,26.633,-7.737,0.000,62,63 +H32,3738450.338,1148225.295,5021723.913,-17.121,19.912,0.000,64,65 +H33,3738452.097,1148229.571,5021721.643,-13.062,16.741,0.000,66,67 +H34,3738453.855,1148233.846,5021719.372,-9.004,13.570,0.000,68,69 +H35,3738455.613,1148238.121,5021717.103,-4.946,10.400,0.000,70,71 +H36,3738457.372,1148242.396,5021714.833,-0.888,7.229,0.000,72,73 +H37,3738459.130,1148246.672,5021712.562,3.171,4.058,0.000,74,75 +H38,3738460.888,1148250.947,5021710.293,7.229,0.888,0.000,76,77 +H39,3738462.647,1148255.222,5021708.023,11.287,-2.283,0.000,78,79 +H40,3738464.405,1148259.497,5021705.753,15.345,-5.454,0.000,80,81 +H41,3738466.163,1148263.773,5021703.483,19.404,-8.624,0.000,82,83 +H42,3738467.921,1148268.048,5021701.213,23.462,-11.795,0.000,84,85 +H43,3738454.130,1148222.578,5021721.730,-20.291,15.853,0.000,86,87 +H44,3738455.888,1148226.853,5021719.460,-16.233,12.683,0.000,88,89 +H45,3738457.646,1148231.128,5021717.190,-12.175,9.512,0.000,90,91 +H46,3738459.405,1148235.403,5021714.920,-8.117,6.341,0.000,92,93 +H47,3738461.162,1148239.679,5021712.650,-4.058,3.171,0.000,94,95 +H48,3738464.680,1148248.229,5021708.110,4.058,-3.171,0.000,96,97 +H49,3738466.437,1148252.505,5021705.840,8.117,-6.341,0.000,98,99 +H50,3738468.196,1148256.780,5021703.570,12.175,-9.512,0.000,100,101 +H51,3738469.954,1148261.055,5021701.300,16.233,-12.683,0.000,102,103 +H52,3738471.712,1148265.330,5021699.030,20.291,-15.853,0.000,104,105 +H53,3738457.921,1148219.860,5021719.547,-23.462,11.795,0.000,106,107 +H54,3738459.679,1148224.135,5021717.277,-19.404,8.624,0.000,108,109 +H55,3738461.437,1148228.411,5021715.007,-15.345,5.454,0.000,110,111 +H56,3738463.195,1148232.686,5021712.737,-11.287,2.283,0.000,112,113 +H57,3738464.954,1148236.961,5021710.467,-7.229,-0.888,0.000,114,115 +H58,3738466.712,1148241.236,5021708.198,-3.171,-4.058,0.000,116,117 +H59,3738468.470,1148245.512,5021705.927,0.888,-7.229,0.000,118,119 +H60,3738470.229,1148249.787,5021703.657,4.946,-10.400,0.000,120,121 +H61,3738471.987,1148254.062,5021701.388,9.004,-13.570,0.000,122,123 +H62,3738473.745,1148258.337,5021699.117,13.062,-16.741,0.000,124,125 +H63,3738475.504,1148262.613,5021696.847,17.121,-19.912,0.000,126,127 +H64,3738461.711,1148217.141,5021717.365,-26.633,7.737,0.000,128,129 +H65,3738463.470,1148221.417,5021715.095,-22.574,4.566,0.000,130,131 +H66,3738465.228,1148225.692,5021712.824,-18.516,1.395,0.000,132,133 +H67,3738466.986,1148229.967,5021710.555,-14.458,-1.775,0.000,134,135 +H68,3738468.745,1148234.242,5021708.285,-10.400,-4.946,0.000,136,137 +H69,3738470.503,1148238.518,5021706.014,-6.341,-8.117,0.000,138,139 +H70,3738472.261,1148242.793,5021703.745,-2.283,-11.287,0.000,140,141 +H71,3738474.020,1148247.068,5021701.475,1.775,-14.458,0.000,142,143 +H72,3738475.777,1148251.343,5021699.205,5.833,-17.628,0.000,144,145 +H73,3738477.536,1148255.620,5021696.935,9.892,-20.799,0.000,146,147 +H74,3738479.294,1148259.895,5021694.665,13.950,-23.970,0.000,148,149 +H75,3738467.261,1148218.699,5021712.912,-25.745,0.508,0.000,150,151 +H76,3738469.019,1148222.974,5021710.642,-21.687,-2.663,0.000,152,153 +H77,3738470.777,1148227.250,5021708.372,-17.628,-5.833,0.000,154,155 +H78,3738472.535,1148231.525,5021706.102,-13.570,-9.004,0.000,156,157 +H79,3738474.294,1148235.800,5021703.832,-9.512,-12.175,0.000,158,159 +H80,3738476.052,1148240.075,5021701.562,-5.454,-15.345,0.000,160,161 +H81,3738477.810,1148244.351,5021699.292,-1.395,-18.516,0.000,162,163 +H82,3738479.569,1148248.626,5021697.022,2.663,-21.687,0.000,164,165 +H83,3738481.327,1148252.901,5021694.752,6.721,-24.857,0.000,166,167 +H84,3738472.810,1148220.257,5021708.459,-24.857,-6.721,0.000,168,169 +H85,3738474.568,1148224.532,5021706.189,-20.799,-9.892,0.000,170,171 +H86,3738476.326,1148228.807,5021703.920,-16.741,-13.062,0.000,172,173 +H87,3738478.085,1148233.082,5021701.649,-12.683,-16.233,0.000,174,175 +H88,3738479.843,1148237.358,5021699.379,-8.624,-19.404,0.000,176,177 +H89,3738481.601,1148241.633,5021697.110,-4.566,-22.574,0.000,178,179 +H90,3738483.360,1148245.908,5021694.839,-0.508,-25.745,0.000,180,181 +H91,3738478.359,1148221.813,5021704.007,-23.970,-13.950,0.000,182,183 +H92,3738480.118,1148226.088,5021701.737,-19.912,-17.121,0.000,184,185 +H93,3738481.875,1148230.364,5021699.467,-15.853,-20.291,0.000,186,187 +H94,3738483.634,1148234.640,5021697.197,-11.795,-23.462,0.000,188,189 +H95,3738485.393,1148238.915,5021694.927,-7.737,-26.633,0.000,190,191 +CLBA,3738426.437,1148186.814,5021750.319,0.000,0.000,0.000,-1,-1 +CHBA,3738462.921,1148243.954,5021710.380,0.000,0.000,0.000,-1,-1 diff --git a/MAC/Deployment/data/Coordinates/ETRF_FILES/PL611/pl611-antenna-positions-etrs.csv b/MAC/Deployment/data/Coordinates/ETRF_FILES/PL611/pl611-antenna-positions-etrs.csv new file mode 100644 index 0000000000000000000000000000000000000000..45e8a4217c520b57508a2d6750cb0adad8fc852e --- /dev/null +++ b/MAC/Deployment/data/Coordinates/ETRF_FILES/PL611/pl611-antenna-positions-etrs.csv @@ -0,0 +1,195 @@ +NAME,ETRS-X,ETRS-Y,ETRS-Z,STATION-P,STATION-Q,STATION-R,RCU-X,RCU-Y +L0,3850970.305,1439050.163,4860487.165,-10.196,9.777,0.000,0,1 +L1,3850965.869,1439056.983,4860488.248,-2.697,13.113,0.000,2,3 +L2,3850967.358,1439050.794,4860489.591,-9.190,13.513,0.000,4,5 +L3,3850963.476,1439056.542,4860490.635,-2.852,16.518,0.000,6,7 +L4,3850977.426,1439078.546,4860468.215,17.870,-10.905,0.000,8,9 +L5,3850973.618,1439083.467,4860469.552,23.356,-7.678,0.000,10,11 +L6,3850983.179,1439079.875,4860462.357,18.518,-19.197,0.000,12,13 +L7,3850980.816,1439084.231,4860462.617,23.250,-17.702,0.000,14,15 +L8,3850968.266,1439045.734,4860490.973,-14.461,14.258,0.000,16,17 +L9,3850970.886,1439039.249,4860491.409,-21.395,13.245,0.000,18,19 +L10,3850968.657,1439037.450,4860494.240,-22.956,16.958,0.000,20,21 +L11,3850965.614,1439039.581,4860496.098,-20.409,20.239,0.000,22,23 +L12,3850975.179,1439065.056,4860476.179,4.391,-2.612,0.000,24,25 +L13,3850971.382,1439063.711,4860480.249,3.486,3.043,0.000,26,27 +L14,3850969.640,1439066.634,4860480.567,6.681,4.257,0.000,28,29 +L15,3850971.337,1439069.969,4860477.551,9.873,0.664,0.000,30,31 +L16,3850966.929,1439067.375,4860482.728,7.769,7.631,0.000,32,33 +L17,3850964.989,1439064.044,4860485.965,4.611,11.551,0.000,34,35 +L18,3850962.004,1439072.146,4860485.156,13.239,12.426,0.000,36,37 +L19,3850959.732,1439069.589,4860488.358,10.911,16.492,0.000,38,39 +L20,3850990.125,1439050.169,4860468.989,-12.624,-17.006,0.000,40,41 +L21,3850989.206,1439042.298,4860473.277,-20.537,-12.696,0.000,42,43 +L22,3850996.935,1439045.373,4860464.844,-18.351,-24.338,0.000,44,45 +L23,3850992.216,1439037.419,4860472.653,-25.882,-14.861,0.000,46,47 +L24,3850976.228,1439048.256,4860482.569,-12.868,2.517,0.000,48,49 +L25,3850974.213,1439045.998,4860485.405,-14.923,6.120,0.000,50,51 +L26,3850978.972,1439045.192,4860481.394,-16.329,0.004,0.000,52,53 +L27,3850980.476,1439041.420,4860481.666,-20.360,-0.558,0.000,54,55 +L28,3850988.404,1439064.982,4860464.085,2.691,-20.452,0.000,56,57 +L29,3850990.255,1439067.186,4860461.423,4.711,-23.812,0.000,58,59 +L30,3850993.767,1439057.917,4860462.259,-5.172,-24.946,0.000,60,61 +L31,3850996.528,1439061.385,4860458.210,-1.975,-30.028,0.000,62,63 +L32,3850960.956,1439075.853,4860484.495,17.148,12.398,0.000,64,65 +L33,3850962.551,1439081.030,4860480.766,22.230,8.225,0.000,66,67 +L34,3850956.836,1439088.934,4860482.547,30.992,12.867,0.000,68,69 +L35,3850954.742,1439084.240,4860486.521,26.463,17.525,0.000,70,71 +L36,3850978.904,1439063.227,4860473.563,2.069,-6.933,0.000,72,73 +L37,3850976.959,1439068.599,4860472.996,7.785,-6.398,0.000,74,75 +L38,3850981.611,1439064.041,4860470.725,2.566,-10.908,0.000,76,77 +L39,3850980.931,1439067.570,4860469.804,6.248,-11.364,0.000,78,79 +L40,3850959.020,1439051.758,4860496.815,-7.183,24.404,0.000,80,81 +L41,3850956.426,1439061.322,4860495.007,2.888,24.181,0.000,82,83 +L42,3850953.016,1439055.193,4860500.817,-2.943,31.177,0.000,84,85 +L43,3850951.355,1439065.196,4860497.962,7.461,29.523,0.000,86,87 +L44,3850979.963,1439057.017,4860475.311,-4.394,-5.943,0.000,88,89 +L45,3850982.823,1439057.411,4860472.515,-4.343,-9.962,0.000,90,91 +L46,3850980.664,1439052.462,4860476.661,-9.124,-5.116,0.000,92,93 +L47,3850984.232,1439053.499,4860472.936,-8.505,-10.340,0.000,94,95 +L48,3850972.557,1439077.703,4860473.048,17.609,-3.998,0.000,96,97 +L49,3850990.111,1439056.391,4860466.279,-6.279,-19.411,0.000,98,99 +L50,3850971.627,1439088.026,4860469.382,28.249,-6.765,0.000,100,101 +L51,3850965.157,1439080.869,4860478.447,21.746,4.767,0.000,102,103 +L52,3850984.384,1439037.681,4860479.719,-24.652,-4.381,0.000,104,105 +L53,3850998.627,1439051.545,4860460.592,-12.266,-29.029,0.000,106,107 +L54,3850964.004,1439088.067,4860476.355,29.227,3.520,0.000,108,109 +L55,3850974.469,1439068.302,4860475.409,7.788,-2.918,0.000,110,111 +L56,3850959.830,1439045.221,4860498.934,-13.948,25.857,0.000,112,113 +L57,3850984.964,1439043.777,4860476.519,-18.508,-7.541,0.000,114,115 +L58,3850973.497,1439042.730,4860487.492,-18.167,8.361,0.000,116,117 +L59,3850993.772,1439070.660,4860456.678,7.821,-29.918,0.000,118,119 +L60,3850987.288,1439058.982,4860467.733,-3.290,-16.607,0.000,120,121 +L61,3850984.804,1439047.354,4860475.101,-14.841,-8.718,0.000,122,123 +L62,3850959.633,1439061.181,4860492.129,2.350,19.903,0.000,124,125 +L63,3850969.381,1439061.131,4860483.213,1.101,6.752,0.000,126,127 +L64,3850976.574,1439073.792,4860471.076,13.127,-7.902,0.000,128,129 +L65,3850972.399,1439054.857,4860483.191,-5.667,5.119,0.000,130,131 +L66,3850986.987,1439071.852,4860462.377,9.870,-21.216,0.000,132,133 +L67,3850984.161,1439066.670,4860467.236,4.933,-15.378,0.000,134,135 +L68,3850977.977,1439038.223,4860485.356,-23.313,4.064,0.000,136,137 +L69,3850976.053,1439036.835,4860487.728,-24.492,7.205,0.000,138,139 +L70,3850975.933,1439056.263,4860479.336,-4.667,-0.204,0.000,140,141 +L71,3850962.169,1439052.858,4860493.446,-6.448,19.720,0.000,142,143 +L72,3850984.172,1439059.937,4860470.173,-1.933,-12.768,0.000,144,145 +L73,3850967.167,1439076.150,4860478.670,16.687,3.890,0.000,146,147 +L74,3850979.267,1439073.213,4860468.860,12.206,-11.315,0.000,148,149 +L75,3850966.705,1439087.838,4860473.978,28.662,-0.041,0.000,150,151 +L76,3850975.448,1439051.702,4860481.776,-9.258,2.228,0.000,152,153 +L77,3850987.031,1439054.359,4860469.993,-7.972,-14.457,0.000,154,155 +L78,3850965.434,1439045.851,4860493.519,-13.994,18.039,0.000,156,157 +L79,3850955.411,1439069.249,4860492.469,11.095,22.464,0.000,158,159 +L80,3850961.341,1439065.104,4860488.846,6.140,16.067,0.000,160,161 +L81,3850970.950,1439081.723,4860472.761,21.905,-3.394,0.000,162,163 +L82,3850964.958,1439071.372,4860482.786,12.087,8.736,0.000,164,165 +L83,3850972.105,1439058.267,4860481.968,-2.154,4.187,0.000,166,167 +L84,3850994.274,1439049.783,4860465.354,-13.528,-22.461,0.000,168,169 +L85,3850978.407,1439060.220,4860475.335,-0.936,-5.090,0.000,170,171 +L86,3850988.441,1439080.094,4860457.437,18.095,-26.392,0.000,172,173 +L87,3850984.661,1439074.074,4860463.537,12.421,-18.939,0.000,174,175 +L88,3850966.858,1439061.175,4860485.507,1.456,10.143,0.000,176,177 +L89,3850950.848,1439075.332,4860493.991,17.858,26.259,0.000,178,179 +L90,3850970.437,1439053.365,4860485.643,-6.947,8.351,0.000,180,181 +L91,3850986.848,1439036.462,4860477.993,-26.198,-7.236,0.000,182,183 +L92,3850957.394,1439075.500,4860487.915,17.225,17.348,0.000,184,185 +L93,3850977.484,1439053.154,4860479.274,-8.028,-1.088,0.000,186,187 +L94,3850981.259,1439049.134,4860477.572,-12.591,-4.622,0.000,188,189 +L95,3850970.033,1439073.131,4860477.363,13.257,1.194,0.000,190,191 +H0,3850967.414,1439006.100,4860506.090,13.325,14.389,0.000,0,1 +H1,3850970.649,1439008.576,4860502.939,15.419,9.684,0.000,2,3 +H2,3850973.883,1439011.054,4860499.788,17.514,4.979,0.000,4,5 +H3,3850977.117,1439013.531,4860496.638,19.609,0.274,0.000,6,7 +H4,3850970.026,1439001.726,4860505.331,8.620,12.294,0.000,8,9 +H5,3850973.260,1439004.203,4860502.181,10.715,7.589,0.000,10,11 +H6,3850976.495,1439006.680,4860499.030,12.809,2.884,0.000,12,13 +H7,3850979.728,1439009.157,4860495.880,14.904,-1.820,0.000,14,15 +H8,3850966.168,1438992.398,4860510.874,-0.274,19.609,0.000,16,17 +H9,3850969.403,1438994.875,4860507.724,1.820,14.904,0.000,18,19 +H10,3850972.637,1438997.352,4860504.573,3.915,10.199,0.000,20,21 +H11,3850975.871,1438999.829,4860501.422,6.010,5.494,0.000,22,23 +H12,3850979.105,1439002.306,4860498.272,8.104,0.790,0.000,24,25 +H13,3850982.340,1439004.783,4860495.121,10.199,-3.915,0.000,26,27 +H14,3850985.574,1439007.260,4860491.971,12.294,-8.620,0.000,28,29 +H15,3850988.808,1439009.738,4860488.820,14.389,-13.325,0.000,30,31 +H16,3850968.779,1438988.024,4860510.116,-4.979,17.514,0.000,32,33 +H17,3850972.014,1438990.502,4860506.965,-2.884,12.809,0.000,34,35 +H18,3850975.248,1438992.978,4860503.815,-0.790,8.104,0.000,36,37 +H19,3850978.482,1438995.455,4860500.665,1.305,3.400,0.000,38,39 +H20,3850981.716,1438997.933,4860497.514,3.400,-1.305,0.000,40,41 +H21,3850984.951,1439000.409,4860494.363,5.494,-6.010,0.000,42,43 +H22,3850988.185,1439002.886,4860491.212,7.589,-10.715,0.000,44,45 +H23,3850991.419,1439005.364,4860488.062,9.684,-15.419,0.000,46,47 +H24,3850971.391,1438983.650,4860509.358,-9.684,15.419,0.000,48,49 +H25,3850974.625,1438986.128,4860506.208,-7.589,10.715,0.000,50,51 +H26,3850977.859,1438988.605,4860503.057,-5.494,6.010,0.000,52,53 +H27,3850981.094,1438991.081,4860499.906,-3.400,1.305,0.000,54,55 +H28,3850984.328,1438993.559,4860496.755,-1.305,-3.400,0.000,56,57 +H29,3850987.562,1438996.036,4860493.605,0.790,-8.104,0.000,58,59 +H30,3850990.796,1438998.512,4860490.455,2.884,-12.809,0.000,60,61 +H31,3850994.031,1439000.990,4860487.304,4.979,-17.514,0.000,62,63 +H32,3850974.002,1438979.276,4860508.600,-14.389,13.325,0.000,64,65 +H33,3850977.236,1438981.754,4860505.449,-12.294,8.620,0.000,66,67 +H34,3850980.470,1438984.231,4860502.299,-10.199,3.915,0.000,68,69 +H35,3850983.705,1438986.708,4860499.148,-8.104,-0.790,0.000,70,71 +H36,3850986.939,1438989.185,4860495.998,-6.010,-5.494,0.000,72,73 +H37,3850990.173,1438991.662,4860492.847,-3.915,-10.199,0.000,74,75 +H38,3850993.407,1438994.139,4860489.696,-1.820,-14.904,0.000,76,77 +H39,3850996.642,1438996.616,4860486.546,0.274,-19.609,0.000,78,79 +H40,3850983.082,1438979.857,4860501.540,-14.904,1.820,0.000,80,81 +H41,3850986.315,1438982.334,4860498.390,-12.809,-2.884,0.000,82,83 +H42,3850989.550,1438984.811,4860495.239,-10.715,-7.589,0.000,84,85 +H43,3850992.784,1438987.288,4860492.089,-8.620,-12.294,0.000,86,87 +H44,3850985.693,1438975.483,4860500.782,-19.609,-0.274,0.000,88,89 +H45,3850988.927,1438977.960,4860497.632,-17.514,-4.979,0.000,90,91 +H46,3850992.161,1438980.438,4860494.481,-15.419,-9.684,0.000,92,93 +H47,3850995.396,1438982.914,4860491.330,-13.325,-14.389,0.000,94,95 +H48,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,96,97 +H49,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,98,99 +H50,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,100,101 +H51,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,102,103 +H52,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,104,105 +H53,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,106,107 +H54,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,108,109 +H55,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,110,111 +H56,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,112,113 +H57,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,114,115 +H58,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,116,117 +H59,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,118,119 +H60,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,120,121 +H61,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,122,123 +H62,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,124,125 +H63,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,126,127 +H64,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,128,129 +H65,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,130,131 +H66,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,132,133 +H67,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,134,135 +H68,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,136,137 +H69,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,138,139 +H70,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,140,141 +H71,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,142,143 +H72,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,144,145 +H73,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,146,147 +H74,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,148,149 +H75,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,150,151 +H76,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,152,153 +H77,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,154,155 +H78,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,156,157 +H79,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,158,159 +H80,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,160,161 +H81,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,162,163 +H82,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,164,165 +H83,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,166,167 +H84,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,168,169 +H85,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,170,171 +H86,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,172,173 +H87,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,174,175 +H88,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,176,177 +H89,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,178,179 +H90,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,180,181 +H91,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,182,183 +H92,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,184,185 +H93,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,186,187 +H94,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,188,189 +H95,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,190,191 +CLBA,3850974.511,1439060.669,4860478.711,0.000,0.000,0.000,-1,-1 +CHBA,3850981.405,1438994.507,4860498.710,0.000,0.000,0.000,-1,-1 diff --git a/MAC/Deployment/data/Coordinates/data/hba-rotations.csv b/MAC/Deployment/data/Coordinates/data/hba-rotations.csv index 15669e1127edff9b87c79043c6a17eacdb6bc08f..018521db0a8370e6a7f72482c045a80290aa9ec2 100644 --- a/MAC/Deployment/data/Coordinates/data/hba-rotations.csv +++ b/MAC/Deployment/data/Coordinates/data/hba-rotations.csv @@ -55,4 +55,6 @@ FR606,80, SE607,20, UK608,50, FI609,31, +PL610,38, +PL611,66, PL612,4, diff --git a/MAC/Deployment/data/Coordinates/data/normal_vectors.dat b/MAC/Deployment/data/Coordinates/data/normal_vectors.dat index 3054e21af74c5f8a617ee578c22fa206ec7f97d4..0bba676229bb9c33c94b94cfd4e097ac8d7a0cd5 100644 --- a/MAC/Deployment/data/Coordinates/data/normal_vectors.dat +++ b/MAC/Deployment/data/Coordinates/data/normal_vectors.dat @@ -12,6 +12,8 @@ cs007, hba0, 0.598753, 0.072099, 0.797682 cs007, hba1, 0.598753, 0.072099, 0.797682 rs406, lba , 0.591206, 0.077240, 0.802814 rs406, hba , 0.591206, 0.077240, 0.802814 +pl611, lba , 0.643193, 0.307002, 0.701465 +pl611, hba , 0.590360, 0.217723, 0.777220 rs205, lba , 0.598753, 0.072099, 0.797682 rs205, hba , 0.598753, 0.072099, 0.797682 cs201, lba , 0.598753, 0.072099, 0.797682 @@ -91,6 +93,8 @@ pl612, lba , 0.567718, 0.216143, 0.794341 pl612, hba , 0.556866, 0.265184, 0.787133 de603, lba , 0.601391, 0.095614, 0.793213 de603, hba , 0.601456, 0.095645, 0.793160 +pl610, lba , 0.584455, 0.179760, 0.791264 +pl610, hba , 0.584455, 0.179760, 0.791264 de609, lba , 0.582686, 0.102609, 0.806194 de609, hba , 0.583126, 0.102326, 0.805912 uk608, lba , 0.626845, -0.014960, 0.779000 diff --git a/MAC/Deployment/data/Coordinates/data/rotation_matrices.dat b/MAC/Deployment/data/Coordinates/data/rotation_matrices.dat index 81120faa9c6dd0644a223fbccf5c384d13d150a5..7d0b523f582084df4c8e2fac30a9356a84c0b7fe 100644 --- a/MAC/Deployment/data/Coordinates/data/rotation_matrices.dat +++ b/MAC/Deployment/data/Coordinates/data/rotation_matrices.dat @@ -12,6 +12,8 @@ cs007, hba0, -0.1195951054, -0.7919544517, 0.5987530018, 0.9928227484, -0.095418 cs007, hba1, -0.1195951054, -0.7919544517, 0.5987530018, 0.9928227484, -0.0954186800, 0.0720990002, 0.0000330969, 0.6030782884, 0.7976820024 rs406, lba , -0.1231490036, -0.7970634976, 0.5912056357, 0.9923766349, -0.0960342438, 0.0772401358, -0.0047893066, 0.5962107051, 0.8028137130 rs406, hba , -0.1231490036, -0.7970634976, 0.5912056357, 0.9923766349, -0.0960342438, 0.0772401358, -0.0047893066, 0.5962107051, 0.8028137130 +pl611, lba , -0.2733681404, -0.7152432670, 0.6431927618, 0.9477993701, -0.0861761283, 0.3070016758, -0.1641530196, 0.6935421717, 0.7014649258 +pl611, hba , -0.2077537076, -0.7799441347, 0.5903605201, 0.9714761732, -0.0939716163, 0.2177231734, -0.1143347798, 0.6187539754, 0.7772200950 rs205, lba , -0.1195951054, -0.7919544517, 0.5987530018, 0.9928227484, -0.0954186800, 0.0720990002, 0.0000330969, 0.6030782884, 0.7976820024 rs205, hba , -0.1195951054, -0.7919544517, 0.5987530018, 0.9928227484, -0.0954186800, 0.0720990002, 0.0000330969, 0.6030782884, 0.7976820024 cs201, lba , -0.1195951054, -0.7919544517, 0.5987530018, 0.9928227484, -0.0954186800, 0.0720990002, 0.0000330969, 0.6030782884, 0.7976820024 @@ -91,6 +93,8 @@ pl612, lba , -0.2051115812, -0.7972609600, 0.5677184170, 0.9716250122, -0.096058 pl612, hba , -0.2337017009, -0.7970471740, 0.5568656188, 0.9594035259, -0.0960322770, 0.2651842309, -0.1578872684, 0.5962328439, 0.7871327755 de603, lba , -0.1334809156, -0.7877259031, 0.6013906773, 0.9908835110, -0.0949092031, 0.0956143863, -0.0182404188, 0.6086708016, 0.7932131759 de603, hba , -0.1334960861, -0.7876731599, 0.6014563893, 0.9908811597, -0.0949028483, 0.0956450562, -0.0182571191, 0.6087400452, 0.7931596529 +pl610, lba , -0.1841550080, -0.7902527719, 0.5844548653, 0.9790917169, -0.0952136531, 0.1797603133, -0.0864080031, 0.6053386794, 0.7912640142 +pl610, hba , -0.1841550080, -0.7902527719, 0.5844548653, 0.9790917169, -0.0952136531, 0.1797603133, -0.0864080031, 0.6053386794, 0.7912640142 de609, lba , -0.1384372791, -0.8008196430, 0.5826860382, 0.9900311803, -0.0964868032, 0.1026087664, -0.0259496026, 0.5910822245, 0.8061937869 de609, hba , -0.1382553622, -0.8005307052, 0.5831260969, 0.9900638564, -0.0964519905, 0.1023258219, -0.0256712897, 0.5914791658, 0.8059115220 uk608, lba , -0.0635635542, -0.7765468618, 0.6268449936, 0.9955010195, -0.0935622956, -0.0149605152, 0.0702665977, 0.6230738867, 0.7790003447 diff --git a/MAC/Deployment/data/Coordinates/vectors-and-matrices/PL610/pl610-hba-solution.lisp b/MAC/Deployment/data/Coordinates/vectors-and-matrices/PL610/pl610-hba-solution.lisp new file mode 100644 index 0000000000000000000000000000000000000000..806e4ea0e901d78356443995e4b2d0b5cde41962 --- /dev/null +++ b/MAC/Deployment/data/Coordinates/vectors-and-matrices/PL610/pl610-hba-solution.lisp @@ -0,0 +1,14 @@ +(discarded-points + ("H009;3738451.4049;1148218.0191;5021724.6732;0.03" + "L041;3738416.9515;1148169.5187;5021761.3841;0.03" + "L040;3738413.7296;1148172.9894;5021762.9619;0.03")) +(reduced-chi-squared 1.1724133622487203) +(normal-vector (0.5844549 0.1797603 0.7912640)) +(normal-vector-uncertainties (0.0000352 0.0000378 0.0000252)) +(normal-vector-direction-uncertainties-arcsec :max 7.80 :rms 6.84 :avg 6.75) +(reference-point :etrs (3738462.921 1148243.954 5021710.380) + :station-pqr (0.0 0.0 0.0)) +(station-pqr-to-etrs-matrix + #2A((-0.1841550079886353 -0.7902527719109739 0.5844548652545618) + (0.9790917168645324 -0.0952136530551075 0.17976031330403253) + (-0.08640800310137937 0.6053386793844615 0.7912640142462616))) diff --git a/MAC/Deployment/data/Coordinates/vectors-and-matrices/PL610/pl610-lba-solution.lisp b/MAC/Deployment/data/Coordinates/vectors-and-matrices/PL610/pl610-lba-solution.lisp new file mode 100644 index 0000000000000000000000000000000000000000..c6cb6bc4d81597351f21ab587f0af41f3bf7fba6 --- /dev/null +++ b/MAC/Deployment/data/Coordinates/vectors-and-matrices/PL610/pl610-lba-solution.lisp @@ -0,0 +1,14 @@ +(discarded-points + ("H009;3738451.4049;1148218.0191;5021724.6732;0.03" + "L041;3738416.9515;1148169.5187;5021761.3841;0.03" + "L040;3738413.7296;1148172.9894;5021762.9619;0.03")) +(reduced-chi-squared 1.1724133622487203) +(normal-vector (0.5844549 0.1797603 0.7912640)) +(normal-vector-uncertainties (0.0000352 0.0000378 0.0000252)) +(normal-vector-direction-uncertainties-arcsec :max 7.80 :rms 6.84 :avg 6.75) +(reference-point :etrs (3738426.437 1148186.814 5021750.319) + :station-pqr (0.0 0.0 0.0)) +(station-pqr-to-etrs-matrix + #2A((-0.1841550079886353 -0.7902527719109739 0.5844548652545618) + (0.9790917168645324 -0.0952136530551075 0.17976031330403253) + (-0.08640800310137937 0.6053386793844615 0.7912640142462616))) diff --git a/MAC/Deployment/data/Coordinates/vectors-and-matrices/PL611/pl611-hba-solution.lisp b/MAC/Deployment/data/Coordinates/vectors-and-matrices/PL611/pl611-hba-solution.lisp new file mode 100644 index 0000000000000000000000000000000000000000..989386f64cd112157de0d0fca089ac2040cf4cd3 --- /dev/null +++ b/MAC/Deployment/data/Coordinates/vectors-and-matrices/PL611/pl611-hba-solution.lisp @@ -0,0 +1,18 @@ +(discarded-points + ("163;3850967.73;1438978.958;4860513.104;0.015" + "145;3850989.441;1439019.047;4860485.076;0.015" + "135;3850996.516;1438970.551;4860493.448;0.015" + "134;3850993.403;1438970.441;4860496.091;0.015" + "124;3850986.035;1439018.782;4860488.055;0.015" + "90;3850976.904;1438970.339;4860508.535;0.015" + "70;3850972.646;1438970.074;4860511.318;0.015")) +(reduced-chi-squared 20.373103693977058) +(normal-vector (0.5903605 0.2177232 0.7772201)) +(normal-vector-uncertainties (0.0003536 0.0004151 0.0002565)) +(normal-vector-direction-uncertainties-arcsec :max 85.62 :rms 71.76 :avg 70.49) +(reference-point :etrs (3850981.405 1438994.507 4860498.710) + :station-pqr (0.0 0.0 0.0)) +(station-pqr-to-etrs-matrix + #2A((-0.20775370760038853 -0.7799441347431133 0.5903605200706672) + (0.9714761732025363 -0.09397161628198974 0.21772317339480948) + (-0.11433477982682289 0.6187539753514049 0.7772200950237874))) diff --git a/MAC/Deployment/data/Coordinates/vectors-and-matrices/PL611/pl611-lba-solution.lisp b/MAC/Deployment/data/Coordinates/vectors-and-matrices/PL611/pl611-lba-solution.lisp new file mode 100644 index 0000000000000000000000000000000000000000..d18f6e198f088358b827bdba41584d82041304f8 --- /dev/null +++ b/MAC/Deployment/data/Coordinates/vectors-and-matrices/PL611/pl611-lba-solution.lisp @@ -0,0 +1,36 @@ +(discarded-points + ("379;3850995.453;1439084.439;4860449.318;0.015" + "378;3850996.404;1439079.416;4860450.746;0.015" + "377;3850997.379;1439074.58;4860451.932;0.015" + "376;3850998.359;1439069.817;4860453.024;0.015" + "370;3851004.522;1439041.409;4860460.041;0.015" + "369;3851005.647;1439036.779;4860461.318;0.015" + "360;3850993.738;1439074.978;4860454.988;0.015" + "359;3850992.756;1439079.729;4860453.833;0.015" + "358;3850991.787;1439084.539;4860452.682;0.015" + "357;3850986.32;1439091.494;4860454.185;0.015" + "356;3850987.482;1439087.072;4860455.472;0.015" + "344;3850996.44;1439027.307;4860473.654;0.015" + "330;3850982.145;1439094.017;4860456.826;0.015" + "315;3850992.438;1439027.186;4860476.718;0.015" + "225;3850970.108;1439027.395;4860496.76;0.015" + "224;3850966.587;1439027.344;4860500.321;0.015" + "223;3850965.99;1439030.348;4860499.425;0.015" + "209;3850950.198;1439089.884;4860488.488;0.015" + "197;3850961.755;1439031.811;4860502.489;0.015" + "196;3850956.957;1439036.944;4860504.547;0.015" + "186;3850947.472;1439084.884;4860493.395;0.015" + "185;3850943.62;1439084.891;4860496.704;0.015" + "177;3850951.188;1439047.126;4860505.615;0.015" + "176;3850952.031;1439041.879;4860506.645;0.015" + "175;3850953.027;1439036.852;4860507.617;0.015")) +(reduced-chi-squared 11.316699188226131) +(normal-vector (0.6431928 0.3070017 0.7014649)) +(normal-vector-uncertainties (0.0001153 0.0001430 0.0000917)) +(normal-vector-direction-uncertainties-arcsec :max 29.51 :rms 24.45 :avg 24.07) +(reference-point :etrs (3850974.511 1439060.669 4860478.711) + :station-pqr (0.0 0.0 0.0)) +(station-pqr-to-etrs-matrix + #2A((-0.27336814043997193 -0.715243266964909 0.643192761816981) + (0.9477993700899157 -0.08617612831160104 0.3070016758364383) + (-0.16415301961752288 0.6935421717318899 0.701464925837253))) diff --git a/MAC/Deployment/data/StaticMetaData/AntennaFields/PL610-AntennaField.conf b/MAC/Deployment/data/StaticMetaData/AntennaFields/PL610-AntennaField.conf index 49f873d1bf1c660c91e5929766235aff879ddd5f..7df37b9e65336a368002dc92eb8f0f7dc592a753 100644 --- a/MAC/Deployment/data/StaticMetaData/AntennaFields/PL610-AntennaField.conf +++ b/MAC/Deployment/data/StaticMetaData/AntennaFields/PL610-AntennaField.conf @@ -1,227 +1,227 @@ # -# DUMMY AntennaPositions for PL610 +# AntennaPositions for PL610 # ITRF2005 target_date = 2015.5 -# Created: 2015-06-23 19:24:00 +# Created: 2015-10-05 15:08:13 # NORMAL_VECTOR LBA -3 [ 0.582686 0.102609 0.806194 ] +3 [ 0.584455 0.179760 0.791264 ] ROTATION_MATRIX LBA 3 x 3 [ - -0.1384370000 -0.8008200000 0.5826860000 - 0.9900310000 -0.0964870000 0.1026090000 - -0.0259500000 0.5910820000 0.8061940000 + -0.1841550000 -0.7902530000 0.5844550000 + 0.9790920000 -0.0952140000 0.1797600000 + -0.0864080000 0.6053390000 0.7912640000 ] LBA -3 [ 3727207.315770000 655185.261474000 5117000.905 ] +3 [ 3738425.931650000 1148187.175940000 5021750.597 ] 96 x 2 x 3 [ - -2.385000 -13.491000 3.440990 -2.385000 -13.491000 3.440990 - -7.901000 -8.415000 6.781990 -7.901000 -8.415000 6.781990 - -5.396000 -14.324000 5.722990 -5.396000 -14.324000 5.722990 --10.186000 -10.119001 8.649990 -10.186000 -10.119001 8.649990 - -0.124000 20.778000 -2.555010 -0.124000 20.778000 -2.555010 - -4.701000 24.130000 0.326990 -4.701000 24.130000 0.326990 - 5.326000 25.166001 -7.052000 5.326000 25.166001 -7.052000 - 2.267000 28.650001 -5.285010 2.267000 28.650001 -5.285010 - -3.652000 -19.315000 5.097990 -3.652000 -19.315000 5.097990 - 0.017010 -24.962000 3.165000 0.017010 -24.962000 3.165000 - -1.878990 -28.049000 4.928000 -1.878990 -28.049000 4.928000 - -5.235990 -27.314000 7.260990 -5.235990 -27.314000 7.260990 - -0.077000 5.075000 -0.590010 -0.077000 5.075000 -0.590010 - -3.595000 1.673000 2.385990 -3.595000 1.673000 2.385990 - -5.802000 3.931000 3.692990 -5.802000 3.931000 3.692990 - -4.688000 8.401000 2.318990 -4.688000 8.401000 2.318990 - -8.598000 3.337999 5.788990 -8.598000 3.337999 5.788990 - -9.953000 -1.251001 7.352990 -9.953000 -1.251001 7.352990 --14.253000 5.953999 9.543990 -14.253000 5.953999 9.543990 --16.063000 2.028999 11.351990 -16.063000 2.028999 11.351990 - 17.152000 -3.302998 -11.976000 17.152000 -3.302998 -11.976000 - 17.566000 -12.263998 -11.135000 17.566000 -12.263998 -11.135000 - 24.669000 -4.977997 -17.197000 24.669000 -4.977997 -17.197000 - 21.351010 -15.981998 -13.397000 21.351010 -15.981998 -13.397000 - 3.774000 -12.505999 -1.136000 3.774000 -12.505999 -1.136000 - 2.166000 -15.975999 0.468000 2.166000 -15.975999 0.468000 - 6.991000 -14.399999 -3.220000 6.991000 -14.399999 -3.220000 - 9.106010 -17.695999 -4.329000 9.106010 -17.695999 -4.329000 - 12.973000 11.788002 -10.876000 12.973000 11.788002 -10.876000 - 14.427000 15.115002 -12.351000 14.427000 15.115002 -12.351000 - 19.444000 6.923002 -14.935000 19.444000 6.923002 -14.935000 - 21.584000 12.082002 -17.138000 21.584000 12.082002 -17.138000 --15.908000 9.413999 10.299990 -15.908000 9.413999 10.299990 --15.203000 15.815999 8.974990 -15.203000 15.815999 8.974990 --22.162000 21.404998 13.292990 -22.162000 21.404998 13.292990 --23.439000 15.267998 14.997990 -23.439000 15.267998 14.997990 - 3.902000 5.015001 -3.459000 3.902000 5.015001 -3.459000 - 1.084000 9.810000 -2.032000 1.084000 9.810000 -2.032000 - 6.434000 7.284001 -5.577000 6.434000 7.284001 -5.577000 - 5.172000 10.742001 -5.105000 5.172000 10.742001 -5.105000 --13.778000 -17.568001 12.193990 -13.778000 -17.568001 12.193990 --17.938000 -8.584001 14.056990 -17.938000 -8.584001 14.056990 --20.272000 -16.947002 16.808990 -20.272000 -16.947002 16.808990 --23.586000 -7.012002 17.938990 -23.586000 -7.012002 17.938990 - 5.987000 -1.138999 -4.182000 5.987000 -1.138999 -4.182000 - 8.740000 0.756001 -6.413000 8.740000 0.756001 -6.413000 - 7.442000 -5.689999 -4.655000 7.442000 -5.689999 -4.655000 - 10.784000 -2.740999 -7.446000 10.784000 -2.740999 -7.446000 - -4.781000 17.368000 1.244990 -4.781000 17.368000 1.244990 - 16.096000 3.398002 -12.066000 16.096000 3.398002 -12.066000 - -7.428000 28.024000 1.801990 -7.428000 28.024000 1.801990 --12.607000 16.980999 6.950990 -12.607000 16.980999 6.950990 - 13.586010 -19.721998 -7.309000 13.586010 -19.721998 -7.309000 - 25.303000 2.547003 -18.612000 25.303000 2.547003 -18.612000 --14.951000 24.151999 7.731990 -14.951000 24.151999 7.731990 - -1.321000 8.211000 -0.090010 -1.321000 8.211000 -0.090010 --11.883000 -24.202001 11.668990 -11.883000 -24.202001 11.668990 - 13.136000 -12.848998 -7.859000 13.136000 -12.848998 -7.859000 - 2.007000 -19.867999 1.078000 2.007000 -19.867999 1.078000 - 17.313000 20.669002 -15.144000 17.313000 20.669002 -15.144000 - 12.879000 4.744002 -9.912000 12.879000 4.744002 -9.912000 - 12.378000 -9.072998 -7.792000 12.378000 -9.072998 -7.792000 --14.753000 -7.090001 11.565990 -14.753000 -7.090001 11.565990 - -5.135000 -2.138000 3.982990 -5.135000 -2.138000 3.982990 - -0.165000 15.213000 -1.817010 -0.165000 15.213000 -1.817010 - -1.108000 -7.354000 1.736990 -1.108000 -7.354000 1.736990 - 10.425000 18.470001 -9.886000 10.425000 18.470001 -9.886000 - 8.508000 11.428001 -7.603000 8.508000 11.428001 -7.603000 - 7.179010 -22.427999 -2.334000 7.179010 -22.427999 -2.334000 - 5.515010 -24.913999 -0.815000 5.515010 -24.913999 -0.815000 - 2.140000 -4.021999 -1.035000 2.140000 -4.021999 -1.035000 --10.858000 -14.764001 9.726990 -10.858000 -14.764001 9.726990 - 9.646000 4.173001 -7.503000 9.646000 4.173001 -7.503000 - -9.835000 12.923999 5.462990 -9.835000 12.923999 5.462990 - 2.586000 15.972001 -3.902000 2.586000 15.972001 -3.902000 --12.249000 25.292999 5.633990 -12.249000 25.292999 5.633990 - 2.427000 -9.188999 -0.584000 2.427000 -9.188999 -0.584000 - 13.400000 -0.374998 -9.637000 13.400000 -0.374998 -9.637000 - -6.464000 -20.643000 7.298990 -6.464000 -20.643000 7.298990 --20.268000 -0.557002 14.719990 -20.268000 -0.557002 14.719990 --13.727000 -1.982001 10.172990 -13.727000 -1.982001 10.172990 - -7.039000 20.879000 2.429990 -7.039000 20.879000 2.429990 --11.211000 6.636999 7.257990 -11.211000 6.636999 7.257990 - -1.969000 -3.827000 1.909990 -1.969000 -3.827000 1.909990 - 21.307000 -1.589998 -15.198000 21.307000 -1.589998 -15.198000 - 3.916000 1.518001 -3.024000 3.916000 1.518001 -3.024000 - 10.477000 28.105001 -11.149000 10.477000 28.105001 -11.149000 - 7.760000 19.672001 -8.112000 7.760000 19.672001 -8.112000 - -7.629000 -3.386000 5.944990 -7.629000 -3.386000 5.944990 --25.785000 3.657998 18.170990 -25.785000 3.657998 18.170990 - -2.791000 -9.971000 3.286990 -2.791000 -9.971000 3.286990 - 16.219010 -19.770998 -9.206000 16.219010 -19.770998 -9.206000 --19.359000 7.202998 13.074990 -19.359000 7.202998 13.074990 - 4.190000 -6.577999 -2.191000 4.190000 -6.577999 -2.191000 - 8.585000 -8.974999 -5.063000 8.585000 -8.974999 -5.063000 - -6.503000 11.141000 3.281990 -6.503000 11.141000 3.281990 + -0.536000 -13.675000 3.503000 -0.536000 -13.675000 3.503000 + -6.577000 -9.340000 6.980000 -6.577000 -9.340000 6.980000 + -3.357000 -14.881000 5.860000 -3.357000 -14.881000 5.860000 + -8.575000 -11.319000 8.905000 -8.575000 -11.319000 8.905000 + -2.869000 20.579000 -2.556000 -2.869000 20.579000 -2.556000 + -7.769000 23.322000 0.440000 -7.769000 23.322000 0.440000 + 1.854000 25.619000 -7.189000 1.854000 25.619000 -7.189000 + -1.585000 28.685000 -5.346000 -1.585000 28.685000 -5.346000 + -0.999000 -19.607000 5.193000 -0.999000 -19.607000 5.193000 + 3.320000 -24.741000 3.168000 3.320000 -24.741000 3.168000 + 1.883000 -28.040000 4.979000 1.883000 -28.040000 4.979000 + -1.482000 -27.736000 7.396000 -1.482000 -27.736000 7.396000 + -0.746000 5.020000 -0.589000 -0.746000 5.020000 -0.589000 + -3.721000 1.203000 2.475000 -3.721000 1.203000 2.475000 + -6.167000 3.162000 3.837000 -6.167000 3.162000 3.837000 + -5.674000 7.733000 2.434000 -5.674000 7.733000 2.434000 + -8.810000 2.220000 6.003000 -8.810000 2.220000 6.003000 + -9.522000 -2.501000 7.601000 -9.522000 -2.501000 7.601000 +-14.660000 4.097000 9.898000 -14.660000 4.097000 9.898000 +-15.904000 -0.023000 11.752000 -15.904000 -0.023000 11.752000 + 17.132000 -1.102000 -12.404000 17.132000 -1.102000 -12.404000 + 18.719000 -9.932000 -11.570000 18.719000 -9.932000 -11.570000 + 24.669000 -1.811000 -17.810000 24.669000 -1.811000 -17.810000 + 22.895000 -13.138000 -13.926000 22.895000 -13.138000 -13.926000 + 5.328000 -11.918000 -1.228000 5.328000 -11.918000 -1.228000 + 4.222000 -15.562000 0.417000 4.222000 -15.562000 0.417000 + 8.711000 -13.389000 -3.393000 8.711000 -13.389000 -3.393000 + 11.205000 -16.388000 -4.554000 11.205000 -16.388000 -4.554000 + 11.066000 13.327000 -11.202000 11.066000 13.327000 -11.202000 + 12.042000 16.809000 -12.714000 12.042000 16.809000 -12.714000 + 18.009000 9.324000 -15.420000 18.009000 9.324000 -15.420000 + 19.409000 14.708000 -17.678000 19.409000 14.708000 -17.678000 +-16.730000 7.316000 10.695000 -16.730000 7.316000 10.695000 +-16.890000 13.751000 9.352000 -16.890000 13.751000 9.352000 +-24.403000 18.410000 13.842000 -24.403000 18.410000 13.842000 +-24.833000 12.165000 15.579000 -24.833000 12.165000 15.579000 + 3.135000 5.465000 -3.557000 3.135000 5.465000 -3.557000 + -0.243000 9.860000 -2.060000 -0.243000 9.860000 -2.060000 + 5.299000 8.035000 -5.739000 5.299000 8.035000 -5.739000 + 3.613000 11.301000 -5.236000 3.613000 11.301000 -5.236000 +-11.085000 -19.157000 12.540000 -11.085000 -19.157000 12.540000 +-16.323000 -10.780000 14.505000 -16.323000 -10.780000 14.505000 +-17.488000 -19.365000 17.317000 -17.488000 -19.365000 17.317000 +-22.028000 -9.936000 18.528000 -22.028000 -9.936000 18.528000 + 5.978000 -0.371000 -4.331000 5.978000 -0.371000 -4.331000 + 8.407000 1.856000 -6.632000 8.407000 1.856000 -6.632000 + 7.996000 -4.698000 -4.839000 7.996000 -4.698000 -4.839000 + 10.859000 -1.351000 -7.714000 10.859000 -1.351000 -7.714000 + -6.952000 16.610000 1.361000 -6.952000 16.610000 1.361000 + 15.217000 5.407000 -12.468000 15.217000 5.407000 -12.468000 +-10.938000 26.836000 1.983000 -10.938000 26.836000 1.983000 +-14.518000 15.236000 7.262000 -14.518000 15.236000 7.262000 + 15.833000 -17.828000 -7.645000 15.833000 -17.828000 -7.645000 + 24.290000 5.728000 -19.243000 24.290000 5.728000 -19.243000 +-17.747000 22.046000 8.100000 -17.747000 22.046000 8.100000 + -2.372000 7.971000 -0.059000 -2.372000 7.971000 -0.059000 + -8.364000 -25.493000 11.969000 -8.364000 -25.493000 11.969000 + 14.485000 -11.072000 -8.184000 14.485000 -11.072000 -8.184000 + 4.583000 -19.438000 1.031000 4.583000 -19.438000 1.031000 + 14.116000 22.679000 -15.579000 14.116000 22.679000 -15.579000 + 11.908000 6.333000 -10.234000 11.908000 6.333000 -10.234000 + 13.248000 -7.425000 -8.099000 13.248000 -7.425000 -8.099000 +-13.421000 -8.895000 11.934000 -13.421000 -8.895000 11.934000 + -4.714000 -2.769000 4.111000 -4.714000 -2.769000 4.111000 + -2.174000 15.058000 -1.815000 -2.174000 15.058000 -1.815000 + -0.106000 -7.429000 1.766000 -0.106000 -7.429000 1.766000 + 7.703000 19.627000 -10.148000 7.703000 19.627000 -10.148000 + 6.768000 12.405000 -7.817000 6.768000 12.405000 -7.817000 + 9.955000 -21.321000 -2.509000 9.955000 -21.321000 -2.509000 + 8.665000 -23.996000 -0.949000 8.665000 -23.996000 -0.949000 + 2.615000 -3.715000 -1.087000 2.615000 -3.715000 -1.087000 + -8.614000 -16.008000 10.000000 -8.614000 -16.008000 10.000000 + 8.837000 5.357000 -7.744000 8.837000 5.357000 -7.744000 +-11.282000 11.565000 5.706000 -11.282000 11.565000 5.706000 + 0.404000 16.158000 -3.969000 0.404000 16.158000 -3.969000 +-15.268000 23.519000 5.935000 -15.268000 23.519000 5.935000 + 3.578000 -8.801000 -0.643000 3.578000 -8.801000 -0.643000 + 13.091000 1.325000 -9.971000 13.091000 1.325000 -9.971000 + -3.559000 -21.280000 7.464000 -3.559000 -21.280000 7.464000 +-19.653000 -3.119000 15.225000 -19.653000 -3.119000 15.225000 +-13.098000 -3.703000 10.516000 -13.098000 -3.703000 10.516000 + -9.614000 19.803000 2.602000 -9.614000 19.803000 2.602000 +-11.790000 5.159000 7.536000 -11.790000 5.159000 7.536000 + -1.410000 -4.043000 1.960000 -1.410000 -4.043000 1.960000 + 20.949000 1.122000 -15.729000 20.949000 1.122000 -15.729000 + 3.611000 2.000000 -3.122000 3.611000 2.000000 -3.122000 + 6.478000 29.185000 -11.415000 6.478000 29.185000 -11.415000 + 4.950000 20.481000 -8.309000 4.950000 20.481000 -8.309000 + -6.978000 -4.321000 6.136000 -6.978000 -4.321000 6.136000 +-25.581000 0.361000 18.813000 -25.581000 0.361000 18.813000 + -1.398000 -10.235000 3.358000 -1.398000 -10.235000 3.358000 + 18.402000 -17.542000 -9.607000 18.402000 -17.542000 -9.607000 +-19.795000 4.688000 13.556000 -19.795000 4.688000 13.556000 + 4.948000 -5.989000 -2.294000 4.948000 -5.989000 -2.294000 + 9.544000 -7.809000 -5.275000 9.544000 -7.809000 -5.275000 + -7.804000 10.219000 3.443000 -7.804000 10.219000 3.443000 ] NORMAL_VECTOR HBA -3 [ 0.583126 0.102326 0.805912 ] +3 [ 0.584455 0.179760 0.791264 ] ROTATION_MATRIX HBA 3 x 3 [ - -0.1382550000 -0.8005310000 0.5831260000 - 0.9900640000 -0.0964520000 0.1023260000 - -0.0256710000 0.5914790000 0.8059120000 + -0.1841550000 -0.7902530000 0.5844550000 + 0.9790920000 -0.0952140000 0.1797600000 + -0.0864080000 0.6053390000 0.7912640000 ] HBA -3 [ 3727217.665780000 655109.182475000 5117003.127 ] +3 [ 3738462.415650000 1148244.315940000 5021710.658 ] 96 x 2 x 3 [ --22.005000 7.896998 14.918990 -22.005000 7.896998 14.918990 --19.653000 11.909998 12.707990 -19.653000 11.909998 12.707990 --17.301000 15.922999 10.496990 -17.301000 15.922999 10.496990 --14.950000 19.935999 8.286000 -14.950000 19.935999 8.286000 --12.598000 23.948999 6.075000 -12.598000 23.948999 6.075000 --20.896000 0.699998 15.030990 -20.896000 0.699998 15.030990 --18.544000 4.712999 12.818990 -18.544000 4.712999 12.818990 --16.193000 8.724999 10.609000 -16.193000 8.724999 10.609000 --13.841000 12.738999 8.397000 -13.841000 12.738999 8.397000 --11.489000 16.751999 6.186000 -11.489000 16.751999 6.186000 - -9.137000 20.763999 3.975000 -9.137000 20.763999 3.975000 - -6.786000 24.777000 1.764000 -6.786000 24.777000 1.764000 --19.788000 -6.498002 15.142990 -19.788000 -6.498002 15.142990 --17.436000 -2.484001 12.931000 -17.436000 -2.484001 12.931000 --15.084000 1.527999 10.720000 -15.084000 1.527999 10.720000 --12.732000 5.540999 8.509000 -12.732000 5.540999 8.509000 --10.381000 9.552999 6.298000 -10.381000 9.552999 6.298000 - -8.029000 13.567000 4.087000 -8.029000 13.567000 4.087000 - -5.678000 17.580000 1.876000 -5.678000 17.580000 1.876000 - -3.325000 21.592000 -0.335000 -3.325000 21.592000 -0.335000 - -0.974000 25.605000 -2.546000 -0.974000 25.605000 -2.546000 --18.679000 -13.695001 15.254000 -18.679000 -13.695001 15.254000 --16.327000 -9.682001 13.043000 -16.327000 -9.682001 13.043000 --13.976000 -5.669001 10.832000 -13.976000 -5.669001 10.832000 --11.624000 -1.656001 8.621000 -11.624000 -1.656001 8.621000 - -9.272000 2.355999 6.410000 -9.272000 2.355999 6.410000 - -6.920000 6.369000 4.199000 -6.920000 6.369000 4.199000 - -4.569000 10.382000 1.988000 -4.569000 10.382000 1.988000 - -2.217000 14.395000 -0.224000 -2.217000 14.395000 -0.224000 - 0.134000 18.408000 -2.434000 0.134000 18.408000 -2.434000 - 2.487000 22.420001 -4.646000 2.487000 22.420001 -4.646000 - 4.838000 26.433001 -6.857000 4.838000 26.433001 -6.857000 --15.219000 -16.880001 13.155000 -15.219000 -16.880001 13.155000 --12.867000 -12.867001 10.944000 -12.867000 -12.867001 10.944000 --10.515000 -8.854001 8.733000 -10.515000 -8.854001 8.733000 - -8.164000 -4.841000 6.522000 -8.164000 -4.841000 6.522000 - -5.812000 -0.828000 4.310000 -5.812000 -0.828000 4.310000 - -3.461000 3.184000 2.100000 -3.461000 3.184000 2.100000 - -1.108000 7.197000 -0.112000 -1.108000 7.197000 -0.112000 - 1.243000 11.211000 -2.323000 1.243000 11.211000 -2.323000 - 3.595000 15.223001 -4.534000 3.595000 15.223001 -4.534000 - 5.946000 19.236001 -6.745000 5.946000 19.236001 -6.745000 - 8.298000 23.248001 -8.956000 8.298000 23.248001 -8.956000 --11.758000 -20.064001 11.055000 -11.758000 -20.064001 11.055000 - -9.407000 -16.051001 8.844000 -9.407000 -16.051001 8.844000 - -7.055000 -12.039000 6.633000 -7.055000 -12.039000 6.633000 - -4.703000 -8.025000 4.422000 -4.703000 -8.025000 4.422000 - -2.351000 -4.013000 2.211000 -2.351000 -4.013000 2.211000 - 2.351000 4.013001 -2.211000 2.351000 4.013001 -2.211000 - 4.703000 8.025001 -4.422000 4.703000 8.025001 -4.422000 - 7.055000 12.039001 -6.633000 7.055000 12.039001 -6.633000 - 9.407000 16.051001 -8.844000 9.407000 16.051001 -8.844000 - 11.758000 20.064001 -11.055000 11.758000 20.064001 -11.055000 - -8.298000 -23.248000 8.956000 -8.298000 -23.248000 8.956000 - -5.946000 -19.236000 6.745000 -5.946000 -19.236000 6.745000 - -3.595000 -15.223000 4.534000 -3.595000 -15.223000 4.534000 - -1.243000 -11.211000 2.323000 -1.243000 -11.211000 2.323000 - 1.108000 -7.197000 0.112000 1.108000 -7.197000 0.112000 - 3.461000 -3.183999 -2.100000 3.461000 -3.183999 -2.100000 - 5.812000 0.828001 -4.310000 5.812000 0.828001 -4.310000 - 8.164000 4.841001 -6.522000 8.164000 4.841001 -6.522000 - 10.515000 8.854001 -8.733000 10.515000 8.854001 -8.733000 - 12.867000 12.867002 -10.944000 12.867000 12.867002 -10.944000 - 15.219000 16.880002 -13.155000 15.219000 16.880002 -13.155000 - -4.838000 -26.433000 6.857000 -4.838000 -26.433000 6.857000 - -2.487000 -22.420000 4.646000 -2.487000 -22.420000 4.646000 - -0.134000 -18.408000 2.434000 -0.134000 -18.408000 2.434000 - 2.217000 -14.394999 0.224000 2.217000 -14.394999 0.224000 - 4.569000 -10.381999 -1.988000 4.569000 -10.381999 -1.988000 - 6.920000 -6.368999 -4.199000 6.920000 -6.368999 -4.199000 - 9.272000 -2.355999 -6.410000 9.272000 -2.355999 -6.410000 - 11.624000 1.656001 -8.621000 11.624000 1.656001 -8.621000 - 13.976000 5.669002 -10.832000 13.976000 5.669002 -10.832000 - 16.327000 9.682002 -13.043000 16.327000 9.682002 -13.043000 - 18.679000 13.695002 -15.254000 18.679000 13.695002 -15.254000 - 0.974000 -25.605000 2.546000 0.974000 -25.605000 2.546000 - 3.325000 -21.591999 0.335000 3.325000 -21.591999 0.335000 - 5.678000 -17.579999 -1.876000 5.678000 -17.579999 -1.876000 - 8.029000 -13.566999 -4.087000 8.029000 -13.566999 -4.087000 - 10.381000 -9.552999 -6.298000 10.381000 -9.552999 -6.298000 - 12.732000 -5.540998 -8.509000 12.732000 -5.540998 -8.509000 - 15.084000 -1.527998 -10.720000 15.084000 -1.527998 -10.720000 - 17.436000 2.484002 -12.931000 17.436000 2.484002 -12.931000 - 19.788000 6.498002 -15.143000 19.788000 6.498002 -15.143000 - 6.786000 -24.776999 -1.764000 6.786000 -24.776999 -1.764000 - 9.137000 -20.763999 -3.975000 9.137000 -20.763999 -3.975000 - 11.489000 -16.751999 -6.186000 11.489000 -16.751999 -6.186000 - 13.841000 -12.738998 -8.397000 13.841000 -12.738998 -8.397000 - 16.193000 -8.724998 -10.609000 16.193000 -8.724998 -10.609000 - 18.544000 -4.712998 -12.819000 18.544000 -4.712998 -12.819000 - 20.896000 -0.699998 -15.031000 20.896000 -0.699998 -15.031000 - 12.598000 -23.948998 -6.075000 12.598000 -23.948998 -6.075000 - 14.950000 -19.935998 -8.286000 14.950000 -19.935998 -8.286000 - 17.301000 -15.922998 -10.497000 17.301000 -15.922998 -10.497000 - 19.653000 -11.909998 -12.708000 19.653000 -11.909998 -12.708000 - 22.005000 -7.896998 -14.919000 22.005000 -7.896998 -14.919000 +-22.472010 5.039000 15.453000 -22.472010 5.039000 15.453000 +-20.713010 9.314000 13.183000 -20.713010 9.314000 13.183000 +-18.954010 13.590000 10.913000 -18.954010 13.590000 10.913000 +-17.197010 17.866000 8.643000 -17.197010 17.866000 8.643000 +-15.438010 22.141000 6.373000 -15.438010 22.141000 6.373000 +-20.439010 -1.954000 15.541000 -20.439010 -1.954000 15.541000 +-18.680010 2.321000 13.270000 -18.680010 2.321000 13.270000 +-16.922010 6.596000 11.001000 -16.922010 6.596000 11.001000 +-15.164010 10.872000 8.731000 -15.164010 10.872000 8.731000 +-13.405010 15.147000 6.460000 -13.405010 15.147000 6.460000 +-11.647010 19.422000 4.191000 -11.647010 19.422000 4.191000 + -9.889010 23.697000 1.921000 -9.889010 23.697000 1.921000 +-18.406000 -8.947000 15.628000 -18.406000 -8.947000 15.628000 +-16.648000 -4.672000 13.358000 -16.648000 -4.672000 13.358000 +-14.889010 -0.397000 11.088000 -14.889010 -0.397000 11.088000 +-13.131010 3.879000 8.818000 -13.131010 3.879000 8.818000 +-11.373010 8.154000 6.548000 -11.373010 8.154000 6.548000 + -9.614010 12.429000 4.278000 -9.614010 12.429000 4.278000 + -7.856010 16.704000 2.008000 -7.856010 16.704000 2.008000 + -6.098010 20.980000 -0.262000 -6.098010 20.980000 -0.262000 + -4.340010 25.255000 -2.532000 -4.340010 25.255000 -2.532000 +-16.373000 -15.941000 15.715000 -16.373000 -15.941000 15.715000 +-14.615000 -11.666000 13.445000 -14.615000 -11.666000 13.445000 +-12.856000 -7.389000 11.175000 -12.856000 -7.389000 11.175000 +-11.099000 -3.114000 8.905000 -11.099000 -3.114000 8.905000 + -9.340000 1.161000 6.635000 -9.340000 1.161000 6.635000 + -7.582010 5.436000 4.366000 -7.582010 5.436000 4.366000 + -5.824010 9.712000 2.095000 -5.824010 9.712000 2.095000 + -4.065010 13.987000 -0.175000 -4.065010 13.987000 -0.175000 + -2.307010 18.262000 -2.444000 -2.307010 18.262000 -2.444000 + -0.549010 22.537000 -4.715000 -0.549010 22.537000 -4.715000 + 1.209990 26.813000 -6.985000 1.209990 26.813000 -6.985000 +-12.583000 -18.659000 13.533000 -12.583000 -18.659000 13.533000 +-10.824000 -14.383000 11.263000 -10.824000 -14.383000 11.263000 + -9.066000 -10.108000 8.992000 -9.066000 -10.108000 8.992000 + -7.308000 -5.833000 6.723000 -7.308000 -5.833000 6.723000 + -5.549000 -1.558000 4.453000 -5.549000 -1.558000 4.453000 + -3.791000 2.718000 2.182000 -3.791000 2.718000 2.182000 + -2.033010 6.993000 -0.087000 -2.033010 6.993000 -0.087000 + -0.274010 11.268000 -2.357000 -0.274010 11.268000 -2.357000 + 1.483990 15.543000 -4.627000 1.483990 15.543000 -4.627000 + 3.241990 19.819000 -6.897000 3.241990 19.819000 -6.897000 + 4.999990 24.094000 -9.167000 4.999990 24.094000 -9.167000 + -8.791000 -21.376000 11.350000 -8.791000 -21.376000 11.350000 + -7.033000 -17.101000 9.080000 -7.033000 -17.101000 9.080000 + -5.275000 -12.826000 6.810000 -5.275000 -12.826000 6.810000 + -3.516000 -8.551000 4.540000 -3.516000 -8.551000 4.540000 + -1.759000 -4.275000 2.270000 -1.759000 -4.275000 2.270000 + 1.759000 4.275000 -2.270000 1.759000 4.275000 -2.270000 + 3.516000 8.551000 -4.540000 3.516000 8.551000 -4.540000 + 5.274990 12.826000 -6.810000 5.274990 12.826000 -6.810000 + 7.032990 17.101000 -9.080000 7.032990 17.101000 -9.080000 + 8.790990 21.376000 -11.350000 8.790990 21.376000 -11.350000 + -5.000000 -24.094000 9.167000 -5.000000 -24.094000 9.167000 + -3.242000 -19.819000 6.897000 -3.242000 -19.819000 6.897000 + -1.484000 -15.543000 4.627000 -1.484000 -15.543000 4.627000 + 0.274000 -11.268000 2.357000 0.274000 -11.268000 2.357000 + 2.033000 -6.993000 0.087000 2.033000 -6.993000 0.087000 + 3.791000 -2.718000 -2.182000 3.791000 -2.718000 -2.182000 + 5.549000 1.558000 -4.453000 5.549000 1.558000 -4.453000 + 7.308000 5.833000 -6.723000 7.308000 5.833000 -6.723000 + 9.066000 10.108000 -8.992000 9.066000 10.108000 -8.992000 + 10.823990 14.383000 -11.263000 10.823990 14.383000 -11.263000 + 12.582990 18.659000 -13.533000 12.582990 18.659000 -13.533000 + -1.210000 -26.813000 6.985000 -1.210000 -26.813000 6.985000 + 0.549000 -22.537000 4.715000 0.549000 -22.537000 4.715000 + 2.307000 -18.262000 2.444000 2.307000 -18.262000 2.444000 + 4.065000 -13.987000 0.175000 4.065000 -13.987000 0.175000 + 5.824000 -9.712000 -2.095000 5.824000 -9.712000 -2.095000 + 7.582000 -5.436000 -4.366000 7.582000 -5.436000 -4.366000 + 9.340000 -1.161000 -6.635000 9.340000 -1.161000 -6.635000 + 11.099000 3.114000 -8.905000 11.099000 3.114000 -8.905000 + 12.856000 7.389000 -11.175000 12.856000 7.389000 -11.175000 + 14.615000 11.666000 -13.445000 14.615000 11.666000 -13.445000 + 16.373000 15.941000 -15.715000 16.373000 15.941000 -15.715000 + 4.340000 -25.255000 2.532000 4.340000 -25.255000 2.532000 + 6.098000 -20.980000 0.262000 6.098000 -20.980000 0.262000 + 7.856000 -16.704000 -2.008000 7.856000 -16.704000 -2.008000 + 9.614000 -12.429000 -4.278000 9.614000 -12.429000 -4.278000 + 11.373000 -8.154000 -6.548000 11.373000 -8.154000 -6.548000 + 13.131000 -3.879000 -8.818000 13.131000 -3.879000 -8.818000 + 14.889000 0.397000 -11.088000 14.889000 0.397000 -11.088000 + 16.648000 4.672000 -13.358000 16.648000 4.672000 -13.358000 + 18.406000 8.947000 -15.628000 18.406000 8.947000 -15.628000 + 9.889000 -23.697000 -1.921000 9.889000 -23.697000 -1.921000 + 11.647000 -19.422000 -4.191000 11.647000 -19.422000 -4.191000 + 13.405000 -15.147000 -6.460000 13.405000 -15.147000 -6.460000 + 15.164000 -10.872000 -8.731000 15.164000 -10.872000 -8.731000 + 16.922000 -6.596000 -11.001000 16.922000 -6.596000 -11.001000 + 18.680000 -2.321000 -13.270000 18.680000 -2.321000 -13.270000 + 20.439000 1.954000 -15.541000 20.439000 1.954000 -15.541000 + 15.438000 -22.141000 -6.373000 15.438000 -22.141000 -6.373000 + 17.197000 -17.866000 -8.643000 17.197000 -17.866000 -8.643000 + 18.954000 -13.590000 -10.913000 18.954000 -13.590000 -10.913000 + 20.713000 -9.314000 -13.183000 20.713000 -9.314000 -13.183000 + 22.472000 -5.039000 -15.453000 22.472000 -5.039000 -15.453000 ] diff --git a/MAC/Deployment/data/StaticMetaData/AntennaFields/PL611-AntennaField.conf b/MAC/Deployment/data/StaticMetaData/AntennaFields/PL611-AntennaField.conf index 0b3c98d52d1c148ddcb35805eaaf92d588b58fb8..463b078db92b23b47f2a9579d227efb1c9f1ab5c 100644 --- a/MAC/Deployment/data/StaticMetaData/AntennaFields/PL611-AntennaField.conf +++ b/MAC/Deployment/data/StaticMetaData/AntennaFields/PL611-AntennaField.conf @@ -1,227 +1,227 @@ # -# DUMMY AntennaPositions for PL611 +# AntennaPositions for PL611 # ITRF2005 target_date = 2015.5 -# Created: 2015-06-23 19:24:00 +# Created: 2015-10-14 12:20:49 # NORMAL_VECTOR LBA -3 [ 0.582686 0.102609 0.806194 ] +3 [ 0.643193 0.307002 0.701465 ] ROTATION_MATRIX LBA 3 x 3 [ - -0.1384370000 -0.8008200000 0.5826860000 - 0.9900310000 -0.0964870000 0.1026090000 - -0.0259500000 0.5910820000 0.8061940000 + -0.2733680000 -0.7152430000 0.6431930000 + 0.9477990000 -0.0861760000 0.3070020000 + -0.1641530000 0.6935420000 0.7014650000 ] LBA -3 [ 3727207.315770000 655185.261474000 5117000.905 ] +3 [ 3850973.987200000 1439061.041110000 4860478.994 ] 96 x 2 x 3 [ - -2.385000 -13.491000 3.440990 -2.385000 -13.491000 3.440990 - -7.901000 -8.415000 6.781990 -7.901000 -8.415000 6.781990 - -5.396000 -14.324000 5.722990 -5.396000 -14.324000 5.722990 --10.186000 -10.119001 8.649990 -10.186000 -10.119001 8.649990 - -0.124000 20.778000 -2.555010 -0.124000 20.778000 -2.555010 - -4.701000 24.130000 0.326990 -4.701000 24.130000 0.326990 - 5.326000 25.166001 -7.052000 5.326000 25.166001 -7.052000 - 2.267000 28.650001 -5.285010 2.267000 28.650001 -5.285010 - -3.652000 -19.315000 5.097990 -3.652000 -19.315000 5.097990 - 0.017010 -24.962000 3.165000 0.017010 -24.962000 3.165000 - -1.878990 -28.049000 4.928000 -1.878990 -28.049000 4.928000 - -5.235990 -27.314000 7.260990 -5.235990 -27.314000 7.260990 - -0.077000 5.075000 -0.590010 -0.077000 5.075000 -0.590010 - -3.595000 1.673000 2.385990 -3.595000 1.673000 2.385990 - -5.802000 3.931000 3.692990 -5.802000 3.931000 3.692990 - -4.688000 8.401000 2.318990 -4.688000 8.401000 2.318990 - -8.598000 3.337999 5.788990 -8.598000 3.337999 5.788990 - -9.953000 -1.251001 7.352990 -9.953000 -1.251001 7.352990 --14.253000 5.953999 9.543990 -14.253000 5.953999 9.543990 --16.063000 2.028999 11.351990 -16.063000 2.028999 11.351990 - 17.152000 -3.302998 -11.976000 17.152000 -3.302998 -11.976000 - 17.566000 -12.263998 -11.135000 17.566000 -12.263998 -11.135000 - 24.669000 -4.977997 -17.197000 24.669000 -4.977997 -17.197000 - 21.351010 -15.981998 -13.397000 21.351010 -15.981998 -13.397000 - 3.774000 -12.505999 -1.136000 3.774000 -12.505999 -1.136000 - 2.166000 -15.975999 0.468000 2.166000 -15.975999 0.468000 - 6.991000 -14.399999 -3.220000 6.991000 -14.399999 -3.220000 - 9.106010 -17.695999 -4.329000 9.106010 -17.695999 -4.329000 - 12.973000 11.788002 -10.876000 12.973000 11.788002 -10.876000 - 14.427000 15.115002 -12.351000 14.427000 15.115002 -12.351000 - 19.444000 6.923002 -14.935000 19.444000 6.923002 -14.935000 - 21.584000 12.082002 -17.138000 21.584000 12.082002 -17.138000 --15.908000 9.413999 10.299990 -15.908000 9.413999 10.299990 --15.203000 15.815999 8.974990 -15.203000 15.815999 8.974990 --22.162000 21.404998 13.292990 -22.162000 21.404998 13.292990 --23.439000 15.267998 14.997990 -23.439000 15.267998 14.997990 - 3.902000 5.015001 -3.459000 3.902000 5.015001 -3.459000 - 1.084000 9.810000 -2.032000 1.084000 9.810000 -2.032000 - 6.434000 7.284001 -5.577000 6.434000 7.284001 -5.577000 - 5.172000 10.742001 -5.105000 5.172000 10.742001 -5.105000 --13.778000 -17.568001 12.193990 -13.778000 -17.568001 12.193990 --17.938000 -8.584001 14.056990 -17.938000 -8.584001 14.056990 --20.272000 -16.947002 16.808990 -20.272000 -16.947002 16.808990 --23.586000 -7.012002 17.938990 -23.586000 -7.012002 17.938990 - 5.987000 -1.138999 -4.182000 5.987000 -1.138999 -4.182000 - 8.740000 0.756001 -6.413000 8.740000 0.756001 -6.413000 - 7.442000 -5.689999 -4.655000 7.442000 -5.689999 -4.655000 - 10.784000 -2.740999 -7.446000 10.784000 -2.740999 -7.446000 - -4.781000 17.368000 1.244990 -4.781000 17.368000 1.244990 - 16.096000 3.398002 -12.066000 16.096000 3.398002 -12.066000 - -7.428000 28.024000 1.801990 -7.428000 28.024000 1.801990 --12.607000 16.980999 6.950990 -12.607000 16.980999 6.950990 - 13.586010 -19.721998 -7.309000 13.586010 -19.721998 -7.309000 - 25.303000 2.547003 -18.612000 25.303000 2.547003 -18.612000 --14.951000 24.151999 7.731990 -14.951000 24.151999 7.731990 - -1.321000 8.211000 -0.090010 -1.321000 8.211000 -0.090010 --11.883000 -24.202001 11.668990 -11.883000 -24.202001 11.668990 - 13.136000 -12.848998 -7.859000 13.136000 -12.848998 -7.859000 - 2.007000 -19.867999 1.078000 2.007000 -19.867999 1.078000 - 17.313000 20.669002 -15.144000 17.313000 20.669002 -15.144000 - 12.879000 4.744002 -9.912000 12.879000 4.744002 -9.912000 - 12.378000 -9.072998 -7.792000 12.378000 -9.072998 -7.792000 --14.753000 -7.090001 11.565990 -14.753000 -7.090001 11.565990 - -5.135000 -2.138000 3.982990 -5.135000 -2.138000 3.982990 - -0.165000 15.213000 -1.817010 -0.165000 15.213000 -1.817010 - -1.108000 -7.354000 1.736990 -1.108000 -7.354000 1.736990 - 10.425000 18.470001 -9.886000 10.425000 18.470001 -9.886000 - 8.508000 11.428001 -7.603000 8.508000 11.428001 -7.603000 - 7.179010 -22.427999 -2.334000 7.179010 -22.427999 -2.334000 - 5.515010 -24.913999 -0.815000 5.515010 -24.913999 -0.815000 - 2.140000 -4.021999 -1.035000 2.140000 -4.021999 -1.035000 --10.858000 -14.764001 9.726990 -10.858000 -14.764001 9.726990 - 9.646000 4.173001 -7.503000 9.646000 4.173001 -7.503000 - -9.835000 12.923999 5.462990 -9.835000 12.923999 5.462990 - 2.586000 15.972001 -3.902000 2.586000 15.972001 -3.902000 --12.249000 25.292999 5.633990 -12.249000 25.292999 5.633990 - 2.427000 -9.188999 -0.584000 2.427000 -9.188999 -0.584000 - 13.400000 -0.374998 -9.637000 13.400000 -0.374998 -9.637000 - -6.464000 -20.643000 7.298990 -6.464000 -20.643000 7.298990 --20.268000 -0.557002 14.719990 -20.268000 -0.557002 14.719990 --13.727000 -1.982001 10.172990 -13.727000 -1.982001 10.172990 - -7.039000 20.879000 2.429990 -7.039000 20.879000 2.429990 --11.211000 6.636999 7.257990 -11.211000 6.636999 7.257990 - -1.969000 -3.827000 1.909990 -1.969000 -3.827000 1.909990 - 21.307000 -1.589998 -15.198000 21.307000 -1.589998 -15.198000 - 3.916000 1.518001 -3.024000 3.916000 1.518001 -3.024000 - 10.477000 28.105001 -11.149000 10.477000 28.105001 -11.149000 - 7.760000 19.672001 -8.112000 7.760000 19.672001 -8.112000 - -7.629000 -3.386000 5.944990 -7.629000 -3.386000 5.944990 --25.785000 3.657998 18.170990 -25.785000 3.657998 18.170990 - -2.791000 -9.971000 3.286990 -2.791000 -9.971000 3.286990 - 16.219010 -19.770998 -9.206000 16.219010 -19.770998 -9.206000 --19.359000 7.202998 13.074990 -19.359000 7.202998 13.074990 - 4.190000 -6.577999 -2.191000 4.190000 -6.577999 -2.191000 - 8.585000 -8.974999 -5.063000 8.585000 -8.974999 -5.063000 - -6.503000 11.141000 3.281990 -6.503000 11.141000 3.281990 + -4.206000 -10.506000 8.454000 -4.206000 -10.506000 8.454000 + -8.642000 -3.686000 9.537000 -8.642000 -3.686000 9.537000 + -7.153000 -9.875000 10.880000 -7.153000 -9.875000 10.880000 +-11.035000 -4.127000 11.924000 -11.035000 -4.127000 11.924000 + 2.915000 17.877000 -10.496000 2.915000 17.877000 -10.496000 + -0.893000 22.798000 -9.159000 -0.893000 22.798000 -9.159000 + 8.668000 19.206000 -16.354000 8.668000 19.206000 -16.354000 + 6.305000 23.562000 -16.094000 6.305000 23.562000 -16.094000 + -6.245000 -14.935000 12.262000 -6.245000 -14.935000 12.262000 + -3.625000 -21.420000 12.698000 -3.625000 -21.420000 12.698000 + -5.854000 -23.219000 15.529000 -5.854000 -23.219000 15.529000 + -8.897000 -21.088000 17.387000 -8.897000 -21.088000 17.387000 + 0.668000 4.387000 -2.532000 0.668000 4.387000 -2.532000 + -3.129000 3.042000 1.538000 -3.129000 3.042000 1.538000 + -4.871000 5.965000 1.856000 -4.871000 5.965000 1.856000 + -3.174000 9.300000 -1.160000 -3.174000 9.300000 -1.160000 + -7.582000 6.706000 4.017000 -7.582000 6.706000 4.017000 + -9.522000 3.375000 7.254000 -9.522000 3.375000 7.254000 +-12.507000 11.477000 6.445000 -12.507000 11.477000 6.445000 +-14.779000 8.920000 9.647000 -14.779000 8.920000 9.647000 + 15.614000 -10.500000 -9.722000 15.614000 -10.500000 -9.722000 + 14.695000 -18.371000 -5.434000 14.695000 -18.371000 -5.434000 + 22.424000 -15.296000 -13.867000 22.424000 -15.296000 -13.867000 + 17.705000 -23.250000 -6.058000 17.705000 -23.250000 -6.058000 + 1.717000 -12.413000 3.858000 1.717000 -12.413000 3.858000 + -0.298000 -14.671000 6.694000 -0.298000 -14.671000 6.694000 + 4.461000 -15.477000 2.683000 4.461000 -15.477000 2.683000 + 5.965000 -19.249000 2.955000 5.965000 -19.249000 2.955000 + 13.893000 4.313000 -14.626000 13.893000 4.313000 -14.626000 + 15.744000 6.517000 -17.288000 15.744000 6.517000 -17.288000 + 19.256000 -2.752000 -16.452000 19.256000 -2.752000 -16.452000 + 22.017000 0.716000 -20.501000 22.017000 0.716000 -20.501000 +-13.555010 15.184000 5.784000 -13.555010 15.184000 5.784000 +-11.960010 20.361000 2.055000 -11.960010 20.361000 2.055000 +-17.675010 28.265000 3.836000 -17.675010 28.265000 3.836000 +-19.769010 23.571000 7.810000 -19.769010 23.571000 7.810000 + 4.393000 2.558000 -5.148000 4.393000 2.558000 -5.148000 + 2.448000 7.930000 -5.715000 2.448000 7.930000 -5.715000 + 7.100000 3.372000 -7.986000 7.100000 3.372000 -7.986000 + 6.420000 6.901000 -8.907000 6.420000 6.901000 -8.907000 +-15.491000 -8.911000 18.104000 -15.491000 -8.911000 18.104000 +-18.085000 0.653000 16.296000 -18.085000 0.653000 16.296000 +-21.495000 -5.476000 22.106000 -21.495000 -5.476000 22.106000 +-23.156000 4.527000 19.251000 -23.156000 4.527000 19.251000 + 5.452000 -3.652000 -3.400000 5.452000 -3.652000 -3.400000 + 8.312000 -3.258000 -6.196000 8.312000 -3.258000 -6.196000 + 6.153000 -8.207000 -2.050000 6.153000 -8.207000 -2.050000 + 9.721000 -7.170000 -5.775000 9.721000 -7.170000 -5.775000 + -1.954000 17.034000 -5.663000 -1.954000 17.034000 -5.663000 + 15.600000 -4.278000 -12.432000 15.600000 -4.278000 -12.432000 + -2.884010 27.357000 -9.329000 -2.884010 27.357000 -9.329000 + -9.354010 20.200000 -0.264000 -9.354010 20.200000 -0.264000 + 9.873000 -22.988000 1.008000 9.873000 -22.988000 1.008000 + 24.116000 -9.124000 -18.119000 24.116000 -9.124000 -18.119000 +-10.507010 27.398000 -2.356000 -10.507010 27.398000 -2.356000 + -0.042000 7.633000 -3.302000 -0.042000 7.633000 -3.302000 +-14.681000 -15.448000 20.223000 -14.681000 -15.448000 20.223000 + 10.453000 -16.892000 -2.192000 10.453000 -16.892000 -2.192000 + -1.014000 -17.939000 8.781000 -1.014000 -17.939000 8.781000 + 19.261000 9.991000 -22.033000 19.261000 9.991000 -22.033000 + 12.777000 -1.687000 -10.978000 12.777000 -1.687000 -10.978000 + 10.293000 -13.315000 -3.610000 10.293000 -13.315000 -3.610000 +-14.878000 0.512000 13.418000 -14.878000 0.512000 13.418000 + -5.130000 0.462000 4.502000 -5.130000 0.462000 4.502000 + 2.063000 13.123000 -7.635000 2.063000 13.123000 -7.635000 + -2.112000 -5.812000 4.480000 -2.112000 -5.812000 4.480000 + 12.476000 11.183000 -16.334000 12.476000 11.183000 -16.334000 + 9.650000 6.001000 -11.475000 9.650000 6.001000 -11.475000 + 3.466000 -22.446000 6.645000 3.466000 -22.446000 6.645000 + 1.542000 -23.834000 9.017000 1.542000 -23.834000 9.017000 + 1.422000 -4.406000 0.625000 1.422000 -4.406000 0.625000 +-12.342000 -7.811000 14.735000 -12.342000 -7.811000 14.735000 + 9.661000 -0.732000 -8.538000 9.661000 -0.732000 -8.538000 + -7.344000 15.481000 -0.041000 -7.344000 15.481000 -0.041000 + 4.756000 12.544000 -9.851000 4.756000 12.544000 -9.851000 + -7.806010 27.169000 -4.733000 -7.806010 27.169000 -4.733000 + 0.937000 -8.967000 3.065000 0.937000 -8.967000 3.065000 + 12.520000 -6.310000 -8.718000 12.520000 -6.310000 -8.718000 + -9.077000 -14.818000 14.808000 -9.077000 -14.818000 14.808000 +-19.100000 8.580000 13.758000 -19.100000 8.580000 13.758000 +-13.170000 4.435000 10.135000 -13.170000 4.435000 10.135000 + -3.561000 21.054000 -5.950000 -3.561000 21.054000 -5.950000 + -9.553000 10.703000 4.075000 -9.553000 10.703000 4.075000 + -2.406000 -2.402000 3.257000 -2.406000 -2.402000 3.257000 + 19.763000 -10.886000 -13.357000 19.763000 -10.886000 -13.357000 + 3.896000 -0.449000 -3.376000 3.896000 -0.449000 -3.376000 + 13.930000 19.425000 -21.274000 13.930000 19.425000 -21.274000 + 10.150000 13.405000 -15.174000 10.150000 13.405000 -15.174000 + -7.653000 0.506000 6.796000 -7.653000 0.506000 6.796000 +-23.663010 14.663000 15.280000 -23.663010 14.663000 15.280000 + -4.074000 -7.304000 6.932000 -4.074000 -7.304000 6.932000 + 12.337000 -24.207000 -0.718000 12.337000 -24.207000 -0.718000 +-17.117010 14.831000 9.204000 -17.117010 14.831000 9.204000 + 2.973000 -7.515000 0.563000 2.973000 -7.515000 0.563000 + 6.748000 -11.535000 -1.139000 6.748000 -11.535000 -1.139000 + -4.478000 12.462000 -1.348000 -4.478000 12.462000 -1.348000 ] NORMAL_VECTOR HBA -3 [ 0.583126 0.102326 0.805912 ] +3 [ 0.590360 0.217723 0.777220 ] ROTATION_MATRIX HBA 3 x 3 [ - -0.1382550000 -0.8005310000 0.5831260000 - 0.9900640000 -0.0964520000 0.1023260000 - -0.0256710000 0.5914790000 0.8059120000 + -0.2077540000 -0.7799440000 0.5903610000 + 0.9714760000 -0.0939720000 0.2177230000 + -0.1143350000 0.6187540000 0.7772200000 ] HBA -3 [ 3727217.665780000 655109.182475000 5117003.127 ] +3 [ 3850980.881200000 1438994.879110000 4860498.993 ] 96 x 2 x 3 [ --22.005000 7.896998 14.918990 -22.005000 7.896998 14.918990 --19.653000 11.909998 12.707990 -19.653000 11.909998 12.707990 --17.301000 15.922999 10.496990 -17.301000 15.922999 10.496990 --14.950000 19.935999 8.286000 -14.950000 19.935999 8.286000 --12.598000 23.948999 6.075000 -12.598000 23.948999 6.075000 --20.896000 0.699998 15.030990 -20.896000 0.699998 15.030990 --18.544000 4.712999 12.818990 -18.544000 4.712999 12.818990 --16.193000 8.724999 10.609000 -16.193000 8.724999 10.609000 --13.841000 12.738999 8.397000 -13.841000 12.738999 8.397000 --11.489000 16.751999 6.186000 -11.489000 16.751999 6.186000 - -9.137000 20.763999 3.975000 -9.137000 20.763999 3.975000 - -6.786000 24.777000 1.764000 -6.786000 24.777000 1.764000 --19.788000 -6.498002 15.142990 -19.788000 -6.498002 15.142990 --17.436000 -2.484001 12.931000 -17.436000 -2.484001 12.931000 --15.084000 1.527999 10.720000 -15.084000 1.527999 10.720000 --12.732000 5.540999 8.509000 -12.732000 5.540999 8.509000 --10.381000 9.552999 6.298000 -10.381000 9.552999 6.298000 - -8.029000 13.567000 4.087000 -8.029000 13.567000 4.087000 - -5.678000 17.580000 1.876000 -5.678000 17.580000 1.876000 - -3.325000 21.592000 -0.335000 -3.325000 21.592000 -0.335000 - -0.974000 25.605000 -2.546000 -0.974000 25.605000 -2.546000 --18.679000 -13.695001 15.254000 -18.679000 -13.695001 15.254000 --16.327000 -9.682001 13.043000 -16.327000 -9.682001 13.043000 --13.976000 -5.669001 10.832000 -13.976000 -5.669001 10.832000 --11.624000 -1.656001 8.621000 -11.624000 -1.656001 8.621000 - -9.272000 2.355999 6.410000 -9.272000 2.355999 6.410000 - -6.920000 6.369000 4.199000 -6.920000 6.369000 4.199000 - -4.569000 10.382000 1.988000 -4.569000 10.382000 1.988000 - -2.217000 14.395000 -0.224000 -2.217000 14.395000 -0.224000 - 0.134000 18.408000 -2.434000 0.134000 18.408000 -2.434000 - 2.487000 22.420001 -4.646000 2.487000 22.420001 -4.646000 - 4.838000 26.433001 -6.857000 4.838000 26.433001 -6.857000 --15.219000 -16.880001 13.155000 -15.219000 -16.880001 13.155000 --12.867000 -12.867001 10.944000 -12.867000 -12.867001 10.944000 --10.515000 -8.854001 8.733000 -10.515000 -8.854001 8.733000 - -8.164000 -4.841000 6.522000 -8.164000 -4.841000 6.522000 - -5.812000 -0.828000 4.310000 -5.812000 -0.828000 4.310000 - -3.461000 3.184000 2.100000 -3.461000 3.184000 2.100000 - -1.108000 7.197000 -0.112000 -1.108000 7.197000 -0.112000 - 1.243000 11.211000 -2.323000 1.243000 11.211000 -2.323000 - 3.595000 15.223001 -4.534000 3.595000 15.223001 -4.534000 - 5.946000 19.236001 -6.745000 5.946000 19.236001 -6.745000 - 8.298000 23.248001 -8.956000 8.298000 23.248001 -8.956000 --11.758000 -20.064001 11.055000 -11.758000 -20.064001 11.055000 - -9.407000 -16.051001 8.844000 -9.407000 -16.051001 8.844000 - -7.055000 -12.039000 6.633000 -7.055000 -12.039000 6.633000 - -4.703000 -8.025000 4.422000 -4.703000 -8.025000 4.422000 - -2.351000 -4.013000 2.211000 -2.351000 -4.013000 2.211000 - 2.351000 4.013001 -2.211000 2.351000 4.013001 -2.211000 - 4.703000 8.025001 -4.422000 4.703000 8.025001 -4.422000 - 7.055000 12.039001 -6.633000 7.055000 12.039001 -6.633000 - 9.407000 16.051001 -8.844000 9.407000 16.051001 -8.844000 - 11.758000 20.064001 -11.055000 11.758000 20.064001 -11.055000 - -8.298000 -23.248000 8.956000 -8.298000 -23.248000 8.956000 - -5.946000 -19.236000 6.745000 -5.946000 -19.236000 6.745000 - -3.595000 -15.223000 4.534000 -3.595000 -15.223000 4.534000 - -1.243000 -11.211000 2.323000 -1.243000 -11.211000 2.323000 - 1.108000 -7.197000 0.112000 1.108000 -7.197000 0.112000 - 3.461000 -3.183999 -2.100000 3.461000 -3.183999 -2.100000 - 5.812000 0.828001 -4.310000 5.812000 0.828001 -4.310000 - 8.164000 4.841001 -6.522000 8.164000 4.841001 -6.522000 - 10.515000 8.854001 -8.733000 10.515000 8.854001 -8.733000 - 12.867000 12.867002 -10.944000 12.867000 12.867002 -10.944000 - 15.219000 16.880002 -13.155000 15.219000 16.880002 -13.155000 - -4.838000 -26.433000 6.857000 -4.838000 -26.433000 6.857000 - -2.487000 -22.420000 4.646000 -2.487000 -22.420000 4.646000 - -0.134000 -18.408000 2.434000 -0.134000 -18.408000 2.434000 - 2.217000 -14.394999 0.224000 2.217000 -14.394999 0.224000 - 4.569000 -10.381999 -1.988000 4.569000 -10.381999 -1.988000 - 6.920000 -6.368999 -4.199000 6.920000 -6.368999 -4.199000 - 9.272000 -2.355999 -6.410000 9.272000 -2.355999 -6.410000 - 11.624000 1.656001 -8.621000 11.624000 1.656001 -8.621000 - 13.976000 5.669002 -10.832000 13.976000 5.669002 -10.832000 - 16.327000 9.682002 -13.043000 16.327000 9.682002 -13.043000 - 18.679000 13.695002 -15.254000 18.679000 13.695002 -15.254000 - 0.974000 -25.605000 2.546000 0.974000 -25.605000 2.546000 - 3.325000 -21.591999 0.335000 3.325000 -21.591999 0.335000 - 5.678000 -17.579999 -1.876000 5.678000 -17.579999 -1.876000 - 8.029000 -13.566999 -4.087000 8.029000 -13.566999 -4.087000 - 10.381000 -9.552999 -6.298000 10.381000 -9.552999 -6.298000 - 12.732000 -5.540998 -8.509000 12.732000 -5.540998 -8.509000 - 15.084000 -1.527998 -10.720000 15.084000 -1.527998 -10.720000 - 17.436000 2.484002 -12.931000 17.436000 2.484002 -12.931000 - 19.788000 6.498002 -15.143000 19.788000 6.498002 -15.143000 - 6.786000 -24.776999 -1.764000 6.786000 -24.776999 -1.764000 - 9.137000 -20.763999 -3.975000 9.137000 -20.763999 -3.975000 - 11.489000 -16.751999 -6.186000 11.489000 -16.751999 -6.186000 - 13.841000 -12.738998 -8.397000 13.841000 -12.738998 -8.397000 - 16.193000 -8.724998 -10.609000 16.193000 -8.724998 -10.609000 - 18.544000 -4.712998 -12.819000 18.544000 -4.712998 -12.819000 - 20.896000 -0.699998 -15.031000 20.896000 -0.699998 -15.031000 - 12.598000 -23.948998 -6.075000 12.598000 -23.948998 -6.075000 - 14.950000 -19.935998 -8.286000 14.950000 -19.935998 -8.286000 - 17.301000 -15.922998 -10.497000 17.301000 -15.922998 -10.497000 - 19.653000 -11.909998 -12.708000 19.653000 -11.909998 -12.708000 - 22.005000 -7.896998 -14.919000 22.005000 -7.896998 -14.919000 +-13.991000 11.593000 7.380000 -13.991000 11.593000 7.380000 +-10.756000 14.069000 4.229000 -10.756000 14.069000 4.229000 + -7.522000 16.547000 1.078000 -7.522000 16.547000 1.078000 + -4.288000 19.024000 -2.072000 -4.288000 19.024000 -2.072000 +-11.379000 7.219000 6.621000 -11.379000 7.219000 6.621000 + -8.145000 9.696000 3.471000 -8.145000 9.696000 3.471000 + -4.910000 12.173000 0.320000 -4.910000 12.173000 0.320000 + -1.677000 14.650000 -2.830000 -1.677000 14.650000 -2.830000 +-15.237000 -2.109000 12.164000 -15.237000 -2.109000 12.164000 +-12.002000 0.368000 9.014000 -12.002000 0.368000 9.014000 + -8.768000 2.845000 5.863000 -8.768000 2.845000 5.863000 + -5.534000 5.322000 2.712000 -5.534000 5.322000 2.712000 + -2.300000 7.799000 -0.438000 -2.300000 7.799000 -0.438000 + 0.935000 10.276000 -3.589000 0.935000 10.276000 -3.589000 + 4.169000 12.753000 -6.739000 4.169000 12.753000 -6.739000 + 7.403000 15.231000 -9.890000 7.403000 15.231000 -9.890000 +-12.626000 -6.483000 11.406000 -12.626000 -6.483000 11.406000 + -9.391000 -4.005000 8.255000 -9.391000 -4.005000 8.255000 + -6.157000 -1.529000 5.105000 -6.157000 -1.529000 5.105000 + -2.923000 0.948000 1.955000 -2.923000 0.948000 1.955000 + 0.311000 3.426000 -1.196000 0.311000 3.426000 -1.196000 + 3.546000 5.902000 -4.347000 3.546000 5.902000 -4.347000 + 6.780000 8.379000 -7.498000 6.780000 8.379000 -7.498000 + 10.014000 10.857000 -10.648000 10.014000 10.857000 -10.648000 +-10.014000 -10.857000 10.648000 -10.014000 -10.857000 10.648000 + -6.780000 -8.379000 7.498000 -6.780000 -8.379000 7.498000 + -3.546000 -5.902000 4.347000 -3.546000 -5.902000 4.347000 + -0.311000 -3.426000 1.196000 -0.311000 -3.426000 1.196000 + 2.923000 -0.948000 -1.955000 2.923000 -0.948000 -1.955000 + 6.157000 1.529000 -5.105000 6.157000 1.529000 -5.105000 + 9.391000 4.005000 -8.255000 9.391000 4.005000 -8.255000 + 12.626000 6.483000 -11.406000 12.626000 6.483000 -11.406000 + -7.403000 -15.231000 9.890000 -7.403000 -15.231000 9.890000 + -4.169000 -12.753000 6.739000 -4.169000 -12.753000 6.739000 + -0.935000 -10.276000 3.589000 -0.935000 -10.276000 3.589000 + 2.300000 -7.799000 0.438000 2.300000 -7.799000 0.438000 + 5.534000 -5.322000 -2.712000 5.534000 -5.322000 -2.712000 + 8.768000 -2.845000 -5.863000 8.768000 -2.845000 -5.863000 + 12.002000 -0.368000 -9.014000 12.002000 -0.368000 -9.014000 + 15.237000 2.109000 -12.164000 15.237000 2.109000 -12.164000 + 1.677000 -14.650000 2.830000 1.677000 -14.650000 2.830000 + 4.910000 -12.173000 -0.320000 4.910000 -12.173000 -0.320000 + 8.145000 -9.696000 -3.471000 8.145000 -9.696000 -3.471000 + 11.379000 -7.219000 -6.621000 11.379000 -7.219000 -6.621000 + 4.288000 -19.024000 2.072000 4.288000 -19.024000 2.072000 + 7.522000 -16.547000 -1.078000 7.522000 -16.547000 -1.078000 + 10.756000 -14.069000 -4.229000 10.756000 -14.069000 -4.229000 + 13.991000 -11.593000 -7.380000 13.991000 -11.593000 -7.380000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ] diff --git a/MAC/Deployment/data/StaticMetaData/Attenuation/Attenuation.conf b/MAC/Deployment/data/StaticMetaData/Attenuation/Attenuation.conf deleted file mode 100644 index 8e2d1d41e9efb79ae15c7f0e83b8f937e9a66a2d..0000000000000000000000000000000000000000 --- a/MAC/Deployment/data/StaticMetaData/Attenuation/Attenuation.conf +++ /dev/null @@ -1,17 +0,0 @@ -# -# Default Attenuation.conf -# -# This file contains the attenuations of the various coaxcables for each rcumode. -# The line of RCUmode 0 is used to define the cablelengths. -# -#Rcumode 50m 80m 85m 115m 130m -#--------------------------------------------------- -0 50 80 85 115 130 -1 -2.05 -3.32 -3.53 -4.74 -5.40 -2 -2.05 -3.32 -3.53 -4.74 -5.40 -3 -2.05 -3.32 -3.53 -4.74 -5.40 -4 -2.05 -3.32 -3.53 -4.74 -5.40 -5 -3.64 -5.87 -6.22 -8.35 -9.52 -6 -4.24 -6.82 -7.21 -9.70 -11.06 -7 -4.46 -7.19 -7.58 -10.18 -11.61 - diff --git a/MAC/Deployment/data/StaticMetaData/Attenuation/DE601-Attenuation.conf b/MAC/Deployment/data/StaticMetaData/Attenuation/DE601-Attenuation.conf deleted file mode 100644 index 2d8a32628c0c1a1ed89ac4d897dcd36afced90fd..0000000000000000000000000000000000000000 --- a/MAC/Deployment/data/StaticMetaData/Attenuation/DE601-Attenuation.conf +++ /dev/null @@ -1,17 +0,0 @@ -# -# Attenuation.conf for station DE601 -# -# This file contains the attenuations of the various coaxcables for each rcumode. -# The line of RCUmode 0 is used to define the cablelengths. -# Note: All HBA Attenuations are corrected for the Older RCU with 1dB Att. step -#Rcumode 50m 80m 85m 115m 130m -#--------------------------------------------------- -0 50 80 85 115 130 -1 -0.51 -0.83 -0.88 -1.18 -1.35 -2 -0.51 -0.83 -0.88 -1.18 -1.35 -3 -0.51 -0.83 -0.88 -1.18 -1.35 -4 -0.51 -0.83 -0.88 -1.18 -1.35 -5 -0.91 -1.47 -1.55 -2.09 -2.38 -6 -1.06 -1.71 -1.80 -2.43 -2.77 -7 -1.12 -1.78 -1.90 -2.55 -2.90 - diff --git a/MAC/Deployment/data/StaticMetaData/Attenuation/FI609-Attenuation.conf b/MAC/Deployment/data/StaticMetaData/Attenuation/FI609-Attenuation.conf deleted file mode 100644 index 2c4c0e85a32f53821d53a3bd19e06fc29faa74c2..0000000000000000000000000000000000000000 --- a/MAC/Deployment/data/StaticMetaData/Attenuation/FI609-Attenuation.conf +++ /dev/null @@ -1,17 +0,0 @@ -# -# Attenuation.conf for station FI609 -# -# This file contains the attenuations of the various coaxcables for each rcumode. -# The line of RCUmode 0 is used to define the cablelengths. -# -#Rcumode 120m 80m 85m 115m 130m -#--------------------------------------------------- -0 50 80 85 115 130 -1 -4.85 -3.32 -3.53 -4.74 -5.40 -2 -4.85 -3.32 -3.53 -4.74 -5.40 -3 -4.85 -3.32 -3.53 -4.74 -5.40 -4 -4.85 -3.32 -3.53 -4.74 -5.40 -5 -8.55 -5.87 -6.22 -8.35 -9.52 -6 -9.92 -6.82 -7.21 -9.70 -11.06 -7 -10.42 -7.19 -7.58 -10.18 -11.61 - diff --git a/MAC/Deployment/data/StaticMetaData/CableAttenuation.conf b/MAC/Deployment/data/StaticMetaData/CableAttenuation.conf new file mode 100644 index 0000000000000000000000000000000000000000..13dcfa986d1f5c95a68494d4330864df37cb3936 --- /dev/null +++ b/MAC/Deployment/data/StaticMetaData/CableAttenuation.conf @@ -0,0 +1,16 @@ +# +# Default Attenuation.conf +# +# This file contains the attenuations of the various coaxcables for each rcumode. +# The line of RCUmode 0 is used to define the cablelengths. +# +#Rcumode 50m 80m 85m 115m 120m 130m +#------------------------------------------------------- +0 50 80 85 115 120 130 +1 2.05 3.32 3.53 4.74 4.85 5.40 +2 2.05 3.32 3.53 4.74 4.85 5.40 +3 2.05 3.32 3.53 4.74 4.85 5.40 +4 2.05 3.32 3.53 4.74 4.85 5.40 +5 3.64 5.87 6.22 8.35 8.55 9.52 +6 4.24 6.82 7.21 9.70 9.92 11.06 +7 4.46 7.19 7.58 10.18 10.42 11.61 diff --git a/MAC/Deployment/data/StaticMetaData/RSPDriver.conf.tmpl b/MAC/Deployment/data/StaticMetaData/RSPDriver.conf.tmpl index 69169f51729ff4f501047f4a1e8ebc76796b826f..ec76916b7f999fdb4fb5cb02ae8f2271bf2272fb 100644 --- a/MAC/Deployment/data/StaticMetaData/RSPDriver.conf.tmpl +++ b/MAC/Deployment/data/StaticMetaData/RSPDriver.conf.tmpl @@ -207,6 +207,24 @@ RSPDriver.LANE_13_DSTPORT = @LANE_13_PORT@ # RSPDriver.IGNORE_REMOTE_DATA=0 +# ATTENUATION SETTINGS +# -------------------- +# For each RCUMODE a fixed attenuation offset is set in dB. +# The Attenuation stepsize that can be controlled in the hardware +# of the station is also provided. +# +# ATT_STEP_SIZE = <stepsize> +# FIXED_ATT_MODE_<rcumode> = <offset> +# +RSPDriver.ATT_STEP_SIZE = @ATT_STEP_SIZE@ +RSPDriver.FIXED_ATT_MODE_1 = @ATT_MODE_1@ +RSPDriver.FIXED_ATT_MODE_2 = @ATT_MODE_2@ +RSPDriver.FIXED_ATT_MODE_3 = @ATT_MODE_3@ +RSPDriver.FIXED_ATT_MODE_4 = @ATT_MODE_4@ +RSPDriver.FIXED_ATT_MODE_5 = @ATT_MODE_5@ +RSPDriver.FIXED_ATT_MODE_6 = @ATT_MODE_6@ +RSPDriver.FIXED_ATT_MODE_7 = @ATT_MODE_7@ + # # CDO Control # This controls the format of CEP output data from the serdes lane specified in diff --git a/MAC/Deployment/data/StaticMetaData/StationAttenuation.dat b/MAC/Deployment/data/StaticMetaData/StationAttenuation.dat new file mode 100644 index 0000000000000000000000000000000000000000..6ac2372f6c71830456cde7a67f736cb9eadad486 --- /dev/null +++ b/MAC/Deployment/data/StaticMetaData/StationAttenuation.dat @@ -0,0 +1,69 @@ +# +# StationAttenuation.dat +# +# $Id: $ +# +# This file contains the attenuation stepsize for the used RCUs +# and the fixed attenuation setting for each rcumode for each station +# This will be entered in the file RSPDriver.conf +# AttStepSize as ATT_STEP_SIZE +# ATT_x as FIXED_ATT_MODE_1 .. FIXED_ATT_MODE_7 +# +# by running createFiles. +# +# Station AttStepSize ATT_1 ATT_2 ATT_3 ATT_4 ATT_5 ATT_6 ATT_7 +CS001 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS002 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS003 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS004 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS005 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS006 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS007 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS011 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS013 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS017 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS021 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS024 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS026 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS028 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS030 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS031 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS032 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS101 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS103 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS201 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS301 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS302 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS401 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +CS501 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS106 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS205 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS208 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS210 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS305 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS306 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS307 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS310 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS404 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS406 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS407 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS409 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS410 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS503 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS508 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +RS509 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +DE601 1.00 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +DE602 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +DE603 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +DE604 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +DE605 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +FR606 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +SE607 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +UK608 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +DE609 0.25 0.0 0.0 0.0 0.0 4.0 4.0 4.0 +PL610 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +PL611 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +PL612 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +FI609 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + + diff --git a/MAC/Deployment/data/StaticMetaData/StationInfo.dat b/MAC/Deployment/data/StaticMetaData/StationInfo.dat index 5ccab30d7a59f317f8ca82da4ccac76064da2c0b..8ffb5e25c1e2e3d357e9d6248bf8ea8252bda780 100644 --- a/MAC/Deployment/data/StaticMetaData/StationInfo.dat +++ b/MAC/Deployment/data/StaticMetaData/StationInfo.dat @@ -184,12 +184,12 @@ SE607 207 E 11.9302386 57.3990617 50.34 24 12 96 96 N UK608 208 E -1.4342539 51.1439472 137.66 24 12 96 96 No No No # Norderstedt (H=67.246568409726024) DE609 209 E 9.9692322 53.6988092 69.27 24 12 96 96 No No No -# -PL610 210 E 0.0 0.0 0 24 12 96 96 No No No -# -PL611 211 E 0.0 0.0 0 24 12 96 96 No No No -# -PL612 212 E 0.0 0.0 0 24 12 96 96 No No No +# Borowiec +PL610 210 E 17.0741606 52.2759328 122.29 24 12 96 96 No No No +# Lazy +PL611 211 E 20.4896131 49.9649386 305.42 24 12 96 96 No No No +# Baldy +PL612 212 E 20.5897506 53.5939042 178.38 24 12 96 96 No No No ## Non-ILT international ## 900 diff --git a/MAC/Deployment/data/StaticMetaData/createFiles b/MAC/Deployment/data/StaticMetaData/createFiles index 436bc39753efdd5c50558a55809152e142e3988f..447e0c995d1fac07488f445ff925e477e870aebb 100755 --- a/MAC/Deployment/data/StaticMetaData/createFiles +++ b/MAC/Deployment/data/StaticMetaData/createFiles @@ -118,6 +118,26 @@ def findTBBDestNodes(stationName, dataDir): setWarning(stationName+" not found in file 'TBBConnections.dat'") return tbbDestNode +# +# findStationAttenuationValues(stationName) +# +def findStationAttenuationValues(stationName, dataDir): + """ + Collects the Attenuation values for a given station from the file + StationAttenuation.dat + Expected format of the StationAttenuation file is: + # Station AttStepSize ATT_1 ATT_2 ATT_3 ATT_4 ATT_5 ATT_6 ATT_7 + CS001 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + + Function returns a list with all numerical values of the stations as strings. + """ + # NOTE: for now we always take the first nodename + pattern=re.compile("[^#]"+stationName+"[ \t]*([0-9\. \t\n]*)", re.IGNORECASE) + attenuationValues = pattern.findall(open(dataDir+"/StationAttenuation.dat").read())[0].split() + if len(attenuationValues) == 0: + setWarning(stationName+" not found in file 'StationAttenuation.dat'") + return attenuationValues + def findIPandMAC_station(stationName, dataDir): """ Based on stationname, find destination node, IP and MAC address for all RSP boards of @@ -155,12 +175,10 @@ def findIPandMAC_test(testName, dataDir): """ Translates the given testName to a MAC and IP address + alias name. """ - print testName pattern=re.compile("^"+testName+"[ \t]*([0-9\.]*)[ \t]*([0-9a-fA-F:]*)[ \t]*([\S]*)", re.IGNORECASE | re.MULTILINE) ipAndMacAndAlias = pattern.findall(open(dataDir+"/RSPConnections_test.dat").read()) if not ipAndMacAndAlias: raise "\nFatal error: "+testName+" is not defined in file 'RSPConnections_test.dat'" - print ipAndMacAndAlias return ipAndMacAndAlias def findStorageIPandMAC(nodeName, dataDir): @@ -438,7 +456,8 @@ def createRSPDriverFile(resultDir, stationName, dataDir,int_local,is_Cobalt): RSPconfig = RSPconfig.replace(repl_str, str(int_station_nr)) repl_str = "@IP_EXTEN_0"+str(rspNr)+"@" RSPconfig = RSPconfig.replace(repl_str, str(srcip_suffix)) - + + RSPconfig = setAttenuationSettings(RSPconfig, stationName, dataDir) outFile = os.open(dataDir+"/RSPDriver.conf.tmp", os.O_RDWR|os.O_CREAT|os.O_TRUNC) os.write(outFile, RSPconfig) os.close(outFile) @@ -487,11 +506,11 @@ def createRSPDriverFile_Test(resultDir, stationName, dataDir, alias): RSPconfig = RSPconfig.replace("@LANE_0"+str(rspNr)+"_PORT@", str(basePort + rspNr)) if (len(alias) == 2): # Assume core station; fill in LANE_1, as well - ip_mac_alias = findIPandMAC_test(alias[1],dataDir) + ip_mac_alias_1 = findIPandMAC_test(alias[1],dataDir) for rspNr in range(4): blet_out = find_Blets(stationName, dataDir)[5+rspNr]; - RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_MAC@", ip_mac_alias[0][1] +" # "+ip_mac_alias[0][2]) - RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_IP@", ip_mac_alias[0][0]) + RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_MAC@", ip_mac_alias_1[0][1] +" # "+ip_mac_alias_1[0][2]) + RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_IP@", ip_mac_alias_1[0][0]) RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_PORT@", str(basePort + 6 + rspNr)) RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_BLET@", blet_out) @@ -514,9 +533,11 @@ def createRSPDriverFile_Test(resultDir, stationName, dataDir, alias): # SOURCE IP contains information on which Cobalt iface to send to, to help # Cobalt route the packet. for rspNr in range(4): - dstip = ip_mac_alias[1][0] + dstip = ip_mac_alias_1[0][0] dstiface = dstip.split('.')[3] # 1 = 10GB01 ... 4 = 10GB04 RSPconfig = RSPconfig.replace("@IP_SUBNET_1"+str(rspNr)+"@", dstiface) + RSPconfig = RSPconfig.replace("@IP_EXTEN_1"+str(rspNr)+"@", ip_parts[2]) + hexStationID = str("%02x" % int(stationName[3:6])) ringID = '0'+stationName[2] @@ -568,7 +589,7 @@ def createRSPDriverFile_Test(resultDir, stationName, dataDir, alias): RSPconfig = RSPconfig.replace(repl_str, str(int_station_nr)) repl_str = "@IP_EXTEN_0"+str(rspNr)+"@" RSPconfig = RSPconfig.replace(repl_str, str(srcip_suffix)) - + RSPconfig = setAttenuationSettings(RSPconfig, stationName, dataDir) outFile = os.open(dataDir+"/RSPDriver.conf.tmp", os.O_RDWR|os.O_CREAT|os.O_TRUNC) os.write(outFile, RSPconfig) os.close(outFile) @@ -680,6 +701,18 @@ def createRemoteStationFile(resultDir, stationName, dataDir): os.write(outFile, RSconfig) os.close(outFile) + +def setAttenuationSettings(RSPconfig, stationName, dataDir): + """ + setAttenuationSettings fills in the Attenuation setting in RSPDriver.conf + """ + attenuationValues = findStationAttenuationValues(stationName, dataDir) + if len(attenuationValues) > 0: + RSPconfig = RSPconfig.replace("@ATT_STEP_SIZE@", attenuationValues[0]) + for rcumode in range(1,8): + RSPconfig = RSPconfig.replace("@ATT_MODE_"+str(rcumode)+"@", attenuationValues[rcumode]) + return RSPconfig + def createAntennaArraysFile(resultDir, stationName, dataDir): """ Copies the right AntennaArrays.conf file for this station @@ -744,17 +777,6 @@ def createCableDelaysFile(resultDir, stationName, dataDir): #print command os.system(command) -def createAttenuationFile(resultDir, stationName, dataDir): - """ - Copies the Attenuation.conf file for this station to resultDir - """ - srcFile = dataDir + "/Attenuation.conf" - destFile = resultDir + "/Attenuation.conf" - - command = "cp -f "+srcFile+ " " + destFile - #print command - os.system(command) - def createiHBADeltasFile(resultDir, stationName, dataDir): """ Copies the right iHBADeltas.conf file for this station @@ -800,20 +822,7 @@ def stationExceptions(resultDir, stationName, dataDir): """ Handle exceptional files for some stations """ - if (stationName.lower() == "de601"): - srcFile = dataDir + "/DE601-Attenuation.conf" - destFile= resultDir + "/Attenuation.conf" - command = "cp -f "+srcFile+ " " + destFile - #print command - os.system(command) - elif (stationName.lower() == "fi609"): - # Reinstall Attenuation.conf - srcFile = dataDir + "/FI609-Attenuation.conf" - destFile= resultDir + "/Attenuation.conf" - command = "cp -f "+srcFile+ " " + destFile - #print command - os.system(command) - + if (stationName.lower() == "fi609"): # Reinstall HardwareMonitor.conf with FI609 specific IP for EC createHardwareMonitorFile(resultDir, stationName, dataDir, "103") @@ -891,7 +900,6 @@ if __name__ == "__main__": createRemoteStationFile(resultDir, stationName, dataDir) createAntennaArraysFile(resultDir, stationName, dataDir) createAntennaFieldFile (resultDir, stationName, dataDir) - createAttenuationFile (resultDir, stationName, dataDir) createCableDelaysFile (resultDir, stationName, dataDir) createiHBADeltasFile (resultDir, stationName, dataDir) createHardwareMonitorFile(resultDir, stationName, dataDir) @@ -936,7 +944,6 @@ if __name__ == "__main__": createRemoteStationFile(resultDir, stationName, dataDir) createAntennaArraysFile(resultDir, stationName, dataDir) createAntennaFieldFile (resultDir, stationName, dataDir) - createAttenuationFile (resultDir, stationName, dataDir) createCableDelaysFile (resultDir, stationName, dataDir) createiHBADeltasFile (resultDir, stationName, dataDir) createHardwareMonitorFile(resultDir, stationName, dataDir) diff --git a/MAC/Deployment/data/StaticMetaData/iHBADeltas/PL610-iHBADeltas.conf b/MAC/Deployment/data/StaticMetaData/iHBADeltas/PL610-iHBADeltas.conf new file mode 100644 index 0000000000000000000000000000000000000000..a0a95562b0ce080c29e95991938a7ee5bf22e683 --- /dev/null +++ b/MAC/Deployment/data/StaticMetaData/iHBADeltas/PL610-iHBADeltas.conf @@ -0,0 +1,23 @@ +# +# HBADeltas for PL610 +# Created: 2015-10-05 15:08:13 +# +HBADeltas +16 x 3 [ + -2.020 -0.567 1.621 + -1.594 0.471 1.070 + -1.167 1.508 0.519 + -0.740 2.546 -0.032 + -1.100 -1.227 1.091 + -0.673 -0.189 0.540 + -0.247 0.849 -0.011 + 0.180 1.886 -0.562 + -0.180 -1.886 0.562 + 0.247 -0.849 0.011 + 0.673 0.189 -0.540 + 1.100 1.227 -1.091 + 0.740 -2.546 0.032 + 1.167 -1.508 -0.519 + 1.594 -0.471 -1.070 + 2.020 0.567 -1.621 +] diff --git a/MAC/Deployment/data/StaticMetaData/iHBADeltas/PL611-iHBADeltas.conf b/MAC/Deployment/data/StaticMetaData/iHBADeltas/PL611-iHBADeltas.conf new file mode 100644 index 0000000000000000000000000000000000000000..9514966fad563aa16ce59d98f49eed44991f4887 --- /dev/null +++ b/MAC/Deployment/data/StaticMetaData/iHBADeltas/PL611-iHBADeltas.conf @@ -0,0 +1,23 @@ +# +# HBADeltas for PL611 +# Created: 2015-10-14 12:20:49 +# +HBADeltas +16 x 3 [ + -2.128 0.691 1.423 + -1.343 1.292 0.658 + -0.558 1.893 -0.106 + 0.227 2.494 -0.871 + -1.494 -0.371 1.239 + -0.709 0.230 0.474 + 0.076 0.831 -0.290 + 0.861 1.433 -1.055 + -0.861 -1.433 1.055 + -0.076 -0.831 0.290 + 0.709 -0.230 -0.474 + 1.494 0.371 -1.239 + -0.227 -2.494 0.871 + 0.558 -1.893 0.106 + 1.343 -1.292 -0.658 + 2.128 -0.691 -1.423 +]