#! /usr/bin/env mpscript # # This script takes an area detector image for the requested amount of time # and writes it to the requested file. # import time def main( record_list, argv ): if ( len(argv) != 3 ): print ( "" ) print ( \ "Usage: mp_ad_take_image detector_name measurement_time filename" ) print ( "" ) sys.exit(1) detector_name = argv[0] measurement_time = float( argv[1] ) filename = argv[2] ad = record_list.get_record( detector_name ) maximum_framesize = ad.get_maximum_framesize() bytes_per_pixel = ad.get_bytes_per_pixel() num_pixels = int(maximum_framesize[0]) * int(maximum_framesize[1]) image_length = int( bytes_per_pixel * num_pixels ) image_frame = Mp.ImageFrame( maximum_framesize, \ 3, 1, bytes_per_pixel, 0, image_length ) ad.set_one_shot_mode( measurement_time ) ad.start() # Wait for the measurement to complete. while (1): status = ad.get_status() if ( status == 0 ): break time.sleep( 1.0 ) # The measurement has completed, so readout the frame and save it. ad.readout_frame( 0 ) ad.correct_frame() image_frame = ad.transfer_frame( 0, image_frame ) image_frame.write_file( Mp.MXT_IMAGE_FILE_RAW_GREY16, filename )