| 1 | from make_fix_dimservers import FactDimServer
|
|---|
| 2 | class FTM_CONTROL ( FactDimServer):
|
|---|
| 3 | def version_number(self):
|
|---|
| 4 | """
|
|---|
| 5 | Dim Service
|
|---|
| 6 | Native Dim service: Version number of Dim in use
|
|---|
| 7 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 8 | L
|
|---|
| 9 | """
|
|---|
| 10 | return self._get("VERSION_NUMBER")
|
|---|
| 11 |
|
|---|
| 12 | def disable_reports(self, *args):
|
|---|
| 13 | """
|
|---|
| 14 | Dim Command
|
|---|
| 15 | disable sending rate reports
|
|---|
| 16 | status[bool]:disable or enable that the FTM sends rate reports (yes/no)
|
|---|
| 17 | B
|
|---|
| 18 | """
|
|---|
| 19 | self._cmd("DISABLE_REPORTS", *args)
|
|---|
| 20 |
|
|---|
| 21 | def toggle_pixel(self, *args):
|
|---|
| 22 | """
|
|---|
| 23 | Dim Command
|
|---|
| 24 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 25 | S:1
|
|---|
| 26 | """
|
|---|
| 27 | self._cmd("TOGGLE_PIXEL", *args)
|
|---|
| 28 |
|
|---|
| 29 | def disable_all_patches_except(self, *args):
|
|---|
| 30 | """
|
|---|
| 31 | Dim Command
|
|---|
| 32 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 33 | S:1
|
|---|
| 34 | """
|
|---|
| 35 | self._cmd("DISABLE_ALL_PATCHES_EXCEPT", *args)
|
|---|
| 36 |
|
|---|
| 37 | def set_trigger_multiplicity(self, *args):
|
|---|
| 38 | """
|
|---|
| 39 | Dim Command
|
|---|
| 40 | Setup the Multiplicity condition for physcis triggers
|
|---|
| 41 | N[int]:Number of requirered coincident triggers from sum-patches (1-40)
|
|---|
| 42 | S:1
|
|---|
| 43 | """
|
|---|
| 44 | self._cmd("SET_TRIGGER_MULTIPLICITY", *args)
|
|---|
| 45 |
|
|---|
| 46 | def state(self):
|
|---|
| 47 | """
|
|---|
| 48 | Dim Service
|
|---|
| 49 | Provides the state of the state machine as quality of service.
|
|---|
| 50 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 51 | C
|
|---|
| 52 | """
|
|---|
| 53 | return self._get("STATE")
|
|---|
| 54 |
|
|---|
| 55 | def set_trigger_interval(self, *args):
|
|---|
| 56 | """
|
|---|
| 57 | Dim Command
|
|---|
| 58 | Sets the trigger interval which is the distance between two consecutive artificial triggers.
|
|---|
| 59 | interval[ms]:The applied trigger interval in millisecond (min 1ms / 10bit)
|
|---|
| 60 | I:1
|
|---|
| 61 | """
|
|---|
| 62 | self._cmd("SET_TRIGGER_INTERVAL", *args)
|
|---|
| 63 |
|
|---|
| 64 | def enable_ftu(self, *args):
|
|---|
| 65 | """
|
|---|
| 66 | Dim Command
|
|---|
| 67 | Enable or disable FTU
|
|---|
| 68 | Board[idx]:Index of the board (0-39), -1 for all
|
|---|
| 69 | Enable[bool]:Whether FTU should be enabled or disabled (yes/no)
|
|---|
| 70 | I:1;B:1
|
|---|
| 71 | """
|
|---|
| 72 | self._cmd("ENABLE_FTU", *args)
|
|---|
| 73 |
|
|---|
| 74 | def service_list(self):
|
|---|
| 75 | """
|
|---|
| 76 | Dim Service
|
|---|
| 77 | Native Dim service: List of services, commands and formats
|
|---|
| 78 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 79 | C
|
|---|
| 80 | """
|
|---|
| 81 | return self._get("SERVICE_LIST")
|
|---|
| 82 |
|
|---|
| 83 | def set_calibration_multiplicity(self, *args):
|
|---|
| 84 | """
|
|---|
| 85 | Dim Command
|
|---|
| 86 | Setup the Multiplicity condition for artificial (calibration) triggers
|
|---|
| 87 | N[int]:Number of requirered coincident triggers from sum-patches (1-40)
|
|---|
| 88 | S:1
|
|---|
| 89 | """
|
|---|
| 90 | self._cmd("SET_CALIBRATION_MULTIPLICITY", *args)
|
|---|
| 91 |
|
|---|
| 92 | def reset_crate(self, *args):
|
|---|
| 93 | """
|
|---|
| 94 | Dim Command
|
|---|
| 95 | Reset one of the crates 0-3
|
|---|
| 96 | crate[short]:Crate number to be reseted (0-3)
|
|---|
| 97 | S:1
|
|---|
| 98 | """
|
|---|
| 99 | self._cmd("RESET_CRATE", *args)
|
|---|
| 100 |
|
|---|
| 101 | def reset_configure(self, *args):
|
|---|
| 102 | """
|
|---|
| 103 | Dim Command
|
|---|
| 104 | Reset states during a configuration or in case of configuration error
|
|---|
| 105 |
|
|---|
| 106 | """
|
|---|
| 107 | self._cmd("RESET_CONFIGURE", *args)
|
|---|
| 108 |
|
|---|
| 109 | def disable_pixel(self, *args):
|
|---|
| 110 | """
|
|---|
| 111 | Dim Command
|
|---|
| 112 | (-1 or all)
|
|---|
| 113 | S:1
|
|---|
| 114 | """
|
|---|
| 115 | self._cmd("DISABLE_PIXEL", *args)
|
|---|
| 116 |
|
|---|
| 117 | def enable_veto(self, *args):
|
|---|
| 118 | """
|
|---|
| 119 | Dim Command
|
|---|
| 120 | Enable veto line
|
|---|
| 121 | Enable[bool]:Enable veto (yes/no)
|
|---|
| 122 | B:1
|
|---|
| 123 | """
|
|---|
| 124 | self._cmd("ENABLE_VETO", *args)
|
|---|
| 125 |
|
|---|
| 126 | def enable_pixel(self, *args):
|
|---|
| 127 | """
|
|---|
| 128 | Dim Command
|
|---|
| 129 | (-1 or all)
|
|---|
| 130 | S:1
|
|---|
| 131 | """
|
|---|
| 132 | self._cmd("ENABLE_PIXEL", *args)
|
|---|
| 133 |
|
|---|
| 134 | def set_calibration_window(self, *args):
|
|---|
| 135 | """
|
|---|
| 136 | Dim Command
|
|---|
| 137 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 138 | S:1
|
|---|
| 139 | """
|
|---|
| 140 | self._cmd("SET_CALIBRATION_WINDOW", *args)
|
|---|
| 141 |
|
|---|
| 142 | def enable_ext1(self, *args):
|
|---|
| 143 | """
|
|---|
| 144 | Dim Command
|
|---|
| 145 | Switch on the triggers through the first external line
|
|---|
| 146 | Enable[bool]:Enable ext1 trigger (yes/no)
|
|---|
| 147 | B:1
|
|---|
| 148 | """
|
|---|
| 149 | self._cmd("ENABLE_EXT1", *args)
|
|---|
| 150 |
|
|---|
| 151 | def set_trigger_window(self, *args):
|
|---|
| 152 | """
|
|---|
| 153 | Dim Command
|
|---|
| 154 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 155 | S:1
|
|---|
| 156 | """
|
|---|
| 157 | self._cmd("SET_TRIGGER_WINDOW", *args)
|
|---|
| 158 |
|
|---|
| 159 | def service_desc(self):
|
|---|
| 160 | """
|
|---|
| 161 | Dim Service
|
|---|
| 162 | Descriptions of services or commands and there arguments
|
|---|
| 163 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 164 | C
|
|---|
| 165 | """
|
|---|
| 166 | return self._get("SERVICE_DESC")
|
|---|
| 167 |
|
|---|
| 168 | def state_list(self):
|
|---|
| 169 | """
|
|---|
| 170 | Dim Service
|
|---|
| 171 | Provides a list with descriptions for each service.
|
|---|
| 172 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 173 | C
|
|---|
| 174 | """
|
|---|
| 175 | return self._get("STATE_LIST")
|
|---|
| 176 |
|
|---|
| 177 | def set_threshold(self, *args):
|
|---|
| 178 | """
|
|---|
| 179 | Dim Command
|
|---|
| 180 | Set the comparator threshold
|
|---|
| 181 | Patch[idx]:Index of the patch (0-159), -1 for all
|
|---|
| 182 | Threshold[counts]:Threshold to be set in binary counts
|
|---|
| 183 | I:2
|
|---|
| 184 | """
|
|---|
| 185 | self._cmd("SET_THRESHOLD", *args)
|
|---|
| 186 |
|
|---|
| 187 | def request_static_data(self, *args):
|
|---|
| 188 | """
|
|---|
| 189 | Dim Command
|
|---|
| 190 | request transmission of static data from FTM to memory
|
|---|
| 191 |
|
|---|
| 192 | """
|
|---|
| 193 | self._cmd("REQUEST_STATIC_DATA", *args)
|
|---|
| 194 |
|
|---|
| 195 | def dynamic_data(self):
|
|---|
| 196 | """
|
|---|
| 197 | Dim Service
|
|---|
| 198 | Regular reports sent by FTM
|
|---|
| 199 | FTMtimeStamp[us]:Time in microseconds, since trigger enabled or disabled
|
|---|
| 200 | OnTimeCounter[us]:Ontime, i.e. FTM processes triggers (e.g. No FAD busy)
|
|---|
| 201 | Temperatures[Nan]:not yet defined nor used (wanna be FTM onboard temps)
|
|---|
| 202 | TriggerPatchCounter[int]:counting since last update (prescaling)
|
|---|
| 203 | BoardsCounter[int]:FTU board counting after N out of 4 and since last update
|
|---|
| 204 | RateOverflow[bitpattern]:bits 0-4=patches overflow, 5=board overflow, 1 per board
|
|---|
| 205 | Prescaling[500ms]:Update rate of the rate counter
|
|---|
| 206 | CrcError[int]:Number of checksum error in RS485 communication
|
|---|
| 207 | State[int]:State value of the FTM firmware (cf. FTM doc)
|
|---|
| 208 | X:1;X:1;F:4;I:160;I:40;S:40;S:40;S:40;S:1
|
|---|
| 209 | """
|
|---|
| 210 | return self._get("DYNAMIC_DATA")
|
|---|
| 211 |
|
|---|
| 212 | def set_time_marker_delay(self, *args):
|
|---|
| 213 | """
|
|---|
| 214 | Dim Command
|
|---|
| 215 | delay[int]:The applied time marker delay is: delay*4ns+8ns
|
|---|
| 216 | I:1
|
|---|
| 217 | """
|
|---|
| 218 | self._cmd("SET_TIME_MARKER_DELAY", *args)
|
|---|
| 219 |
|
|---|
| 220 | def configure(self, *args):
|
|---|
| 221 | """
|
|---|
| 222 | Dim Command
|
|---|
| 223 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 224 | C
|
|---|
| 225 | """
|
|---|
| 226 | self._cmd("CONFIGURE", *args)
|
|---|
| 227 |
|
|---|
| 228 | def reconnect(self, *args):
|
|---|
| 229 | """
|
|---|
| 230 | Dim Command
|
|---|
| 231 | (Re)connect ethernet connection to FTM, a new address can be given
|
|---|
| 232 | [host][string]:new ethernet address in the form <host:port>
|
|---|
| 233 | O
|
|---|
| 234 | """
|
|---|
| 235 | self._cmd("RECONNECT", *args)
|
|---|
| 236 |
|
|---|
| 237 | def enable_clock_conditioner(self, *args):
|
|---|
| 238 | """
|
|---|
| 239 | Dim Command
|
|---|
| 240 | Enable clock conidtioner output in favor of time marker output
|
|---|
| 241 | Enable[bool]:Enable clock conditioner (yes/no)
|
|---|
| 242 | B:1
|
|---|
| 243 | """
|
|---|
| 244 | self._cmd("ENABLE_CLOCK_CONDITIONER", *args)
|
|---|
| 245 |
|
|---|
| 246 | def take_n_events(self, *args):
|
|---|
| 247 | """
|
|---|
| 248 | Dim Command
|
|---|
| 249 | take n events (distribute n triggers)
|
|---|
| 250 | number[int]:Number of events to be taken
|
|---|
| 251 | I
|
|---|
| 252 | """
|
|---|
| 253 | self._cmd("TAKE_N_EVENTS", *args)
|
|---|
| 254 |
|
|---|
| 255 | def enable_group1_lpint(self, *args):
|
|---|
| 256 | """
|
|---|
| 257 | Dim Command
|
|---|
| 258 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 259 | B:1
|
|---|
| 260 | """
|
|---|
| 261 | self._cmd("ENABLE_GROUP1_LPINT", *args)
|
|---|
| 262 |
|
|---|
| 263 | def exit(self, *args):
|
|---|
| 264 | """
|
|---|
| 265 | Dim Command
|
|---|
| 266 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 267 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 268 | L:1
|
|---|
| 269 | """
|
|---|
| 270 | self._cmd("EXIT", *args)
|
|---|
| 271 |
|
|---|
| 272 | def trigger_rates(self):
|
|---|
| 273 | """
|
|---|
| 274 | Dim Service
|
|---|
| 275 | Patch,Board,Camera trigger rates
|
|---|
| 276 | FTMtimeStamp[us]:Time in microseconds, since trigger enabled or disabled
|
|---|
| 277 | OnTimeCounter[us]:Effective on-time, ie. FTM triggers (eg. w/o busy)
|
|---|
| 278 | TriggerCounter[int]:Counter of triggers since enabled or disabled
|
|---|
| 279 | TriggerRate[Hz]:Trigger rate
|
|---|
| 280 | BoardRate[Hz]:Trigger rate of individual FTUs
|
|---|
| 281 | PatchRate[Hz]:Trigger rate of individual patches
|
|---|
| 282 | ElapsedTime[sec]:Time elapsed since previous report
|
|---|
| 283 | OnTime[sec]:OnTime elapsed since previous report
|
|---|
| 284 | X:1;X:1;I:1;F:1;F:40;F:160;F:1;F:1
|
|---|
| 285 | """
|
|---|
| 286 | return self._get("TRIGGER_RATES")
|
|---|
| 287 |
|
|---|
| 288 | def passport(self):
|
|---|
| 289 | """
|
|---|
| 290 | Dim Service
|
|---|
| 291 | Info about the FTM and FPGA version
|
|---|
| 292 | BoardId[int]:BoardId, hexCode
|
|---|
| 293 | DNA[int]:DNA of the FTM board
|
|---|
| 294 | X:1;S:1
|
|---|
| 295 | """
|
|---|
| 296 | return self._get("PASSPORT")
|
|---|
| 297 |
|
|---|
| 298 | def set_n_out_of_4(self, *args):
|
|---|
| 299 | """
|
|---|
| 300 | Dim Command
|
|---|
| 301 | Set the comparator threshold
|
|---|
| 302 | Board[idx]:Index of the board (0-39), -1 for all
|
|---|
| 303 | Threshold[counts]:Threshold to be set in binary counts
|
|---|
| 304 | I:2
|
|---|
| 305 | """
|
|---|
| 306 | self._cmd("SET_N_OUT_OF_4", *args)
|
|---|
| 307 |
|
|---|
| 308 | def set_intensity_lpext(self, *args):
|
|---|
| 309 | """
|
|---|
| 310 | Dim Command
|
|---|
| 311 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 312 | S:1
|
|---|
| 313 | """
|
|---|
| 314 | self._cmd("SET_INTENSITY_LPEXT", *args)
|
|---|
| 315 |
|
|---|
| 316 | def enable_group2_lpext(self, *args):
|
|---|
| 317 | """
|
|---|
| 318 | Dim Command
|
|---|
| 319 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 320 | B:1
|
|---|
| 321 | """
|
|---|
| 322 | self._cmd("ENABLE_GROUP2_LPEXT", *args)
|
|---|
| 323 |
|
|---|
| 324 | def enable_group1_lpext(self, *args):
|
|---|
| 325 | """
|
|---|
| 326 | Dim Command
|
|---|
| 327 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 328 | B:1
|
|---|
| 329 | """
|
|---|
| 330 | self._cmd("ENABLE_GROUP1_LPEXT", *args)
|
|---|
| 331 |
|
|---|
| 332 | def set_clock_register(self, *args):
|
|---|
| 333 | """
|
|---|
| 334 | Dim Command
|
|---|
| 335 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 336 | X:8
|
|---|
| 337 | """
|
|---|
| 338 | self._cmd("SET_CLOCK_REGISTER", *args)
|
|---|
| 339 |
|
|---|
| 340 | def load(self, *args):
|
|---|
| 341 | """
|
|---|
| 342 | Dim Command
|
|---|
| 343 | Loads the static data (FTM configuration) from a file into memory and sends it to the FTM
|
|---|
| 344 | filename[string]:Filename (can include a path), .bin is automatically added
|
|---|
| 345 | C
|
|---|
| 346 | """
|
|---|
| 347 | self._cmd("LOAD", *args)
|
|---|
| 348 |
|
|---|
| 349 | def save(self, *args):
|
|---|
| 350 | """
|
|---|
| 351 | Dim Command
|
|---|
| 352 | Saves the static data (FTM configuration) from memory to a file
|
|---|
| 353 | filename[string]:Filename (can include a path), .bin is automatically added
|
|---|
| 354 | C
|
|---|
| 355 | """
|
|---|
| 356 | self._cmd("SAVE", *args)
|
|---|
| 357 |
|
|---|
| 358 | def toggle_ftu(self, *args):
|
|---|
| 359 | """
|
|---|
| 360 | Dim Command
|
|---|
| 361 | Toggle status of FTU (this is mainly meant to be used in the GUI)
|
|---|
| 362 | Board[idx]:Index of the board (0-39)
|
|---|
| 363 | I:1
|
|---|
| 364 | """
|
|---|
| 365 | self._cmd("TOGGLE_FTU", *args)
|
|---|
| 366 |
|
|---|
| 367 | def ftu_list(self):
|
|---|
| 368 | """
|
|---|
| 369 | Dim Service
|
|---|
| 370 | Logs the changes of status of the FTUs
|
|---|
| 371 | FTMtimeStamp[us]:Time in microseconds
|
|---|
| 372 | ActiveFTU[bitpattern]:Description of enabled FTUs
|
|---|
| 373 | NumBoards[int]:Total number of enabled FTUs
|
|---|
| 374 | NumBoardsCrate[int]:Total number of enabled FTUs per crate
|
|---|
| 375 | DNA[hexCode]:Hex code identifier of FTUs
|
|---|
| 376 | Addr[bitpattern]:Crate address (hardware) of FTUs
|
|---|
| 377 | Ping[int]:Number of pings until FTU response
|
|---|
| 378 | X:1;X:1;S:1;C:4;X:40;C:40;C:40
|
|---|
| 379 | """
|
|---|
| 380 | return self._get("FTU_LIST")
|
|---|
| 381 |
|
|---|
| 382 | def client_list(self):
|
|---|
| 383 | """
|
|---|
| 384 | Dim Service
|
|---|
| 385 | Native Dim service: A list of all connected clients
|
|---|
| 386 | C
|
|---|
| 387 | """
|
|---|
| 388 | return self._get("CLIENT_LIST")
|
|---|
| 389 |
|
|---|
| 390 | def set_register(self, *args):
|
|---|
| 391 | """
|
|---|
| 392 | Dim Command
|
|---|
| 393 | set register to value
|
|---|
| 394 | addr[short]:Address of register
|
|---|
| 395 | val[short]:Value to be set
|
|---|
| 396 | I:2
|
|---|
| 397 | """
|
|---|
| 398 | self._cmd("SET_REGISTER", *args)
|
|---|
| 399 |
|
|---|
| 400 | def enable_ext2(self, *args):
|
|---|
| 401 | """
|
|---|
| 402 | Dim Command
|
|---|
| 403 | Switch on the triggers through the second external line
|
|---|
| 404 | Enable[bool]:Enable ext2 trigger (yes/no)
|
|---|
| 405 | B:1
|
|---|
| 406 | """
|
|---|
| 407 | self._cmd("ENABLE_EXT2", *args)
|
|---|
| 408 |
|
|---|
| 409 | def enable_group2_lpint(self, *args):
|
|---|
| 410 | """
|
|---|
| 411 | Dim Command
|
|---|
| 412 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 413 | B:1
|
|---|
| 414 | """
|
|---|
| 415 | self._cmd("ENABLE_GROUP2_LPINT", *args)
|
|---|
| 416 |
|
|---|
| 417 | def toggle_led(self, *args):
|
|---|
| 418 | """
|
|---|
| 419 | Dim Command
|
|---|
| 420 | toggle led
|
|---|
| 421 |
|
|---|
| 422 | """
|
|---|
| 423 | self._cmd("TOGGLE_LED", *args)
|
|---|
| 424 |
|
|---|
| 425 | def counter(self):
|
|---|
| 426 | """
|
|---|
| 427 | Dim Service
|
|---|
| 428 | Communication statistics to or from FTM control and FTM
|
|---|
| 429 | NumHeaders[int]:Num. of headers (any header) received by ftm control
|
|---|
| 430 | NumStaticData[int]:Num. of static data blocks (ftm and ftu settings)
|
|---|
| 431 | NumDynamicData[int]:Num. of dynamic data blocks (e.g. rates)
|
|---|
| 432 | NumFtuList[int]:Num. of FTU list (FTU identifiers, answer from ping)
|
|---|
| 433 | NumErrors[int]:Num. of error messages
|
|---|
| 434 | NumRegister[int]:Num. of answers from a single register accesess
|
|---|
| 435 | I:1;I:1;I:1;I:1;I:1;I:1
|
|---|
| 436 | """
|
|---|
| 437 | return self._get("COUNTER")
|
|---|
| 438 |
|
|---|
| 439 | def enable_patch(self, *args):
|
|---|
| 440 | """
|
|---|
| 441 | Dim Command
|
|---|
| 442 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 443 | S:1
|
|---|
| 444 | """
|
|---|
| 445 | self._cmd("ENABLE_PATCH", *args)
|
|---|
| 446 |
|
|---|
| 447 | def set_dead_time(self, *args):
|
|---|
| 448 | """
|
|---|
| 449 | Dim Command
|
|---|
| 450 | dead_time[int]:The applied dead time is: dead_time*4ns+8ns
|
|---|
| 451 | I:1
|
|---|
| 452 | """
|
|---|
| 453 | self._cmd("SET_DEAD_TIME", *args)
|
|---|
| 454 |
|
|---|
| 455 | def enable_trigger(self, *args):
|
|---|
| 456 | """
|
|---|
| 457 | Dim Command
|
|---|
| 458 | Switch on the physics trigger
|
|---|
| 459 | Enable[bool]:Enable physics trigger (yes/no)
|
|---|
| 460 | B:1
|
|---|
| 461 | """
|
|---|
| 462 | self._cmd("ENABLE_TRIGGER", *args)
|
|---|
| 463 |
|
|---|
| 464 | def set_verbose(self, *args):
|
|---|
| 465 | """
|
|---|
| 466 | Dim Command
|
|---|
| 467 | set verbosity state
|
|---|
| 468 | verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data
|
|---|
| 469 | B
|
|---|
| 470 | """
|
|---|
| 471 | self._cmd("SET_VERBOSE", *args)
|
|---|
| 472 |
|
|---|
| 473 | def message(self):
|
|---|
| 474 | """
|
|---|
| 475 | Dim Service
|
|---|
| 476 | A general logging service providing a quality of service (severity)
|
|---|
| 477 | Message[string]:The message
|
|---|
| 478 | C
|
|---|
| 479 | """
|
|---|
| 480 | return self._get("MESSAGE")
|
|---|
| 481 |
|
|---|
| 482 | def set_trigger_delay(self, *args):
|
|---|
| 483 | """
|
|---|
| 484 | Dim Command
|
|---|
| 485 | delay[int]:The applied trigger delay is: delay*4ns+8ns
|
|---|
| 486 | I:1
|
|---|
| 487 | """
|
|---|
| 488 | self._cmd("SET_TRIGGER_DELAY", *args)
|
|---|
| 489 |
|
|---|
| 490 | def reset_camera(self, *args):
|
|---|
| 491 | """
|
|---|
| 492 | Dim Command
|
|---|
| 493 | Reset all crates. The commands are sent in the order 0,1,2,3
|
|---|
| 494 |
|
|---|
| 495 | """
|
|---|
| 496 | self._cmd("RESET_CAMERA", *args)
|
|---|
| 497 |
|
|---|
| 498 | def stop_trigger(self, *args):
|
|---|
| 499 | """
|
|---|
| 500 | Dim Command
|
|---|
| 501 | stop a run (stop distributing triggers)
|
|---|
| 502 |
|
|---|
| 503 | """
|
|---|
| 504 | self._cmd("STOP_TRIGGER", *args)
|
|---|
| 505 |
|
|---|
| 506 | def set_hex_output(self, *args):
|
|---|
| 507 | """
|
|---|
| 508 | Dim Command
|
|---|
| 509 | enable or disable hex output for received data
|
|---|
| 510 | hexout[bool]:disable or enable hex output for received data (yes/no)
|
|---|
| 511 | B
|
|---|
| 512 | """
|
|---|
| 513 | self._cmd("SET_HEX_OUTPUT", *args)
|
|---|
| 514 |
|
|---|
| 515 | def set_prescaling(self, *args):
|
|---|
| 516 | """
|
|---|
| 517 | Dim Command
|
|---|
| 518 | Sets the FTU readout time intervals
|
|---|
| 519 | time[0.5s]:The interval is given in units of 0.5s, i.e. 1 means 0.5s, 2 means 1s, ...
|
|---|
| 520 | I:1
|
|---|
| 521 | """
|
|---|
| 522 | self._cmd("SET_PRESCALING", *args)
|
|---|
| 523 |
|
|---|
| 524 | def ping(self, *args):
|
|---|
| 525 | """
|
|---|
| 526 | Dim Command
|
|---|
| 527 | send ping
|
|---|
| 528 |
|
|---|
| 529 | """
|
|---|
| 530 | self._cmd("PING", *args)
|
|---|
| 531 |
|
|---|
| 532 | def static_data(self):
|
|---|
| 533 | """
|
|---|
| 534 | Dim Service
|
|---|
| 535 | Configuration of FTM and FTUs
|
|---|
| 536 | FTMtimeStamp[us]:Time in microseconds, since trigger enabled or disabled
|
|---|
| 537 | GeneralSettings[bitpattern]:Status of the FTM settings (cf. FTM doc)
|
|---|
| 538 | LEDStatus[bitpattern]:Not Used
|
|---|
| 539 | ActiveFTU[bitpattern]:List of enabled FTUs
|
|---|
| 540 | TriggerInterval[bitpattern]:Period of cal. and ped. events (cf. FTM doc)
|
|---|
| 541 | TriggerSeq[int]:Sequence of calib. and pedestal events (LPint, LPext, Ped)
|
|---|
| 542 | LPSettings[bitpattern]:Settings of LP, enabled int, ext, intensity int, ext
|
|---|
| 543 | PhysTrigMult[int]:N for N out of 40 logic on FTM (Physics)
|
|---|
| 544 | CalibTrigMult[int]: N for N out of 40 logic on FTM (Calib)
|
|---|
| 545 | PhysTrigWindow[ns]:Coincidence window for N out of 40 (Physics)
|
|---|
| 546 | CalibTrigWindow[ns]:Coincidence window for N out of 40 (Calib)
|
|---|
| 547 | TrigDelay[ns]:Trigger delay applied on FTM
|
|---|
| 548 | TMDelay[ns]:TM delay applied on FTM
|
|---|
| 549 | DeadTime[ns]:Dead time applied after each event on the FTM
|
|---|
| 550 | ClkCond[bitpattern]:Clock conditionner settings on the FTM (DRS sampling freq.)
|
|---|
| 551 | PixEnabled[bitpattern]:Enabled pixels, pckd in 90 shorts (160*9bits=180bytes)
|
|---|
| 552 | PatchThresh[DACcounts]:Threshold of the trigger patches
|
|---|
| 553 | Multiplicity[DACcounts]:N out of 4 logic settings per FTU
|
|---|
| 554 | Prescaling[500ms]:Update rate of the rate counter
|
|---|
| 555 | X:1;S:1;S:1;X:1;S:1;S:3;C:4;S:1;S:1;S:1;S:1;S:1;S:1;I:1;I:8;S:90;S:160;S:40;S:40
|
|---|
| 556 | """
|
|---|
| 557 | return self._get("STATIC_DATA")
|
|---|
| 558 |
|
|---|
| 559 | def error(self):
|
|---|
| 560 | """
|
|---|
| 561 | Dim Service
|
|---|
| 562 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 563 | X:1;S:1;S:28
|
|---|
| 564 | """
|
|---|
| 565 | return self._get("ERROR")
|
|---|
| 566 |
|
|---|
| 567 | def start_trigger(self, *args):
|
|---|
| 568 | """
|
|---|
| 569 | Dim Command
|
|---|
| 570 | start a run (start distributing triggers)
|
|---|
| 571 |
|
|---|
| 572 | """
|
|---|
| 573 | self._cmd("START_TRIGGER", *args)
|
|---|
| 574 |
|
|---|
| 575 | def get_register(self, *args):
|
|---|
| 576 | """
|
|---|
| 577 | Dim Command
|
|---|
| 578 | read register from address addr
|
|---|
| 579 | addr[short]:Address of register
|
|---|
| 580 | I
|
|---|
| 581 | """
|
|---|
| 582 | self._cmd("GET_REGISTER", *args)
|
|---|
| 583 |
|
|---|
| 584 | def disconnect(self, *args):
|
|---|
| 585 | """
|
|---|
| 586 | Dim Command
|
|---|
| 587 | disconnect from ethernet
|
|---|
| 588 |
|
|---|
| 589 | """
|
|---|
| 590 | self._cmd("DISCONNECT", *args)
|
|---|
| 591 |
|
|---|
| 592 | def disable_all_pixels_except(self, *args):
|
|---|
| 593 | """
|
|---|
| 594 | Dim Command
|
|---|
| 595 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 596 | S:1
|
|---|
| 597 | """
|
|---|
| 598 | self._cmd("DISABLE_ALL_PIXELS_EXCEPT", *args)
|
|---|
| 599 |
|
|---|
| 600 | def set_trigger_sequence(self, *args):
|
|---|
| 601 | """
|
|---|
| 602 | Dim Command
|
|---|
| 603 | Setup the sequence of artificial triggers produced by the FTM
|
|---|
| 604 | Ped[short]:number of pedestal triggers in a row
|
|---|
| 605 | LPext[short]:number of triggers of the external light pulser
|
|---|
| 606 | LPint[short]:number of triggers of the internal light pulser
|
|---|
| 607 | S:3
|
|---|
| 608 | """
|
|---|
| 609 | self._cmd("SET_TRIGGER_SEQUENCE", *args)
|
|---|
| 610 |
|
|---|
| 611 | def set_dynamic_output(self, *args):
|
|---|
| 612 | """
|
|---|
| 613 | Dim Command
|
|---|
| 614 | enable or disable output for received dynamic data (data is still broadcasted via Dim)
|
|---|
| 615 | dynout[bool]:disable or enable output for dynamic data (yes/no)
|
|---|
| 616 | B
|
|---|
| 617 | """
|
|---|
| 618 | self._cmd("SET_DYNAMIC_OUTPUT", *args)
|
|---|
| 619 |
|
|---|
| 620 | def disable_patch(self, *args):
|
|---|
| 621 | """
|
|---|
| 622 | Dim Command
|
|---|
| 623 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 624 | S:1
|
|---|
| 625 | """
|
|---|
| 626 | self._cmd("DISABLE_PATCH", *args)
|
|---|
| 627 |
|
|---|
| 628 | def set_clock_frequency(self, *args):
|
|---|
| 629 | """
|
|---|
| 630 | Dim Command
|
|---|
| 631 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 632 | S:1
|
|---|
| 633 | """
|
|---|
| 634 | self._cmd("SET_CLOCK_FREQUENCY", *args)
|
|---|
| 635 |
|
|---|
| 636 | def request_dynamic_data(self, *args):
|
|---|
| 637 | """
|
|---|
| 638 | Dim Command
|
|---|
| 639 | request transmission of dynamic data block
|
|---|
| 640 |
|
|---|
| 641 | """
|
|---|
| 642 | self._cmd("REQUEST_DYNAMIC_DATA", *args)
|
|---|
| 643 |
|
|---|
| 644 | def set_intensity_lpint(self, *args):
|
|---|
| 645 | """
|
|---|
| 646 | Dim Command
|
|---|
| 647 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 648 | S:1
|
|---|
| 649 | """
|
|---|
| 650 | self._cmd("SET_INTENSITY_LPINT", *args)
|
|---|
| 651 |
|
|---|
| 652 | class RATE_SCAN ( FactDimServer):
|
|---|
| 653 | def process_data(self):
|
|---|
| 654 | """
|
|---|
| 655 | Dim Service
|
|---|
| 656 | Rate scan process data
|
|---|
| 657 | min[DAC]:Value at which scan was started
|
|---|
| 658 | max[DAC]:Value at which scan will end
|
|---|
| 659 | step[DAC]:Step size for scan
|
|---|
| 660 | I:1;I:1;I:1
|
|---|
| 661 | """
|
|---|
| 662 | return self._get("PROCESS_DATA")
|
|---|
| 663 |
|
|---|
| 664 | def state(self):
|
|---|
| 665 | """
|
|---|
| 666 | Dim Service
|
|---|
| 667 | Provides the state of the state machine as quality of service.
|
|---|
| 668 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 669 | C
|
|---|
| 670 | """
|
|---|
| 671 | return self._get("STATE")
|
|---|
| 672 |
|
|---|
| 673 | def service_desc(self):
|
|---|
| 674 | """
|
|---|
| 675 | Dim Service
|
|---|
| 676 | Descriptions of services or commands and there arguments
|
|---|
| 677 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 678 | C
|
|---|
| 679 | """
|
|---|
| 680 | return self._get("SERVICE_DESC")
|
|---|
| 681 |
|
|---|
| 682 | def service_list(self):
|
|---|
| 683 | """
|
|---|
| 684 | Dim Service
|
|---|
| 685 | Native Dim service: List of services, commands and formats
|
|---|
| 686 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 687 | C
|
|---|
| 688 | """
|
|---|
| 689 | return self._get("SERVICE_LIST")
|
|---|
| 690 |
|
|---|
| 691 | def start_threshold_scan(self, *args):
|
|---|
| 692 | """
|
|---|
| 693 | Dim Command
|
|---|
| 694 | Start rate scan for the threshold in the defined range
|
|---|
| 695 | min[int]:Start value in DAC counts
|
|---|
| 696 | max[int]:Limiting value in DAC counts
|
|---|
| 697 | step[int]:Single step in DAC counts
|
|---|
| 698 | I:3
|
|---|
| 699 | """
|
|---|
| 700 | self._cmd("START_THRESHOLD_SCAN", *args)
|
|---|
| 701 |
|
|---|
| 702 | def print_cmd(self, *args):
|
|---|
| 703 | """
|
|---|
| 704 | Dim Command
|
|---|
| 705 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 706 |
|
|---|
| 707 | """
|
|---|
| 708 | self._cmd("PRINT_CMD", *args)
|
|---|
| 709 |
|
|---|
| 710 | def client_list(self):
|
|---|
| 711 | """
|
|---|
| 712 | Dim Service
|
|---|
| 713 | Native Dim service: A list of all connected clients
|
|---|
| 714 | C
|
|---|
| 715 | """
|
|---|
| 716 | return self._get("CLIENT_LIST")
|
|---|
| 717 |
|
|---|
| 718 | def set_reference_patch(self, *args):
|
|---|
| 719 | """
|
|---|
| 720 | Dim Command
|
|---|
| 721 | Use the given patch trigger-rate as reference for the reolution
|
|---|
| 722 | patch[idx]:Index of the patch (360*crate+36*board+patch)
|
|---|
| 723 | I:1
|
|---|
| 724 | """
|
|---|
| 725 | self._cmd("SET_REFERENCE_PATCH", *args)
|
|---|
| 726 |
|
|---|
| 727 | def exit(self, *args):
|
|---|
| 728 | """
|
|---|
| 729 | Dim Command
|
|---|
| 730 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 731 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 732 | L:1
|
|---|
| 733 | """
|
|---|
| 734 | self._cmd("EXIT", *args)
|
|---|
| 735 |
|
|---|
| 736 | def change_step_size(self, *args):
|
|---|
| 737 | """
|
|---|
| 738 | Dim Command
|
|---|
| 739 | Change the step size during a ratescan in progress
|
|---|
| 740 | step[int]:Single step in DAC counts
|
|---|
| 741 | I:1
|
|---|
| 742 | """
|
|---|
| 743 | self._cmd("CHANGE_STEP_SIZE", *args)
|
|---|
| 744 |
|
|---|
| 745 | def data(self):
|
|---|
| 746 | """
|
|---|
| 747 | Dim Service
|
|---|
| 748 | Id[s]:Start time used to identify measurement (UnixTime)
|
|---|
| 749 | Threshold[dac]:Threshold in DAC counts
|
|---|
| 750 | ElapsedTime[s]:Real elapsed time
|
|---|
| 751 | RelOnTime[ratio]:Relative on time
|
|---|
| 752 | TriggerRate[Hz]:Camera trigger rate
|
|---|
| 753 | BoardRate[Hz]:Board trigger rates
|
|---|
| 754 | PatchRate[Hz]:Patch trigger rates
|
|---|
| 755 | X:1;I:1;F:1;F:1;F:1;F:40;F:160
|
|---|
| 756 | """
|
|---|
| 757 | return self._get("DATA")
|
|---|
| 758 |
|
|---|
| 759 | def stop(self, *args):
|
|---|
| 760 | """
|
|---|
| 761 | Dim Command
|
|---|
| 762 | Stop a ratescan in progress
|
|---|
| 763 |
|
|---|
| 764 | """
|
|---|
| 765 | self._cmd("STOP", *args)
|
|---|
| 766 |
|
|---|
| 767 | def message(self):
|
|---|
| 768 | """
|
|---|
| 769 | Dim Service
|
|---|
| 770 | A general logging service providing a quality of service (severity)
|
|---|
| 771 | Message[string]:The message
|
|---|
| 772 | C
|
|---|
| 773 | """
|
|---|
| 774 | return self._get("MESSAGE")
|
|---|
| 775 |
|
|---|
| 776 | def start_n_out_of_4_scan(self, *args):
|
|---|
| 777 | """
|
|---|
| 778 | Dim Command
|
|---|
| 779 | Start rate scan for N-out-of-4 in the defined range
|
|---|
| 780 | min[int]:Start value in DAC counts
|
|---|
| 781 | max[int]:Limiting value in DAC counts
|
|---|
| 782 | step[int]:Single step in DAC counts
|
|---|
| 783 | I:3
|
|---|
| 784 | """
|
|---|
| 785 | self._cmd("START_N_OUT_OF_4_SCAN", *args)
|
|---|
| 786 |
|
|---|
| 787 | def change_maximum(self, *args):
|
|---|
| 788 | """
|
|---|
| 789 | Dim Command
|
|---|
| 790 | Change the maximum limit during a ratescan in progress
|
|---|
| 791 | max[int]:Limiting value in DAC counts
|
|---|
| 792 | I:1
|
|---|
| 793 | """
|
|---|
| 794 | self._cmd("CHANGE_MAXIMUM", *args)
|
|---|
| 795 |
|
|---|
| 796 | def state_list(self):
|
|---|
| 797 | """
|
|---|
| 798 | Dim Service
|
|---|
| 799 | Provides a list with descriptions for each service.
|
|---|
| 800 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 801 | C
|
|---|
| 802 | """
|
|---|
| 803 | return self._get("STATE_LIST")
|
|---|
| 804 |
|
|---|
| 805 | def version_number(self):
|
|---|
| 806 | """
|
|---|
| 807 | Dim Service
|
|---|
| 808 | Native Dim service: Version number of Dim in use
|
|---|
| 809 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 810 | L
|
|---|
| 811 | """
|
|---|
| 812 | return self._get("VERSION_NUMBER")
|
|---|
| 813 |
|
|---|
| 814 | def set_reference_board(self, *args):
|
|---|
| 815 | """
|
|---|
| 816 | Dim Command
|
|---|
| 817 | Use the given board trigger-rate as reference for the reolution
|
|---|
| 818 | board[idx]:Index of the board (4*crate+board)
|
|---|
| 819 | I:1
|
|---|
| 820 | """
|
|---|
| 821 | self._cmd("SET_REFERENCE_BOARD", *args)
|
|---|
| 822 |
|
|---|
| 823 | def set_reference_camera(self, *args):
|
|---|
| 824 | """
|
|---|
| 825 | Dim Command
|
|---|
| 826 | Use the camera trigger rate as reference for the reolution
|
|---|
| 827 |
|
|---|
| 828 | """
|
|---|
| 829 | self._cmd("SET_REFERENCE_CAMERA", *args)
|
|---|
| 830 |
|
|---|
| 831 | class RATE_CONTROL ( FactDimServer):
|
|---|
| 832 | def state(self):
|
|---|
| 833 | """
|
|---|
| 834 | Dim Service
|
|---|
| 835 | Provides the state of the state machine as quality of service.
|
|---|
| 836 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 837 | C
|
|---|
| 838 | """
|
|---|
| 839 | return self._get("STATE")
|
|---|
| 840 |
|
|---|
| 841 | def client_list(self):
|
|---|
| 842 | """
|
|---|
| 843 | Dim Service
|
|---|
| 844 | Native Dim service: A list of all connected clients
|
|---|
| 845 | C
|
|---|
| 846 | """
|
|---|
| 847 | return self._get("CLIENT_LIST")
|
|---|
| 848 |
|
|---|
| 849 | def stop(self, *args):
|
|---|
| 850 | """
|
|---|
| 851 | Dim Command
|
|---|
| 852 | Stop a calibration or ratescan in progress
|
|---|
| 853 |
|
|---|
| 854 | """
|
|---|
| 855 | self._cmd("STOP", *args)
|
|---|
| 856 |
|
|---|
| 857 | def service_list(self):
|
|---|
| 858 | """
|
|---|
| 859 | Dim Service
|
|---|
| 860 | Native Dim service: List of services, commands and formats
|
|---|
| 861 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 862 | C
|
|---|
| 863 | """
|
|---|
| 864 | return self._get("SERVICE_LIST")
|
|---|
| 865 |
|
|---|
| 866 | def state_list(self):
|
|---|
| 867 | """
|
|---|
| 868 | Dim Service
|
|---|
| 869 | Provides a list with descriptions for each service.
|
|---|
| 870 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 871 | C
|
|---|
| 872 | """
|
|---|
| 873 | return self._get("STATE_LIST")
|
|---|
| 874 |
|
|---|
| 875 | def message(self):
|
|---|
| 876 | """
|
|---|
| 877 | Dim Service
|
|---|
| 878 | A general logging service providing a quality of service (severity)
|
|---|
| 879 | Message[string]:The message
|
|---|
| 880 | C
|
|---|
| 881 | """
|
|---|
| 882 | return self._get("MESSAGE")
|
|---|
| 883 |
|
|---|
| 884 | def print_cmd(self, *args):
|
|---|
| 885 | """
|
|---|
| 886 | Dim Command
|
|---|
| 887 | Print current status
|
|---|
| 888 |
|
|---|
| 889 | """
|
|---|
| 890 | self._cmd("PRINT_CMD", *args)
|
|---|
| 891 |
|
|---|
| 892 | def calibrate(self, *args):
|
|---|
| 893 | """
|
|---|
| 894 | Dim Command
|
|---|
| 895 | Start a search for a reasonable minimum global threshold
|
|---|
| 896 |
|
|---|
| 897 | """
|
|---|
| 898 | self._cmd("CALIBRATE", *args)
|
|---|
| 899 |
|
|---|
| 900 | def service_desc(self):
|
|---|
| 901 | """
|
|---|
| 902 | Dim Service
|
|---|
| 903 | Descriptions of services or commands and there arguments
|
|---|
| 904 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 905 | C
|
|---|
| 906 | """
|
|---|
| 907 | return self._get("SERVICE_DESC")
|
|---|
| 908 |
|
|---|
| 909 | def set_verbose(self, *args):
|
|---|
| 910 | """
|
|---|
| 911 | Dim Command
|
|---|
| 912 | set verbosity state
|
|---|
| 913 | verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data
|
|---|
| 914 | B
|
|---|
| 915 | """
|
|---|
| 916 | self._cmd("SET_VERBOSE", *args)
|
|---|
| 917 |
|
|---|
| 918 | def set_target_rate(self, *args):
|
|---|
| 919 | """
|
|---|
| 920 | Dim Command
|
|---|
| 921 | Set a target trigger rate for the calibration
|
|---|
| 922 | F:1
|
|---|
| 923 | """
|
|---|
| 924 | self._cmd("SET_TARGET_RATE", *args)
|
|---|
| 925 |
|
|---|
| 926 | def exit(self, *args):
|
|---|
| 927 | """
|
|---|
| 928 | Dim Command
|
|---|
| 929 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 930 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 931 | L:1
|
|---|
| 932 | """
|
|---|
| 933 | self._cmd("EXIT", *args)
|
|---|
| 934 |
|
|---|
| 935 | def threshold(self):
|
|---|
| 936 | """
|
|---|
| 937 | Dim Service
|
|---|
| 938 | Resulting threshold after calibration
|
|---|
| 939 | threshold[dac]:Resulting threshold from calibration
|
|---|
| 940 | S:1
|
|---|
| 941 | """
|
|---|
| 942 | return self._get("THRESHOLD")
|
|---|
| 943 |
|
|---|
| 944 | def set_min_threshold(self, *args):
|
|---|
| 945 | """
|
|---|
| 946 | Dim Command
|
|---|
| 947 | Set a minimum threshold at which th rate control starts calibrating
|
|---|
| 948 | I:1
|
|---|
| 949 | """
|
|---|
| 950 | self._cmd("SET_MIN_THRESHOLD", *args)
|
|---|
| 951 |
|
|---|
| 952 | def version_number(self):
|
|---|
| 953 | """
|
|---|
| 954 | Dim Service
|
|---|
| 955 | Native Dim service: Version number of Dim in use
|
|---|
| 956 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 957 | L
|
|---|
| 958 | """
|
|---|
| 959 | return self._get("VERSION_NUMBER")
|
|---|
| 960 |
|
|---|
| 961 | class FEEDBACK ( FactDimServer):
|
|---|
| 962 | def reference(self):
|
|---|
| 963 | """
|
|---|
| 964 | Dim Service
|
|---|
| 965 | Amplitude reference value(s)Vref[mV]:Amplitude reference
|
|---|
| 966 | F:416
|
|---|
| 967 | """
|
|---|
| 968 | return self._get("REFERENCE")
|
|---|
| 969 |
|
|---|
| 970 | def enable_output(self, *args):
|
|---|
| 971 | """
|
|---|
| 972 | Dim Command
|
|---|
| 973 | Enable sending of correction values caluclated by the control loop to the biasctrl
|
|---|
| 974 | B:1
|
|---|
| 975 | """
|
|---|
| 976 | self._cmd("ENABLE_OUTPUT", *args)
|
|---|
| 977 |
|
|---|
| 978 | def version_number(self):
|
|---|
| 979 | """
|
|---|
| 980 | Dim Service
|
|---|
| 981 | Native Dim service: Version number of Dim in use
|
|---|
| 982 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 983 | L
|
|---|
| 984 | """
|
|---|
| 985 | return self._get("VERSION_NUMBER")
|
|---|
| 986 |
|
|---|
| 987 | def print_calibration(self, *args):
|
|---|
| 988 | """
|
|---|
| 989 | Dim Command
|
|---|
| 990 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 991 |
|
|---|
| 992 | """
|
|---|
| 993 | self._cmd("PRINT_CALIBRATION", *args)
|
|---|
| 994 |
|
|---|
| 995 | def exit(self, *args):
|
|---|
| 996 | """
|
|---|
| 997 | Dim Command
|
|---|
| 998 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 999 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 1000 | L:1
|
|---|
| 1001 | """
|
|---|
| 1002 | self._cmd("EXIT", *args)
|
|---|
| 1003 |
|
|---|
| 1004 | def state(self):
|
|---|
| 1005 | """
|
|---|
| 1006 | Dim Service
|
|---|
| 1007 | Provides the state of the state machine as quality of service.
|
|---|
| 1008 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 1009 | C
|
|---|
| 1010 | """
|
|---|
| 1011 | return self._get("STATE")
|
|---|
| 1012 |
|
|---|
| 1013 | def stop(self, *args):
|
|---|
| 1014 | """
|
|---|
| 1015 | Dim Command
|
|---|
| 1016 | Stop any control loop
|
|---|
| 1017 |
|
|---|
| 1018 | """
|
|---|
| 1019 | self._cmd("STOP", *args)
|
|---|
| 1020 |
|
|---|
| 1021 | def start_temp_control(self, *args):
|
|---|
| 1022 | """
|
|---|
| 1023 | Dim Command
|
|---|
| 1024 | Start the temperature control loop
|
|---|
| 1025 | offset[V]:Offset from the nominal temperature corrected value in Volts
|
|---|
| 1026 | F:1
|
|---|
| 1027 | """
|
|---|
| 1028 | self._cmd("START_TEMP_CONTROL", *args)
|
|---|
| 1029 |
|
|---|
| 1030 | def set_kp(self, *args):
|
|---|
| 1031 | """
|
|---|
| 1032 | Dim Command
|
|---|
| 1033 | Set proportional constant Kp
|
|---|
| 1034 | D:1
|
|---|
| 1035 | """
|
|---|
| 1036 | self._cmd("SET_KP", *args)
|
|---|
| 1037 |
|
|---|
| 1038 | def store_reference(self, *args):
|
|---|
| 1039 | """
|
|---|
| 1040 | Dim Command
|
|---|
| 1041 | Store the last (averaged) value as new reference (for debug purpose only)
|
|---|
| 1042 |
|
|---|
| 1043 | """
|
|---|
| 1044 | self._cmd("STORE_REFERENCE", *args)
|
|---|
| 1045 |
|
|---|
| 1046 | def service_desc(self):
|
|---|
| 1047 | """
|
|---|
| 1048 | Dim Service
|
|---|
| 1049 | Descriptions of services or commands and there arguments
|
|---|
| 1050 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 1051 | C
|
|---|
| 1052 | """
|
|---|
| 1053 | return self._get("SERVICE_DESC")
|
|---|
| 1054 |
|
|---|
| 1055 | def print_cmd(self, *args):
|
|---|
| 1056 | """
|
|---|
| 1057 | Dim Command
|
|---|
| 1058 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 1059 |
|
|---|
| 1060 | """
|
|---|
| 1061 | self._cmd("PRINT_CMD", *args)
|
|---|
| 1062 |
|
|---|
| 1063 | def set_t(self, *args):
|
|---|
| 1064 | """
|
|---|
| 1065 | Dim Command
|
|---|
| 1066 | Set time-constant. (-1 to use the cycle time, i.e. the time for the last average cycle, instead)
|
|---|
| 1067 | D:1
|
|---|
| 1068 | """
|
|---|
| 1069 | self._cmd("SET_T", *args)
|
|---|
| 1070 |
|
|---|
| 1071 | def start_feedback_control(self, *args):
|
|---|
| 1072 | """
|
|---|
| 1073 | Dim Command
|
|---|
| 1074 | Start the feedback control loop
|
|---|
| 1075 | Num[short]:Number of events 'medianed' to calculate the correction value
|
|---|
| 1076 | S:1
|
|---|
| 1077 | """
|
|---|
| 1078 | self._cmd("START_FEEDBACK_CONTROL", *args)
|
|---|
| 1079 |
|
|---|
| 1080 | def set_current_request_interval(self, *args):
|
|---|
| 1081 | """
|
|---|
| 1082 | Dim Command
|
|---|
| 1083 | interval[ms]:Interval between two current requests in modes which need that.
|
|---|
| 1084 |
|
|---|
| 1085 | """
|
|---|
| 1086 | self._cmd("SET_CURRENT_REQUEST_INTERVAL", *args)
|
|---|
| 1087 |
|
|---|
| 1088 | def set_reference(self, *args):
|
|---|
| 1089 | """
|
|---|
| 1090 | Dim Command
|
|---|
| 1091 | Set a new global reference value (for debug purpose only)
|
|---|
| 1092 | F:1
|
|---|
| 1093 | """
|
|---|
| 1094 | self._cmd("SET_REFERENCE", *args)
|
|---|
| 1095 |
|
|---|
| 1096 | def start_global_feedback(self, *args):
|
|---|
| 1097 | """
|
|---|
| 1098 | Dim Command
|
|---|
| 1099 | Start the global feedback control loopNum[short]:Number of events averaged to calculate the correction value
|
|---|
| 1100 | S:1
|
|---|
| 1101 | """
|
|---|
| 1102 | self._cmd("START_GLOBAL_FEEDBACK", *args)
|
|---|
| 1103 |
|
|---|
| 1104 | def deviation(self):
|
|---|
| 1105 | """
|
|---|
| 1106 | Dim Service
|
|---|
| 1107 | Control loop information
|
|---|
| 1108 | DeltaAmpl[mV]:Amplitude offset measures
|
|---|
| 1109 | DeltaBias[mV]:Correction value calculated
|
|---|
| 1110 | DeltaTemp[mV]:Correction calculated from temperature
|
|---|
| 1111 | DeltaUser[mV]:Additional offset specified by user
|
|---|
| 1112 | F:416;F:416;F:1;F:1
|
|---|
| 1113 | """
|
|---|
| 1114 | return self._get("DEVIATION")
|
|---|
| 1115 |
|
|---|
| 1116 | def client_list(self):
|
|---|
| 1117 | """
|
|---|
| 1118 | Dim Service
|
|---|
| 1119 | Native Dim service: A list of all connected clients
|
|---|
| 1120 | C
|
|---|
| 1121 | """
|
|---|
| 1122 | return self._get("CLIENT_LIST")
|
|---|
| 1123 |
|
|---|
| 1124 | def message(self):
|
|---|
| 1125 | """
|
|---|
| 1126 | Dim Service
|
|---|
| 1127 | A general logging service providing a quality of service (severity)
|
|---|
| 1128 | Message[string]:The message
|
|---|
| 1129 | C
|
|---|
| 1130 | """
|
|---|
| 1131 | return self._get("MESSAGE")
|
|---|
| 1132 |
|
|---|
| 1133 | def calibration(self):
|
|---|
| 1134 | """
|
|---|
| 1135 | Dim Service
|
|---|
| 1136 | Current offsets
|
|---|
| 1137 | Avg[uA]:Average offset
|
|---|
| 1138 | Rms[uA]:Rms of offset
|
|---|
| 1139 | R[Ohm]:Measured calibration resistor
|
|---|
| 1140 | F:416;F:416;F:416
|
|---|
| 1141 | """
|
|---|
| 1142 | return self._get("CALIBRATION")
|
|---|
| 1143 |
|
|---|
| 1144 | def set_kd(self, *args):
|
|---|
| 1145 | """
|
|---|
| 1146 | Dim Command
|
|---|
| 1147 | Set derivative constant Kd
|
|---|
| 1148 | D:1
|
|---|
| 1149 | """
|
|---|
| 1150 | self._cmd("SET_KD", *args)
|
|---|
| 1151 |
|
|---|
| 1152 | def set_ki(self, *args):
|
|---|
| 1153 | """
|
|---|
| 1154 | Dim Command
|
|---|
| 1155 | Set integral constant Ki
|
|---|
| 1156 | D:1
|
|---|
| 1157 | """
|
|---|
| 1158 | self._cmd("SET_KI", *args)
|
|---|
| 1159 |
|
|---|
| 1160 | def start_current_control(self, *args):
|
|---|
| 1161 | """
|
|---|
| 1162 | Dim Command
|
|---|
| 1163 | Start the current/temperature control loop
|
|---|
| 1164 | offset[V]:Offset from the nominal current/temperature corrected value in Volts
|
|---|
| 1165 | F:1
|
|---|
| 1166 | """
|
|---|
| 1167 | self._cmd("START_CURRENT_CONTROL", *args)
|
|---|
| 1168 |
|
|---|
| 1169 | def calibrate_currents(self, *args):
|
|---|
| 1170 | """
|
|---|
| 1171 | Dim Command
|
|---|
| 1172 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 1173 |
|
|---|
| 1174 | """
|
|---|
| 1175 | self._cmd("CALIBRATE_CURRENTS", *args)
|
|---|
| 1176 |
|
|---|
| 1177 | def state_list(self):
|
|---|
| 1178 | """
|
|---|
| 1179 | Dim Service
|
|---|
| 1180 | Provides a list with descriptions for each service.
|
|---|
| 1181 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 1182 | C
|
|---|
| 1183 | """
|
|---|
| 1184 | return self._get("STATE_LIST")
|
|---|
| 1185 |
|
|---|
| 1186 | def service_list(self):
|
|---|
| 1187 | """
|
|---|
| 1188 | Dim Service
|
|---|
| 1189 | Native Dim service: List of services, commands and formats
|
|---|
| 1190 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 1191 | C
|
|---|
| 1192 | """
|
|---|
| 1193 | return self._get("SERVICE_LIST")
|
|---|
| 1194 |
|
|---|
| 1195 | class LID_CONTROL ( FactDimServer):
|
|---|
| 1196 | def data(self):
|
|---|
| 1197 | """
|
|---|
| 1198 | Dim Service
|
|---|
| 1199 | status[bool]:Lid1/2 open or closed
|
|---|
| 1200 | I[A]:Lid1/2 current
|
|---|
| 1201 | P[dac]:Lid1/2 hall sensor position in averaged dac counts
|
|---|
| 1202 | S:2;F:2;F:2
|
|---|
| 1203 | """
|
|---|
| 1204 | return self._get("DATA")
|
|---|
| 1205 |
|
|---|
| 1206 | def close(self, *args):
|
|---|
| 1207 | """
|
|---|
| 1208 | Dim Command
|
|---|
| 1209 | Close the lids
|
|---|
| 1210 |
|
|---|
| 1211 | """
|
|---|
| 1212 | self._cmd("CLOSE", *args)
|
|---|
| 1213 |
|
|---|
| 1214 | def post(self, *args):
|
|---|
| 1215 | """
|
|---|
| 1216 | Dim Command
|
|---|
| 1217 | set verbosity state
|
|---|
| 1218 | verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data
|
|---|
| 1219 | C
|
|---|
| 1220 | """
|
|---|
| 1221 | self._cmd("POST", *args)
|
|---|
| 1222 |
|
|---|
| 1223 | def exit(self, *args):
|
|---|
| 1224 | """
|
|---|
| 1225 | Dim Command
|
|---|
| 1226 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 1227 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 1228 | L:1
|
|---|
| 1229 | """
|
|---|
| 1230 | self._cmd("EXIT", *args)
|
|---|
| 1231 |
|
|---|
| 1232 | def service_desc(self):
|
|---|
| 1233 | """
|
|---|
| 1234 | Dim Service
|
|---|
| 1235 | Descriptions of services or commands and there arguments
|
|---|
| 1236 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 1237 | C
|
|---|
| 1238 | """
|
|---|
| 1239 | return self._get("SERVICE_DESC")
|
|---|
| 1240 |
|
|---|
| 1241 | def version_number(self):
|
|---|
| 1242 | """
|
|---|
| 1243 | Dim Service
|
|---|
| 1244 | Native Dim service: Version number of Dim in use
|
|---|
| 1245 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 1246 | L
|
|---|
| 1247 | """
|
|---|
| 1248 | return self._get("VERSION_NUMBER")
|
|---|
| 1249 |
|
|---|
| 1250 | def state_list(self):
|
|---|
| 1251 | """
|
|---|
| 1252 | Dim Service
|
|---|
| 1253 | Provides a list with descriptions for each service.
|
|---|
| 1254 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 1255 | C
|
|---|
| 1256 | """
|
|---|
| 1257 | return self._get("STATE_LIST")
|
|---|
| 1258 |
|
|---|
| 1259 | def open(self, *args):
|
|---|
| 1260 | """
|
|---|
| 1261 | Dim Command
|
|---|
| 1262 | Open the lids
|
|---|
| 1263 |
|
|---|
| 1264 | """
|
|---|
| 1265 | self._cmd("OPEN", *args)
|
|---|
| 1266 |
|
|---|
| 1267 | def service_list(self):
|
|---|
| 1268 | """
|
|---|
| 1269 | Dim Service
|
|---|
| 1270 | Native Dim service: List of services, commands and formats
|
|---|
| 1271 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 1272 | C
|
|---|
| 1273 | """
|
|---|
| 1274 | return self._get("SERVICE_LIST")
|
|---|
| 1275 |
|
|---|
| 1276 | def message(self):
|
|---|
| 1277 | """
|
|---|
| 1278 | Dim Service
|
|---|
| 1279 | A general logging service providing a quality of service (severity)
|
|---|
| 1280 | Message[string]:The message
|
|---|
| 1281 | C
|
|---|
| 1282 | """
|
|---|
| 1283 | return self._get("MESSAGE")
|
|---|
| 1284 |
|
|---|
| 1285 | def client_list(self):
|
|---|
| 1286 | """
|
|---|
| 1287 | Dim Service
|
|---|
| 1288 | Native Dim service: A list of all connected clients
|
|---|
| 1289 | C
|
|---|
| 1290 | """
|
|---|
| 1291 | return self._get("CLIENT_LIST")
|
|---|
| 1292 |
|
|---|
| 1293 | def set_verbose(self, *args):
|
|---|
| 1294 | """
|
|---|
| 1295 | Dim Command
|
|---|
| 1296 | set verbosity state
|
|---|
| 1297 | verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data
|
|---|
| 1298 | B
|
|---|
| 1299 | """
|
|---|
| 1300 | self._cmd("SET_VERBOSE", *args)
|
|---|
| 1301 |
|
|---|
| 1302 | def state(self):
|
|---|
| 1303 | """
|
|---|
| 1304 | Dim Service
|
|---|
| 1305 | Provides the state of the state machine as quality of service.
|
|---|
| 1306 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 1307 | C
|
|---|
| 1308 | """
|
|---|
| 1309 | return self._get("STATE")
|
|---|
| 1310 |
|
|---|
| 1311 | class FSC_CONTROL ( FactDimServer):
|
|---|
| 1312 | def state_list(self):
|
|---|
| 1313 | """
|
|---|
| 1314 | Dim Service
|
|---|
| 1315 | Provides a list with descriptions for each service.
|
|---|
| 1316 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 1317 | C
|
|---|
| 1318 | """
|
|---|
| 1319 | return self._get("STATE_LIST")
|
|---|
| 1320 |
|
|---|
| 1321 | def state(self):
|
|---|
| 1322 | """
|
|---|
| 1323 | Dim Service
|
|---|
| 1324 | Provides the state of the state machine as quality of service.
|
|---|
| 1325 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 1326 | C
|
|---|
| 1327 | """
|
|---|
| 1328 | return self._get("STATE")
|
|---|
| 1329 |
|
|---|
| 1330 | def exit(self, *args):
|
|---|
| 1331 | """
|
|---|
| 1332 | Dim Command
|
|---|
| 1333 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 1334 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 1335 | L:1
|
|---|
| 1336 | """
|
|---|
| 1337 | self._cmd("EXIT", *args)
|
|---|
| 1338 |
|
|---|
| 1339 | def voltage(self):
|
|---|
| 1340 | """
|
|---|
| 1341 | Dim Service
|
|---|
| 1342 | t[s]:FSC uptime
|
|---|
| 1343 | FAD_Ud[V]:FAD digital (crate 0-3)
|
|---|
| 1344 | FAD_Up[V]:FAD positive (crate 0-3)
|
|---|
| 1345 | FAD_Un[V]:FAD negative (crate 0-3)
|
|---|
| 1346 | FPA_Ud[V]:FPA digital (crate 0-3)
|
|---|
| 1347 | FPA_Up[V]:FPA positive (crate 0-3)
|
|---|
| 1348 | FPA_Un[V]:FPA negative (crate 0-3)
|
|---|
| 1349 | ETH_U[V]:Ethernet switch (pos/neg)
|
|---|
| 1350 | FTM_U[V]:FTM - trigger master (pos/neg)
|
|---|
| 1351 | FFC_U[V]:FFC
|
|---|
| 1352 | FLP_U[V]:FLP - light pulser
|
|---|
| 1353 | F:1;F:4;F:4;F:4;F:4;F:4;F:4;F:2;F:2;F:1;F:1
|
|---|
| 1354 | """
|
|---|
| 1355 | return self._get("VOLTAGE")
|
|---|
| 1356 |
|
|---|
| 1357 | def current(self):
|
|---|
| 1358 | """
|
|---|
| 1359 | Dim Service
|
|---|
| 1360 | t[s]:FSC uptime
|
|---|
| 1361 | FAD_Id[A]:FAD digital (crate 0-3)
|
|---|
| 1362 | FAD_Ip[A]:FAD positive (crate 0-3)
|
|---|
| 1363 | FAD_In[A]:FAD negative (crate 0-3)
|
|---|
| 1364 | FPA_Id[A]:FPA digital (crate 0-3)
|
|---|
| 1365 | FPA_Ip[A]:FPA positive (crate 0-3)
|
|---|
| 1366 | FPA_In[A]:FPA negative (crate 0-3)
|
|---|
| 1367 | ETH_I[A]:Ethernet switch (pos/neg)
|
|---|
| 1368 | FTM_I[A]:FTM - trigger master (pos/neg)
|
|---|
| 1369 | FFC_I[A]:FFC
|
|---|
| 1370 | FLP_I[A]:FLP - light pulser
|
|---|
| 1371 | F:1;F:4;F:4;F:4;F:4;F:4;F:4;F:2;F:2;F:1;F:1
|
|---|
| 1372 | """
|
|---|
| 1373 | return self._get("CURRENT")
|
|---|
| 1374 |
|
|---|
| 1375 | def client_list(self):
|
|---|
| 1376 | """
|
|---|
| 1377 | Dim Service
|
|---|
| 1378 | Native Dim service: A list of all connected clients
|
|---|
| 1379 | C
|
|---|
| 1380 | """
|
|---|
| 1381 | return self._get("CLIENT_LIST")
|
|---|
| 1382 |
|
|---|
| 1383 | def service_list(self):
|
|---|
| 1384 | """
|
|---|
| 1385 | Dim Service
|
|---|
| 1386 | Native Dim service: List of services, commands and formats
|
|---|
| 1387 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 1388 | C
|
|---|
| 1389 | """
|
|---|
| 1390 | return self._get("SERVICE_LIST")
|
|---|
| 1391 |
|
|---|
| 1392 | def service_desc(self):
|
|---|
| 1393 | """
|
|---|
| 1394 | Dim Service
|
|---|
| 1395 | Descriptions of services or commands and there arguments
|
|---|
| 1396 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 1397 | C
|
|---|
| 1398 | """
|
|---|
| 1399 | return self._get("SERVICE_DESC")
|
|---|
| 1400 |
|
|---|
| 1401 | def version_number(self):
|
|---|
| 1402 | """
|
|---|
| 1403 | Dim Service
|
|---|
| 1404 | Native Dim service: Version number of Dim in use
|
|---|
| 1405 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 1406 | L
|
|---|
| 1407 | """
|
|---|
| 1408 | return self._get("VERSION_NUMBER")
|
|---|
| 1409 |
|
|---|
| 1410 | def disconnect(self, *args):
|
|---|
| 1411 | """
|
|---|
| 1412 | Dim Command
|
|---|
| 1413 | disconnect from ethernet
|
|---|
| 1414 |
|
|---|
| 1415 | """
|
|---|
| 1416 | self._cmd("DISCONNECT", *args)
|
|---|
| 1417 |
|
|---|
| 1418 | def dump_stream(self, *args):
|
|---|
| 1419 | """
|
|---|
| 1420 | Dim Command
|
|---|
| 1421 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 1422 | B:1
|
|---|
| 1423 | """
|
|---|
| 1424 | self._cmd("DUMP_STREAM", *args)
|
|---|
| 1425 |
|
|---|
| 1426 | def humidity(self):
|
|---|
| 1427 | """
|
|---|
| 1428 | Dim Service
|
|---|
| 1429 | t[s]:FSC uptime
|
|---|
| 1430 | H[%]:Humidity sensors readout
|
|---|
| 1431 | F:1;F:4
|
|---|
| 1432 | """
|
|---|
| 1433 | return self._get("HUMIDITY")
|
|---|
| 1434 |
|
|---|
| 1435 | def temperature(self):
|
|---|
| 1436 | """
|
|---|
| 1437 | Dim Service
|
|---|
| 1438 | t[s]:FSC uptime
|
|---|
| 1439 | T_sens[deg C]:Sensor compartment temperatures
|
|---|
| 1440 | T_crate[deg C]:Temperatures crate 0 (back/front), 1 (b/f), 2 (b/f), 3 (b/f)
|
|---|
| 1441 | T_ps[deg C]:Temp power supplies crate 0 (back/front), 1, 2, 3
|
|---|
| 1442 | T_aux[deg C]:Auxiliary power supply temperatures FTM (top/bottom), FSC (t/b)
|
|---|
| 1443 | T_back[deg C]:FTM backpanel temperatures FTM (top/bottom), FSC (top/bottom)
|
|---|
| 1444 | T_eth[deg C]:Ethernet switches temperatures top (front/back), bottom (f/b)
|
|---|
| 1445 | F:1;F:31;F:8;F:8;F:4;F:4;F:4
|
|---|
| 1446 | """
|
|---|
| 1447 | return self._get("TEMPERATURE")
|
|---|
| 1448 |
|
|---|
| 1449 | def set_verbose(self, *args):
|
|---|
| 1450 | """
|
|---|
| 1451 | Dim Command
|
|---|
| 1452 | set verbosity state
|
|---|
| 1453 | verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data
|
|---|
| 1454 | B:1
|
|---|
| 1455 | """
|
|---|
| 1456 | self._cmd("SET_VERBOSE", *args)
|
|---|
| 1457 |
|
|---|
| 1458 | def reconnect(self, *args):
|
|---|
| 1459 | """
|
|---|
| 1460 | Dim Command
|
|---|
| 1461 | (Re)connect ethernet connection to FTM, a new address can be given
|
|---|
| 1462 | [host][string]:new ethernet address in the form <host:port>
|
|---|
| 1463 | O
|
|---|
| 1464 | """
|
|---|
| 1465 | self._cmd("RECONNECT", *args)
|
|---|
| 1466 |
|
|---|
| 1467 | def message(self):
|
|---|
| 1468 | """
|
|---|
| 1469 | Dim Service
|
|---|
| 1470 | A general logging service providing a quality of service (severity)
|
|---|
| 1471 | Message[string]:The message
|
|---|
| 1472 | C
|
|---|
| 1473 | """
|
|---|
| 1474 | return self._get("MESSAGE")
|
|---|
| 1475 |
|
|---|
| 1476 | class PWR_CONTROL ( FactDimServer):
|
|---|
| 1477 | def set_verbose(self, *args):
|
|---|
| 1478 | """
|
|---|
| 1479 | Dim Command
|
|---|
| 1480 | Set verbosity state
|
|---|
| 1481 | verbosity[bool]:disable or enable verbosity for interpreted data (yes/no)
|
|---|
| 1482 | B:1
|
|---|
| 1483 | """
|
|---|
| 1484 | self._cmd("SET_VERBOSE", *args)
|
|---|
| 1485 |
|
|---|
| 1486 | def camera_power(self, *args):
|
|---|
| 1487 | """
|
|---|
| 1488 | Dim Command
|
|---|
| 1489 | Switch camera power
|
|---|
| 1490 | power[bool]:Switch camera power 'on' or 'off'
|
|---|
| 1491 | B:1
|
|---|
| 1492 | """
|
|---|
| 1493 | self._cmd("CAMERA_POWER", *args)
|
|---|
| 1494 |
|
|---|
| 1495 | def set_debug_rx(self, *args):
|
|---|
| 1496 | """
|
|---|
| 1497 | Dim Command
|
|---|
| 1498 | Set debux-rx state
|
|---|
| 1499 | debug[bool]:dump received text and parsed text to console (yes/no)
|
|---|
| 1500 | B:1
|
|---|
| 1501 | """
|
|---|
| 1502 | self._cmd("SET_DEBUG_RX", *args)
|
|---|
| 1503 |
|
|---|
| 1504 | def version_number(self):
|
|---|
| 1505 | """
|
|---|
| 1506 | Dim Service
|
|---|
| 1507 | Native Dim service: Version number of Dim in use
|
|---|
| 1508 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 1509 | L
|
|---|
| 1510 | """
|
|---|
| 1511 | return self._get("VERSION_NUMBER")
|
|---|
| 1512 |
|
|---|
| 1513 | def service_desc(self):
|
|---|
| 1514 | """
|
|---|
| 1515 | Dim Service
|
|---|
| 1516 | Descriptions of services or commands and there arguments
|
|---|
| 1517 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 1518 | C
|
|---|
| 1519 | """
|
|---|
| 1520 | return self._get("SERVICE_DESC")
|
|---|
| 1521 |
|
|---|
| 1522 | def exit(self, *args):
|
|---|
| 1523 | """
|
|---|
| 1524 | Dim Command
|
|---|
| 1525 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 1526 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 1527 | L:1
|
|---|
| 1528 | """
|
|---|
| 1529 | self._cmd("EXIT", *args)
|
|---|
| 1530 |
|
|---|
| 1531 | def toggle_drive(self, *args):
|
|---|
| 1532 | """
|
|---|
| 1533 | Dim Command
|
|---|
| 1534 | Toggle drive power
|
|---|
| 1535 |
|
|---|
| 1536 | """
|
|---|
| 1537 | self._cmd("TOGGLE_DRIVE", *args)
|
|---|
| 1538 |
|
|---|
| 1539 | def state(self):
|
|---|
| 1540 | """
|
|---|
| 1541 | Dim Service
|
|---|
| 1542 | Provides the state of the state machine as quality of service.
|
|---|
| 1543 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 1544 | C
|
|---|
| 1545 | """
|
|---|
| 1546 | return self._get("STATE")
|
|---|
| 1547 |
|
|---|
| 1548 | def client_list(self):
|
|---|
| 1549 | """
|
|---|
| 1550 | Dim Service
|
|---|
| 1551 | Native Dim service: A list of all connected clients
|
|---|
| 1552 | C
|
|---|
| 1553 | """
|
|---|
| 1554 | return self._get("CLIENT_LIST")
|
|---|
| 1555 |
|
|---|
| 1556 | def data(self):
|
|---|
| 1557 | """
|
|---|
| 1558 | Dim Service
|
|---|
| 1559 | water_lvl[bool]:Water level ok
|
|---|
| 1560 | water_flow[bool]:Water flowing
|
|---|
| 1561 | pwr_24V[bool]:24V power enabled
|
|---|
| 1562 | pwr_pump[bool]:Pump power enabled
|
|---|
| 1563 | pwr_bias[bool]:Bias power enabled
|
|---|
| 1564 | pwr_drive[bool]:Drive power enabled (command value)
|
|---|
| 1565 | main_drive[bool]:Drive manual main switch on
|
|---|
| 1566 | feedback_drive[bool]:Drive power on (feedback value)
|
|---|
| 1567 | C:1;C:1;C:1;C:1;C:1;C:1;C:1;C:1
|
|---|
| 1568 | """
|
|---|
| 1569 | return self._get("DATA")
|
|---|
| 1570 |
|
|---|
| 1571 | def service_list(self):
|
|---|
| 1572 | """
|
|---|
| 1573 | Dim Service
|
|---|
| 1574 | Native Dim service: List of services, commands and formats
|
|---|
| 1575 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 1576 | C
|
|---|
| 1577 | """
|
|---|
| 1578 | return self._get("SERVICE_LIST")
|
|---|
| 1579 |
|
|---|
| 1580 | def post(self, *args):
|
|---|
| 1581 | """
|
|---|
| 1582 | Dim Command
|
|---|
| 1583 | set verbosity state
|
|---|
| 1584 | verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data
|
|---|
| 1585 | C
|
|---|
| 1586 | """
|
|---|
| 1587 | self._cmd("POST", *args)
|
|---|
| 1588 |
|
|---|
| 1589 | def message(self):
|
|---|
| 1590 | """
|
|---|
| 1591 | Dim Service
|
|---|
| 1592 | A general logging service providing a quality of service (severity)
|
|---|
| 1593 | Message[string]:The message
|
|---|
| 1594 | C
|
|---|
| 1595 | """
|
|---|
| 1596 | return self._get("MESSAGE")
|
|---|
| 1597 |
|
|---|
| 1598 | def state_list(self):
|
|---|
| 1599 | """
|
|---|
| 1600 | Dim Service
|
|---|
| 1601 | Provides a list with descriptions for each service.
|
|---|
| 1602 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 1603 | C
|
|---|
| 1604 | """
|
|---|
| 1605 | return self._get("STATE_LIST")
|
|---|
| 1606 |
|
|---|
| 1607 | class DATA_LOGGER ( FactDimServer):
|
|---|
| 1608 | def filename_run(self):
|
|---|
| 1609 | """
|
|---|
| 1610 | Dim Service
|
|---|
| 1611 | Path and base name used for the run files.
|
|---|
| 1612 | Type[int]:type of open files (1=log, 2=rep, 4=fits)
|
|---|
| 1613 | Name[string]:path and base file name
|
|---|
| 1614 | I:1;C
|
|---|
| 1615 | """
|
|---|
| 1616 | return self._get("FILENAME_RUN")
|
|---|
| 1617 |
|
|---|
| 1618 | def stop(self, *args):
|
|---|
| 1619 | """
|
|---|
| 1620 | Dim Command
|
|---|
| 1621 | Stop all data logging, close all files.
|
|---|
| 1622 |
|
|---|
| 1623 | """
|
|---|
| 1624 | self._cmd("STOP", *args)
|
|---|
| 1625 |
|
|---|
| 1626 | def message(self):
|
|---|
| 1627 | """
|
|---|
| 1628 | Dim Service
|
|---|
| 1629 | A general logging service providing a quality of service (severity)
|
|---|
| 1630 | Message[string]:The message
|
|---|
| 1631 | C
|
|---|
| 1632 | """
|
|---|
| 1633 | return self._get("MESSAGE")
|
|---|
| 1634 |
|
|---|
| 1635 | def enable_numsubs_service(self, *args):
|
|---|
| 1636 | """
|
|---|
| 1637 | Dim Command
|
|---|
| 1638 | Switch the service which distributes information about the number of subscriptions and open files on or off.
|
|---|
| 1639 | Enable[bool]:Enable of disable NUM_SUBS service (yes/no).
|
|---|
| 1640 | B:1
|
|---|
| 1641 | """
|
|---|
| 1642 | self._cmd("ENABLE_NUMSUBS_SERVICE", *args)
|
|---|
| 1643 |
|
|---|
| 1644 | def enable_filename_services(self, *args):
|
|---|
| 1645 | """
|
|---|
| 1646 | Dim Command
|
|---|
| 1647 | Switch service which distributes information about the open files on or off.
|
|---|
| 1648 | Enable[bool]:Enable of disable filename services (yes/no).
|
|---|
| 1649 | B:1
|
|---|
| 1650 | """
|
|---|
| 1651 | self._cmd("ENABLE_FILENAME_SERVICES", *args)
|
|---|
| 1652 |
|
|---|
| 1653 | def exit(self, *args):
|
|---|
| 1654 | """
|
|---|
| 1655 | Dim Command
|
|---|
| 1656 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 1657 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 1658 | L:1
|
|---|
| 1659 | """
|
|---|
| 1660 | self._cmd("EXIT", *args)
|
|---|
| 1661 |
|
|---|
| 1662 | def set_run_timeout(self, *args):
|
|---|
| 1663 | """
|
|---|
| 1664 | Dim Command
|
|---|
| 1665 | Set the timeout delay for old run numbers.
|
|---|
| 1666 | timeout[min]:Time out in minutes after which files for expired runs are closed.
|
|---|
| 1667 | L:1
|
|---|
| 1668 | """
|
|---|
| 1669 | self._cmd("SET_RUN_TIMEOUT", *args)
|
|---|
| 1670 |
|
|---|
| 1671 | def num_subs(self):
|
|---|
| 1672 | """
|
|---|
| 1673 | Dim Service
|
|---|
| 1674 | Num. open files + num. subscribed services
|
|---|
| 1675 | NSubAndOpenFiles[int]:Num. of subs and open files
|
|---|
| 1676 | I:2
|
|---|
| 1677 | """
|
|---|
| 1678 | return self._get("NUM_SUBS")
|
|---|
| 1679 |
|
|---|
| 1680 | def service_desc(self):
|
|---|
| 1681 | """
|
|---|
| 1682 | Dim Service
|
|---|
| 1683 | Descriptions of services or commands and there arguments
|
|---|
| 1684 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 1685 | C
|
|---|
| 1686 | """
|
|---|
| 1687 | return self._get("SERVICE_DESC")
|
|---|
| 1688 |
|
|---|
| 1689 | def set_statistics_update_interval(self, *args):
|
|---|
| 1690 | """
|
|---|
| 1691 | Dim Command
|
|---|
| 1692 | Interval in which the data-logger statistics service (STATS) is updated.
|
|---|
| 1693 | Interval[ms]:Value in milliseconds (<=0: no update).
|
|---|
| 1694 | S:1
|
|---|
| 1695 | """
|
|---|
| 1696 | self._cmd("SET_STATISTICS_UPDATE_INTERVAL", *args)
|
|---|
| 1697 |
|
|---|
| 1698 | def version_number(self):
|
|---|
| 1699 | """
|
|---|
| 1700 | Dim Service
|
|---|
| 1701 | Native Dim service: Version number of Dim in use
|
|---|
| 1702 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 1703 | L
|
|---|
| 1704 | """
|
|---|
| 1705 | return self._get("VERSION_NUMBER")
|
|---|
| 1706 |
|
|---|
| 1707 | def client_list(self):
|
|---|
| 1708 | """
|
|---|
| 1709 | Dim Service
|
|---|
| 1710 | Native Dim service: A list of all connected clients
|
|---|
| 1711 | C
|
|---|
| 1712 | """
|
|---|
| 1713 | return self._get("CLIENT_LIST")
|
|---|
| 1714 |
|
|---|
| 1715 | def set_debug_mode(self, *args):
|
|---|
| 1716 | """
|
|---|
| 1717 | Dim Command
|
|---|
| 1718 | Switch debug mode on or off. Debug mode prints information about every service written to a file.
|
|---|
| 1719 | Enable[bool]:Enable of disable debug mode (yes/no).
|
|---|
| 1720 | B:1
|
|---|
| 1721 | """
|
|---|
| 1722 | self._cmd("SET_DEBUG_MODE", *args)
|
|---|
| 1723 |
|
|---|
| 1724 | def print_info(self, *args):
|
|---|
| 1725 | """
|
|---|
| 1726 | Dim Command
|
|---|
| 1727 | Print information about the internal status of the data logger.
|
|---|
| 1728 |
|
|---|
| 1729 | """
|
|---|
| 1730 | self._cmd("PRINT_INFO", *args)
|
|---|
| 1731 |
|
|---|
| 1732 | def start(self, *args):
|
|---|
| 1733 | """
|
|---|
| 1734 | Dim Command
|
|---|
| 1735 | Start the nightly logging. Nightly file location must be specified already
|
|---|
| 1736 |
|
|---|
| 1737 | """
|
|---|
| 1738 | self._cmd("START", *args)
|
|---|
| 1739 |
|
|---|
| 1740 | def stop_run_logging(self, *args):
|
|---|
| 1741 | """
|
|---|
| 1742 | Dim Command
|
|---|
| 1743 | Go from the wait for run to nightly open state.
|
|---|
| 1744 |
|
|---|
| 1745 | """
|
|---|
| 1746 | self._cmd("STOP_RUN_LOGGING", *args)
|
|---|
| 1747 |
|
|---|
| 1748 | def service_list(self):
|
|---|
| 1749 | """
|
|---|
| 1750 | Dim Service
|
|---|
| 1751 | Native Dim service: List of services, commands and formats
|
|---|
| 1752 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 1753 | C
|
|---|
| 1754 | """
|
|---|
| 1755 | return self._get("SERVICE_LIST")
|
|---|
| 1756 |
|
|---|
| 1757 | def stats(self):
|
|---|
| 1758 | """
|
|---|
| 1759 | Dim Service
|
|---|
| 1760 | Statistics about size written
|
|---|
| 1761 | X:4
|
|---|
| 1762 | """
|
|---|
| 1763 | return self._get("STATS")
|
|---|
| 1764 |
|
|---|
| 1765 | def reset(self, *args):
|
|---|
| 1766 | """
|
|---|
| 1767 | Dim Command
|
|---|
| 1768 | Transition to exit error states. Closes the any open file.
|
|---|
| 1769 |
|
|---|
| 1770 | """
|
|---|
| 1771 | self._cmd("RESET", *args)
|
|---|
| 1772 |
|
|---|
| 1773 | def start_run_logging(self, *args):
|
|---|
| 1774 | """
|
|---|
| 1775 | Dim Command
|
|---|
| 1776 | Go to waiting for run number state. In this state with any received run-number a new file is opened.
|
|---|
| 1777 |
|
|---|
| 1778 | """
|
|---|
| 1779 | self._cmd("START_RUN_LOGGING", *args)
|
|---|
| 1780 |
|
|---|
| 1781 | def state_list(self):
|
|---|
| 1782 | """
|
|---|
| 1783 | Dim Service
|
|---|
| 1784 | Provides a list with descriptions for each service.
|
|---|
| 1785 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 1786 | C
|
|---|
| 1787 | """
|
|---|
| 1788 | return self._get("STATE_LIST")
|
|---|
| 1789 |
|
|---|
| 1790 | def state(self):
|
|---|
| 1791 | """
|
|---|
| 1792 | Dim Service
|
|---|
| 1793 | Provides the state of the state machine as quality of service.
|
|---|
| 1794 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 1795 | C
|
|---|
| 1796 | """
|
|---|
| 1797 | return self._get("STATE")
|
|---|
| 1798 |
|
|---|
| 1799 | def filename_nightly(self):
|
|---|
| 1800 | """
|
|---|
| 1801 | Dim Service
|
|---|
| 1802 | Path and base name used for the nightly files.
|
|---|
| 1803 | Type[int]:type of open files (1=log, 2=rep, 4=fits)
|
|---|
| 1804 | Name[string]:path and base file name
|
|---|
| 1805 | I:1;C
|
|---|
| 1806 | """
|
|---|
| 1807 | return self._get("FILENAME_NIGHTLY")
|
|---|
| 1808 |
|
|---|
| 1809 | class TNG_WEATHER ( FactDimServer):
|
|---|
| 1810 | def set_verbose(self, *args):
|
|---|
| 1811 | """
|
|---|
| 1812 | Dim Command
|
|---|
| 1813 | set verbosity state
|
|---|
| 1814 | verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data
|
|---|
| 1815 | B
|
|---|
| 1816 | """
|
|---|
| 1817 | self._cmd("SET_VERBOSE", *args)
|
|---|
| 1818 |
|
|---|
| 1819 | def state(self):
|
|---|
| 1820 | """
|
|---|
| 1821 | Dim Service
|
|---|
| 1822 | Provides the state of the state machine as quality of service.
|
|---|
| 1823 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 1824 | C
|
|---|
| 1825 | """
|
|---|
| 1826 | return self._get("STATE")
|
|---|
| 1827 |
|
|---|
| 1828 | def state_list(self):
|
|---|
| 1829 | """
|
|---|
| 1830 | Dim Service
|
|---|
| 1831 | Provides a list with descriptions for each service.
|
|---|
| 1832 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 1833 | C
|
|---|
| 1834 | """
|
|---|
| 1835 | return self._get("STATE_LIST")
|
|---|
| 1836 |
|
|---|
| 1837 | def version_number(self):
|
|---|
| 1838 | """
|
|---|
| 1839 | Dim Service
|
|---|
| 1840 | Native Dim service: Version number of Dim in use
|
|---|
| 1841 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 1842 | L
|
|---|
| 1843 | """
|
|---|
| 1844 | return self._get("VERSION_NUMBER")
|
|---|
| 1845 |
|
|---|
| 1846 | def dust(self):
|
|---|
| 1847 | """
|
|---|
| 1848 | Dim Service
|
|---|
| 1849 | Dust[ug/m^3]:Dust (total)
|
|---|
| 1850 | F:1
|
|---|
| 1851 | """
|
|---|
| 1852 | return self._get("DUST")
|
|---|
| 1853 |
|
|---|
| 1854 | def service_desc(self):
|
|---|
| 1855 | """
|
|---|
| 1856 | Dim Service
|
|---|
| 1857 | Descriptions of services or commands and there arguments
|
|---|
| 1858 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 1859 | C
|
|---|
| 1860 | """
|
|---|
| 1861 | return self._get("SERVICE_DESC")
|
|---|
| 1862 |
|
|---|
| 1863 | def client_list(self):
|
|---|
| 1864 | """
|
|---|
| 1865 | Dim Service
|
|---|
| 1866 | Native Dim service: A list of all connected clients
|
|---|
| 1867 | C
|
|---|
| 1868 | """
|
|---|
| 1869 | return self._get("CLIENT_LIST")
|
|---|
| 1870 |
|
|---|
| 1871 | def message(self):
|
|---|
| 1872 | """
|
|---|
| 1873 | Dim Service
|
|---|
| 1874 | A general logging service providing a quality of service (severity)
|
|---|
| 1875 | Message[string]:The message
|
|---|
| 1876 | C
|
|---|
| 1877 | """
|
|---|
| 1878 | return self._get("MESSAGE")
|
|---|
| 1879 |
|
|---|
| 1880 | def data(self):
|
|---|
| 1881 | """
|
|---|
| 1882 | Dim Service
|
|---|
| 1883 | T_10M[deg C]:Temperature 10m above ground
|
|---|
| 1884 | T_5M[deg C]:Temperature 5m above ground
|
|---|
| 1885 | T_2M[deg C]:Temperature 2m above ground
|
|---|
| 1886 | T_0[deg C]:Temperature at ground
|
|---|
| 1887 | T_dew[deg C]:Dew point
|
|---|
| 1888 | H[%]:Humidity
|
|---|
| 1889 | P[mbar]:Air pressure
|
|---|
| 1890 | v[km/h]:Wind speed
|
|---|
| 1891 | d[deg]:Wind direction (N-E)
|
|---|
| 1892 | DeltaM1
|
|---|
| 1893 | Dust[ug/m^3]:Dust (total)
|
|---|
| 1894 | Seeing[W/m^2]:Seeing
|
|---|
| 1895 | F:1;F:1;F:1;F:1;F:1;F:1;F:1;F:1;F:1;F:1;F:1;F:1
|
|---|
| 1896 | """
|
|---|
| 1897 | return self._get("DATA")
|
|---|
| 1898 |
|
|---|
| 1899 | def service_list(self):
|
|---|
| 1900 | """
|
|---|
| 1901 | Dim Service
|
|---|
| 1902 | Native Dim service: List of services, commands and formats
|
|---|
| 1903 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 1904 | C
|
|---|
| 1905 | """
|
|---|
| 1906 | return self._get("SERVICE_LIST")
|
|---|
| 1907 |
|
|---|
| 1908 | def exit(self, *args):
|
|---|
| 1909 | """
|
|---|
| 1910 | Dim Command
|
|---|
| 1911 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 1912 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 1913 | L:1
|
|---|
| 1914 | """
|
|---|
| 1915 | self._cmd("EXIT", *args)
|
|---|
| 1916 |
|
|---|
| 1917 | class MAGIC_LIDAR ( FactDimServer):
|
|---|
| 1918 | def client_list(self):
|
|---|
| 1919 | """
|
|---|
| 1920 | Dim Service
|
|---|
| 1921 | Native Dim service: A list of all connected clients
|
|---|
| 1922 | C
|
|---|
| 1923 | """
|
|---|
| 1924 | return self._get("CLIENT_LIST")
|
|---|
| 1925 |
|
|---|
| 1926 | def data(self):
|
|---|
| 1927 | """
|
|---|
| 1928 | Dim Service
|
|---|
| 1929 | Zd[deg]:Pointing direction zenith distance
|
|---|
| 1930 | Az[deg]:Pointing direction azimuth
|
|---|
| 1931 | CHE[km]:Cloud height
|
|---|
| 1932 | COT[1]:Cloud optical transparency at 532nm
|
|---|
| 1933 | PBL[100]:Planetary boundary layer normalized to 100 for clear nights
|
|---|
| 1934 | F:1;F:1;F:1;F:1;F:1
|
|---|
| 1935 | """
|
|---|
| 1936 | return self._get("DATA")
|
|---|
| 1937 |
|
|---|
| 1938 | def service_list(self):
|
|---|
| 1939 | """
|
|---|
| 1940 | Dim Service
|
|---|
| 1941 | Native Dim service: List of services, commands and formats
|
|---|
| 1942 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 1943 | C
|
|---|
| 1944 | """
|
|---|
| 1945 | return self._get("SERVICE_LIST")
|
|---|
| 1946 |
|
|---|
| 1947 | def state(self):
|
|---|
| 1948 | """
|
|---|
| 1949 | Dim Service
|
|---|
| 1950 | Provides the state of the state machine as quality of service.
|
|---|
| 1951 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 1952 | C
|
|---|
| 1953 | """
|
|---|
| 1954 | return self._get("STATE")
|
|---|
| 1955 |
|
|---|
| 1956 | def set_verbose(self, *args):
|
|---|
| 1957 | """
|
|---|
| 1958 | Dim Command
|
|---|
| 1959 | set verbosity state
|
|---|
| 1960 | verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data
|
|---|
| 1961 | B
|
|---|
| 1962 | """
|
|---|
| 1963 | self._cmd("SET_VERBOSE", *args)
|
|---|
| 1964 |
|
|---|
| 1965 | def exit(self, *args):
|
|---|
| 1966 | """
|
|---|
| 1967 | Dim Command
|
|---|
| 1968 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 1969 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 1970 | L:1
|
|---|
| 1971 | """
|
|---|
| 1972 | self._cmd("EXIT", *args)
|
|---|
| 1973 |
|
|---|
| 1974 | def version_number(self):
|
|---|
| 1975 | """
|
|---|
| 1976 | Dim Service
|
|---|
| 1977 | Native Dim service: Version number of Dim in use
|
|---|
| 1978 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 1979 | L
|
|---|
| 1980 | """
|
|---|
| 1981 | return self._get("VERSION_NUMBER")
|
|---|
| 1982 |
|
|---|
| 1983 | def message(self):
|
|---|
| 1984 | """
|
|---|
| 1985 | Dim Service
|
|---|
| 1986 | A general logging service providing a quality of service (severity)
|
|---|
| 1987 | Message[string]:The message
|
|---|
| 1988 | C
|
|---|
| 1989 | """
|
|---|
| 1990 | return self._get("MESSAGE")
|
|---|
| 1991 |
|
|---|
| 1992 | def service_desc(self):
|
|---|
| 1993 | """
|
|---|
| 1994 | Dim Service
|
|---|
| 1995 | Descriptions of services or commands and there arguments
|
|---|
| 1996 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 1997 | C
|
|---|
| 1998 | """
|
|---|
| 1999 | return self._get("SERVICE_DESC")
|
|---|
| 2000 |
|
|---|
| 2001 | def state_list(self):
|
|---|
| 2002 | """
|
|---|
| 2003 | Dim Service
|
|---|
| 2004 | Provides a list with descriptions for each service.
|
|---|
| 2005 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 2006 | C
|
|---|
| 2007 | """
|
|---|
| 2008 | return self._get("STATE_LIST")
|
|---|
| 2009 |
|
|---|
| 2010 | class AGILENT_CONTROL ( FactDimServer):
|
|---|
| 2011 | def service_list(self):
|
|---|
| 2012 | """
|
|---|
| 2013 | Dim Service
|
|---|
| 2014 | Native Dim service: List of services, commands and formats
|
|---|
| 2015 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 2016 | C
|
|---|
| 2017 | """
|
|---|
| 2018 | return self._get("SERVICE_LIST")
|
|---|
| 2019 |
|
|---|
| 2020 | def set_verbose(self, *args):
|
|---|
| 2021 | """
|
|---|
| 2022 | Dim Command
|
|---|
| 2023 | set verbosity state
|
|---|
| 2024 | verbosity[bool]:disable or enable verbosity for received data (yes/no)
|
|---|
| 2025 | B:1
|
|---|
| 2026 | """
|
|---|
| 2027 | self._cmd("SET_VERBOSE", *args)
|
|---|
| 2028 |
|
|---|
| 2029 | def set_power(self, *args):
|
|---|
| 2030 | """
|
|---|
| 2031 | Dim Command
|
|---|
| 2032 | Enable or disable power output
|
|---|
| 2033 | output[bool]:set power output to 'on' or 'off'
|
|---|
| 2034 | B:1
|
|---|
| 2035 | """
|
|---|
| 2036 | self._cmd("SET_POWER", *args)
|
|---|
| 2037 |
|
|---|
| 2038 | def service_desc(self):
|
|---|
| 2039 | """
|
|---|
| 2040 | Dim Service
|
|---|
| 2041 | Descriptions of services or commands and there arguments
|
|---|
| 2042 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 2043 | C
|
|---|
| 2044 | """
|
|---|
| 2045 | return self._get("SERVICE_DESC")
|
|---|
| 2046 |
|
|---|
| 2047 | def power_cycle(self, *args):
|
|---|
| 2048 | """
|
|---|
| 2049 | Dim Command
|
|---|
| 2050 | Power cycle the power output
|
|---|
| 2051 | delay[short]:Defines the delay between switching off and on.
|
|---|
| 2052 | S:1
|
|---|
| 2053 | """
|
|---|
| 2054 | self._cmd("POWER_CYCLE", *args)
|
|---|
| 2055 |
|
|---|
| 2056 | def version_number(self):
|
|---|
| 2057 | """
|
|---|
| 2058 | Dim Service
|
|---|
| 2059 | Native Dim service: Version number of Dim in use
|
|---|
| 2060 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 2061 | L
|
|---|
| 2062 | """
|
|---|
| 2063 | return self._get("VERSION_NUMBER")
|
|---|
| 2064 |
|
|---|
| 2065 | def reconnect(self, *args):
|
|---|
| 2066 | """
|
|---|
| 2067 | Dim Command
|
|---|
| 2068 | (Re)connect ethernet connection to Agilent, a new address can be given
|
|---|
| 2069 | [host][string]:new ethernet address in the form <host:port>
|
|---|
| 2070 | O
|
|---|
| 2071 | """
|
|---|
| 2072 | self._cmd("RECONNECT", *args)
|
|---|
| 2073 |
|
|---|
| 2074 | def set_debug_rx(self, *args):
|
|---|
| 2075 | """
|
|---|
| 2076 | Dim Command
|
|---|
| 2077 | set debug state
|
|---|
| 2078 | debug[bool]:disable or enable verbosity for received raw data (yes/no)
|
|---|
| 2079 | B:1
|
|---|
| 2080 | """
|
|---|
| 2081 | self._cmd("SET_DEBUG_RX", *args)
|
|---|
| 2082 |
|
|---|
| 2083 | def message(self):
|
|---|
| 2084 | """
|
|---|
| 2085 | Dim Service
|
|---|
| 2086 | A general logging service providing a quality of service (severity)
|
|---|
| 2087 | Message[string]:The message
|
|---|
| 2088 | C
|
|---|
| 2089 | """
|
|---|
| 2090 | return self._get("MESSAGE")
|
|---|
| 2091 |
|
|---|
| 2092 | def state(self):
|
|---|
| 2093 | """
|
|---|
| 2094 | Dim Service
|
|---|
| 2095 | Provides the state of the state machine as quality of service.
|
|---|
| 2096 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 2097 | C
|
|---|
| 2098 | """
|
|---|
| 2099 | return self._get("STATE")
|
|---|
| 2100 |
|
|---|
| 2101 | def client_list(self):
|
|---|
| 2102 | """
|
|---|
| 2103 | Dim Service
|
|---|
| 2104 | Native Dim service: A list of all connected clients
|
|---|
| 2105 | C
|
|---|
| 2106 | """
|
|---|
| 2107 | return self._get("CLIENT_LIST")
|
|---|
| 2108 |
|
|---|
| 2109 | def disconnect(self, *args):
|
|---|
| 2110 | """
|
|---|
| 2111 | Dim Command
|
|---|
| 2112 | disconnect from ethernet
|
|---|
| 2113 |
|
|---|
| 2114 | """
|
|---|
| 2115 | self._cmd("DISCONNECT", *args)
|
|---|
| 2116 |
|
|---|
| 2117 | def data(self):
|
|---|
| 2118 | """
|
|---|
| 2119 | Dim Service
|
|---|
| 2120 | U_nom[V]: Nominal output voltage
|
|---|
| 2121 | U_mes[V]: Measured output voltage
|
|---|
| 2122 | I_mes[A]: Measured current
|
|---|
| 2123 | I_max[A]: Current limit
|
|---|
| 2124 | F:1;F:1;F:1;F:1
|
|---|
| 2125 | """
|
|---|
| 2126 | return self._get("DATA")
|
|---|
| 2127 |
|
|---|
| 2128 | def state_list(self):
|
|---|
| 2129 | """
|
|---|
| 2130 | Dim Service
|
|---|
| 2131 | Provides a list with descriptions for each service.
|
|---|
| 2132 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 2133 | C
|
|---|
| 2134 | """
|
|---|
| 2135 | return self._get("STATE_LIST")
|
|---|
| 2136 |
|
|---|
| 2137 | def exit(self, *args):
|
|---|
| 2138 | """
|
|---|
| 2139 | Dim Command
|
|---|
| 2140 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 2141 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 2142 | L:1
|
|---|
| 2143 | """
|
|---|
| 2144 | self._cmd("EXIT", *args)
|
|---|
| 2145 |
|
|---|
| 2146 | class FAD_CONTROL ( FactDimServer):
|
|---|
| 2147 | def version_number(self):
|
|---|
| 2148 | """
|
|---|
| 2149 | Dim Service
|
|---|
| 2150 | Native Dim service: Version number of Dim in use
|
|---|
| 2151 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 2152 | L
|
|---|
| 2153 | """
|
|---|
| 2154 | return self._get("VERSION_NUMBER")
|
|---|
| 2155 |
|
|---|
| 2156 | def state_list(self):
|
|---|
| 2157 | """
|
|---|
| 2158 | Dim Service
|
|---|
| 2159 | Provides a list with descriptions for each service.
|
|---|
| 2160 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 2161 | C
|
|---|
| 2162 | """
|
|---|
| 2163 | return self._get("STATE_LIST")
|
|---|
| 2164 |
|
|---|
| 2165 | def enable_continous_trigger(self, *args):
|
|---|
| 2166 | """
|
|---|
| 2167 | Dim Command
|
|---|
| 2168 | Enable continous (internal) trigger.
|
|---|
| 2169 | B:1
|
|---|
| 2170 | """
|
|---|
| 2171 | self._cmd("ENABLE_CONTINOUS_TRIGGER", *args)
|
|---|
| 2172 |
|
|---|
| 2173 | def event_data(self):
|
|---|
| 2174 | """
|
|---|
| 2175 | Dim Service
|
|---|
| 2176 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 2177 | F:1440;F:1440;F:1440;F:1440
|
|---|
| 2178 | """
|
|---|
| 2179 | return self._get("EVENT_DATA")
|
|---|
| 2180 |
|
|---|
| 2181 | def print_event(self, *args):
|
|---|
| 2182 | """
|
|---|
| 2183 | Dim Command
|
|---|
| 2184 | Print (last) event
|
|---|
| 2185 | board[short]:slot from which the event should be printed (-1 for all)
|
|---|
| 2186 | S:1
|
|---|
| 2187 | """
|
|---|
| 2188 | self._cmd("PRINT_EVENT", *args)
|
|---|
| 2189 |
|
|---|
| 2190 | def block_transmission(self, *args):
|
|---|
| 2191 | """
|
|---|
| 2192 | Dim Command
|
|---|
| 2193 | Blocks the transmission of commands to the given slot. Use with care! For debugging pupose only!
|
|---|
| 2194 | slot[short]:Slot to which the command transmission should be blocked (0-39)
|
|---|
| 2195 | enable[bool]:Whether the command transmission should be blockes (yes) or allowed (no)
|
|---|
| 2196 | S:1;B:1
|
|---|
| 2197 | """
|
|---|
| 2198 | self._cmd("BLOCK_TRANSMISSION", *args)
|
|---|
| 2199 |
|
|---|
| 2200 | def set_debug_tx(self, *args):
|
|---|
| 2201 | """
|
|---|
| 2202 | Dim Command
|
|---|
| 2203 | Enable or disable the output of messages in case of successfull data transmission to the boards.
|
|---|
| 2204 | debug[bool]:disable or enable debug output for transmitted data (yes/no)
|
|---|
| 2205 | B:1
|
|---|
| 2206 | """
|
|---|
| 2207 | self._cmd("SET_DEBUG_TX", *args)
|
|---|
| 2208 |
|
|---|
| 2209 | def dac(self):
|
|---|
| 2210 | """
|
|---|
| 2211 | Dim Service
|
|---|
| 2212 | DAC settings of each FAD board
|
|---|
| 2213 | DAC[int]:DAC counts, sequentially DAC 0 board 0, 0/1, 0/2... (plus min max)
|
|---|
| 2214 | S:336
|
|---|
| 2215 | """
|
|---|
| 2216 | return self._get("DAC")
|
|---|
| 2217 |
|
|---|
| 2218 | def status(self):
|
|---|
| 2219 | """
|
|---|
| 2220 | Dim Service
|
|---|
| 2221 | Status of FAD boards
|
|---|
| 2222 | status[bitpattern]:Status of each FAD board. Maybe buggy
|
|---|
| 2223 | S:42
|
|---|
| 2224 | """
|
|---|
| 2225 | return self._get("STATUS")
|
|---|
| 2226 |
|
|---|
| 2227 | def disconnect(self, *args):
|
|---|
| 2228 | """
|
|---|
| 2229 | Dim Command
|
|---|
| 2230 | Disconnect a connected slot.
|
|---|
| 2231 | S:1
|
|---|
| 2232 | """
|
|---|
| 2233 | self._cmd("DISCONNECT", *args)
|
|---|
| 2234 |
|
|---|
| 2235 | def set_max_memory(self, *args):
|
|---|
| 2236 | """
|
|---|
| 2237 | Dim Command
|
|---|
| 2238 | Set maximum memory buffer size allowed to be consumed by the EventBuilder to buffer events.
|
|---|
| 2239 | memory[short]:Buffer size in Mega-bytes.
|
|---|
| 2240 | S:1
|
|---|
| 2241 | """
|
|---|
| 2242 | self._cmd("SET_MAX_MEMORY", *args)
|
|---|
| 2243 |
|
|---|
| 2244 | def firmware_version(self):
|
|---|
| 2245 | """
|
|---|
| 2246 | Dim Service
|
|---|
| 2247 | Firmware version number of fad boards
|
|---|
| 2248 | firmware[float]:Version number of firmware, for each board. 40=min, 41=max
|
|---|
| 2249 | F:42
|
|---|
| 2250 | """
|
|---|
| 2251 | return self._get("FIRMWARE_VERSION")
|
|---|
| 2252 |
|
|---|
| 2253 | def load_drs_calibration(self, *args):
|
|---|
| 2254 | """
|
|---|
| 2255 | Dim Command
|
|---|
| 2256 | Load a DRS calibration file
|
|---|
| 2257 | absolute path
|
|---|
| 2258 | C
|
|---|
| 2259 | """
|
|---|
| 2260 | self._cmd("LOAD_DRS_CALIBRATION", *args)
|
|---|
| 2261 |
|
|---|
| 2262 | def add_address(self, *args):
|
|---|
| 2263 | """
|
|---|
| 2264 | Dim Command
|
|---|
| 2265 | Add the address of a DRS4 board to the first free slot
|
|---|
| 2266 | IP[string]:address in the format <address:port>
|
|---|
| 2267 | C
|
|---|
| 2268 | """
|
|---|
| 2269 | self._cmd("ADD_ADDRESS", *args)
|
|---|
| 2270 |
|
|---|
| 2271 | def drs_runs(self):
|
|---|
| 2272 | """
|
|---|
| 2273 | Dim Service
|
|---|
| 2274 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 2275 | I:1;I:3
|
|---|
| 2276 | """
|
|---|
| 2277 | return self._get("DRS_RUNS")
|
|---|
| 2278 |
|
|---|
| 2279 | def enable_trigger_line(self, *args):
|
|---|
| 2280 | """
|
|---|
| 2281 | Dim Command
|
|---|
| 2282 | Incoming triggers can be accepted/will not be accepted
|
|---|
| 2283 | B:1
|
|---|
| 2284 | """
|
|---|
| 2285 | self._cmd("ENABLE_TRIGGER_LINE", *args)
|
|---|
| 2286 |
|
|---|
| 2287 | def enable_dwrite(self, *args):
|
|---|
| 2288 | """
|
|---|
| 2289 | Dim Command
|
|---|
| 2290 | Set Dwrite (possibly high / always low)
|
|---|
| 2291 | B:1
|
|---|
| 2292 | """
|
|---|
| 2293 | self._cmd("ENABLE_DWRITE", *args)
|
|---|
| 2294 |
|
|---|
| 2295 | def feedback_data(self):
|
|---|
| 2296 | """
|
|---|
| 2297 | Dim Service
|
|---|
| 2298 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 2299 | F:1440
|
|---|
| 2300 | """
|
|---|
| 2301 | return self._get("FEEDBACK_DATA")
|
|---|
| 2302 |
|
|---|
| 2303 | def set_file_format(self, *args):
|
|---|
| 2304 | """
|
|---|
| 2305 | Dim Command
|
|---|
| 2306 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 2307 | S:1
|
|---|
| 2308 | """
|
|---|
| 2309 | self._cmd("SET_FILE_FORMAT", *args)
|
|---|
| 2310 |
|
|---|
| 2311 | def reference_clock(self):
|
|---|
| 2312 | """
|
|---|
| 2313 | Dim Service
|
|---|
| 2314 | Reference clock of FAD boards
|
|---|
| 2315 | refClocks[t]:ref clocks of FAD boards. 40=min, 41=max
|
|---|
| 2316 | I:42
|
|---|
| 2317 | """
|
|---|
| 2318 | return self._get("REFERENCE_CLOCK")
|
|---|
| 2319 |
|
|---|
| 2320 | def phase_shift(self, *args):
|
|---|
| 2321 | """
|
|---|
| 2322 | Dim Command
|
|---|
| 2323 | Adjust ADC phase (in 'steps')
|
|---|
| 2324 | phase[short]
|
|---|
| 2325 | S:1
|
|---|
| 2326 | """
|
|---|
| 2327 | self._cmd("PHASE_SHIFT", *args)
|
|---|
| 2328 |
|
|---|
| 2329 | def enable_busy_off(self, *args):
|
|---|
| 2330 | """
|
|---|
| 2331 | Dim Command
|
|---|
| 2332 | Set BUSY continously low
|
|---|
| 2333 | B:1
|
|---|
| 2334 | """
|
|---|
| 2335 | self._cmd("ENABLE_BUSY_OFF", *args)
|
|---|
| 2336 |
|
|---|
| 2337 | def set_data_output(self, *args):
|
|---|
| 2338 | """
|
|---|
| 2339 | Dim Command
|
|---|
| 2340 | Enable or disable printing of the received adc data to the console
|
|---|
| 2341 | dataout[bool]:disable or enable data output for received data (yes/no)
|
|---|
| 2342 | B:1
|
|---|
| 2343 | """
|
|---|
| 2344 | self._cmd("SET_DATA_OUTPUT", *args)
|
|---|
| 2345 |
|
|---|
| 2346 | def block_transmission_range(self, *args):
|
|---|
| 2347 | """
|
|---|
| 2348 | Dim Command
|
|---|
| 2349 | Blocks the transmission of commands to the given range of slots. Use with care! For debugging pupose only!
|
|---|
| 2350 | first[short]:First slot to which the command transmission should be blocked (0-39)
|
|---|
| 2351 | last[short]:Last slot to which the command transmission should be blocked (0-39)
|
|---|
| 2352 | enable[bool]:Whether the command transmission should be blockes (yes) or allowed (no)
|
|---|
| 2353 | S:2;B:1
|
|---|
| 2354 | """
|
|---|
| 2355 | self._cmd("BLOCK_TRANSMISSION_RANGE", *args)
|
|---|
| 2356 |
|
|---|
| 2357 | def events(self):
|
|---|
| 2358 | """
|
|---|
| 2359 | Dim Service
|
|---|
| 2360 | Event counts
|
|---|
| 2361 | evtsCount[int]:Num evts cur. run, total (all run), evt ID, trig. Num
|
|---|
| 2362 | I:4
|
|---|
| 2363 | """
|
|---|
| 2364 | return self._get("EVENTS")
|
|---|
| 2365 |
|
|---|
| 2366 | def ignore_events_range(self, *args):
|
|---|
| 2367 | """
|
|---|
| 2368 | Dim Command
|
|---|
| 2369 | Instructs the event-builder to ignore events from the given slot but still read the data from the socket.
|
|---|
| 2370 | first[short]:First slot from which the data should be ignored when building events
|
|---|
| 2371 | last[short]:Last slot from which the data should be ignored when building events
|
|---|
| 2372 | enable[bool]:Whether the event builder should ignore data from this slot (yes) or allowed (no)
|
|---|
| 2373 | S:2;B:1
|
|---|
| 2374 | """
|
|---|
| 2375 | self._cmd("IGNORE_EVENTS_RANGE", *args)
|
|---|
| 2376 |
|
|---|
| 2377 | def send_data(self, *args):
|
|---|
| 2378 | """
|
|---|
| 2379 | Dim Command
|
|---|
| 2380 | Send a command with data to the FADs. Values between 0 and 0xffff are allowed.
|
|---|
| 2381 | command[uint16]:Command to be transmittted.
|
|---|
| 2382 | data[uint16]:Data to be sent with the command.
|
|---|
| 2383 | I:2
|
|---|
| 2384 | """
|
|---|
| 2385 | self._cmd("SEND_DATA", *args)
|
|---|
| 2386 |
|
|---|
| 2387 | def abort(self, *args):
|
|---|
| 2388 | """
|
|---|
| 2389 | Dim Command
|
|---|
| 2390 | Immediately abort EventBuilder thread and disconnect all slots.
|
|---|
| 2391 |
|
|---|
| 2392 | """
|
|---|
| 2393 | self._cmd("ABORT", *args)
|
|---|
| 2394 |
|
|---|
| 2395 | def reset_event_counter(self, *args):
|
|---|
| 2396 | """
|
|---|
| 2397 | Dim Command
|
|---|
| 2398 | Reset the FAD boards' event counter to 0.
|
|---|
| 2399 |
|
|---|
| 2400 | """
|
|---|
| 2401 | self._cmd("RESET_EVENT_COUNTER", *args)
|
|---|
| 2402 |
|
|---|
| 2403 | def set_hex_output(self, *args):
|
|---|
| 2404 | """
|
|---|
| 2405 | Dim Command
|
|---|
| 2406 | Enable or disable hex output for received data
|
|---|
| 2407 | hexout[bool]:disable or enable hex output for received data (yes/no)
|
|---|
| 2408 | B:1
|
|---|
| 2409 | """
|
|---|
| 2410 | self._cmd("SET_HEX_OUTPUT", *args)
|
|---|
| 2411 |
|
|---|
| 2412 | def statistics1(self):
|
|---|
| 2413 | """
|
|---|
| 2414 | Dim Service
|
|---|
| 2415 | Event Builder status for GUI display
|
|---|
| 2416 | threadInfo[int]:Number of read, proc and writes
|
|---|
| 2417 | bufferInfo[int]:Events in buffer, incomp., comp., tot., max past cycle, total
|
|---|
| 2418 | memInfo[int]:total buf. mem, used mem, max used, max past cycle
|
|---|
| 2419 | EvtCnt[int]:Number of events skipped, written, with errors
|
|---|
| 2420 | badRoi[int]:Num boards with wrong ROI in event, run or board
|
|---|
| 2421 | badRoiBoard[int]:Num boards with wrong ROI
|
|---|
| 2422 | deltaT[ms]:Time in ms for rates
|
|---|
| 2423 | rateNew[int]:Number of new start events received
|
|---|
| 2424 | numConn[int]:Number of connections per board
|
|---|
| 2425 | errConn[int]:IO errors per board
|
|---|
| 2426 | rateBytes[int]:Bytes read this cycle
|
|---|
| 2427 | totBytes[int]:Bytes read (counter)
|
|---|
| 2428 | I:3;I:5;X:4;I:3;I:3;I:40;I:1;I:2;C:40;I:40;I:40;X:40
|
|---|
| 2429 | """
|
|---|
| 2430 | return self._get("STATISTICS1")
|
|---|
| 2431 |
|
|---|
| 2432 | def enable_sclk(self, *args):
|
|---|
| 2433 | """
|
|---|
| 2434 | Dim Command
|
|---|
| 2435 | Set SCLK
|
|---|
| 2436 | B:1
|
|---|
| 2437 | """
|
|---|
| 2438 | self._cmd("ENABLE_SCLK", *args)
|
|---|
| 2439 |
|
|---|
| 2440 | def enable_busy_on(self, *args):
|
|---|
| 2441 | """
|
|---|
| 2442 | Dim Command
|
|---|
| 2443 | Set BUSY constantly high (has priority over BUSY_OFF)
|
|---|
| 2444 | B:1
|
|---|
| 2445 | """
|
|---|
| 2446 | self._cmd("ENABLE_BUSY_ON", *args)
|
|---|
| 2447 |
|
|---|
| 2448 | def set_region_of_interest(self, *args):
|
|---|
| 2449 | """
|
|---|
| 2450 | Dim Command
|
|---|
| 2451 | Set region-of-interest to value
|
|---|
| 2452 | channel[short]:Channel on each chip for which the ROI is set (0-8), -1 for all
|
|---|
| 2453 | val[short]:Value to be set
|
|---|
| 2454 | I:2
|
|---|
| 2455 | """
|
|---|
| 2456 | self._cmd("SET_REGION_OF_INTEREST", *args)
|
|---|
| 2457 |
|
|---|
| 2458 | def set_trigger_rate(self, *args):
|
|---|
| 2459 | """
|
|---|
| 2460 | Dim Command
|
|---|
| 2461 | Enable continous trigger
|
|---|
| 2462 | I:1
|
|---|
| 2463 | """
|
|---|
| 2464 | self._cmd("SET_TRIGGER_RATE", *args)
|
|---|
| 2465 |
|
|---|
| 2466 | def statistics2(self):
|
|---|
| 2467 | """
|
|---|
| 2468 | Dim Service
|
|---|
| 2469 | Event Builder status, events oriented
|
|---|
| 2470 | reset[int]:If increased, reset all counters
|
|---|
| 2471 | numRead[int]:How often sucessful read from N sockets per loop
|
|---|
| 2472 | gotByte[int]:number of bytes read per board
|
|---|
| 2473 | gotErr[int]:number of com. errors per board
|
|---|
| 2474 | evtStat[int]:number of evts read, completed, with errors, incomplete
|
|---|
| 2475 | procStat[int]:num. of evts proc., w probs, acc. or rej. by SW trigger
|
|---|
| 2476 | feedStat[int]:number of evts used or rejected by feedback system
|
|---|
| 2477 | wrtStat[int]:number of evts written to disk, with errors
|
|---|
| 2478 | runStat[int]:number of run opened, closed, with open or close errors
|
|---|
| 2479 | numConn[int]:number of sockets successfully opened per board
|
|---|
| 2480 | I:1;I:280;X:40;I:40;I:4;I:4;I:2;I:2;I:3;C:40
|
|---|
| 2481 | """
|
|---|
| 2482 | return self._get("STATISTICS2")
|
|---|
| 2483 |
|
|---|
| 2484 | def service_desc(self):
|
|---|
| 2485 | """
|
|---|
| 2486 | Dim Service
|
|---|
| 2487 | Descriptions of services or commands and there arguments
|
|---|
| 2488 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 2489 | C
|
|---|
| 2490 | """
|
|---|
| 2491 | return self._get("SERVICE_DESC")
|
|---|
| 2492 |
|
|---|
| 2493 | def send_cmd(self, *args):
|
|---|
| 2494 | """
|
|---|
| 2495 | Dim Command
|
|---|
| 2496 | Send a command to the FADs. Values between 0 and 0xffff are allowed.
|
|---|
| 2497 | command[uint16]:Command to be transmittted.
|
|---|
| 2498 | I:1
|
|---|
| 2499 | """
|
|---|
| 2500 | self._cmd("SEND_CMD", *args)
|
|---|
| 2501 |
|
|---|
| 2502 | def stop(self, *args):
|
|---|
| 2503 | """
|
|---|
| 2504 | Dim Command
|
|---|
| 2505 | Stop EventBuilder thread (still write buffered events) and disconnect all slots.
|
|---|
| 2506 |
|
|---|
| 2507 | """
|
|---|
| 2508 | self._cmd("STOP", *args)
|
|---|
| 2509 |
|
|---|
| 2510 | def connect(self, *args):
|
|---|
| 2511 | """
|
|---|
| 2512 | Dim Command
|
|---|
| 2513 | Connect a disconnected slot.
|
|---|
| 2514 | S:1
|
|---|
| 2515 | """
|
|---|
| 2516 | self._cmd("CONNECT", *args)
|
|---|
| 2517 |
|
|---|
| 2518 | def send_single_trigger(self, *args):
|
|---|
| 2519 | """
|
|---|
| 2520 | Dim Command
|
|---|
| 2521 | Issue software triggers
|
|---|
| 2522 |
|
|---|
| 2523 | """
|
|---|
| 2524 | self._cmd("SEND_SINGLE_TRIGGER", *args)
|
|---|
| 2525 |
|
|---|
| 2526 | def dump_recv(self, *args):
|
|---|
| 2527 | """
|
|---|
| 2528 | Dim Command
|
|---|
| 2529 | For debugging purpose: the times when data has been receives are dumped to a file.
|
|---|
| 2530 | switch[bool]:Enable (yes) or disable (no)
|
|---|
| 2531 | B:1
|
|---|
| 2532 | """
|
|---|
| 2533 | self._cmd("DUMP_RECV", *args)
|
|---|
| 2534 |
|
|---|
| 2535 | def enable_drs(self, *args):
|
|---|
| 2536 | """
|
|---|
| 2537 | Dim Command
|
|---|
| 2538 | Switch Domino wave
|
|---|
| 2539 | B:1
|
|---|
| 2540 | """
|
|---|
| 2541 | self._cmd("ENABLE_DRS", *args)
|
|---|
| 2542 |
|
|---|
| 2543 | def start_drs_calibration(self, *args):
|
|---|
| 2544 | """
|
|---|
| 2545 | Dim Command
|
|---|
| 2546 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 2547 |
|
|---|
| 2548 | """
|
|---|
| 2549 | self._cmd("START_DRS_CALIBRATION", *args)
|
|---|
| 2550 |
|
|---|
| 2551 | def start(self, *args):
|
|---|
| 2552 | """
|
|---|
| 2553 | Dim Command
|
|---|
| 2554 | Start EventBuilder thread and connect all valid slots.
|
|---|
| 2555 |
|
|---|
| 2556 | """
|
|---|
| 2557 | self._cmd("START", *args)
|
|---|
| 2558 |
|
|---|
| 2559 | def set_dac_value(self, *args):
|
|---|
| 2560 | """
|
|---|
| 2561 | Dim Command
|
|---|
| 2562 | Set DAC numbers in range to value
|
|---|
| 2563 | addr[short]:Address of register (-1 for all)
|
|---|
| 2564 | val[short]:Value to be set
|
|---|
| 2565 | I:2
|
|---|
| 2566 | """
|
|---|
| 2567 | self._cmd("SET_DAC_VALUE", *args)
|
|---|
| 2568 |
|
|---|
| 2569 | def drs_calibration(self):
|
|---|
| 2570 | """
|
|---|
| 2571 | Dim Service
|
|---|
| 2572 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 2573 | I:1;I:3;F:1474560;F:1474560;F:1474560;F:1474560;F:1474560;F:1474560;F:163840;F:163840
|
|---|
| 2574 | """
|
|---|
| 2575 | return self._get("DRS_CALIBRATION")
|
|---|
| 2576 |
|
|---|
| 2577 | def dna(self):
|
|---|
| 2578 | """
|
|---|
| 2579 | Dim Service
|
|---|
| 2580 | DNA of FAD boards
|
|---|
| 2581 | DNA[hex]:Hex identifier of each FAD board
|
|---|
| 2582 | X:40
|
|---|
| 2583 | """
|
|---|
| 2584 | return self._get("DNA")
|
|---|
| 2585 |
|
|---|
| 2586 | def configure(self, *args):
|
|---|
| 2587 | """
|
|---|
| 2588 | Dim Command
|
|---|
| 2589 | Configure a new run. If the internla trigger is enabled this might even start a new run.
|
|---|
| 2590 | time_max[s]:Maximum time before the run is closed in seconds (0: unlimited)
|
|---|
| 2591 | num_max[int]:Maximum number of events before the run is closed in seconds (0: unlimited)
|
|---|
| 2592 | run_type[string]:Run type which describes the runs
|
|---|
| 2593 | X:2;C
|
|---|
| 2594 | """
|
|---|
| 2595 | self._cmd("CONFIGURE", *args)
|
|---|
| 2596 |
|
|---|
| 2597 | def set_register(self, *args):
|
|---|
| 2598 | """
|
|---|
| 2599 | Dim Command
|
|---|
| 2600 | set register to value
|
|---|
| 2601 | addr[short]:Address of register
|
|---|
| 2602 | val[short]:Value to be set
|
|---|
| 2603 | I:2
|
|---|
| 2604 | """
|
|---|
| 2605 | self._cmd("SET_REGISTER", *args)
|
|---|
| 2606 |
|
|---|
| 2607 | def enable_srclk(self, *args):
|
|---|
| 2608 | """
|
|---|
| 2609 | Dim Command
|
|---|
| 2610 | Set SRCLK
|
|---|
| 2611 | B:1
|
|---|
| 2612 | """
|
|---|
| 2613 | self._cmd("ENABLE_SRCLK", *args)
|
|---|
| 2614 |
|
|---|
| 2615 | def send_n_triggers(self, *args):
|
|---|
| 2616 | """
|
|---|
| 2617 | Dim Command
|
|---|
| 2618 | Issue N software triggers (note that these are the triggers sent, not the triggers executed)
|
|---|
| 2619 | N[int]: Number of triggers to be sent to the board.
|
|---|
| 2620 | I
|
|---|
| 2621 | """
|
|---|
| 2622 | self._cmd("SEND_N_TRIGGERS", *args)
|
|---|
| 2623 |
|
|---|
| 2624 | def remove_slot(self, *args):
|
|---|
| 2625 | """
|
|---|
| 2626 | Dim Command
|
|---|
| 2627 | Remove the Iaddress in slot n. For a list see LIST
|
|---|
| 2628 | slot[short]:Remove the address in slot n from the list
|
|---|
| 2629 | S:1
|
|---|
| 2630 | """
|
|---|
| 2631 | self._cmd("REMOVE_SLOT", *args)
|
|---|
| 2632 |
|
|---|
| 2633 | def set_verbose(self, *args):
|
|---|
| 2634 | """
|
|---|
| 2635 | Dim Command
|
|---|
| 2636 | Set verbosity state
|
|---|
| 2637 | verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data
|
|---|
| 2638 | B:1
|
|---|
| 2639 | """
|
|---|
| 2640 | self._cmd("SET_VERBOSE", *args)
|
|---|
| 2641 |
|
|---|
| 2642 | def set_run_number(self, *args):
|
|---|
| 2643 | """
|
|---|
| 2644 | Dim Command
|
|---|
| 2645 | Sent a new run-number to the boards
|
|---|
| 2646 | num[int]:Run number
|
|---|
| 2647 | X:1
|
|---|
| 2648 | """
|
|---|
| 2649 | self._cmd("SET_RUN_NUMBER", *args)
|
|---|
| 2650 |
|
|---|
| 2651 | def client_list(self):
|
|---|
| 2652 | """
|
|---|
| 2653 | Dim Service
|
|---|
| 2654 | Native Dim service: A list of all connected clients
|
|---|
| 2655 | C
|
|---|
| 2656 | """
|
|---|
| 2657 | return self._get("CLIENT_LIST")
|
|---|
| 2658 |
|
|---|
| 2659 | def enable_command_socket_mode(self, *args):
|
|---|
| 2660 | """
|
|---|
| 2661 | Dim Command
|
|---|
| 2662 | Set debug mode (yes: dump events through command socket, no=dump events through other sockets)
|
|---|
| 2663 | B:1
|
|---|
| 2664 | """
|
|---|
| 2665 | self._cmd("ENABLE_COMMAND_SOCKET_MODE", *args)
|
|---|
| 2666 |
|
|---|
| 2667 | def state(self):
|
|---|
| 2668 | """
|
|---|
| 2669 | Dim Service
|
|---|
| 2670 | Provides the state of the state machine as quality of service.
|
|---|
| 2671 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 2672 | C
|
|---|
| 2673 | """
|
|---|
| 2674 | return self._get("STATE")
|
|---|
| 2675 |
|
|---|
| 2676 | def exit(self, *args):
|
|---|
| 2677 | """
|
|---|
| 2678 | Dim Command
|
|---|
| 2679 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 2680 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 2681 | L:1
|
|---|
| 2682 | """
|
|---|
| 2683 | self._cmd("EXIT", *args)
|
|---|
| 2684 |
|
|---|
| 2685 | def raw_data(self):
|
|---|
| 2686 | """
|
|---|
| 2687 | Dim Service
|
|---|
| 2688 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 2689 | S:1;I:1;S:1;I:1;I:2;I:40;S:1440;S:160;F
|
|---|
| 2690 | """
|
|---|
| 2691 | return self._get("RAW_DATA")
|
|---|
| 2692 |
|
|---|
| 2693 | def list_slots(self, *args):
|
|---|
| 2694 | """
|
|---|
| 2695 | Dim Command
|
|---|
| 2696 | Print a list of all available board addressesa and whether they are enabled
|
|---|
| 2697 |
|
|---|
| 2698 | """
|
|---|
| 2699 | self._cmd("LIST_SLOTS", *args)
|
|---|
| 2700 |
|
|---|
| 2701 | def set_debug_event_builder_out(self, *args):
|
|---|
| 2702 | """
|
|---|
| 2703 | Dim Command
|
|---|
| 2704 | Enable or disable the debug output from the event builder
|
|---|
| 2705 | enable[bool]:Enable/Disable (yes/no)
|
|---|
| 2706 | B:1
|
|---|
| 2707 | """
|
|---|
| 2708 | self._cmd("SET_DEBUG_EVENT_BUILDER_OUT", *args)
|
|---|
| 2709 |
|
|---|
| 2710 | def temperature(self):
|
|---|
| 2711 | """
|
|---|
| 2712 | Dim Service
|
|---|
| 2713 | FADs temperatures
|
|---|
| 2714 | temp[deg. C]:0 global min, 1-40 min, 41 global max, 42-81 max
|
|---|
| 2715 | F:82
|
|---|
| 2716 | """
|
|---|
| 2717 | return self._get("TEMPERATURE")
|
|---|
| 2718 |
|
|---|
| 2719 | def dump_stream(self, *args):
|
|---|
| 2720 | """
|
|---|
| 2721 | Dim Command
|
|---|
| 2722 | For debugging purpose: the binary data stream read from the sockets 0-7 can be dumped to files.
|
|---|
| 2723 | switch[bool]:Enable (yes) or disable (no)
|
|---|
| 2724 | B:1
|
|---|
| 2725 | """
|
|---|
| 2726 | self._cmd("DUMP_STREAM", *args)
|
|---|
| 2727 |
|
|---|
| 2728 | def region_of_interest(self):
|
|---|
| 2729 | """
|
|---|
| 2730 | Dim Service
|
|---|
| 2731 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 2732 | S:2
|
|---|
| 2733 | """
|
|---|
| 2734 | return self._get("REGION_OF_INTEREST")
|
|---|
| 2735 |
|
|---|
| 2736 | def ignore_events(self, *args):
|
|---|
| 2737 | """
|
|---|
| 2738 | Dim Command
|
|---|
| 2739 | Instructs the event-builder to ignore events from the given slot but still read the data from the socket.
|
|---|
| 2740 | slot[short]:Slot from which the data should be ignored when building events
|
|---|
| 2741 | enable[bool]:Whether the event builder should ignore data from this slot (yes) or allowed (no)
|
|---|
| 2742 | S:1;B:1
|
|---|
| 2743 | """
|
|---|
| 2744 | self._cmd("IGNORE_EVENTS", *args)
|
|---|
| 2745 |
|
|---|
| 2746 | def start_run(self):
|
|---|
| 2747 | """
|
|---|
| 2748 | Dim Service
|
|---|
| 2749 | Run numbers
|
|---|
| 2750 | run[idx]:Run no of last conf'd run (-1 if reset or none config'd yet)
|
|---|
| 2751 | next[idx]:Run number which will be assigned to next configuration
|
|---|
| 2752 | X:1;X:1
|
|---|
| 2753 | """
|
|---|
| 2754 | return self._get("START_RUN")
|
|---|
| 2755 |
|
|---|
| 2756 | def prescaler(self):
|
|---|
| 2757 | """
|
|---|
| 2758 | Dim Service
|
|---|
| 2759 | Trigger generator prescaler of fad boards
|
|---|
| 2760 | prescaler[int]:Trigger generator prescaler value, for each board
|
|---|
| 2761 | S:42
|
|---|
| 2762 | """
|
|---|
| 2763 | return self._get("PRESCALER")
|
|---|
| 2764 |
|
|---|
| 2765 | def file_format(self):
|
|---|
| 2766 | """
|
|---|
| 2767 | Dim Service
|
|---|
| 2768 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 2769 | S:1
|
|---|
| 2770 | """
|
|---|
| 2771 | return self._get("FILE_FORMAT")
|
|---|
| 2772 |
|
|---|
| 2773 | def runs(self):
|
|---|
| 2774 | """
|
|---|
| 2775 | Dim Service
|
|---|
| 2776 | Run files statistics
|
|---|
| 2777 | stats[int]:num of open files, min/max run no, last opened or closed run
|
|---|
| 2778 | file[string]:filename of last opened file
|
|---|
| 2779 | I:5;C
|
|---|
| 2780 | """
|
|---|
| 2781 | return self._get("RUNS")
|
|---|
| 2782 |
|
|---|
| 2783 | def run_number(self):
|
|---|
| 2784 | """
|
|---|
| 2785 | Dim Service
|
|---|
| 2786 | Run numbers coming from FAD boards
|
|---|
| 2787 | runNumbers[int]:current run number of each FAD board. 40=min, 41=max
|
|---|
| 2788 | I:42
|
|---|
| 2789 | """
|
|---|
| 2790 | return self._get("RUN_NUMBER")
|
|---|
| 2791 |
|
|---|
| 2792 | def service_list(self):
|
|---|
| 2793 | """
|
|---|
| 2794 | Dim Service
|
|---|
| 2795 | Native Dim service: List of services, commands and formats
|
|---|
| 2796 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 2797 | C
|
|---|
| 2798 | """
|
|---|
| 2799 | return self._get("SERVICE_LIST")
|
|---|
| 2800 |
|
|---|
| 2801 | def toggle(self, *args):
|
|---|
| 2802 | """
|
|---|
| 2803 | Dim Command
|
|---|
| 2804 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 2805 | S:1
|
|---|
| 2806 | """
|
|---|
| 2807 | self._cmd("TOGGLE", *args)
|
|---|
| 2808 |
|
|---|
| 2809 | def reset_secondary_drs_baseline(self, *args):
|
|---|
| 2810 | """
|
|---|
| 2811 | Dim Command
|
|---|
| 2812 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 2813 |
|
|---|
| 2814 | """
|
|---|
| 2815 | self._cmd("RESET_SECONDARY_DRS_BASELINE", *args)
|
|---|
| 2816 |
|
|---|
| 2817 | def message(self):
|
|---|
| 2818 | """
|
|---|
| 2819 | Dim Service
|
|---|
| 2820 | A general logging service providing a quality of service (severity)
|
|---|
| 2821 | Message[string]:The message
|
|---|
| 2822 | C
|
|---|
| 2823 | """
|
|---|
| 2824 | return self._get("MESSAGE")
|
|---|
| 2825 |
|
|---|
| 2826 | def close_open_files(self, *args):
|
|---|
| 2827 | """
|
|---|
| 2828 | Dim Command
|
|---|
| 2829 | Close all run files opened by the EventBuilder.
|
|---|
| 2830 |
|
|---|
| 2831 | """
|
|---|
| 2832 | self._cmd("CLOSE_OPEN_FILES", *args)
|
|---|
| 2833 |
|
|---|
| 2834 | def stats(self):
|
|---|
| 2835 | """
|
|---|
| 2836 | Dim Service
|
|---|
| 2837 | Statistics about size written
|
|---|
| 2838 | X:4
|
|---|
| 2839 | """
|
|---|
| 2840 | return self._get("STATS")
|
|---|
| 2841 |
|
|---|
| 2842 | def soft_reset(self, *args):
|
|---|
| 2843 | """
|
|---|
| 2844 | Dim Command
|
|---|
| 2845 | Wait for buffers to drain, close all files and reinitialize event builder thread.
|
|---|
| 2846 |
|
|---|
| 2847 | """
|
|---|
| 2848 | self._cmd("SOFT_RESET", *args)
|
|---|
| 2849 |
|
|---|
| 2850 | def hard_reset(self, *args):
|
|---|
| 2851 | """
|
|---|
| 2852 | Dim Command
|
|---|
| 2853 | Free all buffers, close all files and reinitialize event builder thread.
|
|---|
| 2854 |
|
|---|
| 2855 | """
|
|---|
| 2856 | self._cmd("HARD_RESET", *args)
|
|---|
| 2857 |
|
|---|
| 2858 | def connections(self):
|
|---|
| 2859 | """
|
|---|
| 2860 | Dim Service
|
|---|
| 2861 | Connection status of FAD boards
|
|---|
| 2862 | status[bitpattern]:lower bits stat1, upper bits stat2, for every board. 40=thread
|
|---|
| 2863 | char[unknown]:to be completed
|
|---|
| 2864 | C:40;C:1
|
|---|
| 2865 | """
|
|---|
| 2866 | return self._get("CONNECTIONS")
|
|---|
| 2867 |
|
|---|
| 2868 | def reset_configure(self, *args):
|
|---|
| 2869 | """
|
|---|
| 2870 | Dim Command
|
|---|
| 2871 | If configuration failed and the fadctrl is waiting for something, use this to reset the state.
|
|---|
| 2872 |
|
|---|
| 2873 | """
|
|---|
| 2874 | self._cmd("RESET_CONFIGURE", *args)
|
|---|
| 2875 |
|
|---|
| 2876 | class MAGIC_WEATHER ( FactDimServer):
|
|---|
| 2877 | def version_number(self):
|
|---|
| 2878 | """
|
|---|
| 2879 | Dim Service
|
|---|
| 2880 | Native Dim service: Version number of Dim in use
|
|---|
| 2881 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 2882 | L
|
|---|
| 2883 | """
|
|---|
| 2884 | return self._get("VERSION_NUMBER")
|
|---|
| 2885 |
|
|---|
| 2886 | def service_list(self):
|
|---|
| 2887 | """
|
|---|
| 2888 | Dim Service
|
|---|
| 2889 | Native Dim service: List of services, commands and formats
|
|---|
| 2890 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 2891 | C
|
|---|
| 2892 | """
|
|---|
| 2893 | return self._get("SERVICE_LIST")
|
|---|
| 2894 |
|
|---|
| 2895 | def client_list(self):
|
|---|
| 2896 | """
|
|---|
| 2897 | Dim Service
|
|---|
| 2898 | Native Dim service: A list of all connected clients
|
|---|
| 2899 | C
|
|---|
| 2900 | """
|
|---|
| 2901 | return self._get("CLIENT_LIST")
|
|---|
| 2902 |
|
|---|
| 2903 | def state(self):
|
|---|
| 2904 | """
|
|---|
| 2905 | Dim Service
|
|---|
| 2906 | Provides the state of the state machine as quality of service.
|
|---|
| 2907 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 2908 | C
|
|---|
| 2909 | """
|
|---|
| 2910 | return self._get("STATE")
|
|---|
| 2911 |
|
|---|
| 2912 | def data(self):
|
|---|
| 2913 | """
|
|---|
| 2914 | Dim Service
|
|---|
| 2915 | stat:Status
|
|---|
| 2916 | T[deg C]:Temperature
|
|---|
| 2917 | T_dew[deg C]:Dew point
|
|---|
| 2918 | H[%]:Humidity
|
|---|
| 2919 | P[hPa]:Air pressure
|
|---|
| 2920 | v[km/h]:Wind speed
|
|---|
| 2921 | v_max[km/h]:Wind gusts
|
|---|
| 2922 | d[deg]:Wind direction (N-E)
|
|---|
| 2923 | S:1;F:1;F:1;F:1;F:1;F:1;F:1;F:1
|
|---|
| 2924 | """
|
|---|
| 2925 | return self._get("DATA")
|
|---|
| 2926 |
|
|---|
| 2927 | def message(self):
|
|---|
| 2928 | """
|
|---|
| 2929 | Dim Service
|
|---|
| 2930 | A general logging service providing a quality of service (severity)
|
|---|
| 2931 | Message[string]:The message
|
|---|
| 2932 | C
|
|---|
| 2933 | """
|
|---|
| 2934 | return self._get("MESSAGE")
|
|---|
| 2935 |
|
|---|
| 2936 | def state_list(self):
|
|---|
| 2937 | """
|
|---|
| 2938 | Dim Service
|
|---|
| 2939 | Provides a list with descriptions for each service.
|
|---|
| 2940 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 2941 | C
|
|---|
| 2942 | """
|
|---|
| 2943 | return self._get("STATE_LIST")
|
|---|
| 2944 |
|
|---|
| 2945 | def set_verbose(self, *args):
|
|---|
| 2946 | """
|
|---|
| 2947 | Dim Command
|
|---|
| 2948 | set verbosity state
|
|---|
| 2949 | verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data
|
|---|
| 2950 | B
|
|---|
| 2951 | """
|
|---|
| 2952 | self._cmd("SET_VERBOSE", *args)
|
|---|
| 2953 |
|
|---|
| 2954 | def service_desc(self):
|
|---|
| 2955 | """
|
|---|
| 2956 | Dim Service
|
|---|
| 2957 | Descriptions of services or commands and there arguments
|
|---|
| 2958 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 2959 | C
|
|---|
| 2960 | """
|
|---|
| 2961 | return self._get("SERVICE_DESC")
|
|---|
| 2962 |
|
|---|
| 2963 | def exit(self, *args):
|
|---|
| 2964 | """
|
|---|
| 2965 | Dim Command
|
|---|
| 2966 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 2967 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 2968 | L:1
|
|---|
| 2969 | """
|
|---|
| 2970 | self._cmd("EXIT", *args)
|
|---|
| 2971 |
|
|---|
| 2972 | class CHAT ( FactDimServer):
|
|---|
| 2973 | def exit(self, *args):
|
|---|
| 2974 | """
|
|---|
| 2975 | Dim Command
|
|---|
| 2976 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 2977 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 2978 | L:1
|
|---|
| 2979 | """
|
|---|
| 2980 | self._cmd("EXIT", *args)
|
|---|
| 2981 |
|
|---|
| 2982 | def client_list(self):
|
|---|
| 2983 | """
|
|---|
| 2984 | Dim Service
|
|---|
| 2985 | Native Dim service: A list of all connected clients
|
|---|
| 2986 | C
|
|---|
| 2987 | """
|
|---|
| 2988 | return self._get("CLIENT_LIST")
|
|---|
| 2989 |
|
|---|
| 2990 | def state_list(self):
|
|---|
| 2991 | """
|
|---|
| 2992 | Dim Service
|
|---|
| 2993 | Provides a list with descriptions for each service.
|
|---|
| 2994 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 2995 | C
|
|---|
| 2996 | """
|
|---|
| 2997 | return self._get("STATE_LIST")
|
|---|
| 2998 |
|
|---|
| 2999 | def version_number(self):
|
|---|
| 3000 | """
|
|---|
| 3001 | Dim Service
|
|---|
| 3002 | Native Dim service: Version number of Dim in use
|
|---|
| 3003 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 3004 | L
|
|---|
| 3005 | """
|
|---|
| 3006 | return self._get("VERSION_NUMBER")
|
|---|
| 3007 |
|
|---|
| 3008 | def service_desc(self):
|
|---|
| 3009 | """
|
|---|
| 3010 | Dim Service
|
|---|
| 3011 | Descriptions of services or commands and there arguments
|
|---|
| 3012 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 3013 | C
|
|---|
| 3014 | """
|
|---|
| 3015 | return self._get("SERVICE_DESC")
|
|---|
| 3016 |
|
|---|
| 3017 | def msg(self, *args):
|
|---|
| 3018 | """
|
|---|
| 3019 | Dim Command
|
|---|
| 3020 | msg[string]:message to be distributed
|
|---|
| 3021 | C
|
|---|
| 3022 | """
|
|---|
| 3023 | self._cmd("MSG", *args)
|
|---|
| 3024 |
|
|---|
| 3025 | def state(self):
|
|---|
| 3026 | """
|
|---|
| 3027 | Dim Service
|
|---|
| 3028 | Provides the state of the state machine as quality of service.
|
|---|
| 3029 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 3030 | C
|
|---|
| 3031 | """
|
|---|
| 3032 | return self._get("STATE")
|
|---|
| 3033 |
|
|---|
| 3034 | def service_list(self):
|
|---|
| 3035 | """
|
|---|
| 3036 | Dim Service
|
|---|
| 3037 | Native Dim service: List of services, commands and formats
|
|---|
| 3038 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 3039 | C
|
|---|
| 3040 | """
|
|---|
| 3041 | return self._get("SERVICE_LIST")
|
|---|
| 3042 |
|
|---|
| 3043 | def message(self):
|
|---|
| 3044 | """
|
|---|
| 3045 | Dim Service
|
|---|
| 3046 | A general logging service providing a quality of service (severity)
|
|---|
| 3047 | Message[string]:The message
|
|---|
| 3048 | C
|
|---|
| 3049 | """
|
|---|
| 3050 | return self._get("MESSAGE")
|
|---|
| 3051 |
|
|---|
| 3052 | class DRIVE_CONTROL ( FactDimServer):
|
|---|
| 3053 | def track_on(self, *args):
|
|---|
| 3054 | """
|
|---|
| 3055 | Dim Command
|
|---|
| 3056 | Move the telescope to the given position and start tracking
|
|---|
| 3057 | Name[string]:Source name
|
|---|
| 3058 | C
|
|---|
| 3059 | """
|
|---|
| 3060 | self._cmd("TRACK_ON", *args)
|
|---|
| 3061 |
|
|---|
| 3062 | def status(self):
|
|---|
| 3063 | """
|
|---|
| 3064 | Dim Service
|
|---|
| 3065 | DESC in SERVICE_DESC is empty ?!
|
|---|
| 3066 | C:2;C:1
|
|---|
| 3067 | """
|
|---|
| 3068 | return self._get("STATUS")
|
|---|
| 3069 |
|
|---|
| 3070 | def state_list(self):
|
|---|
| 3071 | """
|
|---|
| 3072 | Dim Service
|
|---|
| 3073 | Provides a list with descriptions for each service.
|
|---|
| 3074 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 3075 | C
|
|---|
| 3076 | """
|
|---|
| 3077 | return self._get("STATE_LIST")
|
|---|
| 3078 |
|
|---|
| 3079 | def set_led_brightness(self, *args):
|
|---|
| 3080 | """
|
|---|
| 3081 | Dim Command
|
|---|
| 3082 | Set the LED brightness of the top and bottom leds
|
|---|
| 3083 | top[au]:Allowed range 0-32767 for top LEDs
|
|---|
| 3084 | bot[au]:Allowed range 0-32767 for bottom LEDs
|
|---|
| 3085 | I:2
|
|---|
| 3086 | """
|
|---|
| 3087 | self._cmd("SET_LED_BRIGHTNESS", *args)
|
|---|
| 3088 |
|
|---|
| 3089 | def track_wobble(self, *args):
|
|---|
| 3090 | """
|
|---|
| 3091 | Dim Command
|
|---|
| 3092 | Move the telescope to the given wobble position around the given source and start tracking
|
|---|
| 3093 | id:Wobble angle id (1 or 2)
|
|---|
| 3094 | Name[string]:Source name
|
|---|
| 3095 | S:1;C
|
|---|
| 3096 | """
|
|---|
| 3097 | self._cmd("TRACK_WOBBLE", *args)
|
|---|
| 3098 |
|
|---|
| 3099 | def wobble(self, *args):
|
|---|
| 3100 | """
|
|---|
| 3101 | Dim Command
|
|---|
| 3102 | Move the telescope to the given wobble position around the given sky coordinates and start tracking them
|
|---|
| 3103 | Ra[h]:Right ascension
|
|---|
| 3104 | Dec[deg]:Declination
|
|---|
| 3105 | Offset[deg]:Wobble offset
|
|---|
| 3106 | Angle[deg]:Wobble angle
|
|---|
| 3107 | D:4
|
|---|
| 3108 | """
|
|---|
| 3109 | self._cmd("WOBBLE", *args)
|
|---|
| 3110 |
|
|---|
| 3111 | def source_position(self):
|
|---|
| 3112 | """
|
|---|
| 3113 | Dim Service
|
|---|
| 3114 | Ra_src[h]:Source right ascension
|
|---|
| 3115 | Dec_src[deg]:Source declination
|
|---|
| 3116 | Ra_cmd[h]:Command right ascension
|
|---|
| 3117 | Dec_cmd[deg]:Command declination
|
|---|
| 3118 | Offset[deg]:Wobble offset
|
|---|
| 3119 | Angle[deg]:Wobble angle
|
|---|
| 3120 | Name[string]:Source name if available
|
|---|
| 3121 | D:1;D:1;D:1;D:1;D:1;D:1;C:31
|
|---|
| 3122 | """
|
|---|
| 3123 | return self._get("SOURCE_POSITION")
|
|---|
| 3124 |
|
|---|
| 3125 | def move_to(self, *args):
|
|---|
| 3126 | """
|
|---|
| 3127 | Dim Command
|
|---|
| 3128 | Move the telescope to the given local coordinates
|
|---|
| 3129 | Zd[deg]:Zenith distance
|
|---|
| 3130 | Az[deg]:Azimuth
|
|---|
| 3131 | D:2
|
|---|
| 3132 | """
|
|---|
| 3133 | self._cmd("MOVE_TO", *args)
|
|---|
| 3134 |
|
|---|
| 3135 | def stop(self, *args):
|
|---|
| 3136 | """
|
|---|
| 3137 | Dim Command
|
|---|
| 3138 | Stop any kind of movement.
|
|---|
| 3139 |
|
|---|
| 3140 | """
|
|---|
| 3141 | self._cmd("STOP", *args)
|
|---|
| 3142 |
|
|---|
| 3143 | def leds_off(self, *args):
|
|---|
| 3144 | """
|
|---|
| 3145 | Dim Command
|
|---|
| 3146 | Switch off TPoint LEDs
|
|---|
| 3147 |
|
|---|
| 3148 | """
|
|---|
| 3149 | self._cmd("LEDS_OFF", *args)
|
|---|
| 3150 |
|
|---|
| 3151 | def jupiter(self, *args):
|
|---|
| 3152 | """
|
|---|
| 3153 | Dim Command
|
|---|
| 3154 | Start tracking Jupiter
|
|---|
| 3155 |
|
|---|
| 3156 | """
|
|---|
| 3157 | self._cmd("JUPITER", *args)
|
|---|
| 3158 |
|
|---|
| 3159 | def park(self, *args):
|
|---|
| 3160 | """
|
|---|
| 3161 | Dim Command
|
|---|
| 3162 | Park the telescope
|
|---|
| 3163 |
|
|---|
| 3164 | """
|
|---|
| 3165 | self._cmd("PARK", *args)
|
|---|
| 3166 |
|
|---|
| 3167 | def service_desc(self):
|
|---|
| 3168 | """
|
|---|
| 3169 | Dim Service
|
|---|
| 3170 | Descriptions of services or commands and there arguments
|
|---|
| 3171 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 3172 | C
|
|---|
| 3173 | """
|
|---|
| 3174 | return self._get("SERVICE_DESC")
|
|---|
| 3175 |
|
|---|
| 3176 | def service_list(self):
|
|---|
| 3177 | """
|
|---|
| 3178 | Dim Service
|
|---|
| 3179 | Native Dim service: List of services, commands and formats
|
|---|
| 3180 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 3181 | C
|
|---|
| 3182 | """
|
|---|
| 3183 | return self._get("SERVICE_LIST")
|
|---|
| 3184 |
|
|---|
| 3185 | def moon(self, *args):
|
|---|
| 3186 | """
|
|---|
| 3187 | Dim Command
|
|---|
| 3188 | Start tracking the moon
|
|---|
| 3189 |
|
|---|
| 3190 | """
|
|---|
| 3191 | self._cmd("MOON", *args)
|
|---|
| 3192 |
|
|---|
| 3193 | def reload_sources(self, *args):
|
|---|
| 3194 | """
|
|---|
| 3195 | Dim Command
|
|---|
| 3196 | Reload sources from database after database has changed..
|
|---|
| 3197 |
|
|---|
| 3198 | """
|
|---|
| 3199 | self._cmd("RELOAD_SOURCES", *args)
|
|---|
| 3200 |
|
|---|
| 3201 | def exit(self, *args):
|
|---|
| 3202 | """
|
|---|
| 3203 | Dim Command
|
|---|
| 3204 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 3205 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 3206 | L:1
|
|---|
| 3207 | """
|
|---|
| 3208 | self._cmd("EXIT", *args)
|
|---|
| 3209 |
|
|---|
| 3210 | def print_cmd(self, *args):
|
|---|
| 3211 | """
|
|---|
| 3212 | Dim Command
|
|---|
| 3213 | Print source list.
|
|---|
| 3214 |
|
|---|
| 3215 | """
|
|---|
| 3216 | self._cmd("PRINT_CMD", *args)
|
|---|
| 3217 |
|
|---|
| 3218 | def set_verbose(self, *args):
|
|---|
| 3219 | """
|
|---|
| 3220 | Dim Command
|
|---|
| 3221 | Set verbosity state
|
|---|
| 3222 | verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data
|
|---|
| 3223 | B
|
|---|
| 3224 | """
|
|---|
| 3225 | self._cmd("SET_VERBOSE", *args)
|
|---|
| 3226 |
|
|---|
| 3227 | def message(self):
|
|---|
| 3228 | """
|
|---|
| 3229 | Dim Service
|
|---|
| 3230 | A general logging service providing a quality of service (severity)
|
|---|
| 3231 | Message[string]:The message
|
|---|
| 3232 | C
|
|---|
| 3233 | """
|
|---|
| 3234 | return self._get("MESSAGE")
|
|---|
| 3235 |
|
|---|
| 3236 | def resume(self, *args):
|
|---|
| 3237 | """
|
|---|
| 3238 | Dim Command
|
|---|
| 3239 | If drive is in Error state, this can b used to resume the last tracking command, if the last command sent to cosy was a tracking command.
|
|---|
| 3240 |
|
|---|
| 3241 | """
|
|---|
| 3242 | self._cmd("RESUME", *args)
|
|---|
| 3243 |
|
|---|
| 3244 | def tpoint(self):
|
|---|
| 3245 | """
|
|---|
| 3246 | Dim Service
|
|---|
| 3247 | Take a TPoint (given values will be written to the TPoint files)
|
|---|
| 3248 | mag[float]:Magnitude of the star
|
|---|
| 3249 | name[string]:Name of the star
|
|---|
| 3250 | D:1;D:1;D:1;D:1;D:1;D:1;D:1;D:1;S:1;D:1;D:1;D:1;D:1;D:1;D:1;D:1;C
|
|---|
| 3251 | """
|
|---|
| 3252 | return self._get("TPOINT")
|
|---|
| 3253 |
|
|---|
| 3254 | def set_autoresume(self, *args):
|
|---|
| 3255 | """
|
|---|
| 3256 | Dim Command
|
|---|
| 3257 | Enable/disable auto resume
|
|---|
| 3258 | resume[bool]:if enabled, drive is tracking and goes to error state, the last tracking command is repeated automatically.
|
|---|
| 3259 | B
|
|---|
| 3260 | """
|
|---|
| 3261 | self._cmd("SET_AUTORESUME", *args)
|
|---|
| 3262 |
|
|---|
| 3263 | def reconnect(self, *args):
|
|---|
| 3264 | """
|
|---|
| 3265 | Dim Command
|
|---|
| 3266 | (Re)connect ethernet connection to FTM, a new address can be given
|
|---|
| 3267 | [host][string]:new ethernet address in the form <host:port>
|
|---|
| 3268 | O
|
|---|
| 3269 | """
|
|---|
| 3270 | self._cmd("RECONNECT", *args)
|
|---|
| 3271 |
|
|---|
| 3272 | def tracking_position(self):
|
|---|
| 3273 | """
|
|---|
| 3274 | Dim Service
|
|---|
| 3275 | Ra[h]:Command right ascension
|
|---|
| 3276 | Dec[deg]:Command declination
|
|---|
| 3277 | Ha[h]:Corresponding hour angle
|
|---|
| 3278 | Zd[deg]:Nominal zenith distance
|
|---|
| 3279 | Az[deg]:Nominal azimuth angle
|
|---|
| 3280 | dZd[deg]:Control deviation Zd
|
|---|
| 3281 | dAz[deg]:Control deviation Az
|
|---|
| 3282 | dev[arcsec]:Absolute control deviation
|
|---|
| 3283 | D:1;D:1;D:1;D:1;D:1;D:1;D:1;D:1
|
|---|
| 3284 | """
|
|---|
| 3285 | return self._get("TRACKING_POSITION")
|
|---|
| 3286 |
|
|---|
| 3287 | def venus(self, *args):
|
|---|
| 3288 | """
|
|---|
| 3289 | Dim Command
|
|---|
| 3290 | Start tracking Venus
|
|---|
| 3291 |
|
|---|
| 3292 | """
|
|---|
| 3293 | self._cmd("VENUS", *args)
|
|---|
| 3294 |
|
|---|
| 3295 | def take_tpoint(self, *args):
|
|---|
| 3296 | """
|
|---|
| 3297 | Dim Command
|
|---|
| 3298 | Take a TPoint
|
|---|
| 3299 |
|
|---|
| 3300 | """
|
|---|
| 3301 | self._cmd("TAKE_TPOINT", *args)
|
|---|
| 3302 |
|
|---|
| 3303 | def disconnect(self, *args):
|
|---|
| 3304 | """
|
|---|
| 3305 | Dim Command
|
|---|
| 3306 | disconnect from ethernet
|
|---|
| 3307 |
|
|---|
| 3308 | """
|
|---|
| 3309 | self._cmd("DISCONNECT", *args)
|
|---|
| 3310 |
|
|---|
| 3311 | def saturn(self, *args):
|
|---|
| 3312 | """
|
|---|
| 3313 | Dim Command
|
|---|
| 3314 | Start tracking Saturn
|
|---|
| 3315 |
|
|---|
| 3316 | """
|
|---|
| 3317 | self._cmd("SATURN", *args)
|
|---|
| 3318 |
|
|---|
| 3319 | def unlock(self, *args):
|
|---|
| 3320 | """
|
|---|
| 3321 | Dim Command
|
|---|
| 3322 | Unlock locked state.
|
|---|
| 3323 |
|
|---|
| 3324 | """
|
|---|
| 3325 | self._cmd("UNLOCK", *args)
|
|---|
| 3326 |
|
|---|
| 3327 | def state(self):
|
|---|
| 3328 | """
|
|---|
| 3329 | Dim Service
|
|---|
| 3330 | Provides the state of the state machine as quality of service.
|
|---|
| 3331 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 3332 | C
|
|---|
| 3333 | """
|
|---|
| 3334 | return self._get("STATE")
|
|---|
| 3335 |
|
|---|
| 3336 | def pointing_position(self):
|
|---|
| 3337 | """
|
|---|
| 3338 | Dim Service
|
|---|
| 3339 | Zd[deg]:Zenith distance (encoder readout)
|
|---|
| 3340 | Az[deg]:Azimuth angle (encoder readout)
|
|---|
| 3341 | D:1;D:1
|
|---|
| 3342 | """
|
|---|
| 3343 | return self._get("POINTING_POSITION")
|
|---|
| 3344 |
|
|---|
| 3345 | def track(self, *args):
|
|---|
| 3346 | """
|
|---|
| 3347 | Dim Command
|
|---|
| 3348 | Move the telescope to the given sky coordinates and start tracking them
|
|---|
| 3349 | Ra[h]:Right ascension
|
|---|
| 3350 | Dec[deg]:Declination
|
|---|
| 3351 | D:2
|
|---|
| 3352 | """
|
|---|
| 3353 | self._cmd("TRACK", *args)
|
|---|
| 3354 |
|
|---|
| 3355 | def client_list(self):
|
|---|
| 3356 | """
|
|---|
| 3357 | Dim Service
|
|---|
| 3358 | Native Dim service: A list of all connected clients
|
|---|
| 3359 | C
|
|---|
| 3360 | """
|
|---|
| 3361 | return self._get("CLIENT_LIST")
|
|---|
| 3362 |
|
|---|
| 3363 | def mars(self, *args):
|
|---|
| 3364 | """
|
|---|
| 3365 | Dim Command
|
|---|
| 3366 | Start tracking Mars
|
|---|
| 3367 |
|
|---|
| 3368 | """
|
|---|
| 3369 | self._cmd("MARS", *args)
|
|---|
| 3370 |
|
|---|
| 3371 | def track_source(self, *args):
|
|---|
| 3372 | """
|
|---|
| 3373 | Dim Command
|
|---|
| 3374 | Move the telescope to the given wobble position around the given source and start tracking
|
|---|
| 3375 | Offset[deg]:Wobble offset
|
|---|
| 3376 | Angle[deg]:Wobble angle
|
|---|
| 3377 | Name[string]:Source name
|
|---|
| 3378 | D:2;C
|
|---|
| 3379 | """
|
|---|
| 3380 | self._cmd("TRACK_SOURCE", *args)
|
|---|
| 3381 |
|
|---|
| 3382 | def version_number(self):
|
|---|
| 3383 | """
|
|---|
| 3384 | Dim Service
|
|---|
| 3385 | Native Dim service: Version number of Dim in use
|
|---|
| 3386 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 3387 | L
|
|---|
| 3388 | """
|
|---|
| 3389 | return self._get("VERSION_NUMBER")
|
|---|
| 3390 |
|
|---|
| 3391 | class SMART_FACT ( FactDimServer):
|
|---|
| 3392 | def print_cmd(self, *args):
|
|---|
| 3393 | """
|
|---|
| 3394 | Dim Command
|
|---|
| 3395 | Print a list of the states of all connected servers.
|
|---|
| 3396 |
|
|---|
| 3397 | """
|
|---|
| 3398 | self._cmd("PRINT_CMD", *args)
|
|---|
| 3399 |
|
|---|
| 3400 | def service_list(self):
|
|---|
| 3401 | """
|
|---|
| 3402 | Dim Service
|
|---|
| 3403 | Native Dim service: List of services, commands and formats
|
|---|
| 3404 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 3405 | C
|
|---|
| 3406 | """
|
|---|
| 3407 | return self._get("SERVICE_LIST")
|
|---|
| 3408 |
|
|---|
| 3409 | def version_number(self):
|
|---|
| 3410 | """
|
|---|
| 3411 | Dim Service
|
|---|
| 3412 | Native Dim service: Version number of Dim in use
|
|---|
| 3413 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 3414 | L
|
|---|
| 3415 | """
|
|---|
| 3416 | return self._get("VERSION_NUMBER")
|
|---|
| 3417 |
|
|---|
| 3418 | def client_list(self):
|
|---|
| 3419 | """
|
|---|
| 3420 | Dim Service
|
|---|
| 3421 | Native Dim service: A list of all connected clients
|
|---|
| 3422 | C
|
|---|
| 3423 | """
|
|---|
| 3424 | return self._get("CLIENT_LIST")
|
|---|
| 3425 |
|
|---|
| 3426 | def service_desc(self):
|
|---|
| 3427 | """
|
|---|
| 3428 | Dim Service
|
|---|
| 3429 | Descriptions of services or commands and there arguments
|
|---|
| 3430 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 3431 | C
|
|---|
| 3432 | """
|
|---|
| 3433 | return self._get("SERVICE_DESC")
|
|---|
| 3434 |
|
|---|
| 3435 | def exit(self, *args):
|
|---|
| 3436 | """
|
|---|
| 3437 | Dim Command
|
|---|
| 3438 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 3439 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 3440 | L:1
|
|---|
| 3441 | """
|
|---|
| 3442 | self._cmd("EXIT", *args)
|
|---|
| 3443 |
|
|---|
| 3444 | def message(self):
|
|---|
| 3445 | """
|
|---|
| 3446 | Dim Service
|
|---|
| 3447 | A general logging service providing a quality of service (severity)
|
|---|
| 3448 | Message[string]:The message
|
|---|
| 3449 | C
|
|---|
| 3450 | """
|
|---|
| 3451 | return self._get("MESSAGE")
|
|---|
| 3452 |
|
|---|
| 3453 | def state(self):
|
|---|
| 3454 | """
|
|---|
| 3455 | Dim Service
|
|---|
| 3456 | Provides the state of the state machine as quality of service.
|
|---|
| 3457 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 3458 | C
|
|---|
| 3459 | """
|
|---|
| 3460 | return self._get("STATE")
|
|---|
| 3461 |
|
|---|
| 3462 | def state_list(self):
|
|---|
| 3463 | """
|
|---|
| 3464 | Dim Service
|
|---|
| 3465 | Provides a list with descriptions for each service.
|
|---|
| 3466 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 3467 | C
|
|---|
| 3468 | """
|
|---|
| 3469 | return self._get("STATE_LIST")
|
|---|
| 3470 |
|
|---|
| 3471 | class MCP ( FactDimServer):
|
|---|
| 3472 | def message(self):
|
|---|
| 3473 | """
|
|---|
| 3474 | Dim Service
|
|---|
| 3475 | A general logging service providing a quality of service (severity)
|
|---|
| 3476 | Message[string]:The message
|
|---|
| 3477 | C
|
|---|
| 3478 | """
|
|---|
| 3479 | return self._get("MESSAGE")
|
|---|
| 3480 |
|
|---|
| 3481 | def state_list(self):
|
|---|
| 3482 | """
|
|---|
| 3483 | Dim Service
|
|---|
| 3484 | Provides a list with descriptions for each service.
|
|---|
| 3485 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 3486 | C
|
|---|
| 3487 | """
|
|---|
| 3488 | return self._get("STATE_LIST")
|
|---|
| 3489 |
|
|---|
| 3490 | def version_number(self):
|
|---|
| 3491 | """
|
|---|
| 3492 | Dim Service
|
|---|
| 3493 | Native Dim service: Version number of Dim in use
|
|---|
| 3494 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 3495 | L
|
|---|
| 3496 | """
|
|---|
| 3497 | return self._get("VERSION_NUMBER")
|
|---|
| 3498 |
|
|---|
| 3499 | def print_cmd(self, *args):
|
|---|
| 3500 | """
|
|---|
| 3501 | Dim Command
|
|---|
| 3502 | Print the states and connection status of all systems connected to the MCP.
|
|---|
| 3503 |
|
|---|
| 3504 | """
|
|---|
| 3505 | self._cmd("PRINT_CMD", *args)
|
|---|
| 3506 |
|
|---|
| 3507 | def exit(self, *args):
|
|---|
| 3508 | """
|
|---|
| 3509 | Dim Command
|
|---|
| 3510 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 3511 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 3512 | L:1
|
|---|
| 3513 | """
|
|---|
| 3514 | self._cmd("EXIT", *args)
|
|---|
| 3515 |
|
|---|
| 3516 | def client_list(self):
|
|---|
| 3517 | """
|
|---|
| 3518 | Dim Service
|
|---|
| 3519 | Native Dim service: A list of all connected clients
|
|---|
| 3520 | C
|
|---|
| 3521 | """
|
|---|
| 3522 | return self._get("CLIENT_LIST")
|
|---|
| 3523 |
|
|---|
| 3524 | def stop(self, *args):
|
|---|
| 3525 | """
|
|---|
| 3526 | Dim Command
|
|---|
| 3527 | Stops the trigger (either disables the FTM trigger or the internal DRS trigger)
|
|---|
| 3528 |
|
|---|
| 3529 | """
|
|---|
| 3530 | self._cmd("STOP", *args)
|
|---|
| 3531 |
|
|---|
| 3532 | def service_list(self):
|
|---|
| 3533 | """
|
|---|
| 3534 | Dim Service
|
|---|
| 3535 | Native Dim service: List of services, commands and formats
|
|---|
| 3536 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 3537 | C
|
|---|
| 3538 | """
|
|---|
| 3539 | return self._get("SERVICE_LIST")
|
|---|
| 3540 |
|
|---|
| 3541 | def service_desc(self):
|
|---|
| 3542 | """
|
|---|
| 3543 | Dim Service
|
|---|
| 3544 | Descriptions of services or commands and there arguments
|
|---|
| 3545 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 3546 | C
|
|---|
| 3547 | """
|
|---|
| 3548 | return self._get("SERVICE_DESC")
|
|---|
| 3549 |
|
|---|
| 3550 | def start(self, *args):
|
|---|
| 3551 | """
|
|---|
| 3552 | Dim Command
|
|---|
| 3553 | Start the configuration and data taking for a run-type of a pre-defined setup
|
|---|
| 3554 | TimeMax[s]:Maximum number of seconds before the run will be closed automatically
|
|---|
| 3555 | NumMax[count]:Maximum number events before the run will be closed automatically
|
|---|
| 3556 | Name[text]:Name of the configuration to be used for taking data
|
|---|
| 3557 | X:2;C
|
|---|
| 3558 | """
|
|---|
| 3559 | self._cmd("START", *args)
|
|---|
| 3560 |
|
|---|
| 3561 | def reset(self, *args):
|
|---|
| 3562 | """
|
|---|
| 3563 | Dim Command
|
|---|
| 3564 | If a configuration blockes because a system cannot configure itself properly, this command can be called to leave the configuration procedure. The command is also propagated to FTM and FAD
|
|---|
| 3565 |
|
|---|
| 3566 | """
|
|---|
| 3567 | self._cmd("RESET", *args)
|
|---|
| 3568 |
|
|---|
| 3569 | def configuration(self):
|
|---|
| 3570 | """
|
|---|
| 3571 | Dim Service
|
|---|
| 3572 | Run configuration information
|
|---|
| 3573 | MaxTime[s]:Maximum time before the run gets stopped
|
|---|
| 3574 | MaxEvents[num]:Maximum number of events before the run gets stopped
|
|---|
| 3575 | Name[text]:Name of the chosen configuration
|
|---|
| 3576 | X:1;X:1;C
|
|---|
| 3577 | """
|
|---|
| 3578 | return self._get("CONFIGURATION")
|
|---|
| 3579 |
|
|---|
| 3580 | def state(self):
|
|---|
| 3581 | """
|
|---|
| 3582 | Dim Service
|
|---|
| 3583 | Provides the state of the state machine as quality of service.
|
|---|
| 3584 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 3585 | C
|
|---|
| 3586 | """
|
|---|
| 3587 | return self._get("STATE")
|
|---|
| 3588 |
|
|---|
| 3589 | class TIME_CHECK ( FactDimServer):
|
|---|
| 3590 | def message(self):
|
|---|
| 3591 | """
|
|---|
| 3592 | Dim Service
|
|---|
| 3593 | A general logging service providing a quality of service (severity)
|
|---|
| 3594 | Message[string]:The message
|
|---|
| 3595 | C
|
|---|
| 3596 | """
|
|---|
| 3597 | return self._get("MESSAGE")
|
|---|
| 3598 |
|
|---|
| 3599 | def exit(self, *args):
|
|---|
| 3600 | """
|
|---|
| 3601 | Dim Command
|
|---|
| 3602 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 3603 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 3604 | L:1
|
|---|
| 3605 | """
|
|---|
| 3606 | self._cmd("EXIT", *args)
|
|---|
| 3607 |
|
|---|
| 3608 | def state(self):
|
|---|
| 3609 | """
|
|---|
| 3610 | Dim Service
|
|---|
| 3611 | Provides the state of the state machine as quality of service.
|
|---|
| 3612 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 3613 | C
|
|---|
| 3614 | """
|
|---|
| 3615 | return self._get("STATE")
|
|---|
| 3616 |
|
|---|
| 3617 | def service_list(self):
|
|---|
| 3618 | """
|
|---|
| 3619 | Dim Service
|
|---|
| 3620 | Native Dim service: List of services, commands and formats
|
|---|
| 3621 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 3622 | C
|
|---|
| 3623 | """
|
|---|
| 3624 | return self._get("SERVICE_LIST")
|
|---|
| 3625 |
|
|---|
| 3626 | def version_number(self):
|
|---|
| 3627 | """
|
|---|
| 3628 | Dim Service
|
|---|
| 3629 | Native Dim service: Version number of Dim in use
|
|---|
| 3630 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 3631 | L
|
|---|
| 3632 | """
|
|---|
| 3633 | return self._get("VERSION_NUMBER")
|
|---|
| 3634 |
|
|---|
| 3635 | def state_list(self):
|
|---|
| 3636 | """
|
|---|
| 3637 | Dim Service
|
|---|
| 3638 | Provides a list with descriptions for each service.
|
|---|
| 3639 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 3640 | C
|
|---|
| 3641 | """
|
|---|
| 3642 | return self._get("STATE_LIST")
|
|---|
| 3643 |
|
|---|
| 3644 | def service_desc(self):
|
|---|
| 3645 | """
|
|---|
| 3646 | Dim Service
|
|---|
| 3647 | Descriptions of services or commands and there arguments
|
|---|
| 3648 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 3649 | C
|
|---|
| 3650 | """
|
|---|
| 3651 | return self._get("SERVICE_DESC")
|
|---|
| 3652 |
|
|---|
| 3653 | def client_list(self):
|
|---|
| 3654 | """
|
|---|
| 3655 | Dim Service
|
|---|
| 3656 | Native Dim service: A list of all connected clients
|
|---|
| 3657 | C
|
|---|
| 3658 | """
|
|---|
| 3659 | return self._get("CLIENT_LIST")
|
|---|
| 3660 |
|
|---|
| 3661 | class BIAS_CONTROL ( FactDimServer):
|
|---|
| 3662 | def dac(self):
|
|---|
| 3663 | """
|
|---|
| 3664 | Dim Service
|
|---|
| 3665 | U[dac]:Current dac setting
|
|---|
| 3666 | Uref[dac]:Reference dac setting
|
|---|
| 3667 | S:416;S:416
|
|---|
| 3668 | """
|
|---|
| 3669 | return self._get("DAC")
|
|---|
| 3670 |
|
|---|
| 3671 | def set_channel_dac(self, *args):
|
|---|
| 3672 | """
|
|---|
| 3673 | Dim Command
|
|---|
| 3674 | Set a new target value in DAC counts for a single channel. Starts ramping if necessary.
|
|---|
| 3675 | channel[short]:Channel for which to set the target voltage [0-415]
|
|---|
| 3676 | voltage[dac]:Target voltage in DAC units for the given channel
|
|---|
| 3677 | S:1;S:1
|
|---|
| 3678 | """
|
|---|
| 3679 | self._cmd("SET_CHANNEL_DAC", *args)
|
|---|
| 3680 |
|
|---|
| 3681 | def request_status(self, *args):
|
|---|
| 3682 | """
|
|---|
| 3683 | Dim Command
|
|---|
| 3684 | Asynchronously request the status (current) of all channels.
|
|---|
| 3685 |
|
|---|
| 3686 | """
|
|---|
| 3687 | self._cmd("REQUEST_STATUS", *args)
|
|---|
| 3688 |
|
|---|
| 3689 | def expert_reset(self, *args):
|
|---|
| 3690 | """
|
|---|
| 3691 | Dim Command
|
|---|
| 3692 | Send the RESET command (note that this is possibly harmfull command)
|
|---|
| 3693 |
|
|---|
| 3694 | """
|
|---|
| 3695 | self._cmd("EXPERT_RESET", *args)
|
|---|
| 3696 |
|
|---|
| 3697 | def increase_all_channels_voltage(self, *args):
|
|---|
| 3698 | """
|
|---|
| 3699 | Dim Command
|
|---|
| 3700 | Add the given voltages to the current reference voltages. Starts ramping if necessary.offset[V]:Offsets to be added to the reference voltage of all channels in volts
|
|---|
| 3701 | F:416
|
|---|
| 3702 | """
|
|---|
| 3703 | self._cmd("INCREASE_ALL_CHANNELS_VOLTAGE", *args)
|
|---|
| 3704 |
|
|---|
| 3705 | def reset_over_current_status(self, *args):
|
|---|
| 3706 | """
|
|---|
| 3707 | Dim Command
|
|---|
| 3708 | Set all channels in over current state to 0V and send a system reset to reset the over current flags.
|
|---|
| 3709 |
|
|---|
| 3710 | """
|
|---|
| 3711 | self._cmd("RESET_OVER_CURRENT_STATUS", *args)
|
|---|
| 3712 |
|
|---|
| 3713 | def print_currents(self, *args):
|
|---|
| 3714 | """
|
|---|
| 3715 | Dim Command
|
|---|
| 3716 | Print a table with all current read back with the last request operation
|
|---|
| 3717 |
|
|---|
| 3718 | """
|
|---|
| 3719 | self._cmd("PRINT_CURRENTS", *args)
|
|---|
| 3720 |
|
|---|
| 3721 | def print_info(self, *args):
|
|---|
| 3722 | """
|
|---|
| 3723 | Dim Command
|
|---|
| 3724 | Print a table with all current read back with the last request operation
|
|---|
| 3725 |
|
|---|
| 3726 | """
|
|---|
| 3727 | self._cmd("PRINT_INFO", *args)
|
|---|
| 3728 |
|
|---|
| 3729 | def reconnect(self, *args):
|
|---|
| 3730 | """
|
|---|
| 3731 | Dim Command
|
|---|
| 3732 | (Re)connect USB connection to Bias power supply, a new address can be given
|
|---|
| 3733 | tty[string]:new USB address
|
|---|
| 3734 | O
|
|---|
| 3735 | """
|
|---|
| 3736 | self._cmd("RECONNECT", *args)
|
|---|
| 3737 |
|
|---|
| 3738 | def enable_dummy_mode(self, *args):
|
|---|
| 3739 | """
|
|---|
| 3740 | Dim Command
|
|---|
| 3741 | Enable dummy mode. In this mode SetAllChannels prints informations instead of sending anything to the bias crate.
|
|---|
| 3742 | enable[bool]:disable or enable dummy mode
|
|---|
| 3743 | B:1
|
|---|
| 3744 | """
|
|---|
| 3745 | self._cmd("ENABLE_DUMMY_MODE", *args)
|
|---|
| 3746 |
|
|---|
| 3747 | def set_channel_offset_to_zero(self, *args):
|
|---|
| 3748 | """
|
|---|
| 3749 | Dim Command
|
|---|
| 3750 | Set a single channel channels to its G-APD reference voltage. Starts ramping if necessary.
|
|---|
| 3751 | channel[short]:Channel for which to set the target voltage [0-416]
|
|---|
| 3752 | S:1
|
|---|
| 3753 | """
|
|---|
| 3754 | self._cmd("SET_CHANNEL_OFFSET_TO_ZERO", *args)
|
|---|
| 3755 |
|
|---|
| 3756 | def exit(self, *args):
|
|---|
| 3757 | """
|
|---|
| 3758 | Dim Command
|
|---|
| 3759 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 3760 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 3761 | L:1
|
|---|
| 3762 | """
|
|---|
| 3763 | self._cmd("EXIT", *args)
|
|---|
| 3764 |
|
|---|
| 3765 | def set_channel_voltage(self, *args):
|
|---|
| 3766 | """
|
|---|
| 3767 | Dim Command
|
|---|
| 3768 | Set a new target voltage for a single channel. Starts ramping if necessary.
|
|---|
| 3769 | channel[short]:Channel for which to set the target voltage [0-415]
|
|---|
| 3770 | voltage[V]:Target voltage in volts for the given channel (will be converted to DAC units)
|
|---|
| 3771 | S:1;F:1
|
|---|
| 3772 | """
|
|---|
| 3773 | self._cmd("SET_CHANNEL_VOLTAGE", *args)
|
|---|
| 3774 |
|
|---|
| 3775 | def set_global_dac(self, *args):
|
|---|
| 3776 | """
|
|---|
| 3777 | Dim Command
|
|---|
| 3778 | Set a new target value for all channels in DAC counts. Starts ramping if necessary. (This command is not realized with the GLOBAL SET command.)
|
|---|
| 3779 | voltage[dac]:Global target voltage in DAC counts.
|
|---|
| 3780 | S:1
|
|---|
| 3781 | """
|
|---|
| 3782 | self._cmd("SET_GLOBAL_DAC", *args)
|
|---|
| 3783 |
|
|---|
| 3784 | def set_all_channels_voltage(self, *args):
|
|---|
| 3785 | """
|
|---|
| 3786 | Dim Command
|
|---|
| 3787 | Set all channels to the given new reference voltage. Starts ramping if necessary.voltage[V]:New reference voltage for all channels
|
|---|
| 3788 | F:416
|
|---|
| 3789 | """
|
|---|
| 3790 | self._cmd("SET_ALL_CHANNELS_VOLTAGE", *args)
|
|---|
| 3791 |
|
|---|
| 3792 | def voltage(self):
|
|---|
| 3793 | """
|
|---|
| 3794 | Dim Service
|
|---|
| 3795 | Uout[V]:Output voltage
|
|---|
| 3796 | F:416
|
|---|
| 3797 | """
|
|---|
| 3798 | return self._get("VOLTAGE")
|
|---|
| 3799 |
|
|---|
| 3800 | def stop(self, *args):
|
|---|
| 3801 | """
|
|---|
| 3802 | Dim Command
|
|---|
| 3803 | Stop an on-going ramping
|
|---|
| 3804 |
|
|---|
| 3805 | """
|
|---|
| 3806 | self._cmd("STOP", *args)
|
|---|
| 3807 |
|
|---|
| 3808 | def expert_set_channel_voltage(self, *args):
|
|---|
| 3809 | """
|
|---|
| 3810 | Dim Command
|
|---|
| 3811 | Send a single channel set command. The given voltage is converted to DAC commands.
|
|---|
| 3812 | S:1;F:1
|
|---|
| 3813 | """
|
|---|
| 3814 | self._cmd("EXPERT_SET_CHANNEL_VOLTAGE", *args)
|
|---|
| 3815 |
|
|---|
| 3816 | def set_zero_voltage(self, *args):
|
|---|
| 3817 | """
|
|---|
| 3818 | Dim Command
|
|---|
| 3819 | Set all channels to a zero reference voltage. Starts ramping if necessary.
|
|---|
| 3820 |
|
|---|
| 3821 | """
|
|---|
| 3822 | self._cmd("SET_ZERO_VOLTAGE", *args)
|
|---|
| 3823 |
|
|---|
| 3824 | def client_list(self):
|
|---|
| 3825 | """
|
|---|
| 3826 | Dim Service
|
|---|
| 3827 | Native Dim service: A list of all connected clients
|
|---|
| 3828 | C
|
|---|
| 3829 | """
|
|---|
| 3830 | return self._get("CLIENT_LIST")
|
|---|
| 3831 |
|
|---|
| 3832 | def print_voltages(self, *args):
|
|---|
| 3833 | """
|
|---|
| 3834 | Dim Command
|
|---|
| 3835 | Print a table with all voltages (current and reference voltages as currently in memory)
|
|---|
| 3836 |
|
|---|
| 3837 | """
|
|---|
| 3838 | self._cmd("PRINT_VOLTAGES", *args)
|
|---|
| 3839 |
|
|---|
| 3840 | def increase_global_voltage(self, *args):
|
|---|
| 3841 | """
|
|---|
| 3842 | Dim Command
|
|---|
| 3843 | Increases the voltage of all channels by the given offset. Starts ramping if necessary. (This command is not realized with the GLOBAL SET command.)
|
|---|
| 3844 | offset[V]:Offset to be added to all channels (will be converted to DAC counts)
|
|---|
| 3845 | F:1
|
|---|
| 3846 | """
|
|---|
| 3847 | self._cmd("INCREASE_GLOBAL_VOLTAGE", *args)
|
|---|
| 3848 |
|
|---|
| 3849 | def set_global_voltage(self, *args):
|
|---|
| 3850 | """
|
|---|
| 3851 | Dim Command
|
|---|
| 3852 | Set a new target voltage for all channels. Starts ramping if necessary. (This command is not realized with the GLOBAL SET command.)
|
|---|
| 3853 | voltage[V]:Global target voltage in volts (will be converted to DAC units)
|
|---|
| 3854 | F:1
|
|---|
| 3855 | """
|
|---|
| 3856 | self._cmd("SET_GLOBAL_VOLTAGE", *args)
|
|---|
| 3857 |
|
|---|
| 3858 | def state_list(self):
|
|---|
| 3859 | """
|
|---|
| 3860 | Dim Service
|
|---|
| 3861 | Provides a list with descriptions for each service.
|
|---|
| 3862 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 3863 | C
|
|---|
| 3864 | """
|
|---|
| 3865 | return self._get("STATE_LIST")
|
|---|
| 3866 |
|
|---|
| 3867 | def expert_set_global_dac(self, *args):
|
|---|
| 3868 | """
|
|---|
| 3869 | Dim Command
|
|---|
| 3870 | Send the global set command.
|
|---|
| 3871 | S:1
|
|---|
| 3872 | """
|
|---|
| 3873 | self._cmd("EXPERT_SET_GLOBAL_DAC", *args)
|
|---|
| 3874 |
|
|---|
| 3875 | def nominal(self):
|
|---|
| 3876 | """
|
|---|
| 3877 | Dim Service
|
|---|
| 3878 | Ubr[V]:Nominal breakdown voltage at 25deg C
|
|---|
| 3879 | Uov[V]:Nominal overvoltage
|
|---|
| 3880 | Uoff[V]:Bias crate channel offsets
|
|---|
| 3881 | F:416;F:416;F:416
|
|---|
| 3882 | """
|
|---|
| 3883 | return self._get("NOMINAL")
|
|---|
| 3884 |
|
|---|
| 3885 | def set_update_interval(self, *args):
|
|---|
| 3886 | """
|
|---|
| 3887 | Dim Command
|
|---|
| 3888 | Set the updat einterval how often the currents are requested
|
|---|
| 3889 | interval[ms]:Update interval in milliseconds
|
|---|
| 3890 | I:1
|
|---|
| 3891 | """
|
|---|
| 3892 | self._cmd("SET_UPDATE_INTERVAL", *args)
|
|---|
| 3893 |
|
|---|
| 3894 | def expert_set_channel_dac(self, *args):
|
|---|
| 3895 | """
|
|---|
| 3896 | Dim Command
|
|---|
| 3897 | Send a single channel set command.
|
|---|
| 3898 | S:1;S:1
|
|---|
| 3899 | """
|
|---|
| 3900 | self._cmd("EXPERT_SET_CHANNEL_DAC", *args)
|
|---|
| 3901 |
|
|---|
| 3902 | def increase_channel_voltage(self, *args):
|
|---|
| 3903 | """
|
|---|
| 3904 | Dim Command
|
|---|
| 3905 | Increases the voltage of all channels by the given offset. Starts ramping if necessary. (This command is not realized with the GLOBAL SET command.)
|
|---|
| 3906 | channel[short]:Channel for which to adapt the voltage [0-415]
|
|---|
| 3907 | offset[V]:Offset to be added to all channels (will be converted to DAC counts)
|
|---|
| 3908 | S:1;F:1
|
|---|
| 3909 | """
|
|---|
| 3910 | self._cmd("INCREASE_CHANNEL_VOLTAGE", *args)
|
|---|
| 3911 |
|
|---|
| 3912 | def set_all_channels_offset(self, *args):
|
|---|
| 3913 | """
|
|---|
| 3914 | Dim Command
|
|---|
| 3915 | Set all channels to their G-APD reference voltage plus the given offset. Starts ramping if necessary.
|
|---|
| 3916 | offset[V]:Offset to be added to teh G-APD reference voltage globally
|
|---|
| 3917 | F:416
|
|---|
| 3918 | """
|
|---|
| 3919 | self._cmd("SET_ALL_CHANNELS_OFFSET", *args)
|
|---|
| 3920 |
|
|---|
| 3921 | def set_global_offset_to_zero(self, *args):
|
|---|
| 3922 | """
|
|---|
| 3923 | Dim Command
|
|---|
| 3924 | Set all channels to their G-APD reference voltage. Starts ramping if necessary.
|
|---|
| 3925 |
|
|---|
| 3926 | """
|
|---|
| 3927 | self._cmd("SET_GLOBAL_OFFSET_TO_ZERO", *args)
|
|---|
| 3928 |
|
|---|
| 3929 | def set_global_offset(self, *args):
|
|---|
| 3930 | """
|
|---|
| 3931 | Dim Command
|
|---|
| 3932 | Set all channels to their G-APD breakdown voltage plus overvoltage plus the given offset. Starts ramping if necessary.
|
|---|
| 3933 | offset[V]:Offset to be added to the G-APD reference voltage globally
|
|---|
| 3934 | F:1
|
|---|
| 3935 | """
|
|---|
| 3936 | self._cmd("SET_GLOBAL_OFFSET", *args)
|
|---|
| 3937 |
|
|---|
| 3938 | def current(self):
|
|---|
| 3939 | """
|
|---|
| 3940 | Dim Service
|
|---|
| 3941 | I[dac]:Bias current (conversion: 5000uA/4096dac)
|
|---|
| 3942 | S:416
|
|---|
| 3943 | """
|
|---|
| 3944 | return self._get("CURRENT")
|
|---|
| 3945 |
|
|---|
| 3946 | def service_desc(self):
|
|---|
| 3947 | """
|
|---|
| 3948 | Dim Service
|
|---|
| 3949 | Descriptions of services or commands and there arguments
|
|---|
| 3950 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 3951 | C
|
|---|
| 3952 | """
|
|---|
| 3953 | return self._get("SERVICE_DESC")
|
|---|
| 3954 |
|
|---|
| 3955 | def message(self):
|
|---|
| 3956 | """
|
|---|
| 3957 | Dim Service
|
|---|
| 3958 | A general logging service providing a quality of service (severity)
|
|---|
| 3959 | Message[string]:The message
|
|---|
| 3960 | C
|
|---|
| 3961 | """
|
|---|
| 3962 | return self._get("MESSAGE")
|
|---|
| 3963 |
|
|---|
| 3964 | def state(self):
|
|---|
| 3965 | """
|
|---|
| 3966 | Dim Service
|
|---|
| 3967 | Provides the state of the state machine as quality of service.
|
|---|
| 3968 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 3969 | C
|
|---|
| 3970 | """
|
|---|
| 3971 | return self._get("STATE")
|
|---|
| 3972 |
|
|---|
| 3973 | def print_gapd_reference_voltages(self, *args):
|
|---|
| 3974 | """
|
|---|
| 3975 | Dim Command
|
|---|
| 3976 | Print the G-APD reference values (breakdown voltage + overvoltage) obtained from file
|
|---|
| 3977 |
|
|---|
| 3978 | """
|
|---|
| 3979 | self._cmd("PRINT_GAPD_REFERENCE_VOLTAGES", *args)
|
|---|
| 3980 |
|
|---|
| 3981 | def set_verbose(self, *args):
|
|---|
| 3982 | """
|
|---|
| 3983 | Dim Command
|
|---|
| 3984 | set verbosity state
|
|---|
| 3985 | verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data
|
|---|
| 3986 | B:1
|
|---|
| 3987 | """
|
|---|
| 3988 | self._cmd("SET_VERBOSE", *args)
|
|---|
| 3989 |
|
|---|
| 3990 | def service_list(self):
|
|---|
| 3991 | """
|
|---|
| 3992 | Dim Service
|
|---|
| 3993 | Native Dim service: List of services, commands and formats
|
|---|
| 3994 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 3995 | C
|
|---|
| 3996 | """
|
|---|
| 3997 | return self._get("SERVICE_LIST")
|
|---|
| 3998 |
|
|---|
| 3999 | def expert_mode(self, *args):
|
|---|
| 4000 | """
|
|---|
| 4001 | Dim Command
|
|---|
| 4002 | Enable usage of expert commands (note that for safty reasons the are exclusive with the standard commands)
|
|---|
| 4003 | B:1
|
|---|
| 4004 | """
|
|---|
| 4005 | self._cmd("EXPERT_MODE", *args)
|
|---|
| 4006 |
|
|---|
| 4007 | def expert_set_global_voltage(self, *args):
|
|---|
| 4008 | """
|
|---|
| 4009 | Dim Command
|
|---|
| 4010 | Send the global set command. The given voltage is converted to DAC counts.
|
|---|
| 4011 | F:1
|
|---|
| 4012 | """
|
|---|
| 4013 | self._cmd("EXPERT_SET_GLOBAL_VOLTAGE", *args)
|
|---|
| 4014 |
|
|---|
| 4015 | def set_channel_offset(self, *args):
|
|---|
| 4016 | """
|
|---|
| 4017 | Dim Command
|
|---|
| 4018 | Set single channels to its G-APD breakdown voltage plus overvoltage plus the given offset. Starts ramping if necessary.
|
|---|
| 4019 | channel[short]:Channel for which to set the target voltage [0-415]
|
|---|
| 4020 | offset[V]:Offset to be added to the G-APD reference voltage of the given channel
|
|---|
| 4021 | S:1;F:1
|
|---|
| 4022 | """
|
|---|
| 4023 | self._cmd("SET_CHANNEL_OFFSET", *args)
|
|---|
| 4024 |
|
|---|
| 4025 | def start(self, *args):
|
|---|
| 4026 | """
|
|---|
| 4027 | Dim Command
|
|---|
| 4028 | Start a ramping if no ramping is in progress and if reference values differ from current voltages
|
|---|
| 4029 |
|
|---|
| 4030 | """
|
|---|
| 4031 | self._cmd("START", *args)
|
|---|
| 4032 |
|
|---|
| 4033 | def version_number(self):
|
|---|
| 4034 | """
|
|---|
| 4035 | Dim Service
|
|---|
| 4036 | Native Dim service: Version number of Dim in use
|
|---|
| 4037 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 4038 | L
|
|---|
| 4039 | """
|
|---|
| 4040 | return self._get("VERSION_NUMBER")
|
|---|
| 4041 |
|
|---|
| 4042 | def disconnect(self, *args):
|
|---|
| 4043 | """
|
|---|
| 4044 | Dim Command
|
|---|
| 4045 | disconnect from USB
|
|---|
| 4046 |
|
|---|
| 4047 | """
|
|---|
| 4048 | self._cmd("DISCONNECT", *args)
|
|---|
| 4049 |
|
|---|
| 4050 | class DIM_CONTROL ( FactDimServer):
|
|---|
| 4051 | def service_list(self):
|
|---|
| 4052 | """
|
|---|
| 4053 | Dim Service
|
|---|
| 4054 | Native Dim service: List of services, commands and formats
|
|---|
| 4055 | ServiceList[string]:For details see the Dim manual.
|
|---|
| 4056 | C
|
|---|
| 4057 | """
|
|---|
| 4058 | return self._get("SERVICE_LIST")
|
|---|
| 4059 |
|
|---|
| 4060 | def message(self):
|
|---|
| 4061 | """
|
|---|
| 4062 | Dim Service
|
|---|
| 4063 | A general logging service providing a quality of service (severity)
|
|---|
| 4064 | Message[string]:The message
|
|---|
| 4065 | C
|
|---|
| 4066 | """
|
|---|
| 4067 | return self._get("MESSAGE")
|
|---|
| 4068 |
|
|---|
| 4069 | def start(self, *args):
|
|---|
| 4070 | """
|
|---|
| 4071 | Dim Command
|
|---|
| 4072 | Start a JavaScript
|
|---|
| 4073 | C
|
|---|
| 4074 | """
|
|---|
| 4075 | self._cmd("START", *args)
|
|---|
| 4076 |
|
|---|
| 4077 | def stop(self, *args):
|
|---|
| 4078 | """
|
|---|
| 4079 | Dim Command
|
|---|
| 4080 | Stop a runnning batch script or JavaScript
|
|---|
| 4081 | C
|
|---|
| 4082 | """
|
|---|
| 4083 | self._cmd("STOP", *args)
|
|---|
| 4084 |
|
|---|
| 4085 | def state(self):
|
|---|
| 4086 | """
|
|---|
| 4087 | Dim Service
|
|---|
| 4088 | Provides the state of the state machine as quality of service.
|
|---|
| 4089 | Text[string]:A human readable string sent by the last state change.
|
|---|
| 4090 | C
|
|---|
| 4091 | """
|
|---|
| 4092 | return self._get("STATE")
|
|---|
| 4093 |
|
|---|
| 4094 | def client_list(self):
|
|---|
| 4095 | """
|
|---|
| 4096 | Dim Service
|
|---|
| 4097 | Native Dim service: A list of all connected clients
|
|---|
| 4098 | C
|
|---|
| 4099 | """
|
|---|
| 4100 | return self._get("CLIENT_LIST")
|
|---|
| 4101 |
|
|---|
| 4102 | def exit(self, *args):
|
|---|
| 4103 | """
|
|---|
| 4104 | Dim Command
|
|---|
| 4105 | This is a native Dim command: Exit programremotely. FACT++ programs use the given number as return code.
|
|---|
| 4106 | Rc[int]:Return code, under normal circumstances this should be 0 or 1 (42 will call exit() directly, 0x42 will call abort() directly.
|
|---|
| 4107 | L:1
|
|---|
| 4108 | """
|
|---|
| 4109 | self._cmd("EXIT", *args)
|
|---|
| 4110 |
|
|---|
| 4111 | def execute(self, *args):
|
|---|
| 4112 | """
|
|---|
| 4113 | Dim Command
|
|---|
| 4114 | Execute a batch script
|
|---|
| 4115 | C
|
|---|
| 4116 | """
|
|---|
| 4117 | self._cmd("EXECUTE", *args)
|
|---|
| 4118 |
|
|---|
| 4119 | def service_desc(self):
|
|---|
| 4120 | """
|
|---|
| 4121 | Dim Service
|
|---|
| 4122 | Descriptions of services or commands and there arguments
|
|---|
| 4123 | Description[string]:For a detailed explanation of the descriptive string see the class reference of DimDescriptionService.
|
|---|
| 4124 | C
|
|---|
| 4125 | """
|
|---|
| 4126 | return self._get("SERVICE_DESC")
|
|---|
| 4127 |
|
|---|
| 4128 | def state_list(self):
|
|---|
| 4129 | """
|
|---|
| 4130 | Dim Service
|
|---|
| 4131 | Provides a list with descriptions for each service.
|
|---|
| 4132 | StateList[string]:A \n separated list of the form id:name=description
|
|---|
| 4133 | C
|
|---|
| 4134 | """
|
|---|
| 4135 | return self._get("STATE_LIST")
|
|---|
| 4136 |
|
|---|
| 4137 | def version_number(self):
|
|---|
| 4138 | """
|
|---|
| 4139 | Dim Service
|
|---|
| 4140 | Native Dim service: Version number of Dim in use
|
|---|
| 4141 | DimVer[int]:Version*100+Release (e.g. V19r17 = 1917)
|
|---|
| 4142 | L
|
|---|
| 4143 | """
|
|---|
| 4144 | return self._get("VERSION_NUMBER")
|
|---|
| 4145 |
|
|---|