asarnow / lui Goto Github PK
View Code? Open in Web Editor NEWLaser User Interface
License: GNU General Public License v3.0
Laser User Interface
License: GNU General Public License v3.0
The Alignment classes and ParentForm UI elements are deprecated and should be removed.
LuiObjects (instrument classes) are already interdependent in some cases (GPIB). The parameters and configuration must be refactored to reflect this.
Need:
Need persistent application and device settings.
Need to allow saving of blanks to make SpecControl, CalibrateControl more convenient.
desired default: 1/2 flash trans 1/2 flash
desired other options:
a. flash trans, trans, trans, .......
b. flash, trans, flash, trans, flash, trans,
c. flash, trans, trans, trans .... flash
gravy options
d. CD = (right - left)/(right+left)
See title.
Currently missing
Choose pump never, always or TS only, and whether to discard first acquisition from TroaControl
Save button is disabled and data management logic is missing.
Need to investigate.
The number of scans is now used as the dummy value (fist/top left element) in TROA data matrices.
ClearData, etc. should result in only the respective layer being clear for the next paint call.
Currently, they are disposing the layer, resulting in 1) reallocation and 2) exceptions if clear is called without invalidating.
In other words, the sequence ClearData;DrawPoints;Invalidate needs to be allowed as well as ClearData;Invalidate;DrawPoints;Invalidate as currently required.
Need logging statements to go somewhere.
GPIB SDK-specific code needs to be refactored from the DDG classes to a GPIBProvider class, so that arbitrary GPIB controllers can be used with the DDG.
Letting the BF controller "ping-pong" can interfere with the optical path during acquisition.
Certain methods in lasercom objects should be wrapped in exclusive locks. At least:
unsigned int WINAPI GetMaximumBinning (int ReadMode, int HorzVert, int* MaxBinning)
Pausing is useful to refill the pump or otherwise mess with things.
See title.
The most important control!
LaserPower needs to be finished.
Data should be a difference spectrum from which photolysis yield can be computed and optimal laser power selected.
It would be nice to zoom into the spectra y-axis because the noise is pretty expansive.
Should InitDataFile each time DoWork called, but overwrite file unless data is saved.
The indications move strangely due to line 397. Need to fix.
Also, need to add numerical indications (possibly use NScans NumericUpDown to count scans while disabled).
All DDG objects should have a primary delay property linked to the appropriate delay, to avoid having to cast to a particular DDG when incrementing delay times.
Need to throw an exception when camera pixel is saturated. Catching exception should pause a running TROA and cancel anything else.
Completed scans aren't updated for last set.
DetectorTester can leave processes hanging around even after exit. They can use ~12% CPU each...
Need to investigate this bug - does it affect LUI?
This might be the clue: https://stackoverflow.com/questions/5088953/closing-main-form-doesnt-finish-process-in-windows-7
When handling apply, should sanity check the configuration and error back to the configuration page if issues are detected.
We use Knuth/Welford to compute the means and variances.
Should add something to the home tab of the ParentForm. Welcome msg. and common functions?
Plan, BeamFlag example:
class LUIConfigurator - ListView, Add/Remove buttons, panel area
class BeamFlagConfigurator : LUIConfigurator - type selector, panels to hide show class specific options
OnApply - instantiate the configured items using Factory classes / Activator
Need this control!
In some LuiTab OnLoad methods, HandlePumpChanged was subscribed after base.OnLoad. HandleParametersChanged is called in the base method and was thus called before the subscription.
The event is now subscribed before calling base.OnLoad
TroaControl, SpecControl, ResidualsControl.
CameraStatus textbox in TroaControl was orphaned. Needs to be moved to LuiTab and added to StatusBox along with CameraStatusLabel.
All tabs will then need to update this from their WorkProgress methods (as should be done with the default LuiTab.WorkProgress).
See title
Show std / mean as percentage during residuals.
Needs an option.
This class and all methods must be completed and debugged.
TemperatureCts set null at some point?
desired default -- only closed during flash
option --- close between flashes.
pump option.
Should get the actual version from somewhere.
Scan counters need to be updated properly in all LUI tabs. Progress bar should be removed.
Work methods creating temporary files should be cleaned if requested.
Implement complex data management
Need to set ImageArea based on active (intensified) area. Need to replace references to Camera.Width with ImageArea.Width.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.