3using System.Collections.Generic;
4using System.ComponentModel;
10using System.Threading.Tasks;
11using System.Windows.Forms;
12using System.Reflection;
13using System.Diagnostics;
14using System.Collections;
15using System.Configuration;
19 public partial class MicroscopeSetup : Form
24 InitializeComponent();
25 if (!System.IO.Directory.Exists(
Application.StartupPath +
"//" +
"Config"))
26 System.IO.Directory.CreateDirectory(
Application.StartupPath +
"//" +
"Config");
29 simCameraBox.Checked = Properties.Settings.Default.SimulateCamera;
30 if (simCameraBox.Checked)
32 imageLabel.Text = Properties.Settings.Default.SimulatedImage;
33 if(File.Exists(Properties.Settings.Default.SimulatedImage))
34 simImage =
BioImage.OpenFile(Properties.Settings.Default.SimulatedImage).Result;
37 private void Objectives_Load()
39 string st = Application.StartupPath +
"/Config/MicroscopeObjectives.json";
48 objectiveA1Box.Value = (decimal)list[0].AcquisitionExposure;
49 objectiveA2Box.Value = (decimal)list[1].AcquisitionExposure;
50 objectiveA3Box.Value = (decimal)list[2].AcquisitionExposure;
51 objectiveA4Box.Value = (decimal)list[3].AcquisitionExposure;
52 objectiveA5Box.Value = (decimal)list[4].AcquisitionExposure;
53 objectiveA6Box.Value = (decimal)list[5].AcquisitionExposure;
54 if (Microscope.Objectives.List.Count == 7)
55 objectiveA7Box.Value = (decimal)list[6].AcquisitionExposure;
57 objectiveL1Box.Value = (decimal)list[0].LocateExposure;
58 objectiveL2Box.Value = (decimal)list[1].LocateExposure;
59 objectiveL3Box.Value = (decimal)list[2].LocateExposure;
60 objectiveL4Box.Value = (decimal)list[3].LocateExposure;
61 objectiveL5Box.Value = (decimal)list[4].LocateExposure;
62 objectiveL6Box.Value = (decimal)list[5].LocateExposure;
63 if (Microscope.Objectives.List.Count == 7)
64 objectiveL7Box.Value = (decimal)list[6].LocateExposure;
66 Obj1LMove.Value = (decimal)list[0].MoveAmountL;
67 Obj2LMove.Value = (decimal)list[1].MoveAmountL;
68 Obj3LMove.Value = (decimal)list[2].MoveAmountL;
69 Obj4LMove.Value = (decimal)list[3].MoveAmountL;
70 Obj5LMove.Value = (decimal)list[4].MoveAmountL;
71 Obj6LMove.Value = (decimal)list[5].MoveAmountL;
72 if (Microscope.Objectives.List.Count == 7)
73 Obj7LMove.Value = (decimal)list[6].MoveAmountL;
75 Obj1RMove.Value = (decimal)list[0].MoveAmountR;
76 Obj2RMove.Value = (decimal)list[1].MoveAmountR;
77 Obj3RMove.Value = (decimal)list[2].MoveAmountR;
78 Obj4RMove.Value = (decimal)list[3].MoveAmountR;
79 Obj5RMove.Value = (decimal)list[4].MoveAmountR;
80 Obj6RMove.Value = (decimal)list[5].MoveAmountR;
81 if (Microscope.Objectives.List.Count == 7)
82 Obj7RMove.Value = (decimal)list[6].MoveAmountR;
84 Obj1Focus.Value = (decimal)list[0].FocusMoveAmount;
85 Obj2Focus.Value = (decimal)list[1].FocusMoveAmount;
86 Obj3Focus.Value = (decimal)list[2].FocusMoveAmount;
87 Obj4Focus.Value = (decimal)list[3].FocusMoveAmount;
88 Obj5Focus.Value = (decimal)list[4].FocusMoveAmount;
89 Obj6Focus.Value = (decimal)list[5].FocusMoveAmount;
90 if (Microscope.Objectives.List.Count == 7)
91 Obj7Focus.Value = (decimal)list[6].FocusMoveAmount;
94 Obj1Width.Value = (decimal)list[0].ViewWidth;
95 Obj2Width.Value = (decimal)list[1].ViewWidth;
96 Obj3Width.Value = (decimal)list[2].ViewWidth;
97 Obj4Width.Value = (decimal)list[3].ViewWidth;
98 Obj5Width.Value = (decimal)list[4].ViewWidth;
99 Obj6Width.Value = (decimal)list[5].ViewWidth;
100 if (Microscope.Objectives.List.Count == 7)
101 Obj7Width.Value = (decimal)list[6].ViewWidth;
103 Obj1Height.Value = (decimal)list[0].ViewHeight;
104 Obj2Height.Value = (decimal)list[1].ViewHeight;
105 Obj3Height.Value = (decimal)list[2].ViewHeight;
106 Obj4Height.Value = (decimal)list[3].ViewHeight;
107 Obj5Height.Value = (decimal)list[4].ViewHeight;
108 Obj6Height.Value = (decimal)list[5].ViewHeight;
109 if (Microscope.Objectives.List.Count == 7)
110 Obj7Height.Value = (decimal)list[6].ViewHeight;
114 if(Properties.Settings.Default.Setup)
117 Properties.Settings.Default.Setup =
false;
121 private void objectiveA1Box_ValueChanged(
object sender, EventArgs e)
123 Microscope.Objectives.List[0].AcquisitionExposure = (int)objectiveA1Box.Value;
125 private void objectiveA2Box_ValueChanged(
object sender, EventArgs e)
127 Microscope.Objectives.List[1].AcquisitionExposure = (int)objectiveA2Box.Value;
129 private void objectiveA3Box_ValueChanged(
object sender, EventArgs e)
131 Microscope.Objectives.List[2].AcquisitionExposure = (int)objectiveA3Box.Value;
133 private void objectiveA4Box_ValueChanged(
object sender, EventArgs e)
135 Microscope.Objectives.List[3].AcquisitionExposure = (int)objectiveA4Box.Value;
137 private void objectiveA5Box_ValueChanged(
object sender, EventArgs e)
139 Microscope.Objectives.List[4].AcquisitionExposure = (int)objectiveA5Box.Value;
141 private void objectiveA6Box_ValueChanged(
object sender, EventArgs e)
143 Microscope.Objectives.List[5].AcquisitionExposure = (int)objectiveA6Box.Value;
145 private void objectiveA7Box_ValueChanged(
object sender, EventArgs e)
147 Microscope.Objectives.List[6].AcquisitionExposure = (int)objectiveA7Box.Value;
149 private void objectiveL1Box_ValueChanged(
object sender, EventArgs e)
151 Microscope.Objectives.List[0].LocateExposure = (int)objectiveL1Box.Value;
153 private void objectiveL2Box_ValueChanged(
object sender, EventArgs e)
155 Microscope.Objectives.List[1].LocateExposure = (int)objectiveL2Box.Value;
157 private void objectiveL3Box_ValueChanged(
object sender, EventArgs e)
159 Microscope.Objectives.List[2].LocateExposure = (int)objectiveL3Box.Value;
161 private void objectiveL4Box_ValueChanged(
object sender, EventArgs e)
163 Microscope.Objectives.List[3].LocateExposure = (int)objectiveL4Box.Value;
165 private void objectiveL5Box_ValueChanged(
object sender, EventArgs e)
167 Microscope.Objectives.List[4].LocateExposure = (int)objectiveL5Box.Value;
169 private void objectiveL6Box_ValueChanged(
object sender, EventArgs e)
171 Microscope.Objectives.List[5].LocateExposure = (int)objectiveL6Box.Value;
173 private void objectiveL7Box_ValueChanged(
object sender, EventArgs e)
175 Microscope.Objectives.List[6].LocateExposure = (int)objectiveL7Box.Value;
177 private void Obj1RMove_ValueChanged(
object sender, EventArgs e)
179 Microscope.Objectives.List[0].MoveAmountR = (double)Obj1RMove.Value;
181 private void Obj2RMove_ValueChanged(
object sender, EventArgs e)
183 Microscope.Objectives.List[1].MoveAmountR = (double)Obj2RMove.Value;
185 private void Obj3RMove_ValueChanged(
object sender, EventArgs e)
187 Microscope.Objectives.List[2].MoveAmountR = (double)Obj3RMove.Value;
189 private void Obj4RMove_ValueChanged(
object sender, EventArgs e)
191 Microscope.Objectives.List[3].MoveAmountR = (double)Obj4RMove.Value;
193 private void Obj5RMove_ValueChanged(
object sender, EventArgs e)
195 Microscope.Objectives.List[4].MoveAmountR = (double)Obj5RMove.Value;
197 private void Obj6RMove_ValueChanged(
object sender, EventArgs e)
199 Microscope.Objectives.List[5].MoveAmountR = (double)Obj6RMove.Value;
201 private void Obj7RMove_ValueChanged(
object sender, EventArgs e)
203 Microscope.Objectives.List[6].MoveAmountR = (double)Obj7RMove.Value;
205 private void Obj1LMove_ValueChanged(
object sender, EventArgs e)
207 Microscope.Objectives.List[0].MoveAmountL = (double)Obj1LMove.Value;
209 private void Obj2LMove_ValueChanged(
object sender, EventArgs e)
211 Microscope.Objectives.List[1].MoveAmountL = (double)Obj2LMove.Value;
213 private void Obj3LMove_ValueChanged(
object sender, EventArgs e)
215 Microscope.Objectives.List[2].MoveAmountL = (double)Obj3LMove.Value;
217 private void Obj4LMove_ValueChanged(
object sender, EventArgs e)
219 Microscope.Objectives.List[3].MoveAmountL = (double)Obj4LMove.Value;
221 private void Obj5LMove_ValueChanged(
object sender, EventArgs e)
223 Microscope.Objectives.List[4].MoveAmountL = (double)Obj5LMove.Value;
225 private void Obj6LMove_ValueChanged(
object sender, EventArgs e)
227 Microscope.Objectives.List[5].MoveAmountL = (double)Obj6LMove.Value;
229 private void Obj7LMove_ValueChanged(
object sender, EventArgs e)
231 Microscope.Objectives.List[6].MoveAmountL = (double)Obj7LMove.Value;
233 private void Obj1Focus_ValueChanged(
object sender, EventArgs e)
235 Microscope.Objectives.List[0].FocusMoveAmount = (double)Obj1Focus.Value;
237 private void Obj2Focus_ValueChanged(
object sender, EventArgs e)
239 Microscope.Objectives.List[1].FocusMoveAmount = (double)Obj2Focus.Value;
241 private void Obj3Focus_ValueChanged(
object sender, EventArgs e)
243 Microscope.Objectives.List[2].FocusMoveAmount = (double)Obj3Focus.Value;
245 private void Obj4Focus_ValueChanged(
object sender, EventArgs e)
247 Microscope.Objectives.List[3].FocusMoveAmount = (double)Obj4Focus.Value;
249 private void Obj5Focus_ValueChanged(
object sender, EventArgs e)
251 Microscope.Objectives.List[4].FocusMoveAmount = (double)Obj5Focus.Value;
253 private void Obj6Focus_ValueChanged(
object sender, EventArgs e)
255 Microscope.Objectives.List[5].FocusMoveAmount = (double)Obj6Focus.Value;
257 private void Obj7Focus_ValueChanged(
object sender, EventArgs e)
259 Microscope.Objectives.List[6].FocusMoveAmount = (double)Obj7Focus.Value;
261 private void Obj1Width_ValueChanged(
object sender, EventArgs e)
263 Microscope.Objectives.List[0].ViewWidth = (double)Obj1Width.Value;
265 private void Obj2Width_ValueChanged(
object sender, EventArgs e)
267 Microscope.Objectives.List[1].ViewWidth = (double)Obj2Width.Value;
269 private void Obj3Width_ValueChanged(
object sender, EventArgs e)
271 Microscope.Objectives.List[2].ViewWidth = (double)Obj3Width.Value;
273 private void Obj4Width_ValueChanged(
object sender, EventArgs e)
275 Microscope.Objectives.List[3].ViewWidth = (double)Obj4Width.Value;
277 private void Obj5Width_ValueChanged(
object sender, EventArgs e)
279 Microscope.Objectives.List[4].ViewWidth = (double)Obj5Width.Value;
281 private void Obj6Width_ValueChanged(
object sender, EventArgs e)
283 Microscope.Objectives.List[5].ViewWidth = (double)Obj6Width.Value;
285 private void Obj7Width_ValueChanged(
object sender, EventArgs e)
287 Microscope.Objectives.List[6].ViewWidth = (double)Obj7Width.Value;
289 private void Obj1Height_ValueChanged(
object sender, EventArgs e)
291 Microscope.Objectives.List[0].ViewHeight = (double)Obj1Height.Value;
293 private void Obj2Height_ValueChanged(
object sender, EventArgs e)
295 Microscope.Objectives.List[1].ViewHeight = (double)Obj2Height.Value;
297 private void Obj3Height_ValueChanged(
object sender, EventArgs e)
299 Microscope.Objectives.List[2].ViewHeight = (double)Obj3Height.Value;
301 private void Obj4Height_ValueChanged(
object sender, EventArgs e)
303 Microscope.Objectives.List[3].ViewHeight = (double)Obj4Height.Value;
305 private void Obj5Height_ValueChanged(
object sender, EventArgs e)
307 Microscope.Objectives.List[4].ViewHeight = (double)Obj5Height.Value;
309 private void Obj6Height_ValueChanged(
object sender, EventArgs e)
311 Microscope.Objectives.List[5].ViewHeight = (double)Obj6Height.Value;
313 private void Obj7Height_ValueChanged(
object sender, EventArgs e)
315 Microscope.Objectives.List[6].ViewHeight = (double)Obj7Height.Value;
317 private void obj1Name_TextChanged(
object sender, EventArgs e)
319 Microscope.Objectives.List[0].Name = obj1Name.Text;
321 private void obj2Name_TextChanged(
object sender, EventArgs e)
323 Microscope.Objectives.List[1].Name = obj2Name.Text;
325 private void obj3Name_TextChanged(
object sender, EventArgs e)
327 Microscope.Objectives.List[2].Name = obj3Name.Text;
329 private void obj4Name_TextChanged(
object sender, EventArgs e)
331 Microscope.Objectives.List[3].Name = obj4Name.Text;
333 private void obj5Name_TextChanged(
object sender, EventArgs e)
335 Microscope.Objectives.List[4].Name = obj5Name.Text;
337 private void obj6Name_TextChanged(
object sender, EventArgs e)
339 Microscope.Objectives.List[5].Name = obj6Name.Text;
341 private void obj7Name_TextChanged(
object sender, EventArgs e)
343 Microscope.Objectives.List[6].Name = obj7Name.Text;
346 private void UpdateObjectives()
349 Microscope.Objectives.List[0].Name = obj1Name.Text;
350 Microscope.Objectives.List[1].Name = obj2Name.Text;
351 Microscope.Objectives.List[2].Name = obj3Name.Text;
352 Microscope.Objectives.List[3].Name = obj4Name.Text;
353 Microscope.Objectives.List[4].Name = obj5Name.Text;
354 Microscope.Objectives.List[5].Name = obj6Name.Text;
355 if (Microscope.Objectives.List.Count == 7)
356 Microscope.Objectives.List[6].Name = obj7Name.Text;
358 Microscope.Objectives.List[0].AcquisitionExposure = (double)objectiveA1Box.Value;
359 Microscope.Objectives.List[1].AcquisitionExposure = (double)objectiveA2Box.Value;
360 Microscope.Objectives.List[2].AcquisitionExposure = (double)objectiveA3Box.Value;
361 Microscope.Objectives.List[3].AcquisitionExposure = (double)objectiveA4Box.Value;
362 Microscope.Objectives.List[4].AcquisitionExposure = (double)objectiveA5Box.Value;
363 Microscope.Objectives.List[5].AcquisitionExposure = (double)objectiveA6Box.Value;
365 Microscope.Objectives.List[0].LocateExposure = (double)objectiveL1Box.Value;
366 Microscope.Objectives.List[1].LocateExposure = (double)objectiveL2Box.Value;
367 Microscope.Objectives.List[2].LocateExposure = (double)objectiveL3Box.Value;
368 Microscope.Objectives.List[3].LocateExposure = (double)objectiveL4Box.Value;
369 Microscope.Objectives.List[4].LocateExposure = (double)objectiveL5Box.Value;
370 Microscope.Objectives.List[5].LocateExposure = (double)objectiveL6Box.Value;
371 if (Microscope.Objectives.List.Count == 7)
372 Microscope.Objectives.List[6].LocateExposure = (double)objectiveL7Box.Value;
374 Microscope.Objectives.List[0].ViewWidth = (double)Obj1Width.Value;
375 Microscope.Objectives.List[1].ViewWidth = (double)Obj2Width.Value;
376 Microscope.Objectives.List[2].ViewWidth = (double)Obj3Width.Value;
377 Microscope.Objectives.List[3].ViewWidth = (double)Obj4Width.Value;
378 Microscope.Objectives.List[4].ViewWidth = (double)Obj5Width.Value;
379 Microscope.Objectives.List[5].ViewWidth = (double)Obj6Width.Value;
380 if (Microscope.Objectives.List.Count == 7)
381 Microscope.Objectives.List[6].ViewWidth = (double)Obj7Width.Value;
383 Microscope.Objectives.List[0].ViewHeight = (double)Obj1Height.Value;
384 Microscope.Objectives.List[1].ViewHeight = (double)Obj2Height.Value;
385 Microscope.Objectives.List[2].ViewHeight = (double)Obj3Height.Value;
386 Microscope.Objectives.List[3].ViewHeight = (double)Obj4Height.Value;
387 Microscope.Objectives.List[4].ViewHeight = (double)Obj5Height.Value;
388 Microscope.Objectives.List[5].ViewHeight = (double)Obj6Height.Value;
389 if (Microscope.Objectives.List.Count == 7)
390 Microscope.Objectives.List[6].ViewWidth = (double)Obj7Width.Value;
392 Microscope.Objectives.List[0].MoveAmountL = (double)Obj1LMove.Value;
393 Microscope.Objectives.List[1].MoveAmountL = (double)Obj2LMove.Value;
394 Microscope.Objectives.List[2].MoveAmountL = (double)Obj3LMove.Value;
395 Microscope.Objectives.List[3].MoveAmountL = (double)Obj4LMove.Value;
396 Microscope.Objectives.List[4].MoveAmountL = (double)Obj5LMove.Value;
397 Microscope.Objectives.List[5].MoveAmountL = (double)Obj6LMove.Value;
398 if (Microscope.Objectives.List.Count == 7)
399 Microscope.Objectives.List[5].MoveAmountL = (double)Obj6LMove.Value;
401 Microscope.Objectives.List[0].MoveAmountR = (double)Obj1RMove.Value;
402 Microscope.Objectives.List[1].MoveAmountR = (double)Obj2RMove.Value;
403 Microscope.Objectives.List[2].MoveAmountR = (double)Obj3RMove.Value;
404 Microscope.Objectives.List[3].MoveAmountR = (double)Obj4RMove.Value;
405 Microscope.Objectives.List[4].MoveAmountR = (double)Obj5RMove.Value;
406 Microscope.Objectives.List[5].MoveAmountR = (double)Obj6RMove.Value;
407 if (Microscope.Objectives.List.Count == 7)
408 Microscope.Objectives.List[5].MoveAmountR = (double)Obj6RMove.Value;
410 Microscope.Objectives.List[0].FocusMoveAmount = (double)Obj1Focus.Value;
411 Microscope.Objectives.List[1].FocusMoveAmount = (double)Obj2Focus.Value;
412 Microscope.Objectives.List[2].FocusMoveAmount = (double)Obj3Focus.Value;
413 Microscope.Objectives.List[3].FocusMoveAmount = (double)Obj4Focus.Value;
414 Microscope.Objectives.List[4].FocusMoveAmount = (double)Obj5Focus.Value;
415 Microscope.Objectives.List[5].FocusMoveAmount = (double)Obj6Focus.Value;
416 if (Microscope.Objectives.List.Count == 7)
417 Microscope.Objectives.List[6].FocusMoveAmount = (double)Obj7Focus.Value;
419 private void MicroscopeSetup_FormClosing(
object sender, FormClosingEventArgs e)
421 string j = JsonConvert.SerializeObject(Microscope.Objectives.List, Formatting.None);
422 System.IO.File.WriteAllText(
Application.StartupPath +
"/Config/MicroscopeObjectives.json", j);
423 Properties.Settings.Default.Save();
429 private async
void setImageBut_Click(
object sender, EventArgs e)
431 if (openFileDialog.ShowDialog() != DialogResult.OK)
433 Properties.Settings.Default.SimulatedImage = openFileDialog.FileName;
434 Properties.Settings.Default.Save();
438 private void simCameraBox_CheckedChanged(
object sender, EventArgs e)
440 Properties.Settings.Default.SimulateCamera = simCameraBox.Checked;
444 return Properties.Settings.Default.Properties.Cast<SettingsProperty>().Any(prop => prop.Name == settingName);
447 private void SetGetProperty(
object sender, EventArgs e)
449 string name = (string)((Button)sender).Tag;
460 FunctionForm form =
new FunctionForm(f);
461 if (form.ShowDialog() != DialogResult.OK)
465 SettingsProperty sp =
new SettingsProperty(name);
466 sp.DefaultValue = form.Func.Serialize();
468 Properties.Settings.Default.Properties.Add(sp);
472 Properties.Settings.Default[name] = form.Func.Serialize();
477 private void SetProperty(
object sender, EventArgs e)
479 string name = (string)((Button)sender).Tag;
481 if (Function.Functions.ContainsKey(name))
483 f = Function.Functions[name];
490 FunctionForm form =
new FunctionForm(f);
491 if (form.ShowDialog() != DialogResult.OK)
495 SettingsProperty sp =
new SettingsProperty(name);
496 sp.DefaultValue = form.Func.Serialize();
498 Properties.Settings.Default.Properties.Add(sp);
501 Properties.Settings.Default[name] = form.Func.Serialize();
505 private void useLibBox_CheckedChanged(
object sender, EventArgs e)
510 private void setLibBut_Click(
object sender, EventArgs e)
515 private void pythonMicroscopeBut_Click(
object sender, EventArgs e)
517 PythonMicroscope.MicroscopeSetup pm =
new PythonMicroscope.MicroscopeSetup();
System.Windows.Forms.Application Application
static Dictionary< string, Function > Functions
static bool SettingExist(string settingName)