⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.cs

📁 用C#写的USB数据采集程序
💻 CS
📖 第 1 页 / 共 5 页
字号:
using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using System.Data;
using System.Xml;
using System.IO;
using Custom;
using DAS;
using System.Runtime.InteropServices;

namespace MCA
{
	/// <summary>
	/// 主窗口
	/// </summary>
	public class FrmMain : System.Windows.Forms.Form
    {
        #region "DLL声明"
        /// <summary>
        /// 创建设备DC
        /// </summary>
        /// <param name="lpszDriver">驱动名称</param>
        /// <param name="lpszDevice">设备名称</param>
        /// <param name="lpszOutput">无用,可以设定位"NULL"</param>
        /// <param name="lpInitData">任意的打印机数据</param>
        /// <returns></returns>
        [DllImport("coredll.dll")]
        private static extern IntPtr CreateDC(
        string lpszDriver, // 驱动名称
        string lpszDevice, // 设备名称
        string lpszOutput, // 无用,可以设定位"NULL"
        IntPtr lpInitData // 任意的打印机数据
        );
        #endregion
        
        #region "私有变量"
        private System.Windows.Forms.ToolBar toolBar;
		private System.Windows.Forms.ToolBarButton tbbtOpen;
		private System.Windows.Forms.ToolBarButton tbbtSave;
		private System.Windows.Forms.ImageList imageList;
		private System.Windows.Forms.OpenFileDialog openFileDialog;
		private System.Windows.Forms.SaveFileDialog saveFileDialog;
		private System.Windows.Forms.ToolBarButton tbbtStartstop;
		private System.Windows.Forms.ToolBarButton tbbtNew;
        private System.Windows.Forms.ToolBarButton tbbtSetting;
		private System.Windows.Forms.Timer timer;
        private System.Windows.Forms.ToolBarButton tbbtPlaystop;
		private System.Windows.Forms.ToolBarButton tbbtCoordinate;
		private System.Windows.Forms.ToolBarButton tbbtHelp;
        internal System.Windows.Forms.Panel panel3;
		private System.Windows.Forms.PictureBox pbTime;
        private System.Windows.Forms.PictureBox pbCount;
        private ToolBarButton tbbtFill;
		private DAnalyzer analyzer;
        private Panel panel4;
        private ToolBarButton tbbtMax;
        private ToolBarButton tbbtExtend;
        private ToolBarButton tbbtScale;
        private ToolBarButton tbbtAnalyzer;
        internal Panel panel1;
        internal DDrawBox zdrawbox;
        private ImageButton ibtzYshrink;
        private ImageButton ibtzYextend;
        internal Label lbTime;
        internal Label lbCount;
        /// <summary>
        /// 多道数据
        /// </summary>
        internal DAS.DData data;
        /// <summary>
        /// 是否自动量程
        /// </summary>
        private bool autoscale;
        /// <summary>
        /// 停机时间
        /// </summary>
        internal int stoptime;
        /// <summary>
        /// 停机计数
        /// </summary>
        internal int stopcount;
        /// <summary>
        /// 停机类型
        /// </summary>
        internal StopType stoptype;
        /// <summary>
        /// 回放的时间点
        /// </summary>
        private int timepoint;
        /// <summary>
        /// 选择的区域
        /// </summary>
        private int channel1;
        private int channel2;
        /// <summary>
        /// 当前时间
        /// </summary>
        private int nowtp;
        /// <summary>
        /// 当前计数
        /// </summary>
        private int nowcs;
        /// <summary>
        /// 新建时间点数
        /// </summary>
        internal int newtps;
        /// <summary>
        /// 新建道数
        /// </summary>
        internal int newcns;
        private Timer realtimer;
        private ImageButton ibtXextend;
        private ImageButton ibtMax;
        private ImageButton ibtzXnext;
        private ImageButton ibtzXlast;
        private ImageButton ibtScale;
        private ImageButton ibtAnalyzer;
        private Panel panel5;
        internal Panel panel2;
        private ImageButton ibtChannelsShrink;
        private ImageButton ibtChannelsExtend;
        private ImageButton ibtChannelsFit;
        internal DDrawBox drawbox;
        private Panel panel6;
        private HScrollBar hSBRegion;
        private Panel panel7;
        private Panel panel8;
        private Label lbRegionEnd;
        private Label lbRegionStart;
        private Panel panel12;
        private Panel panel11;
        private Panel panel10;
        private Panel panel9;
        private Panel panel;
        private Panel panel13;
        private Panel panel14;
        private ToolBarButton tbbtGrid;
        private ToolBarButton toolBarButton1;
        private DataGrid gridPeak;
        private Panel panel15;
        private ImageButton ibtPeak;
        private ImageButton ibtSmooth;
        private ImageButton ibtCalibrate;
        private ImageButton ibtArea;
        private ContextMenu cMenuSmooth;
        private MenuItem mItem5;
        private MenuItem mItem7;
        private MenuItem mItem9;
        private MenuItem mItem11;
        private MenuItem mItem13;
        private ContextMenu cMenuPeak;
        private MenuItem mItemFilter;
        private MenuItem mItemCovariance;
        private MenuItem mItemLinearity;
        private MenuItem mItemDerivative;
        private MenuItem menuItem1;
        private MenuItem mItemUndo;
        private MenuItem mItemManul;
        /// <summary>
        /// 数据显示委托
        /// </summary>
        private delegate void datashowhandler();
        private datashowhandler dataShow;
        internal Color peakcolor;
        internal Color activatedpeakcolor;
        //
        private FrmSetting frmsetting;
        private FrmManualSmooth frmmanualsmooth;
        private FrmInput frminput;
        private FrmCalibrate frmcalibrate;
        //
        private DataGridTableStyle dataGridTableStyle1;
        private DataGridTextBoxColumn dataGridTextBoxColumn1;
        private DataGridTextBoxColumn dataGridTextBoxColumn2;
        private DataGridTextBoxColumn dataGridTextBoxColumn3;
        private DataGridTextBoxColumn dataGridTextBoxColumn4;
        private DataGridTextBoxColumn dataGridTextBoxColumn5;
        private DataGridTextBoxColumn dataGridTextBoxColumn6;
        private DataGridTextBoxColumn dataGridTextBoxColumn7;
        //
        private DataTable peaktable;
        private ContextMenu cMenuCalibrate;
        private MenuItem mItemEnergyCal;
        private MenuItem mItemPeakCal;
        private MenuItem mItemEfficencyCal;
        private ContextMenu cMenuArea;
        private MenuItem mItemAreaSub;
        private MenuItem mItemPeakArea;
        private MenuItem mItemManualArea;
        //
        internal LeastSquareResult caribrateresult;
        #endregion

        #region "构造函数"
        public FrmMain()
		{
			//
			// Windows 窗体设计器支持所必需的
			//
			InitializeComponent();
            //初始化多道数据类
            data = new DData(10, 1024, 256, 256);
			data.OverFlow += new CountOverFlowEventHandler(data_OverFlow);
            data.DataReceived += new EventHandler(data_DataReceived);
			//初始化多道分析类
			analyzer = new DAS.DAnalyzer();
            //初始化自动量程
            autoscale = true;
            //初始化停机时间
            stoptime = 10;
            //初始化停机计数
            stopcount = 9999;
            stoptype = StopType.Manual;
            nowcs = 0;
            nowtp = 0;
            newcns = 1024;
            newtps = 10;
            //初始化数据显示委托
            dataShow = new datashowhandler(DataShow);
            //
            peakcolor = Color.Red;
            activatedpeakcolor = Color.Yellow;
            zdrawbox.ActivatedColor = activatedpeakcolor;
            //                        
            frmsetting = new FrmSetting();
            frmsetting.frmmain = this;
            frmmanualsmooth = new FrmManualSmooth();
            frmmanualsmooth.frmmain = this;
            frminput = new FrmInput();
            frminput.frmmain = this;
            frmcalibrate = new FrmCalibrate();
            frmcalibrate.frmmain = this;
            //
            peaktable = new DataTable("ROI");
            peaktable.Columns.Add("Channel", typeof(double));
            peaktable.Columns.Add("Energy(keV)", typeof(double));
            peaktable.Columns.Add("Left", typeof(double));
            peaktable.Columns.Add("Right", typeof(double));
            peaktable.Columns.Add("FWHM(keV)", typeof(double));
            peaktable.Columns.Add("Area", typeof(double));
            peaktable.Columns.Add("Remark", typeof(string));
            gridPeak.DataSource = peaktable;
            //
            caribrateresult = new LeastSquareResult();
            caribrateresult.C = 0;
            caribrateresult.B = 0;
            caribrateresult.A = 0;
            //
            IntPtr dc = CreateDC("DISPLAY", null, null, (IntPtr)null);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -