import ch.psi.pshell.epics.CAS as CAS import ch.psi.pshell.device.Register.RegisterArray as RegisterArray camera = "SLG-LCAM-C102" SPECTRUM_SIZE = 659 Y_ROI = (0,199) class Scalar(RegisterBase): def __init__(self, name): RegisterBase.__init__(self, name) self.val = 0 def doRead(self): return self.val def doWrite(self, val): self.val = val class Waveform(RegisterBase, RegisterArray): def __init__(self, name): RegisterBase.__init__(self, name) self.val = [0.0, 1.0, 2.0] def doRead(self): return self.val def doWrite(self, val): self.val = val def getSize(self): return len(self.take(-1)) #only reads if cache is None add_device(Scalar("sc"), True) add_device(Waveform("sx"), True) add_device(Waveform("sy"), True) add_device(Scalar("sf"), True) add_device(Scalar("smin"), True) add_device(Scalar("smax"), True) a,b=[],[] for i in range(SPECTRUM_SIZE): a.append(i) b.append(0) sx.write(a) sy.write(b) #CAS.setServerPort(54321) cas1 = CAS(camera + ":SPECTRUM_Y", sy, 'double') cas6 = CAS(camera + ":SPECTRUM_X", sx, 'double') cas2 = CAS(camera + ":SPECTRUM_CENTER", sc, 'double') cas3 = CAS(camera + ":SPECTRUM_FWHM", sf, 'double') cas4 = CAS(camera + ":SPC_ROI_YMIN", smin, 'double') cas5 = CAS(camera + ":SPC_ROI_YMAX", smax, 'double') caput(camera + ":SPC_ROI_YMIN", Y_ROI[0]) caput(camera + ":SPC_ROI_YMAX", Y_ROI[1]) print caget(camera + ":SPECTRUM_Y").tolist() print caget(camera + ":SPECTRUM_X").tolist() print caget( camera + ":SPECTRUM_CENTER") print caget(camera + ":SPECTRUM_FWHM") print caget(camera + ":SPC_ROI_YMIN") print caget(camera + ":SPC_ROI_YMAX")