/// <summary>
        /// 修改单个信号设置信息
        /// </summary>
        /// <param name="name">原信号名称</param>
        /// <param name="changesetting">修改后的信号设置信息</param>
        /// <returns></returns>
        public static bool ChangeValue(string name, OneListSetting changesetting)
        {
            var onesetting = _Settings.Find((x) => x.SignalName == name);

            if (onesetting == null)
            {
                cards[onesetting.OneCardSetting.cardname.Value].DelChannel(onesetting.OneCardSetting.channel.channel.Value);
                CardSettingError.RaiseError(001);
                return(false);
            }
            //  setting修改
            onesetting = changesetting;
            //  采集卡修改
            cards[changesetting.OneCardSetting.cardname.Value].SetSamplerate(changesetting.OneCardSetting.channel.channel.Value, changesetting.OneCardSetting.samplerate);
            cards[changesetting.OneCardSetting.cardname.Value].SetValuesRange(changesetting.OneCardSetting.channel.channel.Value, changesetting.OneCardSetting.range.Value);
            //  数据库修改
            var        info     = CollectDataSet.GetSignal(name);
            SignalInfo new_info = new SignalInfo();

            new_info.cardname         = changesetting.OneCardSetting.cardname.Value;
            new_info.name             = changesetting.SignalName;
            new_info.position         = changesetting.SensorPosition;
            new_info.resolution       = (ushort)cards[changesetting.OneCardSetting.cardname.Value].GetResolution();
            new_info.sensortype       = changesetting.SensorType;
            new_info.signalrange      = changesetting.OneCardSetting.range.Value;
            new_info.detectequipment  = changesetting.DetectEquipment;
            new_info.resolutiondouble = cards[changesetting.OneCardSetting.cardname.Value].GetDoubleResolution(changesetting.OneCardSetting.range.Value, out new_info.basevalue);
            CollectDataSet.ChgSignal(info, new_info);

            ListChanged?.Invoke("Chg", changesetting);
            return(true);
        }
        /// <summary>
        /// 添加单行信号设置
        /// </summary>
        /// <param name="onesetting">单个信号设置</param>
        /// <returns>是否添加成功</returns>
        public static bool AddSetting(OneListSetting onesetting)
        {
            //  setting添加
            _Settings.Add(onesetting);

            //  采集卡进行设置采样频率以及电信号范围
            cards[onesetting.OneCardSetting.cardname.Value].SetSamplerate(onesetting.OneCardSetting.channel.channel.Value, onesetting.OneCardSetting.samplerate);
            cards[onesetting.OneCardSetting.cardname.Value].SetValuesRange(onesetting.OneCardSetting.channel.channel.Value, onesetting.OneCardSetting.range.Value);

            //  将该行信号设置添加到数据库母表,并建立对应子表
            SignalInfo info = new SignalInfo();

            info.cardname         = onesetting.OneCardSetting.cardname.Value;
            info.name             = onesetting.SignalName;
            info.position         = onesetting.SensorPosition;
            info.resolution       = (ushort)cards[onesetting.OneCardSetting.cardname.Value].GetResolution();
            info.sensortype       = onesetting.SensorType;
            info.signalrange      = onesetting.OneCardSetting.range.Value;
            info.detectequipment  = onesetting.DetectEquipment;
            info.resolutiondouble = cards[onesetting.OneCardSetting.cardname.Value].GetDoubleResolution(onesetting.OneCardSetting.range.Value, out info.basevalue);
            CollectDataSet.AddSignal(info);

            //  事件
            ListChanged?.Invoke("Add", onesetting);
            return(true);
        }
 /// <summary>
 /// 停止信号采集
 /// </summary>
 public static void StopRecord()
 {
     if (IsRecording)
     {
         stoptime = DateTime.Now.ToOADate();
         foreach (var k in cards.Keys)
         {
             cards[k].StopRecord();
         }
         foreach (var x in Settings)
         {
             CollectDataSet.AddTime(x.SignalName, starttime, stoptime);
         }
         _isRecording = false;
         RecordStageChanged?.Invoke(false);
     }
 }
        /// <summary>
        /// 删除单个信号设置
        /// </summary>
        /// <param name="name"></param>
        public static bool DelSetting(string name)
        {
            var onesetting = _Settings.Find(x => x.SignalName == name);

            if (onesetting != null)
            {
                //  采集卡删除
                cards[onesetting.OneCardSetting.cardname.Value].DelChannel(onesetting.OneCardSetting.channel.channel.Value);
                //  setting删除
                _Settings.Remove(onesetting);

                //  数据库删除
                CollectDataSet.DelSignal(onesetting.SignalName);
                //  事件
                ListChanged?.Invoke("Del", onesetting);
                return(true);
            }
            else
            {
                CardSettingError.RaiseError(001);
                return(false);
            }
        }