This is an EPICS areaDetector driver for detectors from PCO using raw serial communication to a Camera Link frame grabber. The driver is in use at the Advanced Photon Source to control the high speed Dimax and sCMOS Edge cameras from PCO. The driver was commissioned by APS/XSD Imaging Group for x-ray micro-tomography application. It has been extensively been tested at APS 2-BM by Xianghui Xiao and Tim Madden. The driver is supported on 32-bit and 64- bit Linux and 32-bit and 64-bit Windows.
The driver currently provides access to most of the features of the PCO cameras:
The PCO driver consists of three parts. First, a driver called ADCameralink inherits from ADDriver provides functions for grabbing images from the Camera Link frame grabber. Second, pco is a class that inherits from ADCameralink and provides all serial port control over the RS-232 port built in to the Camera Link grabber card. (If one were to write a Camera Link driver for some camera other than PCO, one would inherit ADCameralink and add serial control code.) Last, camLinkSerial provides serial port I/O as an asynPortDriver similar to drvAsynSerialPort.
PCO provides a Windows-based SDK for driving their cameras. Because
this driver was developed largely before the PCO SDK was mature, this
driver uses direct Camera Link serial port control. An advantage of
this approach is that any Camera Link card can be supported. Also the
driver can be run in a Linux system. (The PCO SDK is Windows-only. An EPICS driver using the PCO SDK was developed at Diamond Controls Group.)
The PCO parameters are documented in their Camera Link serial
command manual available here. The Dimax parameters are documented here.The PCO AD Driver supports nearly all of the parameters documented in
these manuals.
Parameter Definitions in ADDriver.h and EPICS Record Definitions in ADBase.template | ||||||
Parameter index variable | asyn interface | Access | Description | drvInfo string | EPICS record name | EPICS record type |
---|---|---|---|---|---|---|
Information about the detector | ||||||
ADManufacturer | asynOctet | r/o | Detector manufacturer name | MANUFACTURER | $(P)$(R)Manufacturer_RBV | stringin |
ADModel | asynOctet | r/o | Detector model name | MODEL | $(P)$(R)Model_RBV | stringin |
ADMaxSizeX | asynInt32 | r/o | Maximum (sensor) size in the X direction | MAX_SIZE_X | $(P)$(R)MaxSizeX_RBV | longin |
ADMaxSizeY | asynInt32 | r/o | Maximum (sensor) size in the Y direction | MAX_SIZE_Y | $(P)$(R)MaxSizeY_RBV | longin |
ADTemperature | asynFloat64 | r/w | Detector temperature | TEMPERATURE |
$(P)$(R)Temperature $(P)$(R)Temperature_RBV |
ao ai |
ADTemperatureActual | asynFloat64 | r/o | Actual detector temperature | TEMPERATURE_ACTUAL | $(P)$(R)Temperature_Actual | ai |
Detector readout control including gain, binning, region start and size, reversal | ||||||
ADGain | asynFloat64 | r/w | Detector gain | GAIN | $(P)$(R)Gain $(P)$(R)Gain_RBV |
ao ai |
ADBinX | asynInt32 | r/w | Binning in the X direction. Always 1 |
BIN_X | $(P)$(R)BinX $(P)$(R)BinX_RBV |
longout longin |
ADBinY | asynInt32 | r/w | Binning in the Y direction, Always 1. |
BIN_Y | $(P)$(R)BinY $(P)$(R)BinY_RBV |
longout longin |
ADMinX | asynInt32 | r/w | First pixel to read in the X direction. 0 is the first pixel on the detector.Always 1. |
MIN_X | $(P)$(R)MinX $(P)$(R)MinX_RBV |
longout longin |
ADMinY | asynInt32 | r/w | First pixel to read in the Y direction. 0 is the first pixel on the detector. Always 1. |
MIN_Y | $(P)$(R)MinY $(P)$(R)MinY_RBV |
longout longin |
ADSizeX | asynInt32 | r/w | Size of the region to read in the X direction | SIZE_X | $(P)$(R)SizeX $(P)$(R)SizeX_RBV |
longout longin |
ADSizeY | asynInt32 | r/w | Size of the region to read in the Y direction | SIZE_Y | $(P)$(R)SizeY $(P)$(R)SizeY_RBV |
longout longin |
ADReverseX | asynInt32 | r/w | Reverse array
in the X direction (0=No, 1=Yes) |
REVERSE_X |
$(P)$(R)ReverseX $(P)$(R)ReverseX_RBV |
longout longin |
ADReverseY | asynInt32 | r/w | Reverse array
in the Y direction (0=No, 1=Yes) |
REVERSE_Y |
$(P)$(R)ReverseY $(P)$(R)ReverseY_RBV |
longout longin |
Image and trigger modes | ||||||
ADImageMode | asynInt32 | r/w | Image mode (ADImageMode_t). | IMAGE_MODE | $(P)$(R)ImageMode $(P)$(R)ImageMode_RBV |
mbbo mbbi |
ADTriggerMode | asynInt32 | r/w | Trigger mode (ADTriggerMode_t). | TRIGGER_MODE | $(P)$(R)TriggerMode $(P)$(R)TriggerMode_RBV |
mbbo mbbi |
Frame type | ||||||
ADFrameType | asynInt32 | r/w | Frame type (ADFrameType_t). | FRAME_TYPE | $(P)$(R)FrameType $(P)$(R)FrameType_RBV |
mbbo mbbi |
Acquisition time and period | ||||||
ADAcquireTime | asynFloat64 | r/w | Acquisition time per image | ACQ_TIME | $(P)$(R)AcquireTime $(P)$(R)AcquireTime_RBV |
ao ai |
ADAcquirePeriod | asynFloat64 | r/w | Acquisition period between images | ACQ_PERIOD | $(P)$(R)AcquirePeriod $(P)$(R)AcquirePeriod_RBV |
ao ai |
Number of exposures and number of images | ||||||
ADNumExposures | asynInt32 | r/w | Number of exposures per image to acquire | NEXPOSURES | $(P)$(R)NumExposures $(P)$(R)NumExposures_RBV |
longout longin |
ADNumImages | asynInt32 | r/w | Number of images to acquire in one acquisition sequence | NIMAGES | $(P)$(R)NumImages $(P)$(R)NumImages_RBV |
longout longin |
Acquisition control | ||||||
ADAcquire | asynInt32 | r/w | Start (1) or stop (0) image acquisition. This is an EPICS busy record that does not process its forward link until acquisition is complete. Clients should write 1 to the Acquire record to start acquisition, and wait for Acquire to go to 0 to know that acquisition is complete. | ACQUIRE | $(P)$(R)Acquire $(P)$(R)Acquire_RBV |
busy bi |
Status information | ||||||
ADStatus | asynInt32 | r/o | Acquisition status (ADStatus_t) | STATUS | $(P)$(R)DetectorState_RBV | mbbi |
ADStatusMessage | asynOctet | r/o | Status message string | STATUS_MESSAGE | $(P)$(R)StatusMessage_RBV | waveform |
ADStringToServer | asynOctet | r/o | String from driver to string-based vendor server | STRING_TO_SERVER | $(P)$(R)StringToServer_RBV | waveform |
ADStringFromServer | asynOctet | r/o | String from string-based vendor server to driver | STRING_FROM_SERVER | $(P)$(R)StringFromServer_RBV | waveform |
ADNumExposuresCounter | asynInt32 | r/o | Counter that increments by 1 each time an exposure is acquired for the current image. Driver resets to 0 when acquisition is started. | NUM_EXPOSURES_COUNTER | $(P)$(R)NumExposuresCounter_RBV | longin |
ADNumImagesCounter | asynInt32 | r/o | Counter that increments by 1 each time an image is acquired in the current acquisition sequence. Driver resets to 0 when acquisition is started. Drivers can use this as the loop counter when ADImageMode=ADImageMultiple. | NUM_IMAGES_COUNTER | $(P)$(R)NumImagesCounter_RBV | longin |
ADTimeRemaining | asynFloat64 | r/o | Time remaining for current image. Drivers should update this value if they are doing the exposure timing internally, rather than in the detector hardware. | TIME_REMAINING | $(P)$(R)TimeRemaining_RBV | ai |
ADReadStatus | asynInt32 | r/w | Write a 1 to this parameter to force a read of the detector status. Detector drivers normally read the status as required, so this is usually not necessary, but there may be some circumstances under which forcing a status read may be needed. | READ_STATUS | $(P)$(R)ReadStatus | bo |
Shutter control | ||||||
ADShutterMode | asynInt32 | r/w | Shutter mode (None, detector-controlled or EPICS-controlled) (ADShutterMode_t) | SHUTTER_MODE | $(P)$(R)ShutterMode $(P)$(R)ShutterMode_RBV |
mbbo mbbi |
ADShutterControl | asynInt32 | r/w | Shutter control for the selected (detector or EPICS) shutter (ADShutterStatus_t) | SHUTTER_CONTROL | $(P)$(R)ShutterControl $(P)$(R)ShutterControl_RBV |
bo bi |
ADShutterControlEPICS | asynInt32 | r/w | This record processes when it receives a callback from the driver to open or close the EPICS shutter. It triggers the records below to actually open or close the EPICS shutter. | SHUTTER_CONTROL_EPICS | $(P)$(R)ShutterControlEPICS | bi |
ADShutterStatus | asynInt32 | r/o | Status of the detector-controlled shutter (ADShutterStatus_t) | SHUTTER_STATUS | $(P)$(R)ShutterStatus_RBV | bi |
N/A | N/A | r/o | Status of the EPICS-controlled shutter. This record should have its input link (INP) set to a record that contains the open/close status information for the shutter. The link should have the "CP" attribute, so this record processes when the input changes. The ZRVL field should be set to the value of the input link when the shutter is closed, and the ONVL field should be set to the value of the input link when the shutter is open. | N/A | $(P)$(R)ShutterStatusEPICS_RBV | mbbi |
ADShutterOpenDelay | asynFloat64 | r/w | Time required for the shutter to actually open (ADShutterStatus_t) | SHUTTER_OPEN_DELAY |
$(P)$(R)ShutterOpenDelay $(P)$(R)ShutterOpenDelay_RBV |
ao ai |
ADShutterCloseDelay | asynFloat64 | r/w | Time required for the shutter to actually close (ADShutterStatus_t) | SHUTTER_CLOSE_DELAY |
$(P)$(R)ShutterCloseDelay $(P)$(R)ShutterCloseDelay_RBV |
ao ai |
The following parameters are found in pco.h.
Parameter Definitions in pco.h and EPICS Record Definitions in pco.template | ||||||
Parameter index variable | asyn interface | Access | Description | drvInfo string | EPICS record name | EPICS record type |
---|---|---|---|---|---|---|
pco_ready2acquire |
asynInt32 | WR | 1 if camera is ready. |
pco_ready2acquire |
$(P)$(R)pco_ready2acquire $(P)$(R)pco_ready2acquire_RBV | longout longin |
pco_com_err_max |
asynInt32 | W | 1 if error on serial port. |
pco_com_err_max |
$(P)$(R)pco_com_err_max | longout |
pco_global_shutter |
asynInt32 | WR | 1 if Edge global shutter mode |
pco_global_shutter |
$(P)$(R)pco_global_shutter $(P)$(R)pco_global_shutter_RBV | mbbo mbbi |
pco_dimax_nimgs_fudge |
asynInt32 | WR | fudge factor in calc'ing dimax memory size. |
pco_dimax_nimgs_fudge |
$(P)$(R)pco_dimax_nimgs_fudge $(P)$(R)pco_dimax_nimgs_fudge_RBV | longout longin |
pco_disable_descramble |
asynInt32 | WR | 1 to disable descramble plugin |
pco_disable_descramble |
$(P)$(R)pco_disable_descramble $(P)$(R)pco_disable_descramble_RBV | longout longin |
w_open_com |
asynInt32 | W | open serial port |
w_open_com |
$(P)$(R)w_open_com | longout |
w_close_com |
asynInt32 | W | close serial port |
w_close_com |
$(P)$(R)w_close_com | longout |
w_is_com_open |
asynInt32 | R | 1 if serial port open |
w_is_com_open |
$(P)$(R)w_is_com_open | longin |
pco_run_counter |
asynInt32 | R | increments when pco thread runs next loop. |
pco_run_counter |
$(P)$(R)w_run_counter | longin |
pco_kill_ioc |
asynInt32 | W | 1 to call exit() |
pco_kill_ioc |
$(P)$(R)pco_kill_ioc | longout |
pco_is_running |
asynInt32 | W | 1 if pco thread is runing |
pco_is_running |
$(P)$(R)pco_is_running | longout |
w_is_sleep |
asynInt32 | W | 1 to make pco thread sleep between loops |
w_is_sleep |
$(P)$(R)w_is_sleep | longout |
w_sleep_ms |
asynInt32 | W | how long pco thread sleeps. |
w_sleep_ms |
$(P)$(R)w_sleep_ms | longout |
pco_comport_number |
asynInt32 | WR | COM0, 1... the number. |
pco_comport_number |
$(P)$(R)pco_comport_number_RBV $(P)$(R)pco_comport_number | longin longout |
pco_check_time |
asynInt32 | W | HOw often in ms we check pco camera parameters. |
pco_check_time |
$(P)$(R)pco_check_time | longout |
pco_force_check |
asynInt32 | W | 1 to force a check of pco camera parameters. |
pco_force_check |
$(P)$(R)pco_force_check | longout |
pco_reset_default_settings |
asynInt32 | W | reset camera to default |
pco_reset_default_settings |
$(P)$(R)pco_reset_default_settings | longout |
pco_init_selftest |
asynInt32 | W | self test camera |
pco_init_selftest |
$(P)$(R)pco_init_selftest | longout |
pco_health_warning |
asynInt32 | R | Warning codes from camera. |
pco_health_warning |
$(P)$(R)pco_health_warning_RBV | longin |
pco_health_error |
asynInt32 | R | Error codes from camera |
pco_health_error |
$(P)$(R)pco_health_error_RBV | longin |
pco_health_status |
asynInt32 | R | Health code from camera |
pco_health_status |
$(P)$(R)pco_health_status_RBV | longin |
pco_is_frame_rate_mode |
asynInt32 | WR | 1 for framereate, 0 for exp time/delay mode. |
pco_is_frame_rate_mode |
$(P)$(R)pco_is_frame_rate_mode $(P)$(R)pco_is_frame_rate_mode_RBV | mbbo mbbi |
pco_sensor_format |
asynInt32 | WR | sensor specs |
pco_sensor_format |
$(P)$(R)pco_sensor_format $(P)$(R)pco_sensor_format_RBV | mbbo mbbi |
pco_pixelrate |
asynInt32 | WR | sensor readout speed. |
pco_pixelrate |
$(P)$(R)pco_pixelrate $(P)$(R)pco_pixelrate_RBV | longout longin |
pco_doub_img_mode |
asynInt32 | WR | camera in doub. corr. iamge mode. |
pco_doub_img_mode |
$(P)$(R)pco_doub_img_mode $(P)$(R)pco_doub_img_mode_RBV | mbbo mbbi |
pco_adc_mode |
asynInt32 | WR | Mode of ADC on camera |
pco_adc_mode |
$(P)$(R)pco_adc_mode $(P)$(R)pco_adc_mode_RBV | longout longin |
pco_temp_setpt |
asynInt32 | WR | sensor temp setpoint. |
pco_temp_setpt |
$(P)$(R)pco_temp_setpt $(P)$(R)pco_temp_setpt_RBV | longout longin |
pco_offset_mode |
asynInt32 | WR | low level camera setting |
pco_offset_mode |
$(P)$(R)pco_offset_mode $(P)$(R)pco_offset_mode_RBV | mbbo mbbi |
pco_noise_filt_mode |
asynInt32 | WR | low level camera setting | pco_noise_filt_mode |
$(P)$(R)pco_noise_filt_mode $(P)$(R)pco_noise_filt_mode_RBV | mbbo mbbi |
pco_exp_timebase |
asynInt32 | WR | ms, us, ns time base for frame rate and exp time. |
pco_exp_timebase |
$(P)$(R)pco_exp_timebase $(P)$(R)pco_exp_timebase_RBV | mbbo mbbi |
pco_dly_timebase |
asynInt32 | WR | ms, us, ns time base for frame rate and exp time. | pco_dly_timebase |
$(P)$(R)pco_dly_timebase $(P)$(R)pco_dly_timebase_RBV | mbbo mbbi |
pco_fps_mode |
asynInt32 | WR | frame per sec mode |
pco_fps_mode |
$(P)$(R)pco_fps_mode $(P)$(R)pco_fps_mode_RBV | mbbo mbbi |
pco_trigger_mode |
asynInt32 | WR | trigger mode, low level camera spec. |
pco_trigger_mode |
$(P)$(R)pco_trigger_mode $(P)$(R)pco_trigger_mode_RBV | mbbo mbbi |
pco_busy |
asynInt32 | R | 1 of camera bisy |
pco_busy |
$(P)$(R)pco_busy_RBV | mbbi |
pco_exp_trig_stat |
asynInt32 | R | trigger status |
pco_exp_trig_stat |
$(P)$(R)pco_exp_trig_stat_RBV | mbbi |
pco_camera_ram_npages |
asynInt32 | R | Num pages of RAM in dimax |
pco_camera_ram_npages |
$(P)$(R)pco_camera_ram_npages_RBV | longin |
pco_camera_ram_page_size |
asynInt32 | R | page size in dimax |
pco_camera_ram_page_size |
$(P)$(R)pco_camera_ram_page_size_RBV | longin |
pco_camera_seg_size0 |
asynInt32 | WR | ram segment size in dimax |
pco_camera_seg_size0 |
$(P)$(R)pco_camera_seg_size0_RBV $(P)$(R)pco_camera_seg_size0 | longin longout |
pco_camera_seg_size1 |
asynInt32 | WR | ram segment size in dimax | pco_camera_seg_size1 |
$(P)$(R)pco_camera_seg_size1_RBV $(P)$(R)pco_camera_seg_size1 | longin longout |
pco_camera_seg_size2 |
asynInt32 | WR | ram segment size in dimax | pco_camera_seg_size2 |
$(P)$(R)pco_camera_seg_size2_RBV $(P)$(R)pco_camera_seg_size2 | longin longout |
pco_camera_seg_size3 |
asynInt32 | WR | ram segment size in dimax | pco_camera_seg_size3 |
$(P)$(R)pco_camera_seg_size3_RBV $(P)$(R)pco_camera_seg_size3 | longin longout |
pco_clear_ram_seg |
asynInt32 | W | clear current segment in dimax ram |
pco_clear_ram_seg |
$(P)$(R)pco_clear_ram_seg | longout |
pco_active_seg |
asynInt32 | WR | which ram seg is active in dimax |
pco_active_seg |
$(P)$(R)pco_active_seg_RBV $(P)$(R)pco_active_seg | longin longout |
pco_storage_mode |
asynInt32 | WR | fifo or non fifo ram storage mode on dimax |
pco_storage_mode |
$(P)$(R)pco_storage_mode $(P)$(R)pco_storage_mode_RBV | mbbo mbbi |
pco_rec_submode |
asynInt32 | WR | low level param |
pco_rec_submode |
$(P)$(R)pco_rec_submode $(P)$(R)pco_rec_submode_RBV | mbbo mbbi |
pco_rec_status |
asynInt32 | WR | low level param | pco_rec_status |
$(P)$(R)pco_rec_status $(P)$(R)pco_rec_status_RBV | mbbo mbbi |
pco_acq_mode |
asynInt32 | WR | low level param | pco_acq_mode |
$(P)$(R)pco_acq_mode $(P)$(R)pco_acq_mode_RBV | mbbo mbbi |
pco_acqen_sig_stat |
asynInt32 | R | low level param | pco_acqen_sig_stat |
$(P)$(R)pco_acqen_sig_stat_RBV | mbbi |
pco_timestamp_mode |
asynInt32 | WR | put timestmpas into images that can be seen as text. | pco_timestamp_mode |
$(P)$(R)pco_timestamp_mode $(P)$(R)pco_timestamp_mode_RBV | mbbo mbbi |
pco_arm_camera |
asynInt32 | W | 1 to arm camera | pco_arm_camera |
$(P)$(R)pco_arm_camera | longout |
pco_rec_stop_event_mode |
asynInt32 | WR | low level param | pco_rec_stop_event_mode |
$(P)$(R)pco_rec_stop_event_mode $(P)$(R)pco_rec_stop_event_mode_RBV | mbbo mbbi |
pco_rec_stop_event_nimgs |
asynInt32 | WR | low level param | pco_rec_stop_event_nimgs |
$(P)$(R)pco_rec_stop_event_nimgs $(P)$(R)pco_rec_stop_event_nimgs_RBV | longout longin |
pco_stop_record |
asynInt32 | W | 1 to stop recording |
pco_stop_record |
$(P)$(R)pco_stop_record | longout |
pco_read_which_seg |
asynInt32 | WR | which ram we read in dimax. |
pco_read_which_seg |
$(P)$(R)pco_read_which_seg $(P)$(R)pco_read_which_seg_RBV | longout longin |
pco_read_st_img |
asynInt32 | WR | dimax does not support |
pco_read_st_img |
$(P)$(R)pco_read_st_img $(P)$(R)pco_read_st_img_RBV | longout longin |
pco_read_end_img |
asynInt32 | WR | dimax does not support | pco_read_end_img |
$(P)$(R)pco_read_end_img $(P)$(R)pco_read_end_img_RBV | longout longin |
pco_do_read_imgs |
asynInt32 | W | dimax does not support | pco_do_read_imgs |
$(P)$(R)pco_do_read_imgs | longout |
pco_req_img |
asynInt32 | W | read one image from dimax |
pco_req_img |
$(P)$(R)pco_req_img | longout |
pco_rpt_img |
asynInt32 | W | low level param |
pco_rpt_img |
$(P)$(R)pco_rpt_img | longout |
pco_cancel_img |
asynInt32 | W | low level param | pco_cancel_img |
$(P)$(R)pco_cancel_img | longout |
pco_bit_alignment |
asynInt32 | WR | low level param | pco_bit_alignment |
$(P)$(R)pco_bit_alignment $(P)$(R)pco_bit_alignment_RBV | mbbo mbbi |
pco_num_imgs_seg0 |
asynInt32 | R | Number of images in RAM segment |
pco_num_imgs_seg0 |
$(P)$(R)pco_num_imgs_seg0_RBV | longin |
pco_num_imgs_seg1 |
asynInt32 | R | Number of images in RAM segment | pco_num_imgs_seg1 |
$(P)$(R)pco_num_imgs_seg1_RBV | longin |
pco_num_imgs_seg2 |
asynInt32 | R | Number of images in RAM segment | pco_num_imgs_seg2 |
$(P)$(R)pco_num_imgs_seg2_RBV | longin |
pco_num_imgs_seg3 |
asynInt32 | R | Number of images in RAM segment | pco_num_imgs_seg3 |
$(P)$(R)pco_num_imgs_seg3_RBV | longin |
pco_max_imgs_seg0 |
asynInt32 | R | MAx Number of images in RAM segment | pco_max_imgs_seg0 |
$(P)$(R)pco_max_imgs_seg0_RBV | longin |
pco_max_imgs_seg1 |
asynInt32 | R | Max Number of images in RAM segment | pco_max_imgs_seg1 |
$(P)$(R)pco_max_imgs_seg1_RBV | longin |
pco_max_imgs_seg2 |
asynInt32 | R | Max Number of images in RAM segment | pco_max_imgs_seg2 |
$(P)$(R)pco_max_imgs_seg2_RBV | longin |
pco_max_imgs_seg3 |
asynInt32 | R | MAx Number of images in RAM segment | pco_max_imgs_seg3 |
$(P)$(R)pco_max_imgs_seg3_RBV | longin |
pco_camlink_pixfreq |
asynInt32 | WR | Camera Link clock speed. |
pco_camlink_pixfreq |
$(P)$(R)pco_camlink_pixfreq $(P)$(R)pco_camlink_pixfreq_RBV | longout longin |
pco_cclines |
asynInt32 | WR | CC lines on cam link card. |
pco_cclines |
$(P)$(R)pco_cclines $(P)$(R)pco_cclines_RBV | longout longin |
pco_camlink_pixperclk |
asynInt32 | WR | pixels per clock. has to do with data format on Camera Link.
|
pco_camlink_pixperclk |
$(P)$(R)pco_camlink_pixperclk $(P)$(R)pco_camlink_pixperclk_RBV | longout longin |
pco_camlink_cont |
asynInt32 | WR | add delay between images in camlink interface |
pco_camlink_cont |
$(P)$(R)pco_camlink_cont $(P)$(R)pco_camlink_cont_RBV | longout longin |
pco_baudrate |
asynInt32 | WR | baudrate for serial port |
pco_baudrate |
$(P)$(R)pco_baudrate $(P)$(R)pco_baudrate_RBV | longout longin |
pco_reset_memory |
asynInt32 | W | reset dimax memory |
pco_reset_memory |
$(P)$(R)pco_reset_memory | longout |
pco_play_slow |
asynInt32 | W | not supported by pco |
pco_play_slow |
$(P)$(R)pco_play_slow | longout |
pco_play_stop |
asynInt32 | W | not supported by pco | pco_play_stop |
$(P)$(R)pco_play_stop | longout |
pco_dump_counter |
asynInt32 | WR | counts images dumped from camera |
pco_dump_counter |
$(P)$(R)pco_dump_counter $(P)$(R)pco_dump_counter_RBV | longout longin |
pco_imgs2dump |
asynInt32 | WR | number of images to red from dimax |
pco_imgs2dump |
$(P)$(R)pco_imgs2dump $(P)$(R)pco_imgs2dump_RBV | longout longin |
pco_dump_waitms |
asynInt32 | WR | wait time between readout iamges on dimax |
pco_dump_waitms |
$(P)$(R)pco_dump_waitms $(P)$(R)pco_dump_waitms_RBV | longout longin |
pco_check_time2 |
asynInt32 | W | timer for 2nd param check in pco. |
pco_check_time2 |
$(P)$(R)pco_check_time2 | longout |
pco_dump_camera_memory |
asynInt32 | WR | 1 to dump frames from dimax ram |
pco_dump_camera_memory |
$(P)$(R)pco_dump_camera_memory $(P)$(R)pco_dump_camera_memory_RBV | longout longin |
pco_cancel_dump |
asynInt32 | W | 1 to stop dump. |
pco_cancel_dump |
$(P)$(R)pco_cancel_dump | longout |
pco_live_view |
asynInt32 | WR | 1 for live view from edge and dimax. |
pco_live_view |
$(P)$(R)pco_live_view $(P)$(R)pco_live_view_RBV | mbbo mbbi |
N/A |
None | W | |
N/A |
$(P)$(R)pco_lview2_fr_rate | scalcout |
pco_frame_rate |
asynFloat64 | R | frame rate register on pco camera |
pco_frame_rate |
$(P)$(R)pco_frame_rate_RBV | ai |
pco_cdi_mode |
asynInt32 | WR | low level param |
pco_cdi_mode |
$(P)$(R)pco_cdi_mode $(P)$(R)pco_cdi_mode_RBV | mbbo mbbi |
pco_dnsu_mode |
asynInt32 | WR | low level param | pco_dnsu_mode |
$(P)$(R)pco_dnsu_mode $(P)$(R)pco_dnsu_mode_RBV | longout longin |
pco_dnsu_init_mode |
asynInt32 | WR | low level param | pco_dnsu_init_mode |
$(P)$(R)pco_dnsu_init_mode $(P)$(R)pco_dnsu_init_mode_RBV | longout longin |
pco_reconfig_grabber |
asynInt32 | W | 1 to reconfig frae grabber. |
pco_reconfig_grabber |
$(P)$(R)pco_reconfig_grabber | longout |
pco_set_frame_rate |
asynFloat64 | WR | frame ratge for pco |
pco_set_frame_rate |
$(P)$(R)pco_set_frame_rate_RBV $(P)$(R)pco_set_frame_rate | ai ao |
pco_delay_time |
asynFloat64 | WR | tiem betwen images on pco exposire |
pco_delay_time |
$(P)$(R)pco_delay_time_RBV $(P)$(R)pco_delay_time | ai ao |
pco_dump_maxdatarate |
asynInt32 | WR | max data rate for image memory dump from dimax |
pco_dump_maxdatarate |
$(P)$(R)pco_dump_maxdatarate_RBV $(P)$(R)pco_dump_maxdatarate | longin longout |
pco_test_pixels |
asynInt32 | WR | add test pixels to image |
pco_test_pixels |
$(P)$(R)pco_test_pixels $(P)$(R)pco_test_pixels_RBV | longout longin |
pco_double_image_error |
asynInt32 | WR | 1 if we have repeated frames on dump |
pco_double_image_error |
$(P)$(R)pco_double_image_error $(P)$(R)pco_double_image_error_RBV | longout longin |
pco_which_camera |
asynInt32 | R | integer for edge or dimax. |
pco_which_camera |
$(P)$(R)pco_which_camera_RBV | longin |
pco_hotpix_corr |
asynInt32 | WR | low level |
pco_hotpix_corr |
$(P)$(R)pco_hotpix_corr $(P)$(R)pco_hotpix_corr_RBV | longout longin |
pco_1612_lookup |
asynInt32 | WR | low level |
pco_1612_lookup |
$(P)$(R)pco_1612_lookup $(P)$(R)pco_1612_lookup_RBV | longout longin |
pco_edge_fastscan |
asynInt32 | WR | fast or slow scan for edge sensor |
pco_edge_fastscan |
$(P)$(R)pco_edge_fastscan $(P)$(R)pco_edge_fastscan_RBV | mbbo mbbi |
pco_conv_12to16 |
asynInt32 | WR | 12 bit to 16 bit format comversion for edge |
pco_conv_12to16 |
$(P)$(R)pco_conv_12to16 $(P)$(R)pco_conv_12to16_RBV | mbbo mbbi |
pco_descramble |
asynInt32 | WR | enavle SW descramble of iamges. |
pco_descramble |
$(P)$(R)pco_descramble $(P)$(R)pco_descramble_RBV | mbbo mbbi |
pco_dbg_serprint |
asynInt32 | W | debugging serial port. deprecated |
pco_dbg_serprint |
$(P)$(R)pco_dbg_serprint | longout |
pco_do_camcontrol |
asynInt32 | W | deprecated |
pco_do_camcontrol |
$(P)$(R)pco_do_camcontrol | longout |
pco_ser_waitms |
asynInt32 | W | wait time for serial port |
pco_ser_waitms |
$(P)$(R)pco_ser_waitms | longout |
pco_dbg_serwrite |
asynInt32 | W | debrecated |
pco_dbg_serwrite |
$(P)$(R)pco_dbg_serwrite | longout |
pco_dbg_serread |
asynInt32 | W | debrecated | pco_dbg_serread |
$(P)$(R)pco_dbg_serread | longout |
pco_dbg_serstr |
asynOctetWrite | WR | debrecated | pco_dbg_serstr |
$(P)$(R)pco_dbg_serstr $(P)$(R)pco_dbg_serstr_RBV | waveform waveform |
N/A |
None | W | |
N/A |
$(P)$(R)pco_dumpcanceller | calcout |
pco_grab_waittime |
asynFloat64 | WR | wait tiem between image grabs |
pco_grab_waittime |
$(P)$(R)pco_grab_waittime_RBV $(P)$(R)pco_grab_waittime | ai ao |
pco_rollshut_mcfname |
asynOctetWrite | WR | rolling shutter edge config file name |
pco_rollshut_mcfname |
$(P)$(R)pco_rollshut_mcfname $(P)$(R)pco_rollshut_mcfname_RBV | waveform waveform |
pco_globshut_mcfname |
asynOctetWrite | WR | global chutter edge config file name |
pco_globshut_mcfname |
$(P)$(R)pco_globshut_mcfname $(P)$(R)pco_globshut_mcfname_RBV | waveform waveform |