def get_delays(antenna_order, nants): """Gets the delays currently set in the sanps. Parameters ---------- antenna_order : array The order of antennas in the snaps. nants : int The total number of antennas in the array. Returns ------- ndarray The delays for each antenna/pol in the array. """ delays = np.zeros((nants, 2), dtype=np.int) d = dsa_store.DsaStore() nant_snap = 3 nsnaps = len(antenna_order) // nant_snap nant_lastsnap = len(antenna_order) % nant_snap if nant_lastsnap != 0: nsnaps += 1 else: nant_lastsnap = nant_snap for i in range(0, nsnaps): LOGGER.info('getting delays for snap {0} of {1}'.format(i + 1, nsnaps)) try: snap_delays = np.array( d.get_dict('/mon/snap/{0}/delays'.format(i + 1))['delays']) * 2 snap_delays = snap_delays.reshape( 3, 2)[:nant_snap if i < nsnaps - 1 else nant_lastsnap, :] delays[(antenna_order - 1)[i * 3:(i + 1) * 3], :] = snap_delays except (AttributeError, TypeError) as e: LOGGER.error('delays not set for snap{0}'.format(i + 1)) return delays
def test_put_get(self): my_etcd = ds.DsaStore(etcdconf) test_dict = {} test_dict['value'] = 23.4 test_dict['value2'] = 23 test_dict['value3'] = 'value3' my_etcd.put_dict('/test/1', test_dict) rtn_dict = my_etcd.get_dict('/test/1') self.assertEqual(rtn_dict, test_dict)
def get_lastname(): """ Look at etcd to get name of last triggered candidate Return of None means that the name generation should start anew. """ from dsautils import dsa_store ds = dsa_store.DsaStore() try: lastname, vv = ds.get_dict('/mon/corr/1/trigger').popitem() except: lastname = None return lastname
def __init__(self, ant_num): """c-tor. Specify antenna number. Use 0 for all antennas :param ant_num: Antenna number or list of antennas to control. 0 for all. :type ant_num: Integer or Array of Integers. """ self.ant_nums = [] # Test contructor if isinstance(ant_num, list): self.ant_nums = ant_num else: self.ant_nums.append(ant_num) self.my_store = ds.DsaStore(ETCDCONF) self.cmd_key_base = CMD_KEY_BASE self.mon_key_base = MON_KEY_BASE self.log = dsl.DsaSyslogger('dsa', 'ant', logging.INFO, 'Ant') self.log.function('c-tor') self.log.info("Created Ant object")
#!/usr/bin/env python3 import sys import os import time from dsautils import dsa_store d = dsa_store.DsaStore() datestring = '2apr21' d.put_dict('/cnf/datestring', datestring) d.put_dict('/cmd/corr/docopy', 'True') os.system('/usr/local/bin/dsacon corr start') time.sleep(60) os.system('/usr/local/bin/dsacon corr set') time.sleep(3600) d.put_dict('/cmd/corr/0', {'cmd': 'trigger', 'val': '0'}) time.sleep(120) os.system('/usr/local/bin/dsacon corr stop') time.sleep(60) d.put_dict('/cmd/corr/docopy', 'False') time.sleep(10)
#!/usr/bin/env python3 import sys import os import time from dsautils import dsa_store; d = dsa_store.DsaStore() datestring = '26mar21' d.put_dict('/cnf/datestring',datestring) d.put_dict('/cmd/corr/docopy','True') os.system('/usr/local/bin/dsacon corr start') time.sleep(20) os.system('/usr/local/bin/dsacon corr set') time.sleep(3600) d.put_dict('/cmd/corr/0', {'cmd': 'trigger', 'val': '0'}) time.sleep(120) os.system('/usr/local/bin/dsacon corr stop') time.sleep(60) d.put_dict('/cmd/corr/docopy','False') time.sleep(10)
from dsautils import dsa_store import dsautils.dsa_syslog as dsl from dsautils import cnf import dsacalib.constants as ct from dsacalib.fringestopping import calc_uvw from dsamfs.fringestopping import generate_fringestopping_table from dsamfs.fringestopping import zenith_visibility_model # Logger LOGGER = dsl.DsaSyslogger() LOGGER.subsystem("software") LOGGER.app("dsamfs") ETCD = dsa_store.DsaStore() def get_delays(antenna_order, nants): """Gets the delays currently set in the sanps. Parameters ---------- antenna_order : array The order of antennas in the snaps. nants : int The total number of antennas in the array. Returns ------- ndarray
def test_etcd(self): my_etcd = ds.DsaStore(etcdconf) rtn_etcd = my_etcd.get_etcd()
def test_c_tor(self): my_etcd = ds.DsaStore(etcdconf) self.assertIsInstance(my_etcd, ds.DsaStore)
from datetime import datetime import os import traceback import socket import numpy as np import h5py import astropy.units as u from psrdada.exceptions import PSRDadaError from antpos.utils import get_itrf import dsautils.dsa_syslog as dsl import dsautils.dsa_store as ds import dsacalib.constants as ct import dsamfs.utils as pu from dsamfs.fringestopping import fringestop_on_zenith etcd = ds.DsaStore() logger = dsl.DsaSyslogger() logger.subsystem("software") logger.app("dsamfs") def initialize_uvh5_file(fhdf, nfreq, npol, pt_dec, antenna_order, fobs, fs_table=None): """Initializes an HDF5 file according to the UVH5 specification.