1 ## @file pixelman.db EPICS db file
3 # % macro, P, device prefix
4 # % macro, Q, device sub-prefix
6 ## Read pixelman device id.
9 field(DESC,
"Pixelman device Id")
10 field(DTYP,
"asynInt32")
11 field(INP,
"@asyn(MCP,0,0)DEVID")
12 field(SCAN,
"I/O Intr")
15 ## Read acquisition type
18 field(DESC,
"Acq type")
19 field(DTYP,
"asynInt32")
20 field(INP,
"@asyn(MCP,0,0)ACQTYPE")
21 field(SCAN,
"I/O Intr")
22 field(ZRST,
"Frame - memory")
24 field(ONST,
"Frame - file")
26 field(TWST,
"Integral - memory")
28 field(THST,
"Integral - file")
32 ## Set acquisition type. values need to agree with #pixelmanDriver::PixelmanAcqType in pixelmanDriver.h
35 field(DESC,
"Acq type")
36 field(DTYP,
"asynInt32")
37 field(OUT,
"@asyn(MCP,0,0)ACQTYPEREQ")
38 field(ZRST,
"Unknown")
42 field(TWST,
"Integral")
46 info(autosaveFields,
"VAL")
51 record(mbbo,
"$(P)$(Q)ACQ:PIXEL:MODE:SP")
53 field(DESC,
"Pixel mode")
54 field(DTYP,
"asynInt32")
55 field(OUT,
"@asyn(MCP,0,0)SETPIXELMODE")
56 field(ZRST,
"Medipix")
60 field(TWST,
"Timepix 1-hit")
62 field(THST,
"Timepix")
65 # info(autosaveFields, "VAL")
69 ## Read number of frames etc that were requested.
72 field(DESC,
"Acq total counts")
73 field(DTYP,
"asynInt32")
74 field(INP,
"@asyn(MCP,0,0)ACQTOTCNT")
75 field(SCAN,
"I/O Intr")
78 ## Read zero based acquisition number.
81 field(DESC,
"Acq num")
82 field(DTYP,
"asynInt32")
83 field(INP,
"@asyn(MCP,0,0)ACQNUM")
84 field(SCAN,
"I/O Intr")
87 ## Read number of frames filled.
90 field(DESC,
"Acq frame filled")
91 field(DTYP,
"asynInt32")
92 field(INP,
"@asyn(MCP,0,0)FRAMEFILLED")
93 field(SCAN,
"I/O Intr")
96 ## Set number of frames etc for next acquisition.
97 record(longout,
"$(P)$(Q)ACQ:NUM:SP")
99 field(DESC,
"Request number of acquisitions")
100 field(DTYP,
"asynInt32")
101 field(OUT,
"@asyn(MCP,0,0)NUMACQ")
104 info(autosaveFields,
"VAL")
108 ## set Hardware timer.
111 field(DESC,
"HW Timer")
112 field(DTYP,
"asynInt32")
113 field(OUT,
"@asyn(MCP,0,0)HWTIMER")
114 field(ZRST,
"ENABLE")
116 field(ONST,
"DISABLE")
122 info(autosaveFields,
"VAL")
126 ## read Hardware timer.
129 field(DESC,
"HW Timer")
130 field(DTYP,
"asynInt32")
131 field(INP,
"@asyn(MCP,0,0)HWTIMER")
132 field(SCAN,
"I/O Intr")
133 field(ZRST,
"ENABLE")
135 field(ONST,
"DISABLE")
142 ## Set mode for next acquisition.
145 field(DESC,
"Acquisition mode")
146 field(DTYP,
"asynInt32")
147 field(OUT,
"@asyn(MCP,0,0)ACQMODE")
148 field(ZRST,
"ACQSTART - TIMERSTOP")
150 field(ONST,
"ACQSTART - HWTRIGSTOP")
152 field(TWST,
"ACQSTART - SWTRIGSTOP")
154 field(THST,
"HWTRIGSTART - TIMERSTOP")
156 field(FRST,
"HWTRIGSTART - HWTRIGSTOP")
158 field(FVST,
"SWTRIGSTART - TIMERSTOP")
160 field(SXST,
"SWTRIGSTART - SWTRIGSTOP")
164 info(autosaveFields,
"VAL")
168 ## Read acquisition mode.
171 field(DESC,
"Acquisition mode")
172 field(DTYP,
"asynInt32")
173 field(INP,
"@asyn(MCP,0,0)ACQMODE")
174 field(SCAN,
"I/O Intr")
175 field(ZRST,
"ACQSTART - TIMERSTOP")
177 field(ONST,
"ACQSTART - HWTRIGSTOP")
179 field(TWST,
"ACQSTART - SWTRIGSTOP")
181 field(THST,
"HWTRIGSTART - TIMERSTOP")
183 field(FRST,
"HWTRIGSTART - HWTRIGSTOP")
185 field(FVST,
"SWTRIGSTART - TIMERSTOP")
187 field(SXST,
"SWTRIGSTART - SWTRIGSTOP")
195 field(DESC,
"Acquisition burst mode")
196 field(DTYP,
"asynInt32")
197 field(OUT,
"@asyn(MCP,0,0)BURSTMODE")
200 field(ZNAM,
"DISABLED")
201 field(ONAM,
"ENABLED")
202 info(autosaveFields,
"VAL")
209 field(DESC,
"Acquisition burst mode")
210 field(DTYP,
"asynInt32")
211 field(INP,
"@asyn(MCP,0,0)BURSTMODE")
212 field(SCAN,
"I/O Intr")
213 field(ZNAM,
"DISABLED")
214 field(ONAM,
"ENABLED")
218 ## Set external shutter.
219 record(bo,
"$(P)$(Q)ACQ:MODE:EXTSHUT:SP")
221 field(DESC,
"Acquisition ext shutter mode")
222 field(DTYP,
"asynInt32")
223 field(OUT,
"@asyn(MCP,0,0)EXTSHUTMODE")
226 field(ZNAM,
"DISABLED")
227 field(ONAM,
"ENABLED")
228 info(autosaveFields,
"VAL")
232 ## Read external shutter.
235 field(DESC,
"Acquisition ext shutter mode")
236 field(DTYP,
"asynInt32")
237 field(INP,
"@asyn(MCP,0,0)EXTSHUTMODE")
238 field(SCAN,
"I/O Intr")
239 field(ZNAM,
"DISABLED")
240 field(ONAM,
"ENABLED")
244 ## Set acquisition time.
247 field(DESC,
"Requested acquisition time")
248 field(DTYP,
"asynFloat64")
249 field(OUT,
"@asyn(MCP,0,0)ACQTIME")
253 info(autosaveFields,
"VAL")
260 field(DESC,
"File name")
261 field(DTYP,
"asynOctetWrite")
264 field(INP,
"@asyn(MCP,0,0)DATAFILENAME")
266 # info(autosaveFields, "VAL")
273 field(DESC,
"File name")
274 field(DTYP,
"asynOctetRead")
277 field(INP,
"@asyn(MCP,0,0)DATAFILENAME")
278 field(SCAN,
"I/O Intr")
285 field(DESC,
"File index")
286 field(DTYP,
"asynInt32")
287 field(OUT,
"@asyn(MCP,0,0)FILEINDEX")
289 # info(autosaveFields, "VAL")
296 field(DESC,
"File index")
297 field(DTYP,
"asynInt32")
298 field(INP,
"@asyn(MCP,0,0)FILEINDEX")
299 field(SCAN,
"I/O Intr")
303 ## set triggers per burst
304 record(longout,
"$(P)$(Q)ACQ:BURST:NSHUT:SP")
306 field(DESC,
"Shutters per burst")
307 field(DTYP,
"asynInt32")
308 field(OUT,
"@asyn(MCP,0,0)NSHUTTERSPERBURST")
310 # info(autosaveFields, "VAL")
314 ## read shutters per burst
315 record(longin,
"$(P)$(Q)ACQ:BURST:NSHUT")
317 field(DESC,
"Shutters per burst")
318 field(DTYP,
"asynInt32")
319 field(INP,
"@asyn(MCP,0,0)NSHUTTERSPERBURST")
320 field(SCAN,
"I/O Intr")
324 ## triggers before refresh
325 record(longout,
"$(P)$(Q)ACQ:BURST:NTRIGRF:SP")
327 field(DESC,
"Burst Trigs before refresh")
328 field(DTYP,
"asynInt32")
329 field(OUT,
"@asyn(MCP,0,0)NTRIGSBURSTREFRESH")
331 # info(autosaveFields, "VAL")
335 ## triggers before refresh
336 record(longin,
"$(P)$(Q)ACQ:BURST:NTRIGRF")
338 field(DESC,
"Burst Trigs before refresh")
339 field(DTYP,
"asynInt32")
340 field(INP,
"@asyn(MCP,0,0)NTRIGSBURSTREFRESH")
341 field(SCAN,
"I/O Intr")
345 ## N Trigs. before saving SubImg Spectra/Counts In CollimScan
346 record(longout,
"$(P)$(Q)ACQ:NTRIGSAVSUB:SP")
348 field(DESC,
"N Trigs. before saving SubImg")
349 field(DTYP,
"asynInt32")
350 field(OUT,
"@asyn(MCP,0,0)NTRIGSAVSUB")
352 # info(autosaveFields, "VAL")
356 ## N Trigs. before saving SubImg Spectra/Counts In CollimScan
357 record(longin,
"$(P)$(Q)ACQ:NTRIGSAVSUB")
359 field(DESC,
"N Trigs. before saving SubImg")
360 field(DTYP,
"asynInt32")
361 field(INP,
"@asyn(MCP,0,0)NTRIGSAVSUB")
362 field(SCAN,
"I/O Intr")
369 field(DESC,
"set TPXCUBEBIN")
370 field(DTYP,
"asynFloat64")
371 field(OUT,
"@asyn(MCP,0,0)TPXCUBEBIN")
375 # info(autosaveFields, "VAL")
382 field(DESC,
"read TPXCUBEBIN")
383 field(DTYP,
"asynFloat64")
384 field(INP,
"@asyn(MCP,0,0)TPXCUBEBIN")
386 field(SCAN,
"I/O Intr")
391 record(longout,
"$(P)$(Q)SHTRCLKSHIFT:SP")
393 field(DESC,
"set SHTRCLKSHIFT")
394 field(DTYP,
"asynInt32")
395 field(OUT,
"@asyn(MCP,0,0)SHTRCLKSHIFT")
397 # info(autosaveFields, "VAL")
404 field(DESC,
"read SHTRCLKSHIFT")
405 field(DTYP,
"asynInt32")
406 field(INP,
"@asyn(MCP,0,0)SHTRCLKSHIFT")
407 field(SCAN,
"I/O Intr")
414 field(DESC,
"Read Acq mode")
415 field(DTYP,
"asynInt32")
416 field(INP,
"@asyn(MCP,0,0)DATAACQMODE")
417 field(SCAN,
"I/O Intr")
420 field(ONST,
"TpxCube")
422 field(TWST,
"Centrdg")
424 field(THST,
"CollimScan")
426 field(FRST,
"StrbscCube")
430 ## Set DATAACQMODE 0-Mpx;1-TpxCube;2-Centrdg;3-CollimScan;4-StrbscCube
433 field(DESC,
"Set Acq mode")
434 field(DTYP,
"asynInt32")
435 field(OUT,
"@asyn(MCP,0,0)DATAACQMODE")
438 field(ONST,
"TpxCube")
440 field(TWST,
"Centrdg")
442 field(THST,
"CollimScan")
444 field(FRST,
"StrbscCube")
448 # info(autosaveFields, "VAL")
455 field(DESC,
"Set SAVERAWDATA")
456 field(DTYP,
"asynInt32")
457 field(OUT,
"@asyn(MCP,0,0)SAVERAWDATA")
462 # info(autosaveFields, "VAL")
466 ## SAVERAWDATA status
469 field(DESC,
"SAVERAWDATA status")
470 field(DTYP,
"asynInt32")
471 field(INP,
"@asyn(MCP,0,0)SAVERAWDATA")
472 field(SCAN,
"I/O Intr")
478 ## save config to specified file
479 record(stringout,
"$(P)$(Q)SAVECONFIG:SP")
481 field(DESC,
"save config to file")
482 field(DTYP,
"asynOctetWrite")
483 field(OUT,
"@asyn(MCP,0,0)SAVECONFIG")
485 # info(autosaveFields, "VAL")
489 ## load config from specified file
490 record(stringout,
"$(P)$(Q)LOADCONFIG:SP")
492 field(DESC,
"load config from file")
493 field(DTYP,
"asynOctetWrite")
494 field(OUT,
"@asyn(MCP,0,0)LOADCONFIG")
496 # info(autosaveFields, "VAL")
500 ## save default config
503 field(DESC,
"save default config")
504 field(DTYP,
"asynInt32")
505 field(OUT,
"@asyn(MCP,0,0)SAVEDEFCONFIG")
509 field(ONAM,
"SAVING")
510 # info(autosaveFields, "VAL")
512 field(FLNK,
"$(P)$(Q)SAVECONFIG:_DEF")
516 ## Reset save default config
517 record(bo,
"$(P)$(Q)SAVECONFIG:_DEF")
519 field(OUT,
"$(P)$(Q)SAVECONFIG:DEF:SP NPP")
523 ## load default config
526 field(DESC,
"Load default config")
527 field(DTYP,
"asynInt32")
528 field(OUT,
"@asyn(MCP,0,0)LOADDEFCONFIG")
532 field(ONAM,
"LOADING")
533 # info(autosaveFields, "VAL")
535 field(FLNK,
"$(P)$(Q)LOADCONFIG:_DEF")
539 ## Reset load default config
540 record(bo,
"$(P)$(Q)LOADCONFIG:_DEF")
542 field(OUT,
"$(P)$(Q)LOADCONFIG:DEF:SP NPP")
546 ## Has acquisition hung.
549 field(DESC,
"Has Acquisition hung")
550 field(DTYP,
"asynInt32")
551 field(INP,
"@asyn(MCP,0,0)ACQHANG")
552 field(SCAN,
"I/O Intr")
558 ## Acquisition hang time.
561 field(DESC,
"Acquisition hang time")
562 field(DTYP,
"asynFloat64")
563 field(INP,
"@asyn(MCP,0,0)HANGTIME")
564 field(SCAN,
"I/O Intr")
570 ## enable or disable autorestart
573 field(DESC,
"Set Autorestart")
574 field(DTYP,
"asynInt32")
575 field(OUT,
"@asyn(MCP,0,0)AUTORESTART")
578 field(ZNAM,
"DISABLE")
579 field(ONAM,
"ENABLE")
580 info(autosaveFields,
"VAL")
584 ## autorestart status
587 field(DESC,
"Autorestart status")
588 field(DTYP,
"asynInt32")
589 field(INP,
"@asyn(MCP,0,0)AUTORESTART")
590 field(SCAN,
"I/O Intr")
591 field(ZNAM,
"DISABLED")
592 field(ONAM,
"ENABLED")
596 ## set autorestart delay time.
597 record(ao,
"$(P)$(Q)AUTORESTART:DELAY:SP")
599 field(DESC,
"Autorestart delay")
600 field(DTYP,
"asynFloat64")
601 field(OUT,
"@asyn(MCP,0,0)AUTORESTARTDELAY")
606 info(autosaveFields,
"VAL")
610 ## read autorestart delay time.
613 field(DESC,
"Autorestart delay")
614 field(DTYP,
"asynFloat64")
615 field(INP,
"@asyn(MCP,0,0)AUTORESTARTDELAY")
618 field(SCAN,
"I/O Intr")
623 ## 0x0 means frames stored in memory, otherwise a | combination of:
625 ## FSAVE_BINARY 0x0001 save in binary format
626 ## FSAVE_ASCII 0x0002 save in ASCII format
627 ## FSAVE_APPEND 0x0004 append frame to existing file if exists (multiframe)
628 ## FSAVE_I16 0x0010 save as 16bit integer
629 ## FSAVE_U32 0x0020 save as unsigned 32bit integer
630 ## FSAVE_DOUBLE 0x0040 save as double
631 ## FSAVE_NODESCFILE 0x0100 do not save description file
632 ## FSAVE_SPARSEXY 0x1000 save only nonzero position in [x y count] format
633 ## FSAVE_SPARSEX 0x2000 save only nonzero position in [x count] format
634 ## FSAVE_NOFILE 0x8000 frame will not be saved
636 ## flags FSAVE_BINARY/FSAVE_ASCII and flags FSAVE_I16/FSAVE_U32/FSAVE_DOUBLE are mutually exclusive
637 ## if FSAVE_SPARSEX and FSAVE_SPARSEXY is not specified full matrix is saved
640 field(DESC,
"Set File flags")
641 field(DTYP,
"asynInt32")
642 field(OUT,
"@asyn(MCP,0,0)FILEFLAGS")
645 info(autosaveFields,
"VAL")
652 field(DESC,
"Read File flags")
653 field(DTYP,
"asynInt32")
654 field(INP,
"@asyn(MCP,0,0)FILEFLAGS")
655 field(SCAN,
"I/O Intr")
659 ## Set software trigger start.
662 field(DESC,
"Trigger start acquisition")
663 field(DTYP,
"asynInt32")
664 field(OUT,
"@asyn(MCP,0,0)TRIGSTART")
666 field(ONAM,
"STARTING")
667 field(FLNK,
"$(P)$(Q)_TRIGSTART")
671 ## reset TRIG:START PV
672 record(bo,
"$(P)$(Q)_TRIGSTART")
674 field(OUT,
"$(P)$(Q)TRIG:START NPP")
678 ## Set software trigger stop.
681 field(DESC,
"Trigger stop acquisition")
682 field(DTYP,
"asynInt32")
683 field(OUT,
"@asyn(MCP,0,0)TRIGSTOP")
685 field(ONAM,
"STOPPING")
686 field(FLNK,
"$(P)$(Q)_TRIGSTOP")
690 ## reset TRIG:STOP PV
691 record(bo,
"$(P)$(Q)_TRIGSTOP")
693 field(OUT,
"$(P)$(Q)TRIG:STOP NPP")
700 field(DESC,
"Abort acquisition")
701 field(DTYP,
"asynInt32")
702 field(OUT,
"@asyn(MCP,0,0)ABORT")
704 field(ONAM,
"ABORTING")
705 field(FLNK,
"$(P)$(Q)_ABORT")
710 record(bo,
"$(P)$(Q)_ABORT")
712 field(OUT,
"$(P)$(Q)ABORT NPP")
716 ## start acquisition.
719 field(DESC,
"Start acquisition")
720 field(DTYP,
"asynInt32")
721 field(OUT,
"@asyn(MCP,0,0)START")
723 field(ONAM,
"STARTING")
724 field(FLNK,
"$(P)$(Q)_START")
730 record(bo,
"$(P)$(Q)_START")
732 field(OUT,
"$(P)$(Q)START NPP")
738 field(DESC,
"Acquisition")
739 field(DTYP,
"asynInt32")
740 field(OUT,
"@asyn(MCP,0,0)ACQUIRE")
742 field(ONAM,
"Acquire")
747 field(DESC,
"Acquisition RBV")
748 field(DTYP,
"asynInt32")
749 field(INP,
"@asyn(MCP,0,0)ACQUIRE")
751 field(ZSV,
"NO_ALARM")
752 field(ONAM,
"Acquiring")
754 field(SCAN,
"I/O Intr")
757 ## is an acquisition series currently active
760 field(DESC,
"Acq series currently active")
761 field(DTYP,
"asynInt32")
762 field(INP,
"@asyn(MCP,0,0)ACQACTIVE")
763 field(SCAN,
"I/O Intr")
769 ## is a single acquisition currently active
772 field(DESC,
"Single Acq currently active")
773 field(DTYP,
"asynInt32")
774 field(INP,
"@asyn(MCP,0,0)ACQSACTIVE")
775 field(SCAN,
"I/O Intr")
783 field(DESC,
"Camera Current Status")
784 field(DTYP,
"asynInt32")
785 field(INP,
"@asyn(MCP,0,0)CAMERASTATUS")
786 field(SCAN,
"I/O Intr")
789 field(ONST,
"Acquiring")
791 field(TWST,
"Saving")
record(longin,"$(P)$(Q)DEVID")
Read pixelman device id.