2using System.Collections.Generic;
5using System.Threading.Tasks;
6using System.Globalization;
8using System.Diagnostics;
10using System.Reflection;
19 public static Type stageType;
20 public static Type axisType;
21 public static object xAxis;
22 public static object yAxis;
23 public static double minX;
24 public static double maxX;
25 public static double minY;
26 public static double maxY;
30 PointD d = GetPosition();
52 public int moveWait = 250;
54 private void MoveWait()
56 Thread.Sleep(moveWait);
75 public void SetPositionY(
double py)
80 public double GetPositionX()
85 public double GetPositionY()
90 public PointD GetPosition()
92 return new PointD(x, y);
94 public void MoveUp(
double m)
96 double y = GetPositionY() - m;
99 public void MoveDown(
double m)
101 double y = GetPositionY() + m;
104 public void MoveRight(
double m)
106 double x = GetPositionX() + m;
109 public void MoveLeft(
double m)
111 double x = GetPositionX() - m;
114 public void UpdateSWLimit()
118 public void SetSWLimit(
double xmin,
double xmax,
double ymin,
double ymax)
124 public static Type focusType;
125 public static Type axisType;
126 public static object focus;
127 public static double upperLimit;
128 public static double lowerLimit;
129 private static double z;
133 public void SetFocus(
double f)
136 public double GetFocus()
140 public PointD GetSWLimit()
142 return new PointD(lowerLimit, upperLimit);
144 public void SetSWLimit(
double xd,
double yd)
154 public List<Objective> List =
new List<Objective>();
155 public static Type changerType =
null;
156 public static object changer;
164 public Dictionary<string, object> config =
new Dictionary<string, object>();
165 public string Name =
"";
166 public string UniqueName =
"";
167 public string ElementType =
"";
168 public bool Oil =
false;
169 public int Magnification = 0;
170 public float NumericAperture = 0;
172 public string Modes =
"";
173 public string Features =
"";
174 public double LocateExposure = 50;
175 public int WorkingDistance = 0;
176 public double AcquisitionExposure = 50;
177 public string Configuration =
"";
178 public double MoveAmountL = 40;
179 public double MoveAmountR = 10;
180 public double FocusMoveAmount = 0.02;
181 public double ViewWidth;
182 public double ViewHeight;
190 public override string ToString()
192 return Name.ToString() +
" " + Index;
196 public int moveWait = 1000;
197 private void MoveWait()
199 Thread.Sleep(moveWait);
205 return GetPosition();
212 public void SetPosition(
int index)
216 public int GetPosition()
220 public Objective GetObjective()
246 public static Type tlType;
247 public static object tlShutter =
null;
248 public static int position;
253 public short GetPosition()
255 return (
short)position;
257 public void SetPosition(
int p)
266 public static Type rlType;
267 public static object rlShutter =
null;
268 public static int position;
272 public short GetPosition()
274 return (
short)position;
276 public void SetPosition(
int p)
282 public static class Microscope
302 public static bool redraw =
false;
303 public static Focus Focus =
null;
304 public static Stage Stage =
null;
305 public static Objectives Objectives =
null;
306 public static TLShutter TLShutter =
null;
307 public static RLShutter RLShutter =
null;
308 public static double UpperLimit, LowerLimit, fInterVal;
309 public static object CmdSetMode =
null;
310 public static bool initialized =
false;
311 public static bool ArrowKeysEnabled =
true;
312 public static Point3D defaultPos =
new Point3D(30000, 30000, 23900);
313 public static Assembly dll =
null;
314 public static Dictionary<string, Type> Types =
new Dictionary<string, Type>();
315 public static object root =
null;
320 public static void Initialize()
324 Point3D.SetLimits(Stage.minX, Stage.maxX, Stage.minY, Stage.maxY, Focus.lowerLimit, Focus.upperLimit);
325 PointD.SetLimits(Stage.minX, Stage.maxX, Stage.minY, Stage.maxY);
328 Objectives =
new Objectives();
329 TLShutter =
new TLShutter();
330 RLShutter =
new RLShutter();
337 public static Point3D GetPosition()
340 return new Point3D(0,0,0);
341 PointD p = Stage.GetPosition();
342 double f = Focus.GetFocus();
343 return new Point3D(p.X, p.Y, f);
349 public static void SetPosition(Point3D p)
351 Stage.SetPosition(p.X,p.Y);
353 Microscope.redraw =
true;
360 public static void SetPosition(PointD p)
362 Stage.SetPosition(p.X, p.Y);
363 Microscope.redraw =
true;
366 public static void OpenRL()
369 if (RLShutter.GetPosition() == 0)
370 RLShutter.SetPosition(1);
374 public static void OpenTL()
377 if (TLShutter.GetPosition() == 0)
378 TLShutter.SetPosition(1);
382 public static void CloseRL()
385 if (RLShutter.GetPosition() == 0)
386 RLShutter.SetPosition(1);
390 public static void CloseTL()
393 if (TLShutter.GetPosition() == 0)
394 TLShutter.SetPosition(1);
400 public static void SetTL(uint tl)
402 TLShutter.SetPosition((
short)tl);
409 public static void SetRL(uint tr)
411 RLShutter.SetPosition((
short)tr);
417 public static int GetTL()
419 return TLShutter.GetPosition();
425 public static int GetRL()
427 return RLShutter.GetPosition();
433 public static void MoveUp(
double d)
441 public static void MoveRight(
double d)
449 public static void MoveDown(
double d)
457 public static void MoveLeft(
double d)
462 public static void MoveFieldUp()
464 Stage.MoveUp(Objectives.GetObjective().ViewHeight);
468 public static void MoveFieldRight()
470 Stage.MoveRight(Objectives.GetObjective().ViewWidth);
474 public static void MoveFieldDown()
476 Stage.MoveDown(Objectives.GetObjective().ViewHeight);
480 public static void MoveFieldLeft()
482 Stage.MoveLeft(Objectives.GetObjective().ViewWidth);
488 public static void SetFocus(
double d)
496 public static double GetFocus()
498 return Focus.GetFocus();
void SetPositionX(double px)
void SetPosition(double px, double py)