diff --git a/andor-test/05_advanced_parameters.py b/andor-test/05_advanced_parameters.py new file mode 100644 index 0000000..5bdd16b --- /dev/null +++ b/andor-test/05_advanced_parameters.py @@ -0,0 +1,67 @@ +from pylablib.devices.Andor import AndorSDK3Camera + +# 连接相机 +cam = AndorSDK3Camera(idx=0) +cam.open() +print("已连接到相机") + +# 测试1: 触发模式 +print("\n=== 测试1: 触发模式 ===") +print(f"当前触发模式: {cam.get_trigger_mode()}") +cam.set_trigger_mode("int") +print(f"设置为内部触发: {cam.get_trigger_mode()}") +cam.setup_acquisition(mode="snap", nframes=1) +cam.start_acquisition() +cam.wait_for_frame() +frames = cam.read_multiple_images() +cam.stop_acquisition() +print(f"采集成功,图像尺寸: {frames[0].shape}") + +# 测试2: 温度 +print("\n=== 测试2: 温度设置 ===") +print(f"当前温度: {cam.get_temperature()} °C") +print(f"温度设定点: {cam.get_temperature_setpoint()} °C") +print(f"制冷器状态: {cam.is_cooler_on()}") + +# 测试3: 帧周期 +print("\n=== 测试3: 帧周期/帧率 ===") +print(f"当前帧周期: {cam.get_frame_period()} 秒") +frame_timings = cam.get_frame_timings() +print(f"曝光时间: {frame_timings[0]} 秒") +print(f"帧周期: {frame_timings[1]} 秒") + +# 测试4: 曝光时间范围测试 +print("\n=== 测试4: 不同曝光时间 ===") +exposure_times = [0.01, 0.05, 0.1] +for exp in exposure_times: + cam.set_exposure(exp) + actual_exp = cam.get_exposure() + print(f"设置曝光 {exp}s, 实际 {actual_exp}s") + cam.setup_acquisition(mode="snap", nframes=1) + cam.start_acquisition() + cam.wait_for_frame() + frames = cam.read_multiple_images() + cam.stop_acquisition() + print(f" 采集成功,图像尺寸: {frames[0].shape}") + +# 测试5: 元数据 +print("\n=== 测试5: 元数据 ===") +print(f"元数据启用: {cam.is_metadata_enabled()}") + +# 测试6: ROI限制 +print("\n=== 测试6: ROI限制 ===") +roi_limits = cam.get_roi_limits() +print(f"水平ROI限制: min={roi_limits[0].min}, max={roi_limits[0].max}, maxbin={roi_limits[0].maxbin}") +print(f"垂直ROI限制: min={roi_limits[1].min}, max={roi_limits[1].max}, maxbin={roi_limits[1].maxbin}") + +# 测试7: 获取所有属性值 +print("\n=== 测试7: 部分相机属性 ===") +all_attrs = cam.get_all_attribute_values() +important_attrs = ['CameraModel', 'SensorWidth', 'SensorHeight', 'PixelEncoding', 'BitDepth'] +for attr in important_attrs: + if attr in all_attrs: + print(f"{attr}: {all_attrs[attr]}") + +# 断开连接 +cam.close() +print("\n已断开连接")