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
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)")