feat: add andor test 1

This commit is contained in:
2025-12-04 16:31:02 +08:00
parent 262583a57f
commit 04df3eeee9
20 changed files with 181 additions and 0 deletions

2
.gitattributes vendored Normal file
View File

@@ -0,0 +1,2 @@
*.dll filter=lfs diff=lfs merge=lfs -text
*.lib filter=lfs diff=lfs merge=lfs -text

View File

@@ -0,0 +1,137 @@
"""
Test 01: SDK Initialization and Device Discovery
测试SDK初始化和设备发现功能
This script tests:
1. Loading the Andor SDK3 DLL
2. Initializing the SDK library
3. Getting the number of connected cameras
4. Finalizing the SDK library
"""
import ctypes
import os
import sys
# Constants from atcore.h
AT_SUCCESS = 0
AT_HANDLE_SYSTEM = 1
AT_ERR_NOTINITIALISED = 1
AT_ERR_DEVICENOTFOUND = 39
# DLL path - relative to script location
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
LIBS_PATH = os.path.join(SCRIPT_DIR, "libs")
DLL_NAME = "atcore.dll"
def test_init_and_discover():
"""Test SDK initialization and device discovery."""
print("=" * 60)
print("Test 01: SDK Initialization and Device Discovery")
print("=" * 60)
print()
# Step 1: Load DLL
print("[1/4] Loading Andor SDK DLL...")
try:
# Add libs directory to DLL search path
if not os.path.exists(LIBS_PATH):
print(f"❌ Error: libs folder not found at {LIBS_PATH}")
return False
# For Windows, add the directory to DLL search path
if sys.platform == 'win32':
if hasattr(os, 'add_dll_directory'):
# Python 3.8+
os.add_dll_directory(LIBS_PATH)
else:
# Python 3.7 and earlier
os.environ['PATH'] = LIBS_PATH + os.pathsep + os.environ.get('PATH', '')
dll_path = os.path.join(LIBS_PATH, DLL_NAME)
if not os.path.exists(dll_path):
print(f"❌ Error: DLL not found at {dll_path}")
return False
atcore = ctypes.cdll.LoadLibrary(dll_path)
print(f"✓ DLL loaded successfully: {dll_path}")
except Exception as e:
print(f"❌ Error loading DLL: {e}")
return False
print()
# Step 2: Initialize SDK
print("[2/4] Initializing SDK library...")
try:
ret = atcore.AT_InitialiseLibrary()
if ret != AT_SUCCESS:
print(f"❌ Failed to initialize library, error code: {ret}")
return False
print("✓ SDK library initialized successfully")
except Exception as e:
print(f"❌ Error during initialization: {e}")
return False
print()
# Step 3: Get device count
print("[3/4] Detecting connected cameras...")
try:
device_count = ctypes.c_longlong(0)
ret = atcore.AT_GetInt(
AT_HANDLE_SYSTEM,
"Device Count".encode('utf-16le') + b'\x00\x00',
ctypes.byref(device_count)
)
if ret != AT_SUCCESS:
print(f"❌ Failed to get device count, error code: {ret}")
else:
print(f"✓ Device count retrieved successfully")
print(f" Number of cameras detected: {device_count.value}")
if device_count.value == 0:
print(" ⚠ Warning: No cameras detected!")
elif device_count.value > 0:
print(f" ✓ Found {device_count.value} camera(s)")
except Exception as e:
print(f"❌ Error getting device count: {e}")
device_count = None
print()
# Step 4: Finalize SDK
print("[4/4] Finalizing SDK library...")
try:
ret = atcore.AT_FinaliseLibrary()
if ret != AT_SUCCESS:
print(f"❌ Failed to finalize library, error code: {ret}")
return False
print("✓ SDK library finalized successfully")
except Exception as e:
print(f"❌ Error during finalization: {e}")
return False
print()
print("=" * 60)
# Summary
if device_count is not None and device_count.value > 0:
print("✓ TEST PASSED: SDK initialization and device discovery successful")
print(f" {device_count.value} camera(s) detected")
return True
elif device_count is not None and device_count.value == 0:
print("⚠ TEST COMPLETED WITH WARNING: SDK works but no cameras detected")
print(" This is normal if no camera is connected")
return True
else:
print("❌ TEST FAILED: Could not complete device discovery")
return False
if __name__ == "__main__":
success = test_init_and_discover()
sys.exit(0 if success else 1)

BIN
andor-test/libs/atblkbx.dll LFS Normal file

Binary file not shown.

BIN
andor-test/libs/atcl_bitflow.dll LFS Normal file

Binary file not shown.

BIN
andor-test/libs/atcore.dll LFS Normal file

Binary file not shown.

BIN
andor-test/libs/atcorem.lib LFS Normal file

Binary file not shown.

BIN
andor-test/libs/atdevapogee.dll LFS Normal file

Binary file not shown.

BIN
andor-test/libs/atdevregcam.dll LFS Normal file

Binary file not shown.

BIN
andor-test/libs/atdevsimcam.dll LFS Normal file

Binary file not shown.

BIN
andor-test/libs/atmcd64d.dll LFS Normal file

Binary file not shown.

BIN
andor-test/libs/atmcd64m.lib LFS Normal file

Binary file not shown.

BIN
andor-test/libs/atspooler.dll LFS Normal file

Binary file not shown.

BIN
andor-test/libs/atusb_libusb.dll LFS Normal file

Binary file not shown.

Binary file not shown.

BIN
andor-test/libs/atutility.dll LFS Normal file

Binary file not shown.

BIN
andor-test/libs/atutilitym.lib LFS Normal file

Binary file not shown.