The following virtual counter operates a Pilatus in multiple frame mode, i.e. if the VC is used during a scan, 100 frames (can be edited) are taken at each stop.
# Label: 300k_carsten # # Pilatus as virual counter taking several images instead of a single one per # point during a scan. # # here: # exposure time given in online defines total exposure time for a single # pilatus sequence (including dead time(s)). # variable 'numimages' defines the numer of pilatus images to take per scan point # # history: # version 0: A.R., oct 24, 2012 # if( $method =~ /reset/i) { ########################## # to be adjusted by user # ########################## my $numimages=100; my $mydeadtime=0.003; my $pil_epo = $Spectra::SYM{ sample_time} / ($numimages) - $mydeadtime; Spectra::tng_attrStringWrt( "pilatus", "FilePrefix", $Spectra::SYM{ scan_name}); Spectra::tng_attrLongWrt( "pilatus", "NbFrames", $numimages); Spectra::tng_attrDoubleWrt( "pilatus", "ExposureTime", $pil_epo); Spectra::tng_attrDoubleWrt( "pilatus", "ExposurePeriod", $pil_epo+$mydeadtime); Spectra::tng_attrLongWrt( "pilatus", "FileStartNum", ($Spectra::SYM{ sindex}-1)*$numimages+1); Spectra::tng_inout("pilatus", "StartStandardAcq"); return 1; } if( $method =~ /read/i) { while( Spectra::pilatus_state( "pilatus")) { Util::log( "waiting for Pilatus "); Spectra::wait( 0.1); } return 1; }