SeeSharpTools
This open source repository is developed and maintained by the JYTEK company, Shanghai, China, for the purpose of facilitating the development of the test and measurement using C# programming language. The project follows the GNU GPL V3.0 license and provides many commonly used T&M GUIs, utilities, data manipulations, and algorithms.
Install / Use
/learn @SeeSharpOpenSource/SeeSharpToolsREADME
This open source repository is developed and maintained by the JYTEK company, Shanghai, China, for the purpose of facilitating the development of the test and measurement using C# programming language. The project follows the GNU GPL V3.0 license and provides many commonly used T&M GUIs, utilities, data manipulations, and algorithms.
SeeSharpTools Introduction
SeeSharpTools is a collection of open source .NET libraries provided by JYTEK. It helps developers build T&M(Test and Measurement) applications based on .NET C# language in an easier and more efficient way. SeeSharpTools includes seventeen dll files(dynamic link library) and all the introductions of these libraies are listed below:
| Library | Introduction | |-------------------------|--------------------------------------------------------------------------| | SeeSharpTools.JY.ArrayUtility | Functions including array calculation and array Manipulation | | SeeSharpTools.JY.DSP.Fundamental | Waveform generation and spectrum algorithms | | SeeSharpTools.JY.DSP.FilterMCR | Filter functions based on matlab runtime engine(MCR) | | SeeSharpTools.JY.DSP.SoundVibration | Algorithms for Sound and Vibration usage | | SeeSharpTools.JY.DSP.Utility | Common DSP algorithms | | SeeSharpTools.JY.DSP.Utility.Fundamental| Beta version of fundmental dsp algorithms | | SeeSharpTools.JY.Statistics | Statistic algorithms | | SeeSharpTools.JY.GUI | Common winform GUI controls for Test and Measurement industries | | SeeSharpTools.JY.Graph3D | 3D data visualization winfrom GUI controls | | SeeSharpTools.JY.Localization | Winform application UI localization | | SeeSharpTools.JY.File | File IO operation (csv/bin/wvf) | | SeeSharpTools.JY.Report | Report and Log components | | SeeSharpTools.JY.ThreadSafeQueue | Thread-safe queue functions | | SeeSharpTools.JY.Sensors | Sensor value convert functions | | SeeSharpTools.JY.TCP | TCP communication library | | SeeSharpTools.JY.Database | Database operating utilities | | SeeSharpTools.JY.Mathematics | Common used mathematic algorithms for array data. | | SeeSharpTools.JY.Audio(Obsoleted) | Audio-related waveform generation and related algorithms(Beta) |
For more detail about these libraries, please check "SeeSharpTools User Mannual" located at repository gitpage: https://seesharpopensource.github.io/SeeSharpTools/. Developers can get the latest release of SeeSharpTools and other software dependencies from JYTEK weibsite: http://www.jytek.com/seesharptools.
Library Introductions
SeeSharpTools.JY.ArrayUtility
This library contains some common functions used for array calculation and array manipulation. The classes in this library is listed below:
- ArrayCalculation: [static class] provides array calculation algorithms including: array add/substract/multiply, array offset calculation, basic statistic algorithms like rms/average/sum/abs.
- ArrayManipulation: [static class] provides array manipulation utilities including: array subset, array replacement, two-dimension array transpose and etc.
SeeSharpTools.JY.DSP.Fundamental
This library provides waveform generation function and basic DSP algorithms. The classes in this library is listed below:
- Generation: [static class] Provides waveform data generation function including: sine wave generation, square wave generation, uniform white noise generation and ramp wave generation.
- Spectrum: [static class] Provides spectrum calculation algorithm.This algorithm is based on MKL. MKL should be installed before using Spectrum function. Developers can get the mkl installer from JYTEK website.
SeeSharpTools.JY.DSP.FilterMCR
This library provides common filter functions based on MCR(Matlab compiler runtime). Developer need to install 'MCR(Matlab compiler runtime R2017a)' before using this library. The classes in this library is listed below:
- IIRFilter: Provides IIR(Infinite Impulse Response) Filter functions including: Low-pass filter, High-pass filter, Band-pass filter, Band-stop filter.
- FIRFilter: Provides FIR(Finite Impulse Response) Filter functions including: Low-pass filter, High-pass filter, Band-pass filter, Band-stop filter and Kaiser Window filter.
- JYSpectrum: [static class] Provides Spectrum calculation algorithm.
SeeSharpTools.JY.DSP.SoundVibration
This library provides some audio analyzing algorithms. Some of these algorithms are based on 'SeeSharpTools.JY.DSP.Fundamental'. The classes in this library is listed below:
- HarmonicAnalyzer: [static class] Provides THD and fundmental frequency calculation algorithm.
SeeSharpTools.JY.DSP.Utility
This library provides some useful DSP algorithms. Some of these algorithms are based on 'SeeSharpTools.JY.DSP.Fundamental'. The classes in this library is listed below:
- HarmonicAnalysis: [static calss] Provides harmonic related parameters calculation including THD, THD+N, SNR, SNRAD, NoiseFloor, ENOB and etc.
- Phase: [static class] Provides Phase shift calculation algorithm between two related waveform.
- SignlaProcessing: [static class] Provides common data-validating functions and interpolation algorithms.
- SquarewaveMeasurements: [static class] Provides common sqaure wave measurement algorithms.
- Synchronizer: [static class] Provides function to synchronize the data for asynchronized data acquisition.
- PeakValleyAnalysis [static class] Provides peak and valley detection algorithms. This function is based on matlab runtime engine and a MCR should be installed when using this class.
- MedianFilter: [static class] A non-linear digital filtering technique, often used to remove noise from a signal.
SeeSharpTools.JY.DSP.Utility.Fundamental
This library provides some cross-platform DSP algorithms. The classes in this library is listed below:
- Spectrum: [static class] Provides cross-platform Spectrum calculation algorithms.
SeeSharpTools.JY.Statistics
This library provides some statistic algorithms. This library supports acceleration based on Intel-IPP libraries. To enable the Intel-IPP functions, please place Intel IPP dlls under \NativeDLLs\intel64 for x64 platform and \NativeDLLs\ia32 for x86 platform in the bin folder and set the property "provider" to Intel IPP . The classes in this library is listed below:
- Statistics: [static class] Provides common statistic algorithms including: Maximum, Minimum, Mean, RMS, StandardDeviation, Variance, Skewness, Kurtosis, Histogram.
SeeSharpTools.JY.GUI
This library provides some useful winform GUI controls for measurement and test industries. These GUI controls can be used in Windows and Linux environment(with MONO). The picture below shows the appearance of some controls. The display effect of all the controls are shown in "SeeSharpTools User Mannual".
The classes in this library is listed below:
- AquaGauge: Instrumental dashboard control used to show single analog value.
- PressureGauge: Instrumental dashboard control used to show single analog value.
- Tank: Value display control with tank style.
- Thermometer Value display control with thermometer appearance.
- SevenSegment: Value display control with standard seven-segment nixie tube style.
- SegmentBright: Digital tube style value display control with more configurable appearance.
- ButtonSwitch: Toggle switch control for boolean value input. This control support multiple display style.
- IndustrySwitch: Industry switch control for boolean value input. This control support multiple display style.
- EasyButton: Button control with preset images that more intuitive than original winform button. The preset images is configurable.
- EasyChart(Obsoleted): Data Visualization control based on MS Chart. Easy to use and capable of showing substantial data. Abandoned and no longer maintained.
- EasyChartX: New version of Data visualization control(EasyChart). The improvments including: Higher efficiency, Optimized interface, More configurabe parameters, User experience improvement.
- StripChart: History graph with scroll style.
- Slide: Slide control used for analog value input.
- GaugeLinear: Slide control with adaptive scale and better appearance.
- KnobControl: Knob control for analog value input.
- LED: LED light control for boolean value output. This control support multiple display style.
- LEDArray: LED light array control for boolean array value output. This control support multiple display style.
- LedArrow: LED light control with arrow style. This control support multiple display style.
- LedMatrixControl: Control for text display with dot array style.
- JYArray: Control array for array data display.
- PathControl: Directory selection or input control.
- ScrollingText: Text display control with special scrolling effect.
- ViewController Useful component to batch-change property for designated controls in winform panel. The control can switch property "Enable" and "Visible" for now
