예제 #1
0
        def start(self):
            """Start video capture."""
            def validate(node, value):
                node.write_once = node.no_write_shot = False
                try:
                    node.record = node.record.setValidation(value)
                finally:
                    node.write_once = node.no_write_shot = True

            def store_temp(node, new):
                if isinstance(new, (float, )):
                    node.record = MDSplus.Float64([new])
                elif isinstance(new, (int, )):
                    node.record = MDSplus.Uint32([new])

            try:
                validate(self.frame_rate,
                         MDSplus.Float32(self.cygnet4k.frame_rate))
                validate(self.exposure,
                         MDSplus.Float32(self.cygnet4k.exposure))
                validate(self.trig_mode,
                         MDSplus.Uint8(self.cygnet4k.trig_mode))
                validate(self.binning, MDSplus.Int8(self.cygnet4k.binning))
                validate(self.roi_rect, MDSplus.Int16(self.cygnet4k.roi_rect))
                aoi = self._roi_rect
                cmos, pcb = self.cygnet4k.start_capture_stream(
                    self._num_frames, aoi, self._stream, self.copy())
                store_temp(self.temp_cmos, cmos)
                store_temp(self.temp_pcb, pcb)
            except CygnetExcConnect:
                raise MDSplus.DevOFFLINE
            except CygnetExcValue:
                raise MDSplus.DevINV_SETUP
            except CygnetExcComm:
                raise MDSplus.DevIO_STUCK
예제 #2
0
 def decompile(self):
     self.assertEqual(str(m.Uint8(123)), '123BU')
     self.assertEqual(str(m.Uint16(123)), '123WU')
     self.assertEqual(str(m.Uint32(123)), '123LU')
     self.assertEqual(str(m.Uint64(123)), '123QU')
     self.assertEqual(str(m.Int8(123)), '123B')
     self.assertEqual(str(m.Int16(123)), '123W')
     self.assertEqual(str(m.Int32(123)), '123')
     self.assertEqual(str(m.Int64(123)), '123Q')
     self.assertEqual(
         str(m.Signal(m.ZERO(100000, 0).evaluate(), None, 0)),
         "Build_Signal(Set_Range(100000,0 /*** etc. ***/), *, 0)")