97 def __init__(self, **kwargs):
98 super().__init__(**kwargs)
99 self.sim_diffraction_angle = 0.0
100 self.sequence_params = []
101 self.sequence_index = 0
106 def set_sim_diffraction_angle(self, theta):
107 _logger.info(
"set_sim_diffraction_angle %f", theta)
108 self.sim_diffraction_angle = theta
110 def get_sim_diffraction_angle(self):
111 return self.sim_diffraction_angle
123 def get_sim_sequence(self):
124 return self.sequence_params
126 def set_sim_sequence(self, seq):
127 _logger.info(
"set_sim_sequence")
128 self.sequence_params = seq
131 def get_sequence_index(self):
132 return self.sequence_index
138 def __init__(self, **kwargs):
139 super().__init__(**kwargs)
141 self.
_ana = [0, 0, 0, 0]
149 _logger.info(
"Abort")
151 def WriteDigital(self, value):
152 _logger.info(
"WriteDigital: %s", bin(value))
155 def MoveAbsolute(self, aline, pos):
156 _logger.info(
"MoveAbsoluteADU: line %d, value %d", aline, pos)
157 self._ana[aline] = pos
159 def arcl(self, mask, pairs):
160 _logger.info(
"arcl: %s, %s", mask, pairs)
162 def profileSet(self, pstr, digitals, *analogs):
163 _logger.info(
"profileSet ...")
164 _logger.info(
"... ", pstr)
165 _logger.info(
"... ", digitals)
166 _logger.info(
"... ", analogs)
168 def DownloadProfile(self):
169 _logger.info(
"DownloadProfile")
171 def InitProfile(self, numReps):
172 _logger.info(
"InitProfile")
174 def trigCollect(self, *args, **kwargs):
175 _logger.info(
"trigCollect: ... ")
179 def ReadPosition(self, aline):
181 "ReadPosition : line %d, value %d", aline, self._ana[aline]
183 return self._ana[aline]
185 def ReadDigital(self):
186 _logger.info(
"ReadDigital: %s", bin(self._digi))
189 def PrepareActions(self, actions, numReps=1):
190 _logger.info(
"PrepareActions")
191 self._actions = actions
192 self._repeats = numReps
194 def RunActions(self):
195 _logger.info(
"RunActions ...")
196 for i
in range(self._repeats):
197 for a
in self._actions:
199 time.sleep(a[0] / 1000.0)
201 self._client.receiveData(
"DSP done")
202 _logger.info(
"... RunActions done.")
204 def receiveClient(self, *args, **kwargs):
208 def set_client(self, *args, **kwargs):
None add_setting(self, name, dtype, get_func, set_func, values, typing.Optional[typing.Callable[[], bool]] readonly=None)