File: pv_subarray_test.py

package info (click to toggle)
python-pyepics 3.4.1%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 2,080 kB
  • sloc: python: 11,184; makefile: 106; javascript: 104; sh: 1
file content (43 lines) | stat: -rw-r--r-- 1,298 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import time
import epics
import pvnames
import random
import numpy
import sys
driver = epics.PV(pvnames.subarr_driver)
sub1   = epics.PV(pvnames.subarr1)
sub2   = epics.PV(pvnames.subarr2)
sub3   = epics.PV(pvnames.subarr3)
sub4   = epics.PV(pvnames.subarr4)


s1_0 =  int(epics.caget("%s.INDX" % pvnames.subarr1))
s2_0 =  int(epics.caget("%s.INDX" % pvnames.subarr2))
s3_0 =  int(epics.caget("%s.INDX" % pvnames.subarr3))
s4_0 =  int(epics.caget("%s.INDX" % pvnames.subarr4))

s1_n =  int(epics.caget("%s.NELM" % pvnames.subarr1))
s2_n =  int(epics.caget("%s.NELM" % pvnames.subarr2))
s3_n =  int(epics.caget("%s.NELM" % pvnames.subarr3))
s4_n =  int(epics.caget("%s.NELM" % pvnames.subarr4))

npts = len(driver.get())

for i in range(10):
    driver.put([100*random.random() for x in range(npts)])
    time.sleep(0.1)

    full = driver.get()
    sys.stdout.write("%s\n" % full)
    all_ok = all( [all( sub1.get() == full[s1_0:s1_n+s1_0]), 
                  all( sub2.get() == full[s2_0:s2_n+s2_0]),
                  all( sub3.get() == full[s3_0:s3_n+s3_0]),
                  all( sub4.get() == full[s4_0:s4_n+s4_0])
                  ])

    if not all_ok:
        sys.stdout.write("FAIL: Subarrays don't match larger array!\n")
        sys.exit()
        
sys.stdout.write('PASSED.\n')