Skip to content

Commit

Permalink
fix hardware for Zulex camera
Browse files Browse the repository at this point in the history
  • Loading branch information
zhengpuas47 committed Jul 21, 2023
1 parent 7d9480a commit 6345a14
Show file tree
Hide file tree
Showing 8 changed files with 1,304 additions and 79 deletions.
261 changes: 261 additions & 0 deletions jupyter/Test_hardwares/UC480_camera_test.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,261 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import ctypes\n",
"import ctypes.util\n",
"import ctypes.wintypes\n",
"import numpy\n",
"import os\n",
"import sys\n",
"import time"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Volume in drive C is OS\n",
" Volume Serial Number is 66FF-ED43\n",
"\n",
" Directory of c:\\Softwares\\Github\\MerScope01\\storm_control\\sc_hardware\\thorlabs\n",
"\n",
"07/17/2023 03:09 AM <DIR> .\n",
"07/17/2023 03:09 AM <DIR> ..\n",
"03/28/2023 08:51 PM 19 __init__.py\n",
"07/17/2023 03:36 AM <DIR> __pycache__\n",
"03/28/2023 08:51 PM 3,044 FW102C.py\n",
"03/28/2023 08:51 PM 2,093 FW102CModule.py\n",
"03/28/2023 08:51 PM 1,923 installing_pyAPT.txt\n",
"03/28/2023 08:51 PM 5,432 LDC210.py\n",
"03/28/2023 08:51 PM 2,385 LDCModule.py\n",
"03/28/2023 08:51 PM 2,487 mgmotorAX.py\n",
"03/28/2023 08:51 PM 7,282 PDQ80S1.py\n",
"03/28/2023 08:51 PM 3,339 PM100.py\n",
"03/28/2023 08:51 PM 3,275 settings.tcp\n",
"03/28/2023 08:51 PM 2,630 TPZ001.py\n",
"06/11/2021 05:51 PM 10,068,008 uc480_64.dll\n",
"07/17/2023 02:49 AM 2,926 uc480_settings.ini\n",
"07/17/2023 03:18 AM 27,221 uc480Camera.py\n",
"03/28/2023 08:51 PM 9,411 uc480CameraModule.py\n",
" 15 File(s) 10,141,475 bytes\n",
" 3 Dir(s) 695,261,057,024 bytes free\n"
]
}
],
"source": [
"ls ..\\..\\storm_control\\sc_hardware\\thorlabs"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"sys.path.append(r\"..\\..\\storm_control\\sc_hardware\\thorlabs\")\n",
"sys.path.append(r\"..\\..\")\n",
"from uc480Camera import Camera, loadDLL"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"global uc480\n",
"loadDLL(r\"C:\\Program Files\\Thorlabs\\Scientific Imaging\\ThorCam\\uc480_64.dll\")"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"ename": "OSError",
"evalue": "cannot load library 'C:\\Windows\\system32\\uc480_64.dll': error 0x45a",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mOSError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[24], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39minstrumental\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdrivers\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcameras\u001b[39;00m \u001b[39mimport\u001b[39;00m uc480\n",
"File \u001b[1;32mc:\\Users\\Weissman_Lab\\.conda\\envs\\halenv\\lib\\site-packages\\instrumental\\drivers\\cameras\\uc480.py:32\u001b[0m\n\u001b[0;32m 29\u001b[0m _INST_PARAMS \u001b[39m=\u001b[39m [\u001b[39m'\u001b[39m\u001b[39mserial\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mid\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mmodel\u001b[39m\u001b[39m'\u001b[39m]\n\u001b[0;32m 30\u001b[0m _INST_CLASSES \u001b[39m=\u001b[39m [\u001b[39m'\u001b[39m\u001b[39mUC480_Camera\u001b[39m\u001b[39m'\u001b[39m]\n\u001b[1;32m---> 32\u001b[0m info \u001b[39m=\u001b[39m load_lib(\u001b[39m'\u001b[39;49m\u001b[39muc480\u001b[39;49m\u001b[39m'\u001b[39;49m, __package__)\n\u001b[0;32m 33\u001b[0m ffi \u001b[39m=\u001b[39m info\u001b[39m.\u001b[39m_ffi\n\u001b[0;32m 35\u001b[0m __all__ \u001b[39m=\u001b[39m [\u001b[39m'\u001b[39m\u001b[39mUC480_Camera\u001b[39m\u001b[39m'\u001b[39m]\n",
"File \u001b[1;32mc:\\Users\\Weissman_Lab\\.conda\\envs\\halenv\\lib\\site-packages\\nicelib\\__init__.py:69\u001b[0m, in \u001b[0;36mload_lib\u001b[1;34m(name, pkg, dir, builder, kwargs)\u001b[0m\n\u001b[0;32m 67\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m 68\u001b[0m log\u001b[39m.\u001b[39minfo(\u001b[39m'\u001b[39m\u001b[39mLoading \u001b[39m\u001b[39m%s\u001b[39;00m\u001b[39m from \u001b[39m\u001b[39m%s\u001b[39;00m\u001b[39m...\u001b[39m\u001b[39m'\u001b[39m, lib_name, pkg)\n\u001b[1;32m---> 69\u001b[0m lib_module \u001b[39m=\u001b[39m import_module(lib_name, pkg)\n\u001b[0;32m 70\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mImportError\u001b[39;00m:\n\u001b[0;32m 71\u001b[0m \u001b[39mif\u001b[39;00m builder \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n",
"File \u001b[1;32mc:\\Users\\Weissman_Lab\\.conda\\envs\\halenv\\lib\\importlib\\__init__.py:126\u001b[0m, in \u001b[0;36mimport_module\u001b[1;34m(name, package)\u001b[0m\n\u001b[0;32m 124\u001b[0m \u001b[39mbreak\u001b[39;00m\n\u001b[0;32m 125\u001b[0m level \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m \u001b[39m1\u001b[39m\n\u001b[1;32m--> 126\u001b[0m \u001b[39mreturn\u001b[39;00m _bootstrap\u001b[39m.\u001b[39;49m_gcd_import(name[level:], package, level)\n",
"File \u001b[1;32mc:\\Users\\Weissman_Lab\\.conda\\envs\\halenv\\lib\\site-packages\\instrumental\\drivers\\cameras\\_uc480lib.py:21\u001b[0m\n\u001b[0;32m 19\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39m'\u001b[39m\u001b[39mC:\u001b[39m\u001b[39m\\\\\u001b[39;00m\u001b[39mWindows\u001b[39m\u001b[39m\\\\\u001b[39;00m\u001b[39msystem32\u001b[39m\u001b[39m'\u001b[39m:\n\u001b[0;32m 20\u001b[0m os\u001b[39m.\u001b[39mchdir(\u001b[39m'\u001b[39m\u001b[39mC:\u001b[39m\u001b[39m\\\\\u001b[39;00m\u001b[39mWindows\u001b[39m\u001b[39m\\\\\u001b[39;00m\u001b[39msystem32\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m---> 21\u001b[0m lib \u001b[39m=\u001b[39m ffi\u001b[39m.\u001b[39;49mdlopen(\u001b[39m'\u001b[39;49m\u001b[39mC:\u001b[39;49m\u001b[39m\\\\\u001b[39;49;00m\u001b[39mWindows\u001b[39;49m\u001b[39m\\\\\u001b[39;49;00m\u001b[39msystem32\u001b[39;49m\u001b[39m\\\\\u001b[39;49;00m\u001b[39muc480_64.dll\u001b[39;49m\u001b[39m'\u001b[39;49m)\n\u001b[0;32m 22\u001b[0m os\u001b[39m.\u001b[39mchdir(_old_curdir)\n\u001b[0;32m 24\u001b[0m \u001b[39m# Generated macro definitions\u001b[39;00m\n",
"\u001b[1;31mOSError\u001b[0m: cannot load library 'C:\\Windows\\system32\\uc480_64.dll': error 0x45a"
]
}
],
"source": [
"from instrumental.drivers.cameras import uc480\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"ename": "OSError",
"evalue": "cannot load library 'C:\\Windows\\system32\\uc480_64.dll': error 0x45a",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mOSError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[23], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39minstrumental\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdrivers\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcameras\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39muc480\u001b[39;00m \u001b[39mimport\u001b[39;00m UC480_Camera\n",
"File \u001b[1;32mc:\\Users\\Weissman_Lab\\.conda\\envs\\halenv\\lib\\site-packages\\instrumental\\drivers\\cameras\\uc480.py:32\u001b[0m\n\u001b[0;32m 29\u001b[0m _INST_PARAMS \u001b[39m=\u001b[39m [\u001b[39m'\u001b[39m\u001b[39mserial\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mid\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mmodel\u001b[39m\u001b[39m'\u001b[39m]\n\u001b[0;32m 30\u001b[0m _INST_CLASSES \u001b[39m=\u001b[39m [\u001b[39m'\u001b[39m\u001b[39mUC480_Camera\u001b[39m\u001b[39m'\u001b[39m]\n\u001b[1;32m---> 32\u001b[0m info \u001b[39m=\u001b[39m load_lib(\u001b[39m'\u001b[39;49m\u001b[39muc480\u001b[39;49m\u001b[39m'\u001b[39;49m, __package__)\n\u001b[0;32m 33\u001b[0m ffi \u001b[39m=\u001b[39m info\u001b[39m.\u001b[39m_ffi\n\u001b[0;32m 35\u001b[0m __all__ \u001b[39m=\u001b[39m [\u001b[39m'\u001b[39m\u001b[39mUC480_Camera\u001b[39m\u001b[39m'\u001b[39m]\n",
"File \u001b[1;32mc:\\Users\\Weissman_Lab\\.conda\\envs\\halenv\\lib\\site-packages\\nicelib\\__init__.py:69\u001b[0m, in \u001b[0;36mload_lib\u001b[1;34m(name, pkg, dir, builder, kwargs)\u001b[0m\n\u001b[0;32m 67\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m 68\u001b[0m log\u001b[39m.\u001b[39minfo(\u001b[39m'\u001b[39m\u001b[39mLoading \u001b[39m\u001b[39m%s\u001b[39;00m\u001b[39m from \u001b[39m\u001b[39m%s\u001b[39;00m\u001b[39m...\u001b[39m\u001b[39m'\u001b[39m, lib_name, pkg)\n\u001b[1;32m---> 69\u001b[0m lib_module \u001b[39m=\u001b[39m import_module(lib_name, pkg)\n\u001b[0;32m 70\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mImportError\u001b[39;00m:\n\u001b[0;32m 71\u001b[0m \u001b[39mif\u001b[39;00m builder \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n",
"File \u001b[1;32mc:\\Users\\Weissman_Lab\\.conda\\envs\\halenv\\lib\\importlib\\__init__.py:126\u001b[0m, in \u001b[0;36mimport_module\u001b[1;34m(name, package)\u001b[0m\n\u001b[0;32m 124\u001b[0m \u001b[39mbreak\u001b[39;00m\n\u001b[0;32m 125\u001b[0m level \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m \u001b[39m1\u001b[39m\n\u001b[1;32m--> 126\u001b[0m \u001b[39mreturn\u001b[39;00m _bootstrap\u001b[39m.\u001b[39;49m_gcd_import(name[level:], package, level)\n",
"File \u001b[1;32mc:\\Users\\Weissman_Lab\\.conda\\envs\\halenv\\lib\\site-packages\\instrumental\\drivers\\cameras\\_uc480lib.py:21\u001b[0m\n\u001b[0;32m 19\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39m'\u001b[39m\u001b[39mC:\u001b[39m\u001b[39m\\\\\u001b[39;00m\u001b[39mWindows\u001b[39m\u001b[39m\\\\\u001b[39;00m\u001b[39msystem32\u001b[39m\u001b[39m'\u001b[39m:\n\u001b[0;32m 20\u001b[0m os\u001b[39m.\u001b[39mchdir(\u001b[39m'\u001b[39m\u001b[39mC:\u001b[39m\u001b[39m\\\\\u001b[39;00m\u001b[39mWindows\u001b[39m\u001b[39m\\\\\u001b[39;00m\u001b[39msystem32\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m---> 21\u001b[0m lib \u001b[39m=\u001b[39m ffi\u001b[39m.\u001b[39;49mdlopen(\u001b[39m'\u001b[39;49m\u001b[39mC:\u001b[39;49m\u001b[39m\\\\\u001b[39;49;00m\u001b[39mWindows\u001b[39;49m\u001b[39m\\\\\u001b[39;49;00m\u001b[39msystem32\u001b[39;49m\u001b[39m\\\\\u001b[39;49;00m\u001b[39muc480_64.dll\u001b[39;49m\u001b[39m'\u001b[39;49m)\n\u001b[0;32m 22\u001b[0m os\u001b[39m.\u001b[39mchdir(_old_curdir)\n\u001b[0;32m 24\u001b[0m \u001b[39m# Generated macro definitions\u001b[39;00m\n",
"\u001b[1;31mOSError\u001b[0m: cannot load library 'C:\\Windows\\system32\\uc480_64.dll': error 0x45a"
]
}
],
"source": [
"from instrumental.drivers.cameras.uc480 import UC480_Camera\n",
"a"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"uc480: Call failed with error 3 is_InitCamera\n",
"uc480: Call failed with error 1 is_GetSensorInfo\n",
"uc480: Call failed with error 1 is_SetColorMode\n",
"uc480: Call failed with error 1 is_SetGainBoost\n",
"uc480: Call failed with error 1 is_SetGamma\n",
"uc480: Call failed with error 1 is_SetHardwareGain\n",
"uc480 used default settings.\n",
"uc480: Call failed with error 1 is_AllocImageMem\n",
"uc480: Call failed with error 1 is_SetImageMem\n"
]
}
],
"source": [
"cam = Camera(1)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"uc480: Call failed with error 1 is_SetFrameRate\n",
"1000\n",
"c_double(0.0)\n",
"uc480: Set frame rate to 0.00 FPS\n"
]
}
],
"source": [
"cam.setFrameRate(verbose=True)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'cam' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[26], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m cam\u001b[39m.\u001b[39mis_InitCamera()\n",
"\u001b[1;31mNameError\u001b[0m: name 'cam' is not defined"
]
}
],
"source": [
"cam.is_InitCamera()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"ctypes.CDLL"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(uc480)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "halenv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.12"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}
Loading

0 comments on commit 6345a14

Please sign in to comment.