Assistant Programmer
Government contractor that create machines and program to scans solid materials with Sonic sound wave to search for interior cracks.
Cuda Kernal for FFT:
Improvement: Use Nvidia GPU to processing 1-D Fast Fourier transform faster than the CPU
-Created Kernals and methods to be used in DLL
-Created a wrapper in the main program to use the DLL
-Memory Allocating and Deallocating
-Data transferring from Host to Device and vice versa
-Threading the GPU for the kernal even for size more than the GPU cells
Multiple Axis Movement control:
Improvement: Created a form that allows the user to move multiple motors at the same time and travels in a spline.
-Integrated Math Dot Net and Use their spline codes
-Have 3 different splines: Cubic, Linear, and Akima
-User can move the motor to wanted position and click on a button to record the intended points
-Allows the user to move to the wanted position directly or follow the path on the spline
-Created points can be saved and loaded into file
-Able to preview what the spline will look like by selecting which motor would be the x and y
3D display:
Improvements: Using Windows Presentation Foundation to create a 3D model of the scans.
-Uses Background Worker to create the models and to load the data.
-Allows User to rotate, scale, and zoom in on the model
-Have auto rotating around the y-axis, and allow adjusting the speed
-Have a mouse to model collision so that User can read data information at specific point on the model
-Saving the Image itself and export it to a file
-Have a button that zoom to the right position so that it would fit the entire screen.
Image cropping and resizing on creation:
Issue: Scan Images are constantly build while during many times and some images can get as large as (10,000 x 10,000). Because it is this big, it takes a long time to build the Image. After the image is build the entire application slows down while it's being called in the OnPaint() method. User will have issues trying to Pan and zooming the image due to the huge drop in speed.
Solution: change the method in the class that build the image pixel to ignore areas not seen by the user and if they are zoom out farther than a 1:1 ratio then lower the size of the actual image.
Waveform Filtering:
Issue: User wants to create Filters for the Waveform
Solution: created them. Filters includes the Average, Median, and Time Gate Control (TGC) in which the user can adjust. And multiple filters are allowed at the same time.
Multiple Data Image extraction:
Issue: User wants to extract data Image of multiple scans. In order for them to do so they need to select one image at a time to extract the image.
Solution: Made a new form that create many small Icons as preview and allow the user to select the ones they want to extract. The Preview can also filter out the images by types to such as which board that was used, the scan type, ect.
Improving the Loading Form:
Issue: User was locked out of the Controls for this application while it was loading all the File Data in it's current directory. The User tends to have over thousands of files that need to be shown with detail information.
Fix: use Threading to load a list of files and allow User to still have control during this time.
Other Improvement:
-Added a back and forth button to mimic Windows Explorer's history movement. Also keep a list of strings that the user have moved to.
-Allow double clicking to select the files.
-Can look up Network drives as well as local.
Draw Image of the Entire program display:
Issue: Creating a bitmap of the Entire MDI form will cause the forms inside of it to be render in the wrong order. Printing the Screen itself won't work due to mouse still being visible or if the form is out of the screen itself.
Solution: Create a queue that keep track of all the children and move them to the back of the line when it's get active. When building the Image, turn all the children invisible, draw the main MDI form into the image, then go though the queue from front to back making them visible and draw them onto the image.
Other Improvement:
-Created a Print function for the above image. Allows preview and changing the layout.
Motor Setup Editor:
Issue: Setup for the motors are stored in an XML File that cause the Users to be confused and error.
Solution: Created a new project and application that user can use to create, and change the XML files.
Solution Includes:
-Loading and saving the XML
-Shows changeable variables of only the selected type of motors.