BioImager  5.0.0
A .NET microscopy imaging application based on Bio library. Supports various microscopes by using imported libraries & GUI automation. Supports XInput game controllers to move stage, take images, run ImageJ macros on images or Bio C# scripts.
Loading...
Searching...
No Matches
_SDK3Cam.py
Go to the documentation of this file.
1#!/usr/bin/env python3
2
3
21
22from microscope.cameras import _SDK3 as SDK3
23
24
26 def connect(self, handle, propertyName):
27 self.handle = handle
28 self.propertyName = propertyName
29
30 def isImplemented(self):
31 return SDK3.IsImplemented(self.handle, self.propertyName).value
32
33 def isReadable(self):
34 return SDK3.IsReadable(self.handle, self.propertyName).value
35
36 def isWritable(self):
37 return SDK3.IsWritable(self.handle, self.propertyName).value
38
39 def isReadOnly(self):
40 return SDK3.IsReadOnly(self.handle, self.propertyName).value
41
42
44 def getValue(self):
45 return SDK3.GetInt(self.handlehandle, self.propertyNamepropertyName).value
46
47 def setValue(self, val):
48 SDK3.SetInt(self.handlehandle, self.propertyNamepropertyName, val)
49
50 def max(self):
51 return SDK3.GetIntMax(self.handlehandle, self.propertyNamepropertyName).value
52
53 def min(self):
54 return SDK3.GetIntMin(self.handlehandle, self.propertyNamepropertyName).value
55
56
58 def getValue(self):
59 return SDK3.GetBool(self.handlehandle, self.propertyNamepropertyName).value > 0
60
61 def setValue(self, val):
62 SDK3.SetBool(self.handlehandle, self.propertyNamepropertyName, val)
63
64
66 def getValue(self):
67 return SDK3.GetFloat(self.handlehandle, self.propertyNamepropertyName).value
68
69 def setValue(self, val):
70 SDK3.SetFloat(self.handlehandle, self.propertyNamepropertyName, val)
71
72 def max(self):
73 return SDK3.GetFloatMax(self.handlehandle, self.propertyNamepropertyName).value
74
75 def min(self):
76 return SDK3.GetFloatMin(self.handlehandle, self.propertyNamepropertyName).value
77
78
80 def getValue(self):
81 return SDK3.GetString(self.handlehandle, self.propertyNamepropertyName, 255).value
82
83 def setValue(self, val):
84 SDK3.SetString(self.handlehandle, self.propertyNamepropertyName, val)
85
86 def maxLength(self):
87 return SDK3.GetStringMaxLength(self.handlehandle, self.propertyNamepropertyName).value
88
89
91 def getIndex(self):
92 return SDK3.GetEnumIndex(self.handlehandle, self.propertyNamepropertyName).value
93
94 def setIndex(self, val):
95 SDK3.SetEnumIndex(self.handlehandle, self.propertyNamepropertyName, val)
96
97 def getString(self):
98 return self.__getitem__(self.getIndex())
99
100 def setString(self, val):
101 SDK3.SetEnumString(self.handlehandle, self.propertyNamepropertyName, val)
102
103 def __len__(self):
104 return SDK3.GetEnumCount(self.handlehandle, self.propertyNamepropertyName).value
105
106 def __getitem__(self, key):
107 return SDK3.GetEnumStringByIndex(
108 self.handlehandle, self.propertyNamepropertyName, key, 255
109 ).value
110
112 n = SDK3.GetEnumCount(self.handlehandle, self.propertyNamepropertyName).value
113 return [
114 SDK3.GetEnumStringByIndex(
115 self.handlehandle, self.propertyNamepropertyName, i, 255
116 ).value
117 for i in range(n)
118 if SDK3.IsEnumIndexAvailable(
120 ).value
121 ]
122
124 n = SDK3.GetEnumCount(self.handlehandle, self.propertyNamepropertyName).value
125 return {
126 i: SDK3.GetEnumStringByIndex(
127 self.handlehandle, self.propertyNamepropertyName, i, 255
128 ).value
129 for i in range(n)
130 if SDK3.IsEnumIndexAvailable(
132 ).value
133 }
134
135
137 def __call__(self):
138 return SDK3.Command(self.handlehandle, self.propertyNamepropertyName)
139
140
141class camReg:
142 # keep track of the number of cameras initialised so we can initialise and finalise the library
143 numCameras = 0
144
145 @classmethod
146 def regCamera(cls):
147 if cls.numCameras == 0:
148 SDK3.InitialiseLibrary()
149
150 cls.numCameras += 1
151
152 @classmethod
153 def unregCamera(cls):
154 cls.numCameras -= 1
155 if cls.numCameras == 0:
156 SDK3.FinaliseLibrary()
157
158
159# make sure the library is intitalised
160camReg.regCamera()
161
162
164 return SDK3.GetInt(SDK3.AT_HANDLE_SYSTEM, "DeviceCount").value
165
166
168 return SDK3.GetString(SDK3.AT_HANDLE_SYSTEM, "SoftwareVersion", 255)
169
170
172 def __init__(self, camNum):
173 """camera initialisation - note that this should be called from derived classes
174 *AFTER* the properties have been defined"""
175 # camReg.regCamera() #initialise the library if needed
176 self.camNum = camNum
177
178 def Init(self):
179 self.handle = SDK3.Open(self.camNum)
180 self.connectProperties()
181
183 for name, var in self.__dict__.items():
184 if isinstance(var, ATProperty):
185 var.connect(self.handle, name)
186
187 def shutdown(self):
188 SDK3.Close(self.handle)
189 # camReg.unregCamera()
connect(self, handle, propertyName)
Definition _SDK3Cam.py:26