Newer
Older
RbFreqStand / RbFreqStandMeasure / home / SetDevTestDlg.cs
yangqianqian on 7 Apr 2021 6 KB homepage complete
using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model;
using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Service;
using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Service.Impl;
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace Casic.Birmm.RbFreqStandMeasure.home
{
    public partial class SetDevTestDlg : Form
    {
        DetectionItemService detectionItemService = new DetectionItemServiceImpl();
        public int deviceId = -1;

        DateTime endTimeBySystem = new DateTime();

        #region 无边框拖动效果/最小化窗口/关闭窗口
        [DllImport("user32.dll")]//拖动无窗体的控件
        public static extern bool ReleaseCapture();
        [DllImport("user32.dll")]
        public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
        public const int WM_SYSCOMMAND = 0x0112;
        public const int SC_MOVE = 0xF010;
        public const int HTCAPTION = 0x0002;
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            //拖动窗体
            ReleaseCapture();
            SendMessage(Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
        }
        #endregion

        public Action HideMaskAction
        {
            get;
            set;
        }

        public SetDevTestDlg()
        {
            InitializeComponent();

            if (text_devType.Text.Equals("计数器")) checkBox_count.Enabled = true;
            else checkBox_count.Enabled = false;
        }

        // 开始检测
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (text_channelNo.Text.Equals(""))
            {
                MessageBox.Show("请选择通道!");
                return;
            }
            if (checkBox_stability.Checked && !radio_1s.Checked && !radio_10s.Checked && !radio_20s.Checked && !radio_100s.Checked)
            {
                MessageBox.Show("请选择频率稳定度采样时间!");
                return;
            }
            if (!checkBox_accuracy.Checked && !checkBox_stability.Checked && !checkBox_ageRate.Checked && !checkBox_bootFeature.Checked)
            {
                MessageBox.Show("请选择检测项目!");
                return;
            }

            string stability = "-3";
            string accuracy = "-3";
            string bootFeature = "-3";
            string ageRate = "-3";
            string interval = "";
            if (checkBox_now.Checked || timePicker_startTime.Value == DateTime.Now)
            {
                if (checkBox_stability.Checked) stability = "-1";
                if (checkBox_accuracy.Checked) accuracy = "-1";
                if (checkBox_bootFeature.Checked) bootFeature = "-1";
                if (checkBox_ageRate.Checked) ageRate = "-1";
            }
            else
            {
                if (checkBox_stability.Checked) stability = "-2";
                if (checkBox_accuracy.Checked) accuracy = "-2";
                if (checkBox_bootFeature.Checked) bootFeature = "-2";
                if (checkBox_ageRate.Checked) ageRate = "-2";
            }

            if (checkBox_stability.Checked)
            {
                if (radio_1s.Checked) interval = "1";
                else if (radio_10s.Checked) interval = "10";
                else if (radio_20s.Checked) interval = "20";
                else if (radio_100s.Checked) interval = "100";
            }


            detectionItemService.add(deviceId, timePicker_startTime.Value, timePicker_endTime.Value, stability, accuracy, bootFeature, ageRate, interval, text_channelNo.Text);

            this.HideMaskAction();
            HomeCtrlForm.homeCtrlForm.LoadChannelStatus();
            HomeCtrlForm.homeCtrlForm.LoadDevToBeTested();
        }       

        private void btnExitDev_Click(object sender, EventArgs e)
        {
            this.HideMaskAction();
        }

        

        private void btn_downChannelList_Click(object sender, EventArgs e)
        {
            comboBox_channelNo.DroppedDown = true;
        }

        private void comboBox_channelNo_SelectedIndexChanged(object sender, EventArgs e)
        {
            text_channelNo.Text = comboBox_channelNo.SelectedItem.ToString();
        }

        private void checkBox_stability_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox_stability.Checked)
            {
                groupBox3.Enabled = true;
            }
            else
            {
                groupBox3.Enabled = false;
            }

            getEndTime();
        }

        // 选择开始时间后,自动计算结束时间
        private void timePicker_startTime_ValueChanged(object sender, EventArgs e)
        {
            getEndTime();
        }
       

        private void checkBox_now_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox_now.Checked)
            {
                timePicker_startTime.Value = DateTime.Now;
                timePicker_endTime.Text = timePicker_startTime.Value.AddDays(7).ToString("yyyy-MM-dd HH:mm:ss");
            }
        }

        private void btn_downStartTime_Click(object sender, EventArgs e)
        {
            timePicker_startTime.ShowUpDown = true;
        }

        private void getEndTime()
        {
            if (checkBox_ageRate.Checked) endTimeBySystem = timePicker_startTime.Value.AddDays(7);
            else
            {
                if (checkBox_bootFeature.Checked) endTimeBySystem = timePicker_startTime.Value.AddHours(7);
                else
                {
                    if (checkBox_stability.Checked)
                    {
                        if (radio_1s.Checked) endTimeBySystem = timePicker_startTime.Value.AddSeconds(100 * 1);
                        else if (radio_10s.Checked) endTimeBySystem = timePicker_startTime.Value.AddSeconds(100 * 10);
                        else if (radio_20s.Checked) endTimeBySystem = timePicker_startTime.Value.AddSeconds(100 * 20);
                        else if (radio_100s.Checked) endTimeBySystem = timePicker_startTime.Value.AddSeconds(100 * 100);
                    }
                    else endTimeBySystem = DateTime.Now;
                }
            }

            timePicker_endTime.Value = endTimeBySystem;
        }

        private void timePicker_endTime_ValueChanged(object sender, EventArgs e)
        {
            if (timePicker_endTime.Value < endTimeBySystem)
            {
                MessageBox.Show("选择的结束时间无效,因为早于检测项目需要的时间!");
                timePicker_endTime.Value = endTimeBySystem;
            }
        }

        private void checkBox_accuracy_CheckedChanged(object sender, EventArgs e)
        {
            getEndTime();
        }

        private void checkBox_bootFeature_CheckedChanged(object sender, EventArgs e)
        {
            getEndTime();
        }

        private void checkBox_ageRate_CheckedChanged(object sender, EventArgs e)
        {
            getEndTime();
        }
    }
}