예제 #1
0
def init_snaps(snap_list, load_system_information=False):
    logger = logger_defaults.getModuleLogger(__name__)
    logger.info("Initialising snaps: %s" % snap_list)
    snaps = []

    for snap_name in snap_list:
        if snap_name.startswith("frb-snap"):
            snaps.append(
                ata_snap_fengine.AtaSnapFengine(
                    snap_name, transport=casperfpga.KatcpTransport))
        elif snap_name.startswith("rfsoc"):
            pipeline_id = int(snap_name[-1])
            snaps.append(
                ata_rfsoc_fengine.AtaRfsocFengine(snap_name,
                                                  pipeline_id=pipeline_id - 1))

    if load_system_information:
        get_system_information(snaps)

    return snaps
예제 #2
0
from ata_snap import ata_snap_fengine, ata_rfsoc_fengine
import numpy as np
import matplotlib.pyplot as plt

fpg_file = "/home/obsuser/src/ata_snap_rfsoc/ata_rfsoc/zrf_spec_4ant/outputs/zrf_spec_4ant_2021-06-14_1301.fpg"

rfsoc = ata_rfsoc_fengine.AtaRfsocFengine("rfsoc1-ctrl-1", pipeline_id=0)
rfsoc.fpga.get_system_information(fpg_file)
spec_x, spec_y = rfsoc.spec_read()
plt.plot(10 * np.log10(spec_x), label="X-Pid0")
plt.plot(10 * np.log10(spec_y), label="Y-Pid0")

rfsoc = ata_rfsoc_fengine.AtaRfsocFengine("rfsoc1-ctrl-2", pipeline_id=1)
rfsoc.fpga.get_system_information(fpg_file)
spec_x, spec_y = rfsoc.spec_read()
plt.plot(10 * np.log10(spec_x), label="X-Pid1")
plt.plot(10 * np.log10(spec_y), label="Y-Pid1")

rfsoc = ata_rfsoc_fengine.AtaRfsocFengine("rfsoc1-ctrl-3", pipeline_id=2)
rfsoc.fpga.get_system_information(fpg_file)
spec_x, spec_y = rfsoc.spec_read()
plt.plot(10 * np.log10(spec_x), label="X-Pid2")
plt.plot(10 * np.log10(spec_y), label="Y-Pid2")

rfsoc = ata_rfsoc_fengine.AtaRfsocFengine("rfsoc1-ctrl-4", pipeline_id=3)
rfsoc.fpga.get_system_information(fpg_file)
spec_x, spec_y = rfsoc.spec_read()
plt.plot(10 * np.log10(spec_x), label="X-Pid3")
plt.plot(10 * np.log10(spec_y), label="Y-Pid3")

plt.legend()
예제 #3
0
from ata_snap import ata_rfsoc_fengine
import matplotlib.pyplot as plt
import numpy as np
import time


fpg_file = '/home/obsuser/src/ata_snap_rfsoc/ata_rfsoc/zrf_spec_4ant/outputs/zrf_spec_4ant_2021-06-05_1337.fpg'

r = ata_rfsoc_fengine.AtaRfsocFengine('rfsoc1-10')
r.fpga.get_system_information(fpg_file)

xx = []
yy = []
for i in range(20):
    x,y = r.adc_get_samples()
    xx.append(x)
    yy.append(y)
    time.sleep(0.5)

xx = np.array(xx).flatten()
yy = np.array(yy).flatten()

plt.hist(xx, bins=2**14, label='X-pol')
plt.hist(yy, bins=2**14, label='Y-pol')
plt.xlabel("ADC values")
plt.ylabel("N datapoints")
plt.legend()


xx, yy = r.spec_read()
plt.figure()
예제 #4
0
from SNAPobs import snap_if
from ata_snap import ata_rfsoc_fengine
import matplotlib.pyplot as plt

#print(snap_if.getatten(["2e", "3l", "1a"]))
snap_if.setatten({"2mx":26, "2my":26})
print(snap_if.getatten(["2m"]))

fpg_file = '/home/obsuser/src/ata_snap_rfsoc/ata_rfsoc/zrf_spec_4ant/outputs/zrf_spec_4ant_2021-06-05_1337.fpg'

r = ata_rfsoc_fengine.AtaRfsocFengine('rfsoc1-ctrl-1', pipeline_id=0)
r.fpga.get_system_information(fpg_file)


xx, yy = r.spec_read()
plt.figure()
plt.semilogy(xx, label='x')
plt.semilogy(yy, label='y')
plt.legend()


snap_if.setatten({"2mx":16, "2my":16})
print(snap_if.getatten(["2m"]))

xx, yy = r.spec_read()
plt.semilogy(xx, label='x')
plt.semilogy(yy, label='y')
plt.legend()


snap_if.setatten({"2mx":6, "2my":6})
예제 #5
0
from ata_snap import ata_rfsoc_fengine
import matplotlib.pyplot as plt
import numpy as np
import time

#fpg_file = '/home/obsuser/src/ata_snap_rfsoc/ata_rfsoc/zrf_spec/outputs/zrf_spec_2021-04-27_1557.fpg'
fpg_file = '/home/obsuser/src/ata_snap_rfsoc/ata_rfsoc/zrf_spec_4ant/outputs/zrf_spec_4ant_2021-06-05_1337.fpg'

rs = [
    ata_rfsoc_fengine.AtaRfsocFengine('rfsoc1-ctrl-%i' % (i + 1),
                                      pipeline_id=i) for i in [0, 1, 2, 3]
]

for r in rs:
    r.fpga.get_system_information(fpg_file)

ii = 0
for r in rs:
    print(r)
    xx, yy = r.spec_read()
    x, y = r.adc_get_samples()
    x = np.array(x)
    y = np.array(y)
    print("spectrum read")
    print("x: %.2f, y: %.2f" % (x.std(), y.std()))

    plt.figure(ii)
    plt.title("Pipeline ID: %i" % ii)
    plt.semilogy(xx, label='x')
    plt.semilogy(yy, label='y')
    plt.legend()
예제 #6
0
from ata_snap import ata_rfsoc_fengine
import struct
import matplotlib.pyplot as plt
import numpy as np
import time


fpg_file = '/home/obsuser/src/ata_snap_rfsoc/ata_rfsoc/zrf_spec_4ant/outputs/zrf_spec_4ant_2021-06-05_1337.fpg'

r = ata_rfsoc_fengine.AtaRfsocFengine('rfsoc1-ctrl-1')
r.fpga.get_system_information(fpg_file)

i_j_pairs = [[0,1], [2,3], [4,5], [6,7], [8,9], [10,11], [12,13], [14,15]]

ii = 0
for i,j in i_j_pairs:
    r.fpga.write_int('sel0', i)
    r.fpga.write_int('sel1', j)
    raw_x, t = r.fpga.snapshots.ss_adc0.read_raw(man_trig=True, man_valid=True)
    raw_y, t = r.fpga.snapshots.ss_adc1.read_raw(man_trig=True, man_valid=True)
    data_x = struct.unpack(">%dh" % (raw_x['length']//2), raw_x['data'])
    data_y = struct.unpack(">%dh" % (raw_y['length']//2), raw_y['data'])
    print(np.std(data_x))
    print(np.std(data_y))
    plt.figure(i)
    plt.title("%i %i" %(i,j))
    plt.hist(data_x)
    plt.hist(data_y)

plt.show()